From 1e6bfee50a5a7c6b3270413dd73ff665a69041ea Mon Sep 17 00:00:00 2001 From: Elliot Kennedy Date: Sun, 28 Jul 2024 00:27:23 +0100 Subject: [PATCH] - Update whirlpool test program + codegen - Update raydium test program + codegen - Update meteora codegen - Remove serum deps --- .github/workflows/build_packages.yml | 2 +- .github/workflows/release_packages.yml | 2 +- deps/raydium.so | Bin 1468168 -> 1700160 bytes deps/whirlpool.so | Bin 1405440 -> 1405440 bytes package-lock.json | 27500 ++++++++++------ package.json | 16 +- packages/hubble-config/package-lock.json | 634 + packages/hubble-config/package.json | 2 +- packages/hubble-idl/README.md | 8 +- packages/hubble-sdk/package-lock.json | 3357 +- packages/hubble-sdk/package.json | 12 +- packages/hubble-sdk/src/Hubble.ts | 13 +- .../hubble-sdk/src/models/TermsSignature.ts | 2 +- packages/hubble-sdk/src/utils/anchorUtils.ts | 2 +- packages/hubble-sdk/src/utils/mathUtils.ts | 2 +- packages/hubble-sdk/tests/integration.test.ts | 6 +- packages/hubble-sdk/tests/utils.ts | 2 +- packages/kamino-sdk/package-lock.json | 1440 +- packages/kamino-sdk/package.json | 18 +- packages/kamino-sdk/src/Kamino.ts | 82 +- .../src/meteora_client/accounts/BinArray.ts | 12 +- .../accounts/BinArrayBitmapExtension.ts | 12 +- .../src/meteora_client/accounts/LbPair.ts | 129 +- .../src/meteora_client/accounts/Oracle.ts | 12 +- .../src/meteora_client/accounts/Position.ts | 12 +- .../src/meteora_client/accounts/PositionV2.ts | 62 +- .../accounts/PresetParameter.ts | 12 +- .../src/meteora_client/errors/anchor.ts | 36 +- .../src/meteora_client/errors/custom.ts | 194 +- .../src/meteora_client/errors/index.ts | 6 +- .../instructions/addLiquidity.ts | 11 +- .../instructions/addLiquidityByStrategy.ts | 11 +- .../addLiquidityByStrategyOneSide.ts | 11 +- .../instructions/addLiquidityByWeight.ts | 11 +- .../instructions/addLiquidityOneSide.ts | 11 +- .../addLiquidityOneSidePrecise.ts | 66 + .../meteora_client/instructions/claimFee.ts | 13 +- .../instructions/claimReward.ts | 11 +- .../instructions/closePosition.ts | 13 +- .../instructions/closePresetParameter.ts | 9 +- .../meteora_client/instructions/fundReward.ts | 13 +- .../meteora_client/instructions/goToABin.ts | 50 + .../instructions/increaseOracleLength.ts | 7 +- .../src/meteora_client/instructions/index.ts | 47 + .../instructions/initializeBinArray.ts | 7 +- .../initializeBinArrayBitmapExtension.ts | 7 +- .../instructions/initializeLbPair.ts | 7 +- .../initializePermissionLbPair.ts | 24 +- .../instructions/initializePosition.ts | 7 +- .../initializePositionByOperator.ts | 64 + .../instructions/initializePositionPda.ts | 8 +- .../instructions/initializePresetParameter.ts | 7 +- .../instructions/initializeReward.ts | 7 +- .../instructions/migrateBinArray.ts | 9 +- .../instructions/migratePosition.ts | 9 +- .../instructions/removeAllLiquidity.ts | 13 +- .../instructions/removeLiquidity.ts | 11 +- .../instructions/removeLiquidityByRange.ts | 78 + .../instructions/setActivationSlot.ts | 38 + .../instructions/setLockReleaseSlot.ts | 44 + .../setPreActivationSlotDuration.ts | 38 + .../setPreActivationSwapAddress.ts | 40 + .../src/meteora_client/instructions/swap.ts | 10 +- .../instructions/togglePairStatus.ts | 9 +- .../instructions/updateFeeOwner.ts | 9 +- .../instructions/updateFeeParameters.ts | 7 +- .../instructions/updateFeesAndRewards.ts | 9 +- .../instructions/updatePositionOperator.ts | 42 + .../instructions/updateRewardDuration.ts | 7 +- .../instructions/updateRewardFunder.ts | 7 +- .../instructions/updateWhitelistedWallet.ts | 15 +- .../instructions/withdrawIneligibleReward.ts | 52 + .../instructions/withdrawProtocolFee.ts | 9 +- .../AddLiquiditySingleSidePreciseParameter.ts | 79 + .../src/meteora_client/types/Bin.ts | 2 +- .../types/BinLiquidityDistribution.ts | 2 +- .../types/BinLiquidityDistributionByWeight.ts | 2 +- .../types/BinLiquidityReduction.ts | 2 +- .../types/CompressedBinDepositAmount.ts | 63 + .../src/meteora_client/types/FeeInfo.ts | 2 +- .../src/meteora_client/types/FeeParameter.ts | 2 +- .../types/InitPermissionPairIx.ts | 103 + .../types/InitPresetParametersIx.ts | 2 +- .../src/meteora_client/types/LayoutVersion.ts | 2 +- .../types/LiquidityOneSideParameter.ts | 2 +- .../types/LiquidityParameter.ts | 2 +- .../types/LiquidityParameterByStrategy.ts | 2 +- .../LiquidityParameterByStrategyOneSide.ts | 2 +- .../types/LiquidityParameterByWeight.ts | 2 +- .../src/meteora_client/types/Observation.ts | 2 +- .../src/meteora_client/types/PairStatus.ts | 2 +- .../src/meteora_client/types/PairType.ts | 2 +- .../types/ParabolicParameter.ts | 56 - .../src/meteora_client/types/ProtocolFee.ts | 2 +- .../src/meteora_client/types/RewardInfo.ts | 32 +- .../src/meteora_client/types/Rounding.ts | 2 +- .../meteora_client/types/StaticParameters.ts | 2 +- .../types/StrategyParameters.ts | 2 +- .../src/meteora_client/types/StrategyType.ts | 260 +- .../meteora_client/types/UserRewardInfo.ts | 2 +- .../types/VariableParameters.ts | 2 +- .../src/meteora_client/types/index.ts | 50 +- .../src/raydium_client/accounts/AmmConfig.ts | 33 +- .../accounts/ObservationState.ts | 27 +- .../raydium_client/accounts/OperationState.ts | 28 +- .../accounts/PersonalPositionState.ts | 49 +- .../src/raydium_client/accounts/PoolState.ts | 113 +- .../accounts/ProtocolPositionState.ts | 49 +- .../accounts/TickArrayBitmapExtension.ts | 24 +- .../raydium_client/accounts/TickArrayState.ts | 18 +- .../src/raydium_client/accounts/index.ts | 2 + .../src/raydium_client/errors/anchor.ts | 36 +- .../src/raydium_client/errors/custom.ts | 44 +- .../src/raydium_client/errors/index.ts | 8 +- .../instructions/closePosition.ts | 23 +- .../instructions/collectFundFee.ts | 34 +- .../instructions/collectProtocolFee.ts | 34 +- .../instructions/collectRemainingRewards.ts | 29 +- .../instructions/createAmmConfig.ts | 23 +- .../instructions/createOperationAccount.ts | 16 +- .../raydium_client/instructions/createPool.ts | 21 - .../instructions/decreaseLiquidity.ts | 31 +- .../instructions/decreaseLiquidityV2.ts | 35 +- .../instructions/increaseLiquidity.ts | 31 +- .../instructions/increaseLiquidityV2.ts | 35 +- .../src/raydium_client/instructions/index.ts | 8 + .../instructions/initializeReward.ts | 32 +- .../instructions/openPosition.ts | 41 +- .../instructions/openPositionV2.ts | 45 +- .../instructions/resetSqrtPrice.ts | 71 - .../instructions/setRewardParams.ts | 29 +- .../src/raydium_client/instructions/swap.ts | 27 +- .../instructions/swapRouterBaseIn.ts | 29 +- .../src/raydium_client/instructions/swapV2.ts | 30 +- .../instructions/transferRewardOwner.ts | 20 +- .../instructions/updateAmmConfig.ts | 27 +- .../instructions/updateOperationAccount.ts | 25 +- .../instructions/updatePoolStatus.ts | 19 +- .../instructions/updateRewardInfos.ts | 15 +- .../types/InitializeRewardParam.ts | 11 +- .../src/raydium_client/types/Observation.ts | 15 +- .../raydium_client/types/PoolStatusBitFlag.ts | 2 +- .../types/PoolStatusBitIndex.ts | 2 +- .../types/PositionRewardInfo.ts | 2 +- .../src/raydium_client/types/RewardInfo.ts | 44 +- .../src/raydium_client/types/RewardState.ts | 2 +- .../raydium_client/types/TickArryBitmap.ts | 0 .../src/raydium_client/types/TickState.ts | 20 +- .../src/raydium_client/types/index.ts | 1 - .../kamino-sdk/src/services/MeteoraService.ts | 2 +- packages/kamino-sdk/src/utils/anchorUtils.ts | 2 +- packages/kamino-sdk/src/utils/meteora.ts | 4 +- packages/kamino-sdk/src/utils/tokenUtils.ts | 36 +- .../src/whirpools-client/accounts/FeeTier.ts | 90 +- .../src/whirpools-client/accounts/Position.ts | 174 +- .../accounts/PositionBundle.ts | 97 + .../whirpools-client/accounts/TickArray.ts | 96 +- .../whirpools-client/accounts/TokenBadge.ts | 97 + .../whirpools-client/accounts/Whirlpool.ts | 264 +- .../accounts/WhirlpoolsConfig.ts | 114 +- .../accounts/WhirlpoolsConfigExtension.ts | 107 + .../src/whirpools-client/accounts/index.ts | 9 + .../src/whirpools-client/errors/anchor.ts | 36 +- .../src/whirpools-client/errors/custom.ts | 182 + .../src/whirpools-client/errors/index.ts | 65 +- .../instructions/closeBundledPosition.ts | 52 + .../instructions/closePosition.ts | 37 +- .../instructions/collectFees.ts | 43 +- .../instructions/collectFeesV2.ts | 71 + .../instructions/collectProtocolFees.ts | 41 +- .../instructions/collectProtocolFeesV2.ts | 69 + .../instructions/collectReward.ts | 48 +- .../instructions/collectRewardV2.ts | 66 + .../instructions/decreaseLiquidity.ts | 64 +- .../instructions/decreaseLiquidityV2.ts | 84 + .../instructions/deletePositionBundle.ts | 36 + .../instructions/deleteTokenBadge.ts | 36 + .../instructions/increaseLiquidity.ts | 64 +- .../instructions/increaseLiquidityV2.ts | 84 + .../whirpools-client/instructions/index.ts | 69 + .../instructions/initializeConfig.ts | 54 +- .../instructions/initializeConfigExtension.ts | 30 + .../instructions/initializeFeeTier.ts | 49 +- .../instructions/initializePool.ts | 66 +- .../instructions/initializePoolV2.ts | 67 + .../instructions/initializePositionBundle.ts | 50 + .../initializePositionBundleWithMetadata.ts | 60 + .../instructions/initializeReward.ts | 50 +- .../instructions/initializeRewardV2.ts | 52 + .../instructions/initializeTickArray.ts | 42 +- .../instructions/initializeTokenBadge.ts | 38 + .../instructions/openBundledPosition.ts | 66 + .../instructions/openPosition.ts | 64 +- .../instructions/openPositionWithMetadata.ts | 67 +- .../setCollectProtocolFeesAuthority.ts | 31 +- .../setConfigExtensionAuthority.ts | 40 + .../instructions/setDefaultFeeRate.ts | 40 +- .../instructions/setDefaultProtocolFeeRate.ts | 35 +- .../instructions/setFeeAuthority.ts | 31 +- .../instructions/setFeeRate.ts | 40 +- .../instructions/setProtocolFeeRate.ts | 40 +- .../instructions/setRewardAuthority.ts | 40 +- .../setRewardAuthorityBySuperAuthority.ts | 39 +- .../instructions/setRewardEmissions.ts | 45 +- .../setRewardEmissionsSuperAuthority.ts | 31 +- .../instructions/setRewardEmissionsV2.ts | 45 + .../instructions/setTokenBadgeAuthority.ts | 40 + .../src/whirpools-client/instructions/swap.ts | 76 +- .../whirpools-client/instructions/swapV2.ts | 86 + .../instructions/twoHopSwap.ts | 110 + .../instructions/twoHopSwapV2.ts | 134 + .../instructions/updateFeesAndRewards.ts | 33 +- .../whirpools-client/shim/remove-liquidity.ts | 2 +- .../whirpools-client/types/AccountsType.ts | 208 + .../src/whirpools-client/types/CurrIndex.ts | 2 +- .../src/whirpools-client/types/Direction.ts | 2 +- .../types/OpenPositionBumps.ts | 2 +- .../types/OpenPositionWithMetadataBumps.ts | 2 +- .../types/PositionRewardInfo.ts | 2 +- .../types/RemainingAccountsInfo.ts | 66 + .../types/RemainingAccountsSlice.ts | 64 + .../src/whirpools-client/types/Tick.ts | 2 +- .../src/whirpools-client/types/TickLabel.ts | 2 +- .../whirpools-client/types/WhirlpoolBumps.ts | 2 +- .../types/WhirlpoolRewardInfo.ts | 2 +- .../src/whirpools-client/types/index.ts | 28 + packages/kamino-sdk/tests/kamino.test.ts | 6 +- packages/kamino-sdk/tests/orca_utils.ts | 40 +- packages/kamino-sdk/tests/raydium_utils.ts | 4 +- .../kamino-sdk/tests/stratRebalance.test.ts | 2 +- packages/kamino-sdk/tests/utils.ts | 15 +- packages/scope-sdk/package-lock.json | 1362 +- packages/scope-sdk/package.json | 11 +- packages/scope-sdk/src/Scope.ts | 14 +- packages/scope-sdk/src/utils/anchorUtils.ts | 2 +- packages/scope-sdk/tests/runner/env.ts | 8 +- tsconfig.json | 7 +- 237 files changed, 27358 insertions(+), 14841 deletions(-) create mode 100644 packages/hubble-config/package-lock.json create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSidePrecise.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/goToABin.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/initializePositionByOperator.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/removeLiquidityByRange.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/setActivationSlot.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/setLockReleaseSlot.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSlotDuration.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSwapAddress.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/updatePositionOperator.ts create mode 100644 packages/kamino-sdk/src/meteora_client/instructions/withdrawIneligibleReward.ts create mode 100644 packages/kamino-sdk/src/meteora_client/types/AddLiquiditySingleSidePreciseParameter.ts create mode 100644 packages/kamino-sdk/src/meteora_client/types/CompressedBinDepositAmount.ts create mode 100644 packages/kamino-sdk/src/meteora_client/types/InitPermissionPairIx.ts delete mode 100644 packages/kamino-sdk/src/meteora_client/types/ParabolicParameter.ts delete mode 100644 packages/kamino-sdk/src/raydium_client/instructions/resetSqrtPrice.ts create mode 100644 packages/kamino-sdk/src/raydium_client/types/TickArryBitmap.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/accounts/PositionBundle.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/accounts/TokenBadge.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfigExtension.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/closeBundledPosition.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/collectFeesV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFeesV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/collectRewardV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidityV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/deletePositionBundle.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/deleteTokenBadge.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidityV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/initializeConfigExtension.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/initializePoolV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundle.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundleWithMetadata.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/initializeRewardV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/initializeTokenBadge.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/openBundledPosition.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/setConfigExtensionAuthority.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/setTokenBadgeAuthority.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/swapV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwap.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwapV2.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/types/AccountsType.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsInfo.ts create mode 100644 packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsSlice.ts diff --git a/.github/workflows/build_packages.yml b/.github/workflows/build_packages.yml index 70f165f4..9c66e23f 100644 --- a/.github/workflows/build_packages.yml +++ b/.github/workflows/build_packages.yml @@ -24,7 +24,7 @@ jobs: - name: Setup node uses: actions/setup-node@v2 with: - node-version: '16' + node-version: '22' registry-url: 'https://registry.npmjs.org' - name: Install lerna v4 diff --git a/.github/workflows/release_packages.yml b/.github/workflows/release_packages.yml index 4fe8328d..86e7f1e1 100644 --- a/.github/workflows/release_packages.yml +++ b/.github/workflows/release_packages.yml @@ -37,7 +37,7 @@ jobs: - name: Setup .npmrc file for publish uses: actions/setup-node@v2 with: - node-version: '16' + node-version: '22' registry-url: 'https://registry.npmjs.org' # 3. configure git user used to push tag diff --git a/deps/raydium.so b/deps/raydium.so index 831e099e712788413b396cf8626f46953a987cd7..479b9af58b3d3e9a7475786756ce0da8e5c82e93 100644 GIT binary patch delta 260810 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 z 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 delta 111387 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 diff --git a/package-lock.json b/package-lock.json index c81df7ac..f03f0a15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9408 +1,18096 @@ { - "name": "@hubbleprotocol/hubble-common", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@hubbleprotocol/hubble-common", - "devDependencies": { - "@solana/web3.js": "^1.78.4", - "@types/bn.js": "^5.1.0", - "@types/chai-as-promised": "^7.1.4", - "@types/mocha": "^10.0.1", - "@types/node": "^16.18.11", - "@types/node-fetch": "^2.6.2", - "@types/sinon": "^10.0.13", - "chai": "^4.3.6", - "chai-as-promised": "^7.1.1", - "chai-decimaljs": "^0.0.1", - "lerna": "^4.0.0", - "mocha": "^10.2.0", - "mocha-sinon": "^2.1.2", - "prettier": "^3.3.2", - "start-server-and-test": "^1.11.6", - "ts-mocha": "^10.0.0", - "typescript": "^4.7.4" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", - "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.10", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@lerna/add": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", - "integrity": "sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==", - "dev": true, - "dependencies": { - "@lerna/bootstrap": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/npm-conf": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "npm-package-arg": "^8.1.0", - "p-map": "^4.0.0", - "pacote": "^11.2.6", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/bootstrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz", - "integrity": "sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==", - "dev": true, - "dependencies": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/has-npm-version": "4.0.0", - "@lerna/npm-install": "4.0.0", - "@lerna/package-graph": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/rimraf-dir": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/symlink-binary": "4.0.0", - "@lerna/symlink-dependencies": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "get-port": "^5.1.1", - "multimatch": "^5.0.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1", - "read-package-tree": "^5.3.1", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/changed": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz", - "integrity": "sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==", - "dev": true, - "dependencies": { - "@lerna/collect-updates": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/listable": "4.0.0", - "@lerna/output": "4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/check-working-tree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz", - "integrity": "sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==", - "dev": true, - "dependencies": { - "@lerna/collect-uncommitted": "4.0.0", - "@lerna/describe-ref": "4.0.0", - "@lerna/validation-error": "4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/child-process": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz", - "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "execa": "^5.0.0", - "strong-log-transformer": "^2.1.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/clean": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz", - "integrity": "sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==", - "dev": true, - "dependencies": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/rimraf-dir": "4.0.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/cli": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz", - "integrity": "sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==", - "dev": true, - "dependencies": { - "@lerna/global-options": "4.0.0", - "dedent": "^0.7.0", - "npmlog": "^4.1.2", - "yargs": "^16.2.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/collect-uncommitted": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz", - "integrity": "sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "chalk": "^4.1.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/collect-updates": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz", - "integrity": "sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/describe-ref": "4.0.0", - "minimatch": "^3.0.4", - "npmlog": "^4.1.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/command": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz", - "integrity": "sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/package-graph": "4.0.0", - "@lerna/project": "4.0.0", - "@lerna/validation-error": "4.0.0", - "@lerna/write-log-file": "4.0.0", - "clone-deep": "^4.0.1", - "dedent": "^0.7.0", - "execa": "^5.0.0", - "is-ci": "^2.0.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/conventional-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz", - "integrity": "sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==", - "dev": true, - "dependencies": { - "@lerna/validation-error": "4.0.0", - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-core": "^4.2.2", - "conventional-recommended-bump": "^6.1.0", - "fs-extra": "^9.1.0", - "get-stream": "^6.0.0", - "lodash.template": "^4.5.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "pify": "^5.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/create": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz", - "integrity": "sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/npm-conf": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "globby": "^11.0.2", - "init-package-json": "^2.0.2", - "npm-package-arg": "^8.1.0", - "p-reduce": "^2.1.0", - "pacote": "^11.2.6", - "pify": "^5.0.0", - "semver": "^7.3.4", - "slash": "^3.0.0", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0", - "whatwg-url": "^8.4.0", - "yargs-parser": "20.2.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/create-symlink": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz", - "integrity": "sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==", - "dev": true, - "dependencies": { - "cmd-shim": "^4.1.0", - "fs-extra": "^9.1.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/describe-ref": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", - "integrity": "sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz", - "integrity": "sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/validation-error": "4.0.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/exec": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz", - "integrity": "sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/profiler": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/validation-error": "4.0.0", - "p-map": "^4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/filter-options": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz", - "integrity": "sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==", - "dev": true, - "dependencies": { - "@lerna/collect-updates": "4.0.0", - "@lerna/filter-packages": "4.0.0", - "dedent": "^0.7.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/filter-packages": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz", - "integrity": "sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==", - "dev": true, - "dependencies": { - "@lerna/validation-error": "4.0.0", - "multimatch": "^5.0.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/get-npm-exec-opts": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz", - "integrity": "sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==", - "dev": true, - "dependencies": { - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/get-packed": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz", - "integrity": "sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==", - "dev": true, - "dependencies": { - "fs-extra": "^9.1.0", - "ssri": "^8.0.1", - "tar": "^6.1.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/github-client": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz", - "integrity": "sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^18.1.0", - "git-url-parse": "^11.4.4", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/gitlab-client": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz", - "integrity": "sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.1", - "npmlog": "^4.1.2", - "whatwg-url": "^8.4.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/global-options": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz", - "integrity": "sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==", - "dev": true, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/has-npm-version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz", - "integrity": "sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz", - "integrity": "sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/validation-error": "4.0.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "p-map-series": "^2.1.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/info": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz", - "integrity": "sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==", - "dev": true, - "dependencies": { - "@lerna/command": "4.0.0", - "@lerna/output": "4.0.0", - "envinfo": "^7.7.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/init": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz", - "integrity": "sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/command": "4.0.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "write-json-file": "^4.3.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/link": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz", - "integrity": "sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==", - "dev": true, - "dependencies": { - "@lerna/command": "4.0.0", - "@lerna/package-graph": "4.0.0", - "@lerna/symlink-dependencies": "4.0.0", - "p-map": "^4.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/list": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz", - "integrity": "sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==", - "dev": true, - "dependencies": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/listable": "4.0.0", - "@lerna/output": "4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/listable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz", - "integrity": "sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==", - "dev": true, - "dependencies": { - "@lerna/query-graph": "4.0.0", - "chalk": "^4.1.0", - "columnify": "^1.5.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/log-packed": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz", - "integrity": "sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==", - "dev": true, - "dependencies": { - "byte-size": "^7.0.0", - "columnify": "^1.5.4", - "has-unicode": "^2.0.1", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/npm-conf": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz", - "integrity": "sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==", - "dev": true, - "dependencies": { - "config-chain": "^1.1.12", - "pify": "^5.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/npm-dist-tag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz", - "integrity": "sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==", - "dev": true, - "dependencies": { - "@lerna/otplease": "4.0.0", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/npm-install": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz", - "integrity": "sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/get-npm-exec-opts": "4.0.0", - "fs-extra": "^9.1.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "signal-exit": "^3.0.3", - "write-pkg": "^4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/npm-publish": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz", - "integrity": "sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==", - "dev": true, - "dependencies": { - "@lerna/otplease": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "fs-extra": "^9.1.0", - "libnpmpublish": "^4.0.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "pify": "^5.0.0", - "read-package-json": "^3.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/npm-run-script": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz", - "integrity": "sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "@lerna/get-npm-exec-opts": "4.0.0", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/otplease": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz", - "integrity": "sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==", - "dev": true, - "dependencies": { - "@lerna/prompt": "4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/output": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz", - "integrity": "sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==", - "dev": true, - "dependencies": { - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/pack-directory": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz", - "integrity": "sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==", - "dev": true, - "dependencies": { - "@lerna/get-packed": "4.0.0", - "@lerna/package": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "npm-packlist": "^2.1.4", - "npmlog": "^4.1.2", - "tar": "^6.1.0", - "temp-write": "^4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/package": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz", - "integrity": "sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==", - "dev": true, - "dependencies": { - "load-json-file": "^6.2.0", - "npm-package-arg": "^8.1.0", - "write-pkg": "^4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/package-graph": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz", - "integrity": "sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==", - "dev": true, - "dependencies": { - "@lerna/prerelease-id-from-version": "4.0.0", - "@lerna/validation-error": "4.0.0", - "npm-package-arg": "^8.1.0", - "npmlog": "^4.1.2", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/prerelease-id-from-version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz", - "integrity": "sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==", - "dev": true, - "dependencies": { - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/profiler": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz", - "integrity": "sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==", - "dev": true, - "dependencies": { - "fs-extra": "^9.1.0", - "npmlog": "^4.1.2", - "upath": "^2.0.1" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/project": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz", - "integrity": "sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==", - "dev": true, - "dependencies": { - "@lerna/package": "4.0.0", - "@lerna/validation-error": "4.0.0", - "cosmiconfig": "^7.0.0", - "dedent": "^0.7.0", - "dot-prop": "^6.0.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.2", - "load-json-file": "^6.2.0", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "resolve-from": "^5.0.0", - "write-json-file": "^4.3.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/prompt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz", - "integrity": "sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==", - "dev": true, - "dependencies": { - "inquirer": "^7.3.3", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/publish": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz", - "integrity": "sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "4.0.0", - "@lerna/child-process": "4.0.0", - "@lerna/collect-updates": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/describe-ref": "4.0.0", - "@lerna/log-packed": "4.0.0", - "@lerna/npm-conf": "4.0.0", - "@lerna/npm-dist-tag": "4.0.0", - "@lerna/npm-publish": "4.0.0", - "@lerna/otplease": "4.0.0", - "@lerna/output": "4.0.0", - "@lerna/pack-directory": "4.0.0", - "@lerna/prerelease-id-from-version": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/pulse-till-done": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/validation-error": "4.0.0", - "@lerna/version": "4.0.0", - "fs-extra": "^9.1.0", - "libnpmaccess": "^4.0.1", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "pacote": "^11.2.6", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/pulse-till-done": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz", - "integrity": "sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==", - "dev": true, - "dependencies": { - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/query-graph": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz", - "integrity": "sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==", - "dev": true, - "dependencies": { - "@lerna/package-graph": "4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/resolve-symlink": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz", - "integrity": "sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==", - "dev": true, - "dependencies": { - "fs-extra": "^9.1.0", - "npmlog": "^4.1.2", - "read-cmd-shim": "^2.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/rimraf-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz", - "integrity": "sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==", - "dev": true, - "dependencies": { - "@lerna/child-process": "4.0.0", - "npmlog": "^4.1.2", - "path-exists": "^4.0.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/run": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz", - "integrity": "sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==", - "dev": true, - "dependencies": { - "@lerna/command": "4.0.0", - "@lerna/filter-options": "4.0.0", - "@lerna/npm-run-script": "4.0.0", - "@lerna/output": "4.0.0", - "@lerna/profiler": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/timer": "4.0.0", - "@lerna/validation-error": "4.0.0", - "p-map": "^4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/run-lifecycle": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz", - "integrity": "sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==", - "dev": true, - "dependencies": { - "@lerna/npm-conf": "4.0.0", - "npm-lifecycle": "^3.1.5", - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/run-topologically": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz", - "integrity": "sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==", - "dev": true, - "dependencies": { - "@lerna/query-graph": "4.0.0", - "p-queue": "^6.6.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/symlink-binary": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz", - "integrity": "sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==", - "dev": true, - "dependencies": { - "@lerna/create-symlink": "4.0.0", - "@lerna/package": "4.0.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/symlink-dependencies": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz", - "integrity": "sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==", - "dev": true, - "dependencies": { - "@lerna/create-symlink": "4.0.0", - "@lerna/resolve-symlink": "4.0.0", - "@lerna/symlink-binary": "4.0.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/timer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz", - "integrity": "sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==", - "dev": true, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/validation-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz", - "integrity": "sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==", - "dev": true, - "dependencies": { - "npmlog": "^4.1.2" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/version": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz", - "integrity": "sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "4.0.0", - "@lerna/child-process": "4.0.0", - "@lerna/collect-updates": "4.0.0", - "@lerna/command": "4.0.0", - "@lerna/conventional-commits": "4.0.0", - "@lerna/github-client": "4.0.0", - "@lerna/gitlab-client": "4.0.0", - "@lerna/output": "4.0.0", - "@lerna/prerelease-id-from-version": "4.0.0", - "@lerna/prompt": "4.0.0", - "@lerna/run-lifecycle": "4.0.0", - "@lerna/run-topologically": "4.0.0", - "@lerna/validation-error": "4.0.0", - "chalk": "^4.1.0", - "dedent": "^0.7.0", - "load-json-file": "^6.2.0", - "minimatch": "^3.0.4", - "npmlog": "^4.1.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "p-reduce": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4", - "slash": "^3.0.0", - "temp-write": "^4.0.0", - "write-json-file": "^4.3.0" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@lerna/write-log-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz", - "integrity": "sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==", - "dev": true, - "dependencies": { - "npmlog": "^4.1.2", - "write-file-atomic": "^3.0.3" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dev": true, - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "dev": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/ci-detect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz", - "integrity": "sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==", - "deprecated": "this package has been deprecated, use `ci-info` instead", - "dev": true - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", - "dev": true, - "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "dev": true - }, - "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", - "dev": true, - "dependencies": { - "infer-owner": "^1.0.4" - } - }, - "node_modules/@npmcli/run-script": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", - "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^7.1.0", - "read-package-json-fast": "^2.0.1" - } - }, - "node_modules/@npmcli/run-script/node_modules/node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "dev": true, - "dependencies": { - "@octokit/types": "^6.0.3" - } - }, - "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "dev": true, - "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "dev": true, - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "dev": true, - "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", - "dev": true - }, - "node_modules/@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", - "dev": true, - "dependencies": { - "@octokit/types": "^6.40.0" - }, - "peerDependencies": { - "@octokit/core": ">=2" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", - "dev": true, - "dependencies": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dev": true, - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "node_modules/@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", - "dev": true, - "dependencies": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" - } - }, - "node_modules/@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^12.11.0" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "peer": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "peer": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "peer": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "peer": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true, - "peer": true - }, - "node_modules/@solana/buffer-layout": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", - "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", - "dev": true, - "dependencies": { - "buffer": "~6.0.3" - }, - "engines": { - "node": ">=5.10" - } - }, - "node_modules/@solana/web3.js": { - "version": "1.78.4", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.78.4.tgz", - "integrity": "sha512-up5VG1dK+GPhykmuMIozJZBbVqpm77vbOG6/r5dS7NBGZonwHfTLdBbsYc3rjmaQ4DpCXUa3tUc4RZHRORvZrw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.22.6", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.1", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.3.0", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.0", - "node-fetch": "^2.6.12", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" - } - }, - "node_modules/@solana/web3.js/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@solana/web3.js/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dev": true, - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "optional": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", - "dev": true - }, - "node_modules/@types/node": { - "version": "16.18.44", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.44.tgz", - "integrity": "sha512-PZXtT+wqSMHnLPVExTh+tMt1VK+GvjRLsGZMbcQ4Mb/cG63xJig/TUmgrDa9aborl2i22UnpIzHYNu7s97NbBQ==", - "dev": true - }, - "node_modules/@types/node-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", - "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/sinon": { - "version": "10.0.16", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.16.tgz", - "integrity": "sha512-j2Du5SYpXZjJVJtXBokASpPRj+e2z+VUhCPHmM6WMfe3dpHu6iVKJMU6AiBcMp/XTAYnEj6Wc1trJUWwZ0QaAQ==", - "dev": true, - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", - "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dev": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", - "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "node_modules/bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "node_modules/borsh/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/borsh/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dev": true, - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/byte-size": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", - "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chai-decimaljs": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/chai-decimaljs/-/chai-decimaljs-0.0.1.tgz", - "integrity": "sha512-Ig1fs8cnYymxoUeCUVCFlz4qatCGFt2Z9LYGxKpzDpc2CAv8oj/nDayeQgj2MIfjWjwdWdI81xMTHdjynhW+uQ==", - "dev": true, - "peerDependencies": { - "chai": "^4.0.0", - "decimal.js": "^10.0.0" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cmd-shim": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", - "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", - "dev": true, - "dependencies": { - "mkdirp-infer-owner": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/compare-func/node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", - "dev": true, - "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, - "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", - "dev": true, - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", - "dev": true, - "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" - }, - "bin": { - "conventional-recommended-bump": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true, - "peer": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", - "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.1", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "safe-array-concat": "^1.0.0", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "dev": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "node_modules/event-stream/node_modules/split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", - "dev": true, - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", - "dev": true, - "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/git-up": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", - "integrity": "sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==", - "dev": true, - "dependencies": { - "is-ssh": "^1.3.0", - "parse-url": "^6.0.0" - } - }, - "node_modules/git-url-parse": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz", - "integrity": "sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==", - "dev": true, - "dependencies": { - "git-up": "^4.0.0" - } - }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/init-package-json": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz", - "integrity": "sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA==", - "dev": true, - "dependencies": { - "npm-package-arg": "^8.1.5", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "^4.1.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/init-package-json/node_modules/read-package-json": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.2.tgz", - "integrity": "sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==", - "dev": true, - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", - "dev": true, - "dependencies": { - "protocols": "^2.0.1" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "peer": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "dev": true, - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", - "dev": true, - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/joi": { - "version": "17.9.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "optional": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true, - "peer": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "dev": true, - "engines": { - "node": "> 0.8" - } - }, - "node_modules/lerna": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", - "integrity": "sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==", - "dev": true, - "dependencies": { - "@lerna/add": "4.0.0", - "@lerna/bootstrap": "4.0.0", - "@lerna/changed": "4.0.0", - "@lerna/clean": "4.0.0", - "@lerna/cli": "4.0.0", - "@lerna/create": "4.0.0", - "@lerna/diff": "4.0.0", - "@lerna/exec": "4.0.0", - "@lerna/import": "4.0.0", - "@lerna/info": "4.0.0", - "@lerna/init": "4.0.0", - "@lerna/link": "4.0.0", - "@lerna/list": "4.0.0", - "@lerna/publish": "4.0.0", - "@lerna/run": "4.0.0", - "@lerna/version": "4.0.0", - "import-local": "^3.0.2", - "npmlog": "^4.1.2" - }, - "bin": { - "lerna": "cli.js" - }, - "engines": { - "node": ">= 10.18.0" - } - }, - "node_modules/libnpmaccess": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", - "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", - "dev": true, - "dependencies": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libnpmaccess/node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libnpmaccess/node_modules/npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libnpmaccess/node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libnpmpublish": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", - "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", - "dev": true, - "dependencies": { - "normalize-package-data": "^3.0.2", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0", - "semver": "^7.1.3", - "ssri": "^8.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libnpmpublish/node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/libnpmpublish/node_modules/npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/libnpmpublish/node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true, - "peer": true - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", - "dev": true - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dev": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-infer-owner": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha-sinon": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mocha-sinon/-/mocha-sinon-2.1.2.tgz", - "integrity": "sha512-j6eIQGgOFddcgE1kUFKSvXR9oCuSEiRzv2XUK4iJcntObi2X2vYDvRwvOWxECUZl2dJ+Ciex5fYYni05Lx4azA==", - "dev": true, - "engines": { - "npm": ">1.2" - }, - "peerDependencies": { - "mocha": "*", - "sinon": "*" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", - "dev": true, - "peer": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "peer": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-gyp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", - "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.1.2", - "request": "^2.88.0", - "rimraf": "^2.6.3", - "semver": "^5.7.1", - "tar": "^4.4.12", - "which": "^1.3.1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/node-gyp/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/node-gyp/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/node-gyp/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/node-gyp/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-gyp/node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/node-gyp/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-lifecycle": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", - "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", - "dev": true, - "dependencies": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.15", - "node-gyp": "^5.0.2", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" - } - }, - "node_modules/npm-lifecycle/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-lifecycle/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", - "dev": true, - "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", - "dev": true, - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" - } - }, - "node_modules/npm-registry-fetch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", - "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", - "dev": true, - "dependencies": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", - "dev": true, - "dependencies": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", - "safe-array-concat": "^1.0.0" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", - "dev": true, - "dependencies": { - "p-reduce": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pacote": { - "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", - "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", - "dev": true, - "dependencies": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.8.2", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^11.0.0", - "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pacote/node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pacote/node_modules/npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pacote/node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-path": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", - "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", - "dev": true, - "dependencies": { - "is-ssh": "^1.3.0", - "protocols": "^1.4.0", - "qs": "^6.9.4", - "query-string": "^6.13.8" - } - }, - "node_modules/parse-path/node_modules/protocols": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", - "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", - "dev": true - }, - "node_modules/parse-url": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.5.tgz", - "integrity": "sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==", - "dev": true, - "dependencies": { - "is-ssh": "^1.3.0", - "normalize-url": "^6.1.0", - "parse-path": "^4.0.0", - "protocols": "^1.4.0" - } - }, - "node_modules/parse-url/node_modules/protocols": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", - "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "peer": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dev": true, - "dependencies": { - "through": "~2.3" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", - "dev": true, - "dependencies": { - "read": "1" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "node_modules/protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "node_modules/ps-tree": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", - "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", - "dev": true, - "dependencies": { - "event-stream": "=3.3.4" - }, - "bin": { - "ps-tree": "bin/ps-tree.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "dev": true, - "dependencies": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dev": true, - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/read-cmd-shim": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", - "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", - "dev": true - }, - "node_modules/read-package-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", - "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", - "dev": true, - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "deprecated": "The functionality that this package provided is now in @npmcli/arborist", - "dev": true, - "dependencies": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "node_modules/read-package-tree/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-package-tree/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-package-tree/node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dev": true, - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/read-package-tree/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rpc-websockets": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.6.0.tgz", - "integrity": "sha512-Jgcs8q6t8Go98dEulww1x7RysgTkzpCMelVxZW4hvuyFtOGpeUz9prpr2KjUa/usqxgFCd9Tu3+yhHEP9GVmiQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" - }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - } - }, - "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sinon": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", - "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", - "dev": true, - "peer": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.3.0", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.4", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sort-keys/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/start-server-and-test": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.15.4.tgz", - "integrity": "sha512-ucQtp5+UCr0m4aHlY+aEV2JSYNTiMZKdSKK/bsIr6AlmwAWDYDnV7uGlWWEtWa7T4XvRI5cPYcPcQgeLqpz+Tg==", - "dev": true, - "dependencies": { - "arg": "^5.0.2", - "bluebird": "3.7.2", - "check-more-types": "2.24.0", - "debug": "4.3.4", - "execa": "5.1.1", - "lazy-ass": "1.6.0", - "ps-tree": "1.2.0", - "wait-on": "7.0.1" - }, - "bin": { - "server-test": "src/bin/start.js", - "start-server-and-test": "src/bin/start.js", - "start-test": "src/bin/start.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1" - } - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, - "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==", - "dev": true - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/temp-write": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", - "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "is-stream": "^2.0.0", - "make-dir": "^3.0.0", - "temp-dir": "^1.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/temp-write/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==", - "dev": true - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", - "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", - "dev": true, - "dependencies": { - "ts-node": "7.0.1" - }, - "bin": { - "ts-mocha": "bin/ts-mocha" - }, - "engines": { - "node": ">= 6.X.X" - }, - "optionalDependencies": { - "tsconfig-paths": "^3.5.0" - }, - "peerDependencies": { - "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X" - } - }, - "node_modules/ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", - "dev": true, - "dependencies": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/ts-node/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "optional": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA==", - "dev": true - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/wait-on": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", - "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", - "dev": true, - "dependencies": { - "axios": "^0.27.2", - "joi": "^17.7.0", - "lodash": "^4.17.21", - "minimist": "^1.2.7", - "rxjs": "^7.8.0" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/wait-on/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/wait-on/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/wait-on/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/wait-on/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/write-json-file": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", - "dev": true, - "dependencies": { - "detect-indent": "^6.0.0", - "graceful-fs": "^4.1.15", - "is-plain-obj": "^2.0.0", - "make-dir": "^3.0.0", - "sort-keys": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8.3" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/write-json-file/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/write-pkg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", - "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", - "dev": true, - "dependencies": { - "sort-keys": "^2.0.0", - "type-fest": "^0.4.1", - "write-json-file": "^3.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/write-pkg/node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-pkg/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-pkg/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/write-pkg/node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-pkg/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-pkg/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/write-pkg/node_modules/write-json-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", - "dev": true, - "dependencies": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } + "name": "@hubbleprotocol/hubble-common", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@hubbleprotocol/hubble-common", + "dependencies": { + "@coral-xyz/anchor": "^0.29.0", + "@coral-xyz/borsh": "^0.30.1", + "@jup-ag/api": "^6.0.1", + "@orca-so/sdk": "^1.2.26", + "@orca-so/whirlpool-client-sdk": "^0.0.8", + "@orca-so/whirlpool-sdk": "^0.4.2", + "@raydium-io/raydium-sdk": "=1.3.1-beta.5", + "@solana/buffer-layout": "^4.0.1", + "@solana/spl-token": "^0.1.8", + "@solana/web3.js": "^1.78.4", + "@streamflow/stream": "6.3.8", + "axios": "^1.2.6", + "bn.js": "^5.2.1", + "bs58": "^6.0.0", + "decimal.js": "^10.3.1", + "tweetnacl-ts": "^1.0.3" + }, + "devDependencies": { + "@types/bn.js": "^5.1.5", + "@types/bs58": "^4.0.4", + "@types/chai-as-promised": "^7.1.4", + "@types/mocha": "^10.0.7", + "@types/node": "^22.0.0", + "@types/node-fetch": "^2.6.11", + "@types/sinon": "^10.0.13", + "anchor-client-gen": "^0.28.1", + "chai": "^4.3.6", + "chai-as-promised": "^7.1.1", + "chai-decimaljs": "^0.0.1", + "lerna": "^4.0.0", + "mocha": "^10.2.0", + "mocha-sinon": "^2.1.2", + "prettier": "^3.3.2", + "start-server-and-test": "^1.11.6", + "ts-mocha": "^10.0.0", + "typescript": "^5.5.4" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.0.tgz", + "integrity": "sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.0.tgz", + "integrity": "sha512-q0T+dknZS+L5LDazIP+02gEZITG5unzvb6yIjcmj5i0eFrs5ToBV2m2JGH4EsE/gtP8ygEGLGApBgRIZkTm7zg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.0.tgz", + "integrity": "sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz", + "integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.0.tgz", + "integrity": "sha512-dG0aApncVQwAUJa8tP1VHTnmU67BeIQvKafd3raEx315H54FfkZSz3B/TT+33ZQAjatGJA79gZqTtqL5QZUKXw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz", + "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", + "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.0.tgz", + "integrity": "sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.0.tgz", + "integrity": "sha512-vYAA8PrCOeZfG4D87hmw1KJ1BPubghXP1e2MacRFwECGNKL76dkA38JEwYllbvQCpf/kLxsTtir0b8MtxKoVCw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.0", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.0", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.0", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.1.tgz", + "integrity": "sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz", + "integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@blocto/sdk": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@blocto/sdk/-/sdk-0.3.6.tgz", + "integrity": "sha512-hbsc9eC1EL9wJ+8nXUp3POkC84qt46FPRqX3tYzxeQn72Zvhew6T81wKvzXZsuLmmoo8FBzPiXkb0QMWJkpOLw==", + "license": "MIT", + "dependencies": { + "bs58": "^4.0.1", + "buffer": "^6.0.3", + "eip1193-provider": "^1.0.1", + "js-sha3": "^0.8.0" + }, + "peerDependencies": { + "@solana/web3.js": "^1.30.2", + "aptos": "^1.3.14" + }, + "peerDependenciesMeta": { + "@solana/web3.js": { + "optional": true + }, + "aptos": { + "optional": true + } + } + }, + "node_modules/@blocto/sdk/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@coral-xyz/anchor": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.29.0.tgz", + "integrity": "sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@coral-xyz/borsh": "^0.29.0", + "@noble/hashes": "^1.3.1", + "@solana/web3.js": "^1.68.0", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@coral-xyz/borsh": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.30.1.tgz", + "integrity": "sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fewcha/web3": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/@fewcha/web3/-/web3-0.1.32.tgz", + "integrity": "sha512-5QrBit4XlDpg4b8UMmDHNxDL/or+1/mk688IbZZ6JSEnvFs15/FW60TTPBTzt9sQKLC+0fq7uMCi3JH/EoMZYg==", + "license": "MIT", + "dependencies": { + "aptos": "^1.3.14", + "buffer": "^6.0.3" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause" + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@json-rpc-tools/provider": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@json-rpc-tools/provider/-/provider-1.7.6.tgz", + "integrity": "sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@json-rpc-tools/utils": "^1.7.6", + "axios": "^0.21.0", + "safe-json-utils": "^1.1.1", + "ws": "^7.4.0" + } + }, + "node_modules/@json-rpc-tools/provider/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@json-rpc-tools/types": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@json-rpc-tools/types/-/types-1.7.6.tgz", + "integrity": "sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "keyvaluestorage-interface": "^1.0.0" + } + }, + "node_modules/@json-rpc-tools/utils": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-1.7.6.tgz", + "integrity": "sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@json-rpc-tools/types": "^1.7.6", + "@pedrouid/environment": "^1.0.1" + } + }, + "node_modules/@jup-ag/api": { + "version": "6.0.24", + "resolved": "https://registry.npmjs.org/@jup-ag/api/-/api-6.0.24.tgz", + "integrity": "sha512-zIX4WIPb0Kb2UnK2wNIOQBWqPJyMJq/D9dQTf/2qvPb0hfa8XdgbrQAzomHMHnAzw9StMQoybBk+JK/A76xP3w==", + "license": "MIT" + }, + "node_modules/@keystonehq/aptossnap-adapter": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@keystonehq/aptossnap-adapter/-/aptossnap-adapter-0.2.8.tgz", + "integrity": "sha512-1+YuptOjNysM6pTRqn9PiF8cjGwLEiG/tXxo0HqglDHsq+tBnJaOxe+Zk15JO8pEC8yLr0o17qoFrW1qo3kySQ==", + "license": "(Apache-2.0 AND MIT)", + "dependencies": { + "aptos": "^1.3.14" + } + }, + "node_modules/@lerna/add": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", + "integrity": "sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/bootstrap": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "npm-package-arg": "^8.1.0", + "p-map": "^4.0.0", + "pacote": "^11.2.6", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/bootstrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz", + "integrity": "sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/has-npm-version": "4.0.0", + "@lerna/npm-install": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/rimraf-dir": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/symlink-binary": "4.0.0", + "@lerna/symlink-dependencies": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "get-port": "^5.1.1", + "multimatch": "^5.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0", + "p-waterfall": "^2.1.1", + "read-package-tree": "^5.3.1", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/changed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz", + "integrity": "sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/listable": "4.0.0", + "@lerna/output": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/check-working-tree": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz", + "integrity": "sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/collect-uncommitted": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "@lerna/validation-error": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/child-process": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz", + "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "execa": "^5.0.0", + "strong-log-transformer": "^2.1.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/clean": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz", + "integrity": "sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/rimraf-dir": "4.0.0", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0", + "p-waterfall": "^2.1.1" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/cli": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz", + "integrity": "sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/global-options": "4.0.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2", + "yargs": "^16.2.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/collect-uncommitted": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz", + "integrity": "sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "chalk": "^4.1.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/collect-updates": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz", + "integrity": "sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/command": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz", + "integrity": "sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/project": "4.0.0", + "@lerna/validation-error": "4.0.0", + "@lerna/write-log-file": "4.0.0", + "clone-deep": "^4.0.1", + "dedent": "^0.7.0", + "execa": "^5.0.0", + "is-ci": "^2.0.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/conventional-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz", + "integrity": "sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/validation-error": "4.0.0", + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-core": "^4.2.2", + "conventional-recommended-bump": "^6.1.0", + "fs-extra": "^9.1.0", + "get-stream": "^6.0.0", + "lodash.template": "^4.5.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "pify": "^5.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/create": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz", + "integrity": "sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "init-package-json": "^2.0.2", + "npm-package-arg": "^8.1.0", + "p-reduce": "^2.1.0", + "pacote": "^11.2.6", + "pify": "^5.0.0", + "semver": "^7.3.4", + "slash": "^3.0.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0", + "whatwg-url": "^8.4.0", + "yargs-parser": "20.2.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/create-symlink": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz", + "integrity": "sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "cmd-shim": "^4.1.0", + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/describe-ref": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", + "integrity": "sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz", + "integrity": "sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/validation-error": "4.0.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/exec": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz", + "integrity": "sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/profiler": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "p-map": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/filter-options": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz", + "integrity": "sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/collect-updates": "4.0.0", + "@lerna/filter-packages": "4.0.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/filter-packages": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz", + "integrity": "sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/validation-error": "4.0.0", + "multimatch": "^5.0.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/get-npm-exec-opts": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz", + "integrity": "sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/get-packed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz", + "integrity": "sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-extra": "^9.1.0", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/github-client": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz", + "integrity": "sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@octokit/plugin-enterprise-rest": "^6.0.1", + "@octokit/rest": "^18.1.0", + "git-url-parse": "^11.4.4", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/gitlab-client": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz", + "integrity": "sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "npmlog": "^4.1.2", + "whatwg-url": "^8.4.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/global-options": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz", + "integrity": "sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/has-npm-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz", + "integrity": "sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz", + "integrity": "sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "fs-extra": "^9.1.0", + "p-map-series": "^2.1.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz", + "integrity": "sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/output": "4.0.0", + "envinfo": "^7.7.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/init": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz", + "integrity": "sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0", + "write-json-file": "^4.3.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz", + "integrity": "sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/symlink-dependencies": "4.0.0", + "p-map": "^4.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/list": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz", + "integrity": "sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/listable": "4.0.0", + "@lerna/output": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/listable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz", + "integrity": "sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/query-graph": "4.0.0", + "chalk": "^4.1.0", + "columnify": "^1.5.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/log-packed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz", + "integrity": "sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "byte-size": "^7.0.0", + "columnify": "^1.5.4", + "has-unicode": "^2.0.1", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/npm-conf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz", + "integrity": "sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.12", + "pify": "^5.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/npm-dist-tag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz", + "integrity": "sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/otplease": "4.0.0", + "npm-package-arg": "^8.1.0", + "npm-registry-fetch": "^9.0.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/npm-install": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz", + "integrity": "sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/get-npm-exec-opts": "4.0.0", + "fs-extra": "^9.1.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "signal-exit": "^3.0.3", + "write-pkg": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/npm-publish": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz", + "integrity": "sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/otplease": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "fs-extra": "^9.1.0", + "libnpmpublish": "^4.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "pify": "^5.0.0", + "read-package-json": "^3.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/npm-run-script": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz", + "integrity": "sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/get-npm-exec-opts": "4.0.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/otplease": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz", + "integrity": "sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/prompt": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/output": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz", + "integrity": "sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/pack-directory": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz", + "integrity": "sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/get-packed": "4.0.0", + "@lerna/package": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "npm-packlist": "^2.1.4", + "npmlog": "^4.1.2", + "tar": "^6.1.0", + "temp-write": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/package": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz", + "integrity": "sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^6.2.0", + "npm-package-arg": "^8.1.0", + "write-pkg": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/package-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz", + "integrity": "sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/validation-error": "4.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/prerelease-id-from-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz", + "integrity": "sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/profiler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz", + "integrity": "sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2", + "upath": "^2.0.1" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/project": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz", + "integrity": "sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/package": "4.0.0", + "@lerna/validation-error": "4.0.0", + "cosmiconfig": "^7.0.0", + "dedent": "^0.7.0", + "dot-prop": "^6.0.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.2", + "load-json-file": "^6.2.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "resolve-from": "^5.0.0", + "write-json-file": "^4.3.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/prompt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz", + "integrity": "sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "inquirer": "^7.3.3", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/publish": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz", + "integrity": "sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/check-working-tree": "4.0.0", + "@lerna/child-process": "4.0.0", + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "@lerna/log-packed": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/npm-dist-tag": "4.0.0", + "@lerna/npm-publish": "4.0.0", + "@lerna/otplease": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/pack-directory": "4.0.0", + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "@lerna/version": "4.0.0", + "fs-extra": "^9.1.0", + "libnpmaccess": "^4.0.1", + "npm-package-arg": "^8.1.0", + "npm-registry-fetch": "^9.0.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-pipe": "^3.1.0", + "pacote": "^11.2.6", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/pulse-till-done": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz", + "integrity": "sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/query-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz", + "integrity": "sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/package-graph": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/resolve-symlink": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz", + "integrity": "sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2", + "read-cmd-shim": "^2.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/rimraf-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz", + "integrity": "sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/child-process": "4.0.0", + "npmlog": "^4.1.2", + "path-exists": "^4.0.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/run": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz", + "integrity": "sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/npm-run-script": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/profiler": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/timer": "4.0.0", + "@lerna/validation-error": "4.0.0", + "p-map": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/run-lifecycle": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz", + "integrity": "sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/npm-conf": "4.0.0", + "npm-lifecycle": "^3.1.5", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/run-topologically": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz", + "integrity": "sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/query-graph": "4.0.0", + "p-queue": "^6.6.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/symlink-binary": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz", + "integrity": "sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/create-symlink": "4.0.0", + "@lerna/package": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/symlink-dependencies": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz", + "integrity": "sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/create-symlink": "4.0.0", + "@lerna/resolve-symlink": "4.0.0", + "@lerna/symlink-binary": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/timer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz", + "integrity": "sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/validation-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz", + "integrity": "sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz", + "integrity": "sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/check-working-tree": "4.0.0", + "@lerna/child-process": "4.0.0", + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/conventional-commits": "4.0.0", + "@lerna/github-client": "4.0.0", + "@lerna/gitlab-client": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "chalk": "^4.1.0", + "dedent": "^0.7.0", + "load-json-file": "^6.2.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-pipe": "^3.1.0", + "p-reduce": "^2.1.0", + "p-waterfall": "^2.1.1", + "semver": "^7.3.4", + "slash": "^3.0.0", + "temp-write": "^4.0.0", + "write-json-file": "^4.3.0" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/write-log-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz", + "integrity": "sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "dependencies": { + "npmlog": "^4.1.2", + "write-file-atomic": "^3.0.3" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@manahippo/aptos-wallet-adapter": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@manahippo/aptos-wallet-adapter/-/aptos-wallet-adapter-1.0.6.tgz", + "integrity": "sha512-2gRClB7/9drBdQTaqjmUIqcWRtWEPpaaxBA5ivTb1jNPKiXWZZcpRjF1IWb/wIXP+hVmrrt88fIBBcxhmZMGgw==", + "deprecated": "No longer maintained. Consider using https://github.com/aptos-labs/aptos-wallet-adapter instead", + "dependencies": { + "@blocto/sdk": "^0.3.1", + "@fewcha/web3": "0.1.32", + "@keystonehq/aptossnap-adapter": "^0.2.8", + "@openblockhq/dappsdk": "^5.0.2", + "eventemitter3": "^4.0.7", + "js-sha3": "^0.8.0" + }, + "peerDependencies": { + "aptos": "^1.3.16", + "react": "^18.X.X || 17.X.X", + "react-dom": "^18.X.X || 17.X.X" + } + }, + "node_modules/@metaplex-foundation/mpl-core": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/mpl-core/-/mpl-core-0.0.2.tgz", + "integrity": "sha512-UUJ4BlYiWdDegAWmjsNQiNehwYU3QfSFWs3sv4VX0J6/ZrQ28zqosGhQ+I2ZCTEy216finJ82sZWNjuwSWCYyQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@solana/web3.js": "^1.31.0", + "bs58": "^4.0.1" + } + }, + "node_modules/@metaplex-foundation/mpl-core/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@metaplex-foundation/mpl-token-metadata": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-1.2.5.tgz", + "integrity": "sha512-pxRG53JsTSwXpiJJMHNulJhH8kO3hHztQ3QxslUoKw2hBYKXsg9TGsiHgNIhN2MPZGBJ2pDeK6kNGv0sd54HhA==", + "license": "MIT", + "dependencies": { + "@metaplex-foundation/mpl-core": "^0.0.2", + "@solana/spl-token": "^0.1.8", + "@solana/web3.js": "^1.31.0" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.8.1.tgz", + "integrity": "sha512-wSEdP7QEfGQdb34g+7R0f3OdRqrv88iIABfJVDVJ6IsGLYVILreh8dZfNpZNUUyzctiyhX7zB9e/lR5qkddFPA==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/bcs/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@mysten/bcs/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.45.1.tgz", + "integrity": "sha512-B6RKfBAR1yr3EvHyQzXgkyOGOXE7jUbgblyitK/25CGp4Uba4VHEZ/N5DCbiuTJdt2k1H42sSXqIGfYqHN+6Cw==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/bcs": "0.8.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@open-rpc/client-js": "^1.8.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "events": "^3.3.0", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/sui.js/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@mysten/sui.js/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/@mysten/wallet-standard": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.5.14.tgz", + "integrity": "sha512-O4pBU5nO5zBMuhIpOiMkJinxUo68M1m4ca4AQNM5gYLMpuHipcHDNPpCINIyIsCsff61ilGDzPhZU4R8+zZ/2A==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui.js": "0.39.0", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/@mysten/bcs": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.3.tgz", + "integrity": "sha512-fbusBfsyc2MpTACi72H5edWJ670T84va+qn9jSPpb5BzZ+pzUM1Q0ApPrF5OT+mB1o5Ng+mxPQpBCZQkfiV2TA==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/@mysten/sui.js": { + "version": "0.39.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.39.0.tgz", + "integrity": "sha512-fJu6k7+Qb1z2h9i5Jai0sTWmaGP1UT6d/JIXhEwMZ6cz+13GT/8zRp8kUhP7Oq9Z2hxmwfy1ROptbsrv/x9V8A==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/bcs": "0.7.3", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@open-rpc/client-js": "^1.8.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "events": "^3.3.0", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@mysten/wallet-standard/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/ci-detect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz", + "integrity": "sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==", + "deprecated": "this package has been deprecated, use `ci-info` instead", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "license": "ISC", + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/@npmcli/run-script": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", + "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/@npmcli/run-script/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/run-script/node_modules/node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-enterprise-rest": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", + "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^6.40.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^6.39.0", + "deprecation": "^2.3.1" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/rest": { + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^3.5.1", + "@octokit/plugin-paginate-rest": "^2.16.8", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + } + }, + "node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@open-rpc/client-js": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@open-rpc/client-js/-/client-js-1.8.1.tgz", + "integrity": "sha512-vV+Hetl688nY/oWI9IFY0iKDrWuLdYhf7OIKI6U1DcnJV7r4gAgwRJjEr1QVYszUc0gjkHoQJzqevmXMGLyA0g==", + "license": "Apache-2.0", + "dependencies": { + "isomorphic-fetch": "^3.0.0", + "isomorphic-ws": "^5.0.0", + "strict-event-emitter-types": "^2.0.0", + "ws": "^7.0.0" + } + }, + "node_modules/@open-rpc/client-js/node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/@openblockhq/dappsdk": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/@openblockhq/dappsdk/-/dappsdk-5.0.15.tgz", + "integrity": "sha512-AtoswQtRRDOoryR0pXFYVphS+3ad4H7T8M0ItRTlIQ4SdEyPunKeb8mxN6EOkm0veicUM+mWOeh9ReCc+MI2KA==", + "license": "MIT", + "dependencies": { + "@mysten/sui.js": "^0.32.1", + "@mysten/wallet-standard": "^0.5.3", + "@solana/wallet-standard-features": "^1.0.1", + "@solana/web3.js": "^1.73.3", + "@wallet-standard/features": "^1.0.3", + "bs58": "^5.0.0", + "buffer": "^6.0.3", + "mitt": "^3.0.0", + "tronweb": "^5.1.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@openblockhq/dappsdk/node_modules/@mysten/bcs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", + "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@openblockhq/dappsdk/node_modules/@mysten/sui.js": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", + "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/bcs": "0.7.1", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.3.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@openblockhq/dappsdk/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@openblockhq/dappsdk/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@openblockhq/dappsdk/node_modules/rpc-websockets": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.11.2.tgz", + "integrity": "sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==", + "license": "LGPL-3.0-only", + "dependencies": { + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/@openblockhq/dappsdk/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@openblockhq/dappsdk/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/@openblockhq/dappsdk/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@orca-so/aquafarm": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@orca-so/aquafarm/-/aquafarm-0.0.12.tgz", + "integrity": "sha512-4vEkxeI5A5NHR9wre7Dtp9MYPCnke4v2PkaIv7933S490PErCYeqrlDPIEBTAKYWJpHFz5jR+h0bPFbmdMs3kw==", + "license": "MIT", + "dependencies": { + "@solana/spl-token": "^0.1.6", + "@solana/web3.js": "^1.20.0", + "@types/bn.js": "^5.1.0", + "bn.js": "^5.2.0", + "buffer-layout": "^1.2.1", + "decimal.js": "^10.3.0", + "dotenv": "^10.0.0", + "eslint": "^7.28.0", + "mz": "^2.7.0", + "prompts": "^2.4.1", + "typescript": "^4.3.2", + "yargs": "^17.0.1" + } + }, + "node_modules/@orca-so/aquafarm/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@orca-so/aquafarm/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@orca-so/aquafarm/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@orca-so/aquafarm/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@orca-so/common-sdk": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@orca-so/common-sdk/-/common-sdk-0.0.4.tgz", + "integrity": "sha512-3YrVgrgt2HlDyzwE6KwmD/u3knFjNCGtKi/1HJsBQMcR95R99vVnsvQylnUcZ6CJm1KyjTAOl5lvEIzgFnu+3g==", + "license": "MIT", + "dependencies": { + "@project-serum/anchor": "0.20.1", + "@solana/spl-token": "^0.1.8", + "decimal.js": "^10.3.1" + } + }, + "node_modules/@orca-so/sdk": { + "version": "1.2.26", + "resolved": "https://registry.npmjs.org/@orca-so/sdk/-/sdk-1.2.26.tgz", + "integrity": "sha512-SnPqzUW5fGNFzDm1Ho09R07eCBHv50idXYjvCYdZzOUFdIO9M3dvpw69sT1OugDy2bETseiUSnVuUXEBpHHhGg==", + "license": "MIT", + "dependencies": { + "@orca-so/aquafarm": "^0.0.12", + "@orca-so/stablecurve": "^1.0.5", + "@solana/spl-token": "^0.1.5", + "@solana/spl-token-swap": "^0.1.2", + "@solana/web3.js": "^1.24.1", + "decimal.js": "^10.3.1" + } + }, + "node_modules/@orca-so/stablecurve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@orca-so/stablecurve/-/stablecurve-1.0.8.tgz", + "integrity": "sha512-P+d2oPvsenkzZoZvDyIsUbfdBAdTXaaIWmm0bjWMrLzR/mOZlEDlEuYVuGF62L8e2E7SkrNeOKyic1jX+DavAA==", + "license": "ISC", + "dependencies": { + "@solana/spl-token": "^0.1.8", + "bn.js": "^5.1.3", + "decimal.js": "^10.2.1" + } + }, + "node_modules/@orca-so/whirlpool-client-sdk": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@orca-so/whirlpool-client-sdk/-/whirlpool-client-sdk-0.0.8.tgz", + "integrity": "sha512-LUPkfMDcFSEKZOGnLB5Nso48dlA3t2vwCG6Wsx8exGL2jw0lEK6U89pOmaMPlf+7xEp6eAf/eF0KH0hNYmVQ3A==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@metaplex-foundation/mpl-token-metadata": "1.2.5", + "@project-serum/anchor": "^0.20.1", + "@solana/spl-token": "^0.1.8", + "decimal.js": "^10.3.1" + } + }, + "node_modules/@orca-so/whirlpool-sdk": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@orca-so/whirlpool-sdk/-/whirlpool-sdk-0.4.2.tgz", + "integrity": "sha512-HRklWsejdRfSAB3LAdbBtC/jdo4zl0UsWg5UxBLbT8+hZYbxFafKLNBX5OfCMRXBFIqqbcHQbCJdC6XIf8LRLA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@orca-so/common-sdk": "0.0.4", + "@orca-so/whirlpool-client-sdk": "0.0.7", + "@project-serum/anchor": "^0.20.1", + "@solana/spl-token": "^0.1.8", + "@solana/web3.js": "^1.31.0", + "axios": "^0.25.0", + "decimal.js": "^10.3.1", + "tiny-invariant": "^1.2.0" + } + }, + "node_modules/@orca-so/whirlpool-sdk/node_modules/@orca-so/whirlpool-client-sdk": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@orca-so/whirlpool-client-sdk/-/whirlpool-client-sdk-0.0.7.tgz", + "integrity": "sha512-fmGQjdRkW2lX1GqZVvrkklYfk0VpXbwuOw8AZA05RrqMZtSL+ePNZMBjBztlccxqKulweCPRCEYFXC17ZdNbAQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@metaplex-foundation/mpl-token-metadata": "1.2.5", + "@project-serum/anchor": "^0.20.1", + "@solana/spl-token": "^0.1.8", + "decimal.js": "^10.3.1" + } + }, + "node_modules/@orca-so/whirlpool-sdk/node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/@pedrouid/environment": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pedrouid/environment/-/environment-1.0.1.tgz", + "integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==", + "license": "MIT" + }, + "node_modules/@project-serum/anchor": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.20.1.tgz", + "integrity": "sha512-2TuBmGUn9qeYz6sJINJlElrBuPsaUAtYyUsJ3XplEBf1pczrANAgs5ceJUFzdiqGEWLn+84ObSdBeChT/AXYFA==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@project-serum/borsh": "^0.2.2", + "@solana/web3.js": "^1.17.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "find": "^0.3.0", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@project-serum/anchor/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@project-serum/anchor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.2.0" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", + "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@raydium-io/raydium-sdk": { + "version": "1.3.1-beta.5", + "resolved": "https://registry.npmjs.org/@raydium-io/raydium-sdk/-/raydium-sdk-1.3.1-beta.5.tgz", + "integrity": "sha512-0j6Eg+Oa0KqV8+7Qz5e9KXyKSo7cA189mdorhZGZoRjI8Q6o77ADT+4HTqPhP/1ext2YSDRikU4zOdyfw4sTVw==", + "license": "GPL-3.0", + "dependencies": { + "@solana/buffer-layout": "^4.0.1", + "@solana/spl-token": "^0.3.7", + "axios": "^1.2.6", + "big.js": "^6.2.1", + "bn.js": "^5.2.1", + "decimal.js": "^10.4.3", + "decimal.js-light": "^2.5.1", + "fecha": "^4.2.3", + "lodash": "^4.17.21", + "toformat": "^2.0.0" + }, + "peerDependencies": { + "@solana/web3.js": "^1.73.0" + } + }, + "node_modules/@raydium-io/raydium-sdk/node_modules/@solana/spl-token": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.11.tgz", + "integrity": "sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "@solana/spl-token-metadata": "^0.1.2", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.88.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/commons/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true, + "license": "(Unlicense OR Apache-2.0)", + "peer": true + }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "license": "MIT", + "dependencies": { + "buffer": "~6.0.3" + }, + "engines": { + "node": ">=5.10" + } + }, + "node_modules/@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@solana/codecs": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.0.0-preview.2.tgz", + "integrity": "sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-data-structures": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2", + "@solana/codecs-strings": "2.0.0-preview.2", + "@solana/options": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-core": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.0.0-preview.2.tgz", + "integrity": "sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-data-structures": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-preview.2.tgz", + "integrity": "sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2", + "@solana/errors": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-numbers": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.0.0-preview.2.tgz", + "integrity": "sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/errors": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-strings": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.0.0-preview.2.tgz", + "integrity": "sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2", + "@solana/errors": "2.0.0-preview.2" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22" + } + }, + "node_modules/@solana/errors": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.0.0-preview.2.tgz", + "integrity": "sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "commander": "^12.0.0" + }, + "bin": { + "errors": "bin/cli.js" + } + }, + "node_modules/@solana/errors/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@solana/errors/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@solana/options": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.0.0-preview.2.tgz", + "integrity": "sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2" + } + }, + "node_modules/@solana/spl-token": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz", + "integrity": "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@solana/web3.js": "^1.21.0", + "bn.js": "^5.1.0", + "buffer": "6.0.3", + "buffer-layout": "^1.2.0", + "dotenv": "10.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@solana/spl-token-metadata": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@solana/spl-token-metadata/-/spl-token-metadata-0.1.4.tgz", + "integrity": "sha512-N3gZ8DlW6NWDV28+vCCDJoTqaCZiF/jDUnk3o8GRkAFzHObiR60Bs1gXHBa8zCPdvOwiG6Z3dg5pg7+RW6XNsQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/codecs": "2.0.0-preview.2", + "@solana/spl-type-length-value": "0.1.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.91.6" + } + }, + "node_modules/@solana/spl-token-swap": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@solana/spl-token-swap/-/spl-token-swap-0.1.4.tgz", + "integrity": "sha512-q0vHo1m6UwqXTpKM4sk/gnPk8BopPJ+qx+qXkx0pMGiBep/66MAj7Drx186xStyqEXVuXtvgPEPIEREVJDKt/w==", + "license": "MIT", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.42.0", + "bn.js": "^5.1.3" + } + }, + "node_modules/@solana/spl-type-length-value": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@solana/spl-type-length-value/-/spl-type-length-value-0.1.0.tgz", + "integrity": "sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==", + "license": "Apache-2.0", + "dependencies": { + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/wallet-adapter-base": { + "version": "0.9.19", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.19.tgz", + "integrity": "sha512-c/F3xyuSNDUjbYM6E4be5bMx9YmNqE6XIpLcM9U3ohviwDF8hO+v5N8KSvnMaztL4Lr6+TEtCLi3Q5AT0r06JA==", + "license": "Apache-2.0", + "dependencies": { + "eventemitter3": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.58.0" + } + }, + "node_modules/@solana/wallet-standard-features": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-features/-/wallet-standard-features-1.2.0.tgz", + "integrity": "sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/web3.js": { + "version": "1.95.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.2.tgz", + "integrity": "sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.8", + "@noble/curves": "^1.4.2", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^4.1.1", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^2.0.2" + } + }, + "node_modules/@solana/web3.js/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", + "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@streamflow/common": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/@streamflow/common/-/common-6.3.8.tgz", + "integrity": "sha512-5/ibUfPNoHl79HRcMS0dv9cRW8BX2lfz2ZzxcQ5Wi0IKAanwVFx0ZW9jruA/WZaD0EXtgc8fXcNjYqnktR7maA==", + "dependencies": { + "@coral-xyz/borsh": "^0.29.0", + "@solana/buffer-layout": "4.0.1 ", + "@solana/spl-token": "0.3.6", + "@solana/wallet-adapter-base": "0.9.19", + "@solana/web3.js": "1.70.1", + "aptos": "1.4.0", + "bn.js": "5.2.1", + "borsh": "^2.0.0", + "bs58": "5.0.0", + "p-queue": "^6.6.2" + } + }, + "node_modules/@streamflow/common/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@streamflow/common/node_modules/@solana/spl-token": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.6.tgz", + "integrity": "sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" + } + }, + "node_modules/@streamflow/common/node_modules/@solana/web3.js": { + "version": "1.70.1", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", + "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.1", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "2", + "rpc-websockets": "^7.5.0", + "superstruct": "^0.14.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@streamflow/common/node_modules/@solana/web3.js/node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "node_modules/@streamflow/common/node_modules/@solana/web3.js/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@streamflow/common/node_modules/@solana/web3.js/node_modules/buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@streamflow/common/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" + }, + "node_modules/@streamflow/common/node_modules/borsh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", + "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==", + "license": "Apache-2.0" + }, + "node_modules/@streamflow/common/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@streamflow/common/node_modules/bs58/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@streamflow/common/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/@streamflow/common/node_modules/jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "license": "MIT", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@streamflow/common/node_modules/rpc-websockets": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.11.2.tgz", + "integrity": "sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==", + "license": "LGPL-3.0-only", + "dependencies": { + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/@streamflow/common/node_modules/rpc-websockets/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@streamflow/common/node_modules/superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==", + "license": "MIT" + }, + "node_modules/@streamflow/stream": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/@streamflow/stream/-/stream-6.3.8.tgz", + "integrity": "sha512-18d54OanI94CZoegES1b1mRgBedTgiEexhMeh/Tw7eGmYXg1fIl9cn8yu+hhq3mZQl6JxWzZU6JpFz5qFm0Jlg==", + "dependencies": { + "@coral-xyz/borsh": "^0.29.0", + "@manahippo/aptos-wallet-adapter": "1.0.6", + "@mysten/sui.js": "^0.45.1", + "@solana/buffer-layout": "4.0.1 ", + "@solana/spl-token": "0.3.6", + "@solana/wallet-adapter-base": "0.9.19", + "@solana/web3.js": "1.70.1", + "@streamflow/common": "6.3.8", + "@suiet/wallet-kit": "0.2.22", + "aptos": "1.4.0", + "bn.js": "5.2.1", + "borsh": "^2.0.0", + "bs58": "5.0.0", + "ethereum-checksum-address": "0.0.8", + "ethers": "5.7.2", + "js-sha256": "0.9.0", + "p-queue": "^6.6.2" + } + }, + "node_modules/@streamflow/stream/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@streamflow/stream/node_modules/@solana/spl-token": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.6.tgz", + "integrity": "sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" + } + }, + "node_modules/@streamflow/stream/node_modules/@solana/web3.js": { + "version": "1.70.1", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", + "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.1", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "2", + "rpc-websockets": "^7.5.0", + "superstruct": "^0.14.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@streamflow/stream/node_modules/@solana/web3.js/node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "node_modules/@streamflow/stream/node_modules/@solana/web3.js/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@streamflow/stream/node_modules/@solana/web3.js/node_modules/buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@streamflow/stream/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" + }, + "node_modules/@streamflow/stream/node_modules/borsh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", + "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==", + "license": "Apache-2.0" + }, + "node_modules/@streamflow/stream/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@streamflow/stream/node_modules/bs58/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@streamflow/stream/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/@streamflow/stream/node_modules/jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "license": "MIT", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@streamflow/stream/node_modules/rpc-websockets": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.11.2.tgz", + "integrity": "sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==", + "license": "LGPL-3.0-only", + "dependencies": { + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/@streamflow/stream/node_modules/rpc-websockets/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@streamflow/stream/node_modules/superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==", + "license": "MIT" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==", + "license": "MIT" + }, + "node_modules/@suiet/wallet-kit": { + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@suiet/wallet-kit/-/wallet-kit-0.2.22.tgz", + "integrity": "sha512-vJ+t3l95SwZ0VU8xwDCbccgSQzgtY/srON4IEKI2K4UUV/Epy+EhqXIo5XceH1gJGy4O3kM5kvIZj0SJsp+Owg==", + "dependencies": { + "@mysten/sui.js": "0.45.1", + "@mysten/wallet-standard": "0.8.7", + "@radix-ui/react-dialog": "^1.0.2", + "@suiet/wallet-sdk": "0.2.19", + "@svgr/rollup": "^6.5.1", + "@wallet-standard/core": "1.0.3", + "buffer": "^6.0.3", + "classnames": "^2.3.2", + "lodash-es": "^4.17.21", + "mitt": "^3.0.0", + "react-query": "^3.39.2" + }, + "peerDependencies": { + "@mysten/sui.js": "0.45.1", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/wallet-standard": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.8.7.tgz", + "integrity": "sha512-kY/gc8WHeqcWPgnQ69l9jbyXSsnVJqddspX1rvLF5bZV1Ud7ZrVO1V+pL4LNTxeQq02EHz4n5DLOWGHDd3mrTg==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui.js": "0.45.1", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@suiet/wallet-sdk": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/@suiet/wallet-sdk/-/wallet-sdk-0.2.19.tgz", + "integrity": "sha512-i4iGdDkEuO5/TLDfWDj1fhJ3yttaGsEY6hQ/FwLwxrsuuTbjqlVDXqScURz/aGHbWlVfW5x+kcOiE44mGDSMsg==", + "license": "MIT", + "dependencies": { + "@mysten/sui.js": "0.45.1", + "@mysten/wallet-standard": "0.8.7", + "@noble/hashes": "^1.3.0", + "buffer": "^6.0.3", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "peerDependencies": { + "@mysten/sui.js": "0.45.1" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/wallet-standard": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.8.7.tgz", + "integrity": "sha512-kY/gc8WHeqcWPgnQ69l9jbyXSsnVJqddspX1rvLF5bZV1Ud7ZrVO1V+pL4LNTxeQq02EHz4n5DLOWGHDd3mrTg==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/sui.js": "0.45.1", + "@wallet-standard/core": "1.0.3" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/rollup": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/rollup/-/rollup-6.5.1.tgz", + "integrity": "sha512-GeUfq0grJfpcn2jRWRaZ4npn27nnWK21vUj6MqDqknuJnEqGADcZZjO9wrUAaPLr3InAnQi0Z7nwiNUdzkaj6A==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@rollup/pluginutils": "^4.2.1", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tronweb3/google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/@tronweb3/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-IVcT2GfWX3K6tHUVhs14NP5uzKhQt4KeDya1g9ACxuZsUzsaoGUIGzceK2Ltu7xp1YV94AaHOf4yxLAivlvEkQ==", + "license": "(BSD-3-Clause AND Apache-2.0)" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.19.0.tgz", + "integrity": "sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.12", + "minimatch": "^7.4.3", + "mkdirp": "^2.1.6", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ts-morph/common/node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/bs58": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.4.tgz", + "integrity": "sha512-0IEpMFXXQi2zXaXl9GJ3sRwQo0uEkD+yFOv+FnAU5lkPtcu6h61xb7jc2CFPEZ5BUOaiP13ThuGc9HD4R8lR5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "base-x": "^3.0.6" + } + }, + "node_modules/@types/chai": { + "version": "4.3.16", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz", + "integrity": "sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "license": "MIT" + }, + "node_modules/@types/mocha": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.7.tgz", + "integrity": "sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.0.0.tgz", + "integrity": "sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.11.1" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/sinon": { + "version": "10.0.20", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", + "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@wallet-standard/app": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/app/-/app-1.0.1.tgz", + "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz", + "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/core": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/core/-/core-1.0.3.tgz", + "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/app": "^1.0.1", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "@wallet-standard/wallet": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz", + "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wallet-standard/wallet": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.0.1.tgz", + "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/anchor-client-gen": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/anchor-client-gen/-/anchor-client-gen-0.28.1.tgz", + "integrity": "sha512-Gi205FuTSk1+haoYAGBDAA4h0X1xfmY0C++CQIWwtXIMCSy5+71XEaFMPgmjtYdvVJoAL021NqVrDiBHhNJ+fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@coral-xyz/anchor": "0.28.0", + "@coral-xyz/borsh": "^0.28.0", + "@solana/web3.js": "^1.77.3", + "bn.js": "^5.2.1", + "camelcase": "^7.0.1", + "commander": "^10.0.1", + "js-sha256": "^0.9.0", + "prettier": "^2.8.8", + "snake-case": "^3.0.4", + "ts-morph": "^18.0.0" + }, + "bin": { + "anchor-client-gen": "dist/main.js" + } + }, + "node_modules/anchor-client-gen/node_modules/@coral-xyz/anchor": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.28.0.tgz", + "integrity": "sha512-kQ02Hv2ZqxtWP30WN1d4xxT4QqlOXYDxmEd3k/bbneqhV3X5QMO4LAtoUFs7otxyivOgoqam5Il5qx81FuI4vw==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@coral-xyz/borsh": "^0.28.0", + "@solana/web3.js": "^1.68.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/anchor-client-gen/node_modules/@coral-xyz/anchor/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/anchor-client-gen/node_modules/@coral-xyz/borsh": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.28.0.tgz", + "integrity": "sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/anchor-client-gen/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/anchor-client-gen/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/aptos": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.4.0.tgz", + "integrity": "sha512-D1yBXeyhiBKgJnUQX8iDXckZMPFwdJ9YfUZtRcDhUoR7qLX4hfmLQYemvLqtJvyTCf/Nggfp66hXX1Z8FdlEiQ==", + "license": "Apache-2.0", + "dependencies": { + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/aptos/node_modules/@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/aptos/node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "node_modules/aptos/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/aptos/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/are-we-there-yet/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/are-we-there-yet/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", + "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", + "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bigjs" + } + }, + "node_modules/bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "bindings": "^1.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "node_modules/borsh/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserslist": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "license": "MIT", + "dependencies": { + "base-x": "^5.0.0" + } + }, + "node_modules/bs58/node_modules/base-x": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.0.tgz", + "integrity": "sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==", + "license": "MIT" + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", + "license": "MIT", + "engines": { + "node": ">=4.5" + } + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/byte-size": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", + "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001643", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 6" + } + }, + "node_modules/chai-decimaljs": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/chai-decimaljs/-/chai-decimaljs-0.0.1.tgz", + "integrity": "sha512-Ig1fs8cnYymxoUeCUVCFlz4qatCGFt2Z9LYGxKpzDpc2CAv8oj/nDayeQgj2MIfjWjwdWdI81xMTHdjynhW+uQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "chai": "^4.0.0", + "decimal.js": "^10.0.0" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cmd-shim": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", + "dev": true, + "license": "ISC", + "dependencies": { + "mkdirp-infer-owner": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/code-block-writer": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", + "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/columnify": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", + "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/compare-func/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eip1193-provider": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/eip1193-provider/-/eip1193-provider-1.0.1.tgz", + "integrity": "sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@json-rpc-tools/provider": "^1.5.5" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.2.tgz", + "integrity": "sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==", + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ethereum-checksum-address": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ethereum-checksum-address/-/ethereum-checksum-address-0.0.8.tgz", + "integrity": "sha512-n7m16IjUmbv03QKwHF77lKWyx538f0ICjgHGd2g31BESgBqdxVmilb45uJj26ARVsA8/gZZO/yK5fPJJF/i4Ug==", + "license": "MIT", + "dependencies": { + "keccak": "^3.0.2", + "meow": "^10.1.2" + }, + "bin": { + "ethereum_checksum_address": "bin/ethereum_checksum_address", + "ethereum-checksum-address": "bin/ethereum_checksum_address" + } + }, + "node_modules/ethereum-checksum-address/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "license": "MIT", + "dependencies": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "license": "MIT", + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ethereum-checksum-address/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "node_modules/event-stream/node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "license": "MIT" + }, + "node_modules/fastestsmallesttextencoderdecoder": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", + "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", + "license": "CC0-1.0", + "peer": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/find/-/find-0.3.0.tgz", + "integrity": "sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==", + "license": "MIT", + "dependencies": { + "traverse-chain": "~0.1.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "license": "MIT" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "license": "ISC" + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/git-up": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", + "integrity": "sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-ssh": "^1.3.0", + "parse-url": "^6.0.0" + } + }, + "node_modules/git-url-parse": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz", + "integrity": "sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "git-up": "^4.0.0" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "license": "BSD", + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true, + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/init-package-json": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz", + "integrity": "sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^8.1.5", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "^4.1.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/init-package-json/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/init-package-json/node_modules/read-package-json": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.2.tgz", + "integrity": "sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^3.0.0", + "npm-normalize-package-bin": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/injectpromise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/injectpromise/-/injectpromise-1.0.0.tgz", + "integrity": "sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA==", + "license": "MIT" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ssh": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/jayson": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.1.tgz", + "integrity": "sha512-5ZWm4Q/0DHPyeMfAsrwViwUS2DMVsQgWh8bEEIVTkfb3DzHZ2L3G5WUnF+AKmGjjM9r1uAv73SaqC1/U4RL45w==", + "license": "MIT", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.5.10" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" + }, + "node_modules/jayson/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", + "license": "MIT" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/just-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/keyvaluestorage-interface": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", + "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==", + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/lerna": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", + "integrity": "sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/add": "4.0.0", + "@lerna/bootstrap": "4.0.0", + "@lerna/changed": "4.0.0", + "@lerna/clean": "4.0.0", + "@lerna/cli": "4.0.0", + "@lerna/create": "4.0.0", + "@lerna/diff": "4.0.0", + "@lerna/exec": "4.0.0", + "@lerna/import": "4.0.0", + "@lerna/info": "4.0.0", + "@lerna/init": "4.0.0", + "@lerna/link": "4.0.0", + "@lerna/list": "4.0.0", + "@lerna/publish": "4.0.0", + "@lerna/run": "4.0.0", + "@lerna/version": "4.0.0", + "import-local": "^3.0.2", + "npmlog": "^4.1.2" + }, + "bin": { + "lerna": "cli.js" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libnpmaccess": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", + "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/libnpmaccess/node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/libnpmaccess/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/libnpmaccess/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/libnpmpublish": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", + "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-package-data": "^3.0.2", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0", + "semver": "^7.1.3", + "ssri": "^8.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/libnpmpublish/node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/libnpmpublish/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/libnpmpublish/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, + "node_modules/match-sorter": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==", + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.2.tgz", + "integrity": "sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-infer-owner": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.0.tgz", + "integrity": "sha512-v8/rBWr2VO5YkspYINnvu81inSz2y3ODJrhO175/Exzor1RcEZZkizgE2A+w/CAXXoESS8Kys5E62dOHGHzULA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha-sinon": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mocha-sinon/-/mocha-sinon-2.1.2.tgz", + "integrity": "sha512-j6eIQGgOFddcgE1kUFKSvXR9oCuSEiRzv2XUK4iJcntObi2X2vYDvRwvOWxECUZl2dJ+Ciex5fYYni05Lx4azA==", + "dev": true, + "license": "MIT", + "engines": { + "npm": ">1.2" + }, + "peerDependencies": { + "mocha": "*", + "sinon": "*" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/multimatch/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "license": "ISC", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nise": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-6.0.0.tgz", + "integrity": "sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-gyp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", + "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, + "node_modules/node-gyp/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/node-gyp/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/node-gyp/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/node-gyp/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-gyp/node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-lifecycle": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", + "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", + "deprecated": "The lifecycle script runner used in npm is now @npmcli/run-script. Please use that module moving forward", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "node_modules/npm-lifecycle/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-lifecycle/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true, + "license": "ISC" + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm-registry-fetch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==", + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", + "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-waterfall": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", + "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pacote": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.8.2", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^11.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pacote/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-path": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", + "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0", + "qs": "^6.9.4", + "query-string": "^6.13.8" + } + }, + "node_modules/parse-path/node_modules/protocols": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-url": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.5.tgz", + "integrity": "sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-ssh": "^1.3.0", + "normalize-url": "^6.1.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + } + }, + "node_modules/parse-url/node_modules/protocols": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "license": [ + "MIT", + "Apache2" + ], + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/promzard": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", + "dev": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/protocols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "event-stream": "=3.3.4" + }, + "bin": { + "ps-tree": "bin/ps-tree.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz", + "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-cmd-shim": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-package-json": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", + "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^3.0.0", + "npm-normalize-package-bin": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "deprecated": "The functionality that this package provided is now in @npmcli/arborist", + "dev": true, + "license": "ISC", + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/read-package-tree/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-tree/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-package-tree/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-package-tree/node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-tree/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "license": "MIT" + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rpc-websockets": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.2.tgz", + "integrity": "sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw==", + "license": "LGPL-3.0-only", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/uuid": "^8.3.4", + "@types/ws": "^8.2.2", + "buffer": "^6.0.3", + "eventemitter3": "^5.0.1", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/rpc-websockets/node_modules/@types/ws": { + "version": "8.5.11", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.11.tgz", + "integrity": "sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rpc-websockets/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/rpc-websockets/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-json-utils": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz", + "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==", + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sinon": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.0.tgz", + "integrity": "sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.2.0", + "nise": "^6.0.0", + "supports-color": "^7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sort-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", + "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sort-keys/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "license": "CC0-1.0" + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" + }, + "node_modules/start-server-and-test": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.15.4.tgz", + "integrity": "sha512-ucQtp5+UCr0m4aHlY+aEV2JSYNTiMZKdSKK/bsIr6AlmwAWDYDnV7uGlWWEtWa7T4XvRI5cPYcPcQgeLqpz+Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arg": "^5.0.2", + "bluebird": "3.7.2", + "check-more-types": "2.24.0", + "debug": "4.3.4", + "execa": "5.1.1", + "lazy-ass": "1.6.0", + "ps-tree": "1.2.0", + "wait-on": "7.0.1" + }, + "bin": { + "server-test": "src/bin/start.js", + "start-server-and-test": "src/bin/start.js", + "start-test": "src/bin/start.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/start-server-and-test/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/start-server-and-test/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/strict-event-emitter-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz", + "integrity": "sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==", + "license": "ISC" + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/temp-write": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", + "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-write/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toformat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/toformat/-/toformat-2.0.0.tgz", + "integrity": "sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ==", + "license": "MIT" + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/traverse-chain": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz", + "integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==", + "license": "MIT" + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tronweb": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/tronweb/-/tronweb-5.3.2.tgz", + "integrity": "sha512-iPcIjMCxb6H7FXMntAj47F3L+7jSideyQ7ZOvRj9MeZBh46SHevMrDDR57HzakUa/tT8VvlPFHtqFK4hzTLkXw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "@ethersproject/abi": "^5.7.0", + "@tronweb3/google-protobuf": "^3.21.2", + "axios": "^1.6.2", + "bignumber.js": "^9.0.1", + "ethereum-cryptography": "^2.0.0", + "ethers": "^6.6.0", + "eventemitter3": "^3.1.0", + "injectpromise": "^1.0.0", + "lodash": "^4.17.21", + "querystring-es3": "^0.2.1", + "semver": "^5.6.0", + "validator": "^13.7.0" + } + }, + "node_modules/tronweb/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/tronweb/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/tronweb/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", + "license": "MIT" + }, + "node_modules/tronweb/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/tronweb/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tronweb/node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "license": "MIT" + }, + "node_modules/tronweb/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tronweb/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "license": "0BSD" + }, + "node_modules/tronweb/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/ts-mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", + "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ts-node": "7.0.1" + }, + "bin": { + "ts-mocha": "bin/ts-mocha" + }, + "engines": { + "node": ">= 6.X.X" + }, + "optionalDependencies": { + "tsconfig-paths": "^3.5.0" + }, + "peerDependencies": { + "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X" + } + }, + "node_modules/ts-morph": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-18.0.0.tgz", + "integrity": "sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.19.0", + "code-block-writer": "^12.0.0" + } + }, + "node_modules/ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ts-node/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/tweetnacl-ts": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl-ts/-/tweetnacl-ts-1.0.3.tgz", + "integrity": "sha512-C5I/dWf6xjAXaCDlf84T4HvozU/8ycAlq5WRllF1hAeeq5390tfXD+bNas5bhEV0HMSOx8bsQYpLjPl8wfnEeQ==", + "license": "UNLICENSED", + "dependencies": { + "tslib": "^1" + } + }, + "node_modules/tweetnacl-ts/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", + "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/umask": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", + "integrity": "sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.11.1.tgz", + "integrity": "sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dev": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/wait-on": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", + "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", + "dev": true, + "license": "MIT", + "dependencies": { + "axios": "^0.27.2", + "joi": "^17.7.0", + "lodash": "^4.17.21", + "minimist": "^1.2.7", + "rxjs": "^7.8.0" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/wait-on/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/wait-on/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-json-file": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", + "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-indent": "^6.0.0", + "graceful-fs": "^4.1.15", + "is-plain-obj": "^2.0.0", + "make-dir": "^3.0.0", + "sort-keys": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8.3" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/write-json-file/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", + "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sort-keys": "^2.0.0", + "type-fest": "^0.4.1", + "write-json-file": "^3.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg/node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/write-pkg/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-pkg/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/write-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/write-pkg/node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-pkg/node_modules/type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, + "node_modules/write-pkg/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write-pkg/node_modules/write-json-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", + "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.15", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } } diff --git a/package.json b/package.json index 924cddc8..f34914cc 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": true, "scripts": { "bootstrap": "npx lerna bootstrap --hoist && npx lerna run build", + "clean": "npx lerna clean -y && rm -rf node_modules", "publish": "npx lerna publish", "test": "npx ts-mocha 'packages/hubble-sdk/tests/sdk.test.ts'", "integration-test": "npm run airdrop-test-admin && npx ts-mocha packages/kamino-sdk/tests/kamino.test.ts packages/scope-sdk/tests/sdk.test.ts", @@ -15,12 +16,14 @@ "dump-kamino-programs": "mkdir -p deps && solana program dump E6qbhrt4pFmCotNUSSEh6E5cRQCEJpMcd79Z56EG9KY -u d deps/kamino.so && solana program dump -u m whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc deps/whirlpool.so && solana program dump -u m metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s deps/metaplex.so && solana program dump -u m HFn8GnPADiny6XqUoWE8uRPPxb29ikn4yTuPa9MF2fWJ deps/scope.so" }, "devDependencies": { - "@solana/web3.js": "^1.78.4", - "@types/bn.js": "^5.1.0", + "@types/bn.js": "^5.1.5", + "@types/bs58": "^4.0.4", "@types/chai-as-promised": "^7.1.4", - "@types/mocha": "^10.0.1", - "@types/node": "^16.18.11", - "@types/node-fetch": "^2.6.2", + "@types/mocha": "^10.0.7", + "@types/node": "^22.0.0", + "@types/node-fetch": "^2.6.11", + "@types/sinon": "^10.0.13", + "anchor-client-gen": "^0.28.1", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "chai-decimaljs": "^0.0.1", @@ -30,7 +33,6 @@ "prettier": "^3.3.2", "start-server-and-test": "^1.11.6", "ts-mocha": "^10.0.0", - "typescript": "^4.7.4", - "@types/sinon": "^10.0.13" + "typescript": "^5.5.4" } } diff --git a/packages/hubble-config/package-lock.json b/packages/hubble-config/package-lock.json new file mode 100644 index 00000000..f275cc94 --- /dev/null +++ b/packages/hubble-config/package-lock.json @@ -0,0 +1,634 @@ +{ + "name": "@hubbleprotocol/hubble-config", + "version": "5.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@hubbleprotocol/hubble-config", + "version": "5.0.0", + "license": "Apache-2.0", + "dependencies": { + "@solana/web3.js": "^1.78.4" + }, + "devDependencies": { + "@types/node": "^22.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "license": "MIT", + "dependencies": { + "buffer": "~6.0.3" + }, + "engines": { + "node": ">=5.10" + } + }, + "node_modules/@solana/web3.js": { + "version": "1.95.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.2.tgz", + "integrity": "sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.8", + "@noble/curves": "^1.4.2", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^4.1.1", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^2.0.2" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.0.0.tgz", + "integrity": "sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.11.1" + } + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "bindings": "^1.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" + }, + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", + "license": "MIT" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/jayson": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.1.tgz", + "integrity": "sha512-5ZWm4Q/0DHPyeMfAsrwViwUS2DMVsQgWh8bEEIVTkfb3DzHZ2L3G5WUnF+AKmGjjM9r1uAv73SaqC1/U4RL45w==", + "license": "MIT", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.5.10" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "license": "MIT", + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/rpc-websockets": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.2.tgz", + "integrity": "sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw==", + "license": "LGPL-3.0-only", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/uuid": "^8.3.4", + "@types/ws": "^8.2.2", + "buffer": "^6.0.3", + "eventemitter3": "^5.0.1", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/rpc-websockets/node_modules/@types/ws": { + "version": "8.5.11", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.11.tgz", + "integrity": "sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rpc-websockets/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/superstruct": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", + "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" + }, + "node_modules/undici-types": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.11.1.tgz", + "integrity": "sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==", + "license": "MIT" + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/packages/hubble-config/package.json b/packages/hubble-config/package.json index 6d3b0cf2..045ded60 100644 --- a/packages/hubble-config/package.json +++ b/packages/hubble-config/package.json @@ -25,7 +25,7 @@ "url": "https://github.com/hubbleprotocol/hubble-common/issues" }, "homepage": "https://github.com/hubbleprotocol/hubble-common/blob/master/packages/hubble-config", - "peerDependencies": { + "dependencies": { "@solana/web3.js": "^1.78.4" }, "publishConfig": { diff --git a/packages/hubble-idl/README.md b/packages/hubble-idl/README.md index ec9c81bd..77439234 100644 --- a/packages/hubble-idl/README.md +++ b/packages/hubble-idl/README.md @@ -2,7 +2,7 @@ Hubble IDL (Interface Description Language) is a package that contains the IDLs of Hubble on-chain programs used on Solana (Hubble borrowing, Kamino and Scope programs supported). The IDL can be used to generate a client to speak to Hubble on-chain programs. -The IDL is generated by [Anchor](https://project-serum.github.io/anchor/). +The IDL is generated by [Anchor](https://coral-xyz.github.io/anchor/). ## Install @@ -28,7 +28,7 @@ const config = require("@hubbleprotocol/hubble-config"); //config.BORROWING_IDL Dependencies required: -- `@project-serum/anchor`, +- `@coral-xyz/anchor`, - `@solana/web3.js`, - `@hubbleprotocol/hubble-config`. @@ -36,13 +36,13 @@ Use borrowing IDL with Anchor to get the borrowing market state (using readonly ```js import { Connection, Keypair, PublicKey, clusterApiUrl } from '@solana/web3.js'; -import { Idl, Program, Provider } from '@project-serum/anchor'; +import { Idl, Program, AnchorProvider } from '@coral-xyz/anchor'; import { BORROWING_IDL } from '@hubbleprotocol/hubble-idl'; import { getConfigByEnv } from '@hubbleprotocol/hubble-config'; const mainnetConfig = getConfigByEnv('mainnet-beta'); const connection = new Connection(clusterApiUrl('mainnet-beta')); -const provider = new Provider( +const provider = new AnchorProvider( connection, { publicKey: Keypair.generate().publicKey, diff --git a/packages/hubble-sdk/package-lock.json b/packages/hubble-sdk/package-lock.json index 3a2cb9e6..5703201b 100644 --- a/packages/hubble-sdk/package-lock.json +++ b/packages/hubble-sdk/package-lock.json @@ -6,99 +6,85 @@ "packages": { "": { "name": "@hubbleprotocol/hubble-sdk", - "version": "2.2.48", + "version": "5.0.20", "license": "Apache-2.0", "dependencies": { - "@coral-xyz/borsh": "^0.29.0", - "@hubbleprotocol/hubble-config": "^2.1.0", - "@hubbleprotocol/hubble-idl": "^2.2.40", - "@hubbleprotocol/scope-sdk": "^2.2.48", - "@project-serum/anchor": "^0.21.0", - "@project-serum/serum": "^0.13.65", - "@streamflow/stream": "5.2.0", - "bn.js": "^5.2.1" + "@coral-xyz/anchor": "^0.29.0", + "@coral-xyz/borsh": "^0.30.1", + "@hubbleprotocol/hubble-config": "^5.0.0", + "@hubbleprotocol/hubble-idl": "^5.0.16", + "@hubbleprotocol/scope-sdk": "^5.0.20", + "@solana/web3.js": "^1.78.4", + "@streamflow/stream": "6.3.8", + "bn.js": "^5.2.1", + "decimal.js": "^10.3.1" }, "devDependencies": { "@solana/buffer-layout": "^4.0.1", - "@types/bn.js": "^5.1.0", "tweetnacl-ts": "^1.0.3" - }, - "peerDependencies": { - "@solana/web3.js": "^1.78.4", - "decimal.js": "^10.3.1" } }, - "../hubble-config": { - "name": "@hubbleprotocol/hubble-config", - "version": "2.1.0", - "extraneous": true, - "license": "Apache-2.0", - "peerDependencies": { - "@solana/web3.js": "^1.78.4" - } - }, - "../hubble-idl": { - "name": "@hubbleprotocol/hubble-idl", - "version": "2.2.40", - "extraneous": true, - "license": "Apache-2.0" - }, "node_modules/@adraffy/ens-normalize": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.9.2.tgz", - "integrity": "sha512-0h+FrQDqe2Wn+IIGFkTCd4aAwTJ+7834Ek1COohCyV26AXhwQ7WQaz+4F/nLOeVl/3BtWHOHLPsq46V8YB46Eg==" + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", - "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.10", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.0.tgz", + "integrity": "sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", - "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.10", - "@babel/parser": "^7.22.10", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -110,13 +96,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", - "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", - "dependencies": { - "@babel/types": "^7.22.10", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -124,35 +111,39 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", - "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.10" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", - "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -161,18 +152,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz", - "integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -183,11 +173,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", - "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.0.tgz", + "integrity": "sha512-q0T+dknZS+L5LDazIP+02gEZITG5unzvb6yIjcmj5i0eFrs5ToBV2m2JGH4EsE/gtP8ygEGLGApBgRIZkTm7zg==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -199,9 +190,10 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -213,69 +205,42 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.0.tgz", + "integrity": "sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -285,32 +250,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -320,13 +288,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -336,105 +305,105 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", - "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", - "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", - "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", - "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz", + "integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==", + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -442,12 +411,44 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.0.tgz", + "integrity": "sha512-dG0aApncVQwAUJa8tP1VHTnmU67BeIQvKafd3raEx315H54FfkZSz3B/TT+33ZQAjatGJA79gZqTtqL5QZUKXw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -457,13 +458,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -472,10 +474,27 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -487,6 +506,7 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -498,6 +518,7 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -509,6 +530,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -523,6 +545,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -534,6 +557,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -542,11 +566,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -556,11 +581,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -573,6 +599,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -584,6 +611,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -592,11 +620,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -609,6 +638,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -620,6 +650,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -631,6 +662,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -642,6 +674,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -653,6 +686,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -664,6 +698,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -675,6 +710,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -689,6 +725,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -700,11 +737,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -717,6 +755,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -729,11 +768,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -743,14 +783,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", - "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -760,13 +801,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -776,11 +818,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -790,11 +833,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", - "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -804,12 +848,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -819,12 +864,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -835,18 +881,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", - "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -857,12 +901,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -872,11 +917,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", - "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -886,12 +932,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -901,11 +948,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -914,12 +962,29 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -930,12 +995,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -945,11 +1011,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -960,11 +1027,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -974,13 +1043,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -990,11 +1060,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1005,11 +1076,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1019,11 +1091,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1034,11 +1107,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1048,12 +1122,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1063,13 +1138,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1079,14 +1155,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1096,12 +1173,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1111,12 +1189,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1126,11 +1205,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1140,11 +1220,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1155,11 +1236,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1170,15 +1252,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1188,12 +1270,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1203,11 +1286,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1218,12 +1302,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", - "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1234,11 +1319,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1248,12 +1334,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1263,13 +1350,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1280,11 +1368,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1294,11 +1383,12 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz", - "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz", + "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1308,11 +1398,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1322,15 +1413,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", - "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", + "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1340,11 +1432,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" + "@babel/plugin-transform-react-jsx": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1354,12 +1447,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1369,11 +1463,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1384,11 +1479,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1398,11 +1494,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1412,12 +1509,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1427,11 +1525,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1441,11 +1540,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1455,11 +1555,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1469,14 +1570,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.10.tgz", - "integrity": "sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.0.tgz", + "integrity": "sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.10", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1486,11 +1589,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1500,12 +1604,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1515,12 +1620,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1530,12 +1636,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1545,24 +1652,28 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", - "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.0.tgz", + "integrity": "sha512-vYAA8PrCOeZfG4D87hmw1KJ1BPubghXP1e2MacRFwECGNKL76dkA38JEwYllbvQCpf/kLxsTtir0b8MtxKoVCw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.0", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.0", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1574,60 +1685,60 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.10", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.10", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.10", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.10", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.0", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.10", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -1641,6 +1752,7 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1651,16 +1763,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", - "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1670,15 +1783,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", - "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-typescript": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1690,12 +1804,14 @@ "node_modules/@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "license": "MIT" }, "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1704,32 +1820,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", - "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", - "dependencies": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.10", - "@babel/types": "^7.22.10", - "debug": "^4.1.0", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.1.tgz", + "integrity": "sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1737,12 +1852,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", - "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz", + "integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1753,6 +1869,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@blocto/sdk/-/sdk-0.3.6.tgz", "integrity": "sha512-hbsc9eC1EL9wJ+8nXUp3POkC84qt46FPRqX3tYzxeQn72Zvhew6T81wKvzXZsuLmmoo8FBzPiXkb0QMWJkpOLw==", + "license": "MIT", "dependencies": { "bs58": "^4.0.1", "buffer": "^6.0.3", @@ -1772,10 +1889,52 @@ } } }, - "node_modules/@coral-xyz/borsh": { + "node_modules/@coral-xyz/anchor": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.29.0.tgz", + "integrity": "sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@coral-xyz/borsh": "^0.29.0", + "@noble/hashes": "^1.3.1", + "@solana/web3.js": "^1.68.0", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@coral-xyz/borsh": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.30.1.tgz", + "integrity": "sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" @@ -1801,6 +1960,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -1827,6 +1987,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1851,6 +2012,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -1873,6 +2035,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1895,6 +2058,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0" } @@ -1913,6 +2077,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/properties": "^5.7.0" @@ -1932,6 +2097,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -1952,6 +2118,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/logger": "^5.7.0" } @@ -1970,6 +2137,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0" } @@ -1988,6 +2156,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", @@ -2015,6 +2184,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -2041,6 +2211,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/basex": "^5.7.0", @@ -2070,6 +2241,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -2100,6 +2272,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" @@ -2118,7 +2291,8 @@ "type": "individual", "url": "https://www.buymeacoffee.com/ricmoo" } - ] + ], + "license": "MIT" }, "node_modules/@ethersproject/networks": { "version": "5.7.1", @@ -2134,6 +2308,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/logger": "^5.7.0" } @@ -2152,6 +2327,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/sha2": "^5.7.0" @@ -2171,6 +2347,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/logger": "^5.7.0" } @@ -2189,6 +2366,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -2216,6 +2394,7 @@ "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -2246,6 +2425,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" @@ -2265,6 +2445,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" @@ -2284,6 +2465,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -2304,6 +2486,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -2327,6 +2510,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -2350,6 +2534,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/constants": "^5.7.0", @@ -2370,6 +2555,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -2396,6 +2582,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/constants": "^5.7.0", @@ -2416,6 +2603,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -2448,6 +2636,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/base64": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -2470,6 +2659,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/hash": "^5.7.0", @@ -2482,30 +2672,34 @@ "version": "0.1.32", "resolved": "https://registry.npmjs.org/@fewcha/web3/-/web3-0.1.32.tgz", "integrity": "sha512-5QrBit4XlDpg4b8UMmDHNxDL/or+1/mk688IbZZ6JSEnvFs15/FW60TTPBTzt9sQKLC+0fq7uMCi3JH/EoMZYg==", + "license": "MIT", "dependencies": { "aptos": "^1.3.14", "buffer": "^6.0.3" } }, "node_modules/@hubbleprotocol/hubble-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@hubbleprotocol/hubble-config/-/hubble-config-2.1.0.tgz", - "integrity": "sha512-MIRXdHZPo+zGU8fxES1mLsZ0MlHfUfkCNbOdjgwjUEA3ujTpz0Q6nilxktBWCEvI8GOAwdCDqTGZ8qOcnKjfaw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hubbleprotocol/hubble-config/-/hubble-config-5.0.0.tgz", + "integrity": "sha512-oLdS2SwdYN8sggZhIesN+Kk8KQXGrbYn0kvnvTnk5Wh4pck1kR458ze5gh0XrMDpRVTdgwItf4mXhqiLXvQCKQ==", + "license": "Apache-2.0", "peerDependencies": { "@solana/web3.js": "^1.78.4" } }, "node_modules/@hubbleprotocol/hubble-idl": { - "version": "2.2.40", - "resolved": "https://registry.npmjs.org/@hubbleprotocol/hubble-idl/-/hubble-idl-2.2.40.tgz", - "integrity": "sha512-hI4TIbzo3VsuC+faELoyak/SSr/i4Zg9qHVM5OwyvRvB01Loob5FRrKn0cUpAo5T0H+KR1LwrIHAR8lFUzINvg==" + "version": "5.0.16", + "resolved": "https://registry.npmjs.org/@hubbleprotocol/hubble-idl/-/hubble-idl-5.0.16.tgz", + "integrity": "sha512-Hjo+WL2UXyqbJpOzs3nDlfrTbbQ2BMkZwCPc0TKifCPUTJ8q8OqYUVaCEpszxDBlFMibQftVS97Ut1IQRqyWvw==", + "license": "Apache-2.0" }, "node_modules/@hubbleprotocol/scope-sdk": { - "version": "2.2.48", - "resolved": "https://registry.npmjs.org/@hubbleprotocol/scope-sdk/-/scope-sdk-2.2.48.tgz", - "integrity": "sha512-ibH6Jqdx3J2I5ZzSuQ7rgeQkO/3nEklixPZxmetXJcX3B9Y5HcxUBYf3gmM0Ev89Z5ISwKMHEeMlHzcUhc9mcw==", + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@hubbleprotocol/scope-sdk/-/scope-sdk-5.0.20.tgz", + "integrity": "sha512-l1EMtSEaYE4f8j2h6/386OCsYvN8Kx+3IPsfYl301pIcdSTynK3jVP/NjRyCb3RXeonmly4GsxiOHa5HLyVmZw==", + "license": "Apache-2.0", "dependencies": { - "@hubbleprotocol/hubble-config": "^2.1.0", + "@hubbleprotocol/hubble-config": "^5.0.0", "@project-serum/anchor": "^0.21.0", "@project-serum/serum": "^0.13.65", "@solana/buffer-layout": "^4.0.1", @@ -2517,43 +2711,48 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2564,6 +2763,7 @@ "resolved": "https://registry.npmjs.org/@json-rpc-tools/provider/-/provider-1.7.6.tgz", "integrity": "sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "@json-rpc-tools/utils": "^1.7.6", "axios": "^0.21.0", @@ -2575,6 +2775,7 @@ "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.0" } @@ -2584,6 +2785,7 @@ "resolved": "https://registry.npmjs.org/@json-rpc-tools/types/-/types-1.7.6.tgz", "integrity": "sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "keyvaluestorage-interface": "^1.0.0" } @@ -2593,6 +2795,7 @@ "resolved": "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-1.7.6.tgz", "integrity": "sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "@json-rpc-tools/types": "^1.7.6", "@pedrouid/environment": "^1.0.1" @@ -2602,6 +2805,7 @@ "version": "0.2.8", "resolved": "https://registry.npmjs.org/@keystonehq/aptossnap-adapter/-/aptossnap-adapter-0.2.8.tgz", "integrity": "sha512-1+YuptOjNysM6pTRqn9PiF8cjGwLEiG/tXxo0HqglDHsq+tBnJaOxe+Zk15JO8pEC8yLr0o17qoFrW1qo3kySQ==", + "license": "(Apache-2.0 AND MIT)", "dependencies": { "aptos": "^1.3.14" } @@ -2626,9 +2830,10 @@ } }, "node_modules/@mysten/bcs": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.3.tgz", - "integrity": "sha512-fbusBfsyc2MpTACi72H5edWJ670T84va+qn9jSPpb5BzZ+pzUM1Q0ApPrF5OT+mB1o5Ng+mxPQpBCZQkfiV2TA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.8.1.tgz", + "integrity": "sha512-wSEdP7QEfGQdb34g+7R0f3OdRqrv88iIABfJVDVJ6IsGLYVILreh8dZfNpZNUUyzctiyhX7zB9e/lR5qkddFPA==", + "license": "Apache-2.0", "dependencies": { "bs58": "^5.0.0" } @@ -2636,22 +2841,25 @@ "node_modules/@mysten/bcs/node_modules/base-x": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" }, "node_modules/@mysten/bcs/node_modules/bs58": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", "dependencies": { "base-x": "^4.0.0" } }, "node_modules/@mysten/sui.js": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.40.0.tgz", - "integrity": "sha512-PEGdMe+QgpIdDIpyO4/yb+CK4x3Hki+kYPbQ5n3DVsWyb2ztFwB+5oYdc7qG3QkniO1lnCrlSHqZ5mN+x3RzrQ==", + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.45.1.tgz", + "integrity": "sha512-B6RKfBAR1yr3EvHyQzXgkyOGOXE7jUbgblyitK/25CGp4Uba4VHEZ/N5DCbiuTJdt2k1H42sSXqIGfYqHN+6Cw==", + "license": "Apache-2.0", "dependencies": { - "@mysten/bcs": "0.7.3", + "@mysten/bcs": "0.8.1", "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", "@open-rpc/client-js": "^1.8.1", @@ -2667,37 +2875,95 @@ } }, "node_modules/@mysten/sui.js/node_modules/superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/@mysten/wallet-standard": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.6.0.tgz", - "integrity": "sha512-xE/OijN9zIPoTjTWuxlYMHtp7kXPcAR8dDAbxOIH5h7EZCTk+G6p+SzDp8jV5magf50VcYP0cVjS4CQLx1wQuQ==", + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.5.14.tgz", + "integrity": "sha512-O4pBU5nO5zBMuhIpOiMkJinxUo68M1m4ca4AQNM5gYLMpuHipcHDNPpCINIyIsCsff61ilGDzPhZU4R8+zZ/2A==", + "license": "Apache-2.0", "dependencies": { - "@mysten/sui.js": "0.40.0", + "@mysten/sui.js": "0.39.0", "@wallet-standard/core": "1.0.3" } }, + "node_modules/@mysten/wallet-standard/node_modules/@mysten/bcs": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.3.tgz", + "integrity": "sha512-fbusBfsyc2MpTACi72H5edWJ670T84va+qn9jSPpb5BzZ+pzUM1Q0ApPrF5OT+mB1o5Ng+mxPQpBCZQkfiV2TA==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/@mysten/sui.js": { + "version": "0.39.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.39.0.tgz", + "integrity": "sha512-fJu6k7+Qb1z2h9i5Jai0sTWmaGP1UT6d/JIXhEwMZ6cz+13GT/8zRp8kUhP7Oq9Z2hxmwfy1ROptbsrv/x9V8A==", + "license": "Apache-2.0", + "dependencies": { + "@mysten/bcs": "0.7.3", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@open-rpc/client-js": "^1.8.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "events": "^3.3.0", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@mysten/wallet-standard/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.2" + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -2705,21 +2971,11 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, "node_modules/@open-rpc/client-js": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@open-rpc/client-js/-/client-js-1.8.1.tgz", "integrity": "sha512-vV+Hetl688nY/oWI9IFY0iKDrWuLdYhf7OIKI6U1DcnJV7r4gAgwRJjEr1QVYszUc0gjkHoQJzqevmXMGLyA0g==", + "license": "Apache-2.0", "dependencies": { "isomorphic-fetch": "^3.0.0", "isomorphic-ws": "^5.0.0", @@ -2728,9 +2984,10 @@ } }, "node_modules/@openblockhq/dappsdk": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@openblockhq/dappsdk/-/dappsdk-5.0.13.tgz", - "integrity": "sha512-mnOehUS6TNPn+KNFAWxD3bRj5Lwt1rD/Ex0/tDVYVbxm/ZYzRrSyadGQa50HAEvkYQ9hVtqkXWqIX3jf8dw3WQ==", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/@openblockhq/dappsdk/-/dappsdk-5.0.15.tgz", + "integrity": "sha512-AtoswQtRRDOoryR0pXFYVphS+3ad4H7T8M0ItRTlIQ4SdEyPunKeb8mxN6EOkm0veicUM+mWOeh9ReCc+MI2KA==", + "license": "MIT", "dependencies": { "@mysten/sui.js": "^0.32.1", "@mysten/wallet-standard": "^0.5.3", @@ -2750,6 +3007,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "license": "Apache-2.0", "dependencies": { "bs58": "^5.0.0" } @@ -2758,6 +3016,7 @@ "version": "0.32.2", "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "license": "Apache-2.0", "dependencies": { "@mysten/bcs": "0.7.1", "@noble/curves": "^1.0.0", @@ -2774,73 +3033,81 @@ "node": ">=16" } }, - "node_modules/@openblockhq/dappsdk/node_modules/@mysten/wallet-standard": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.5.14.tgz", - "integrity": "sha512-O4pBU5nO5zBMuhIpOiMkJinxUo68M1m4ca4AQNM5gYLMpuHipcHDNPpCINIyIsCsff61ilGDzPhZU4R8+zZ/2A==", - "dependencies": { - "@mysten/sui.js": "0.39.0", - "@wallet-standard/core": "1.0.3" - } - }, - "node_modules/@openblockhq/dappsdk/node_modules/@mysten/wallet-standard/node_modules/@mysten/bcs": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.3.tgz", - "integrity": "sha512-fbusBfsyc2MpTACi72H5edWJ670T84va+qn9jSPpb5BzZ+pzUM1Q0ApPrF5OT+mB1o5Ng+mxPQpBCZQkfiV2TA==", - "dependencies": { - "bs58": "^5.0.0" - } - }, - "node_modules/@openblockhq/dappsdk/node_modules/@mysten/wallet-standard/node_modules/@mysten/sui.js": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.39.0.tgz", - "integrity": "sha512-fJu6k7+Qb1z2h9i5Jai0sTWmaGP1UT6d/JIXhEwMZ6cz+13GT/8zRp8kUhP7Oq9Z2hxmwfy1ROptbsrv/x9V8A==", - "dependencies": { - "@mysten/bcs": "0.7.3", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "@open-rpc/client-js": "^1.8.1", - "@scure/bip32": "^1.3.1", - "@scure/bip39": "^1.2.1", - "@suchipi/femver": "^1.0.0", - "events": "^3.3.0", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/@openblockhq/dappsdk/node_modules/base-x": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" }, "node_modules/@openblockhq/dappsdk/node_modules/bs58": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", "dependencies": { "base-x": "^4.0.0" } }, + "node_modules/@openblockhq/dappsdk/node_modules/rpc-websockets": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.11.2.tgz", + "integrity": "sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==", + "license": "LGPL-3.0-only", + "dependencies": { + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, "node_modules/@openblockhq/dappsdk/node_modules/superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", "engines": { "node": ">=14.0.0" } }, + "node_modules/@openblockhq/dappsdk/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@pedrouid/environment": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@pedrouid/environment/-/environment-1.0.1.tgz", - "integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==" + "integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==", + "license": "MIT" }, "node_modules/@project-serum/anchor": { "version": "0.21.0", "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.21.0.tgz", "integrity": "sha512-flRuW/F+iC8mitNokx82LOXyND7Dyk6n5UUPJpQv/+NfySFrNFlzuQZaBZJ4CG5g9s8HS/uaaIz1nVkDR8V/QA==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "@project-serum/borsh": "^0.2.4", "@solana/web3.js": "^1.17.0", @@ -2862,10 +3129,20 @@ "node": ">=11" } }, + "node_modules/@project-serum/anchor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@project-serum/borsh": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" @@ -2881,6 +3158,7 @@ "version": "0.13.65", "resolved": "https://registry.npmjs.org/@project-serum/serum/-/serum-0.13.65.tgz", "integrity": "sha512-BHRqsTqPSfFB5p+MgI2pjvMBAQtO8ibTK2fYY96boIFkCI3TTwXDt2gUmspeChKO2pqHr5aKevmexzAcXxrSRA==", + "license": "MIT", "dependencies": { "@project-serum/anchor": "^0.11.1", "@solana/spl-token": "^0.1.6", @@ -2896,6 +3174,7 @@ "version": "0.11.1", "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.11.1.tgz", "integrity": "sha512-oIdm4vTJkUy6GmE6JgqDAuQPKI7XM4TPJkjtoIzp69RZe0iAD9JP2XHx7lV1jLdYXeYHqDXfBt3zcq7W91K6PA==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "@project-serum/borsh": "^0.2.2", "@solana/web3.js": "^1.17.0", @@ -2916,24 +3195,29 @@ "node": ">=11" } }, - "node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", - "dependencies": { - "@babel/runtime": "^7.13.10" + "node_modules/@project-serum/serum/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "license": "MIT" + }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -2942,15 +3226,13 @@ } }, "node_modules/@radix-ui/react-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -2959,31 +3241,31 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.4.tgz", - "integrity": "sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.4", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.3", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-portal": "1.0.3", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" + "react-remove-scroll": "2.5.7" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -2995,22 +3277,22 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", - "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3022,15 +3304,13 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", + "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3039,20 +3319,20 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", - "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3064,16 +3344,16 @@ } }, "node_modules/@radix-ui/react-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3082,18 +3362,19 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", - "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3105,19 +3386,19 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", - "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3129,18 +3410,18 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.2" + "@radix-ui/react-slot": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3152,16 +3433,16 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3170,15 +3451,13 @@ } }, "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3187,16 +3466,16 @@ } }, "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3205,16 +3484,16 @@ } }, "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3223,15 +3502,13 @@ } }, "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3243,6 +3520,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "license": "MIT", "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" @@ -3252,58 +3530,36 @@ } }, "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@scure/bip32": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz", - "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==", - "dependencies": { - "@noble/curves": "~1.1.0", - "@noble/hashes": "~1.3.1", - "@scure/base": "~1.1.0" - }, + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", - "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", - "engines": { - "node": ">= 16" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -3313,6 +3569,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "license": "MIT", "dependencies": { "buffer": "~6.0.3" }, @@ -3324,6 +3581,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "license": "Apache-2.0", "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/web3.js": "^1.32.0", @@ -3338,6 +3596,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz", "integrity": "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.5", "@solana/web3.js": "^1.21.0", @@ -3354,6 +3613,7 @@ "version": "0.9.19", "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.19.tgz", "integrity": "sha512-c/F3xyuSNDUjbYM6E4be5bMx9YmNqE6XIpLcM9U3ohviwDF8hO+v5N8KSvnMaztL4Lr6+TEtCLi3Q5AT0r06JA==", + "license": "Apache-2.0", "dependencies": { "eventemitter3": "^4.0.0" }, @@ -3365,9 +3625,10 @@ } }, "node_modules/@solana/wallet-standard-features": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@solana/wallet-standard-features/-/wallet-standard-features-1.1.0.tgz", - "integrity": "sha512-oVyygxfYkkF5INYL0GuD8GFmNO/wd45zNesIqGCFE6X66BYxmI6HmyzQJCcZTZ0BNsezlVg4t+3MCL5AhfFoGA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-features/-/wallet-standard-features-1.2.0.tgz", + "integrity": "sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==", + "license": "Apache-2.0", "dependencies": { "@wallet-standard/base": "^1.0.1", "@wallet-standard/features": "^1.0.3" @@ -3377,52 +3638,153 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.78.4", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.78.4.tgz", - "integrity": "sha512-up5VG1dK+GPhykmuMIozJZBbVqpm77vbOG6/r5dS7NBGZonwHfTLdBbsYc3rjmaQ4DpCXUa3tUc4RZHRORvZrw==", - "dependencies": { - "@babel/runtime": "^7.22.6", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.1", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.3.0", + "version": "1.95.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.2.tgz", + "integrity": "sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.8", + "@noble/curves": "^1.4.2", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", "bigint-buffer": "^1.1.5", "bn.js": "^5.2.1", "borsh": "^0.7.0", "bs58": "^4.0.1", "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.0", - "node-fetch": "^2.6.12", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" + "jayson": "^4.1.1", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^2.0.2" + } + }, + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", + "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@streamflow/common": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/@streamflow/common/-/common-6.3.8.tgz", + "integrity": "sha512-5/ibUfPNoHl79HRcMS0dv9cRW8BX2lfz2ZzxcQ5Wi0IKAanwVFx0ZW9jruA/WZaD0EXtgc8fXcNjYqnktR7maA==", + "dependencies": { + "@coral-xyz/borsh": "^0.29.0", + "@solana/buffer-layout": "4.0.1 ", + "@solana/spl-token": "0.3.6", + "@solana/wallet-adapter-base": "0.9.19", + "@solana/web3.js": "1.70.1", + "aptos": "1.4.0", + "bn.js": "5.2.1", + "borsh": "^2.0.0", + "bs58": "5.0.0", + "p-queue": "^6.6.2" + } + }, + "node_modules/@streamflow/common/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@streamflow/common/node_modules/@solana/spl-token": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.6.tgz", + "integrity": "sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" + } + }, + "node_modules/@streamflow/common/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@streamflow/common/node_modules/borsh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", + "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==", + "license": "Apache-2.0" + }, + "node_modules/@streamflow/common/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" } }, "node_modules/@streamflow/stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@streamflow/stream/-/stream-5.2.0.tgz", - "integrity": "sha512-XzWP59454wM7NGvWoD9Ya5Ld7fgaD1ci9gkFPvVs9L6ar6URO6RQOfU9yHfJzo/HhS94/GNzZ7pfDgtGJEBvbg==", + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/@streamflow/stream/-/stream-6.3.8.tgz", + "integrity": "sha512-18d54OanI94CZoegES1b1mRgBedTgiEexhMeh/Tw7eGmYXg1fIl9cn8yu+hhq3mZQl6JxWzZU6JpFz5qFm0Jlg==", "dependencies": { + "@coral-xyz/borsh": "^0.29.0", "@manahippo/aptos-wallet-adapter": "1.0.6", - "@mysten/sui.js": "^0.40.0", - "@mysten/wallet-standard": "^0.6.0", + "@mysten/sui.js": "^0.45.1", "@solana/buffer-layout": "4.0.1 ", "@solana/spl-token": "0.3.6", "@solana/wallet-adapter-base": "0.9.19", "@solana/web3.js": "1.70.1", - "@suiet/wallet-kit": "^0.2.17", + "@streamflow/common": "6.3.8", + "@suiet/wallet-kit": "0.2.22", "aptos": "1.4.0", "bn.js": "5.2.1", + "borsh": "^2.0.0", "bs58": "5.0.0", "ethereum-checksum-address": "0.0.8", "ethers": "5.7.2", - "js-sha256": "0.9.0" + "js-sha256": "0.9.0", + "p-queue": "^6.6.2" + } + }, + "node_modules/@streamflow/stream/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" } }, "node_modules/@streamflow/stream/node_modules/@solana/spl-token": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.6.tgz", "integrity": "sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g==", + "license": "Apache-2.0", "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/buffer-layout-utils": "^0.2.0", @@ -3438,12 +3800,20 @@ "node_modules/@streamflow/stream/node_modules/base-x": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", + "license": "MIT" + }, + "node_modules/@streamflow/stream/node_modules/borsh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", + "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==", + "license": "Apache-2.0" }, "node_modules/@streamflow/stream/node_modules/bs58": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", "dependencies": { "base-x": "^4.0.0" } @@ -3451,17 +3821,18 @@ "node_modules/@suchipi/femver": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", - "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==", + "license": "MIT" }, "node_modules/@suiet/wallet-kit": { - "version": "0.2.18", - "resolved": "https://registry.npmjs.org/@suiet/wallet-kit/-/wallet-kit-0.2.18.tgz", - "integrity": "sha512-vXvqPttium0NGr13iZBSrw/NME2JzHB9yBCIzB4/Wyaukpzznv5mRO7hfWGac5N/NuDUoQ4iFEFhna8K+0cScA==", + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@suiet/wallet-kit/-/wallet-kit-0.2.22.tgz", + "integrity": "sha512-vJ+t3l95SwZ0VU8xwDCbccgSQzgtY/srON4IEKI2K4UUV/Epy+EhqXIo5XceH1gJGy4O3kM5kvIZj0SJsp+Owg==", "dependencies": { - "@mysten/sui.js": "0.41.0", - "@mysten/wallet-standard": "0.6.0", + "@mysten/sui.js": "0.45.1", + "@mysten/wallet-standard": "0.8.7", "@radix-ui/react-dialog": "^1.0.2", - "@suiet/wallet-sdk": "0.2.16", + "@suiet/wallet-sdk": "0.2.19", "@svgr/rollup": "^6.5.1", "@wallet-standard/core": "1.0.3", "buffer": "^6.0.3", @@ -3471,77 +3842,53 @@ "react-query": "^3.39.2" }, "peerDependencies": { - "@mysten/sui.js": "0.41.0", - "@mysten/wallet-standard": "0.6.0" + "@mysten/sui.js": "0.45.1", + "react": "*", + "react-dom": "*" } }, - "node_modules/@suiet/wallet-kit/node_modules/@mysten/sui.js": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.41.0.tgz", - "integrity": "sha512-IVxlo7qoxDFsE/WiJiLW3gmqftS6QI7LrTHqsDs7YGsBd69cqp95RH3OerJ3Wrbl8bMsQyG+HByX3c3zN6G97A==", + "node_modules/@suiet/wallet-kit/node_modules/@mysten/wallet-standard": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.8.7.tgz", + "integrity": "sha512-kY/gc8WHeqcWPgnQ69l9jbyXSsnVJqddspX1rvLF5bZV1Ud7ZrVO1V+pL4LNTxeQq02EHz4n5DLOWGHDd3mrTg==", + "license": "Apache-2.0", "dependencies": { - "@mysten/bcs": "0.7.3", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "@open-rpc/client-js": "^1.8.1", - "@scure/bip32": "^1.3.1", - "@scure/bip39": "^1.2.1", - "@suchipi/femver": "^1.0.0", - "events": "^3.3.0", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@suiet/wallet-kit/node_modules/superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", - "engines": { - "node": ">=14.0.0" + "@mysten/sui.js": "0.45.1", + "@wallet-standard/core": "1.0.3" } }, "node_modules/@suiet/wallet-sdk": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/@suiet/wallet-sdk/-/wallet-sdk-0.2.16.tgz", - "integrity": "sha512-Xi30dA1tjD4SZNL47bZsVwk035cCJ1N0qeHL5afk8CmeLItwekJPnAF23Sg4rBP+bKpSFSLNjZii6PeqjrZQgA==", + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/@suiet/wallet-sdk/-/wallet-sdk-0.2.19.tgz", + "integrity": "sha512-i4iGdDkEuO5/TLDfWDj1fhJ3yttaGsEY6hQ/FwLwxrsuuTbjqlVDXqScURz/aGHbWlVfW5x+kcOiE44mGDSMsg==", + "license": "MIT", "dependencies": { - "@mysten/sui.js": "0.41.0", - "@mysten/wallet-standard": "0.6.0", + "@mysten/sui.js": "0.45.1", + "@mysten/wallet-standard": "0.8.7", "@noble/hashes": "^1.3.0", + "buffer": "^6.0.3", + "superstruct": "^1.0.3", "tweetnacl": "^1.0.3" }, "peerDependencies": { - "@mysten/sui.js": "0.41.0", - "@mysten/wallet-standard": "0.6.0" + "@mysten/sui.js": "0.45.1" } }, - "node_modules/@suiet/wallet-sdk/node_modules/@mysten/sui.js": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.41.0.tgz", - "integrity": "sha512-IVxlo7qoxDFsE/WiJiLW3gmqftS6QI7LrTHqsDs7YGsBd69cqp95RH3OerJ3Wrbl8bMsQyG+HByX3c3zN6G97A==", + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/wallet-standard": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/@mysten/wallet-standard/-/wallet-standard-0.8.7.tgz", + "integrity": "sha512-kY/gc8WHeqcWPgnQ69l9jbyXSsnVJqddspX1rvLF5bZV1Ud7ZrVO1V+pL4LNTxeQq02EHz4n5DLOWGHDd3mrTg==", + "license": "Apache-2.0", "dependencies": { - "@mysten/bcs": "0.7.3", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "@open-rpc/client-js": "^1.8.1", - "@scure/bip32": "^1.3.1", - "@scure/bip39": "^1.2.1", - "@suchipi/femver": "^1.0.0", - "events": "^3.3.0", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": ">=16" + "@mysten/sui.js": "0.45.1", + "@wallet-standard/core": "1.0.3" } }, "node_modules/@suiet/wallet-sdk/node_modules/superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -3550,6 +3897,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3565,6 +3913,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3580,6 +3929,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3595,6 +3945,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3610,6 +3961,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3625,6 +3977,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3640,6 +3993,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3655,6 +4009,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -3670,6 +4025,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "license": "MIT", "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", "@svgr/babel-plugin-remove-jsx-attribute": "*", @@ -3695,6 +4051,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "license": "MIT", "dependencies": { "@babel/core": "^7.19.6", "@svgr/babel-preset": "^6.5.1", @@ -3710,21 +4067,11 @@ "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@svgr/core/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@svgr/hast-util-to-babel-ast": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "license": "MIT", "dependencies": { "@babel/types": "^7.20.0", "entities": "^4.4.0" @@ -3741,6 +4088,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "license": "MIT", "dependencies": { "@babel/core": "^7.19.6", "@svgr/babel-preset": "^6.5.1", @@ -3762,6 +4110,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "license": "MIT", "dependencies": { "cosmiconfig": "^7.0.1", "deepmerge": "^4.2.2", @@ -3782,6 +4131,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/rollup/-/rollup-6.5.1.tgz", "integrity": "sha512-GeUfq0grJfpcn2jRWRaZ4npn27nnWK21vUj6MqDqknuJnEqGADcZZjO9wrUAaPLr3InAnQi0Z7nwiNUdzkaj6A==", + "license": "MIT", "dependencies": { "@babel/core": "^7.19.6", "@babel/plugin-transform-react-constant-elements": "^7.18.12", @@ -3801,60 +4151,74 @@ "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@swc/helpers": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@tronweb3/google-protobuf": { "version": "3.21.2", "resolved": "https://registry.npmjs.org/@tronweb3/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-IVcT2GfWX3K6tHUVhs14NP5uzKhQt4KeDya1g9ACxuZsUzsaoGUIGzceK2Ltu7xp1YV94AaHOf4yxLAivlvEkQ==" + "integrity": "sha512-IVcT2GfWX3K6tHUVhs14NP5uzKhQt4KeDya1g9ACxuZsUzsaoGUIGzceK2Ltu7xp1YV94AaHOf4yxLAivlvEkQ==", + "license": "(BSD-3-Clause AND Apache-2.0)" }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", "engines": { "node": ">=10.13.0" } }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.4.tgz", - "integrity": "sha512-Y9vbIAoM31djQZrPYjpTLo0XlaSwOIsrlfE3LpulZeRblttsLQRFRlBAppW0LOxyT3ALj2M5vU1ucQQayQH3jA==" + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "license": "MIT" }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" }, "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3863,6 +4227,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@wallet-standard/app/-/app-1.0.1.tgz", "integrity": "sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==", + "license": "Apache-2.0", "dependencies": { "@wallet-standard/base": "^1.0.1" }, @@ -3874,6 +4239,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz", "integrity": "sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==", + "license": "Apache-2.0", "engines": { "node": ">=16" } @@ -3882,6 +4248,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/@wallet-standard/core/-/core-1.0.3.tgz", "integrity": "sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==", + "license": "Apache-2.0", "dependencies": { "@wallet-standard/app": "^1.0.1", "@wallet-standard/base": "^1.0.1", @@ -3896,6 +4263,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz", "integrity": "sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==", + "license": "Apache-2.0", "dependencies": { "@wallet-standard/base": "^1.0.1" }, @@ -3907,6 +4275,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.0.1.tgz", "integrity": "sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==", + "license": "Apache-2.0", "dependencies": { "@wallet-standard/base": "^1.0.1" }, @@ -3917,12 +4286,14 @@ "node_modules/aes-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "license": "MIT" }, "node_modules/agentkeepalive": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" }, @@ -3934,6 +4305,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -3945,6 +4317,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.4.0.tgz", "integrity": "sha512-D1yBXeyhiBKgJnUQX8iDXckZMPFwdJ9YfUZtRcDhUoR7qLX4hfmLQYemvLqtJvyTCf/Nggfp66hXX1Z8FdlEiQ==", + "license": "Apache-2.0", "dependencies": { "@noble/hashes": "1.1.3", "@scure/bip39": "1.1.0", @@ -3965,7 +4338,8 @@ "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/aptos/node_modules/@scure/bip39": { "version": "1.1.0", @@ -3977,15 +4351,17 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "@noble/hashes": "~1.1.1", "@scure/base": "~1.1.0" } }, "node_modules/aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -3997,6 +4373,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4004,24 +4381,27 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.9", "form-data": "^4.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { @@ -4029,23 +4409,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", - "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4054,12 +4436,14 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -4081,17 +4465,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/bech32": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "license": "MIT" }, "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", "engines": { "node": ">=0.6" } @@ -4101,6 +4488,7 @@ "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "bindings": "^1.3.0" }, @@ -4109,9 +4497,10 @@ } }, "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } @@ -4120,6 +4509,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } @@ -4127,17 +4517,20 @@ "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/borsh": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.2.0", "bs58": "^4.0.0", @@ -4148,6 +4541,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4157,6 +4551,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.7.2", "detect-node": "^2.1.0", @@ -4171,12 +4566,13 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" }, "node_modules/browserslist": { - "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "funding": [ { "type": "opencollective", @@ -4191,11 +4587,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4208,6 +4605,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } @@ -4230,6 +4628,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -4239,15 +4638,17 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", + "license": "MIT", "engines": { "node": ">=4.5" } }, "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -4260,22 +4661,28 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase-keys": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "license": "MIT", "dependencies": { "camelcase": "^6.3.0", "map-obj": "^4.1.0", @@ -4289,21 +4696,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001522", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", - "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", + "version": "1.0.30001643", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", "funding": [ { "type": "opencollective", @@ -4317,12 +4713,14 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4333,14 +4731,16 @@ } }, "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -4348,12 +4748,14 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -4364,24 +4766,28 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.32.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz", - "integrity": "sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "license": "MIT", "dependencies": { - "browserslist": "^4.21.10" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -4392,6 +4798,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -4407,6 +4814,7 @@ "version": "3.1.8", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } @@ -4415,6 +4823,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -4426,6 +4835,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -4441,6 +4851,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -4453,6 +4864,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -4464,6 +4876,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", "dependencies": { "css-tree": "^1.1.2" }, @@ -4472,9 +4885,10 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -4491,6 +4905,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4502,6 +4917,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "license": "MIT", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -4517,6 +4933,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4525,6 +4942,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4533,12 +4951,13 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "peer": true + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4547,6 +4966,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4558,6 +4978,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -4565,17 +4986,20 @@ "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -4589,6 +5013,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -4602,12 +5027,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -4622,6 +5049,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -4635,6 +5063,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -4644,6 +5073,7 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", "engines": { "node": ">=10" } @@ -4653,19 +5083,22 @@ "resolved": "https://registry.npmjs.org/eip1193-provider/-/eip1193-provider-1.0.1.tgz", "integrity": "sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "@json-rpc-tools/provider": "^1.5.5" } }, "node_modules/electron-to-chromium": { - "version": "1.4.500", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.500.tgz", - "integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.2.tgz", + "integrity": "sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==", + "license": "ISC" }, "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -4679,12 +5112,14 @@ "node_modules/elliptic/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -4696,6 +5131,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -4703,20 +5139,23 @@ "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "license": "MIT", "dependencies": { "es6-promise": "^4.0.3" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4725,6 +5164,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -4732,12 +5172,14 @@ "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -4746,6 +5188,7 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ethereum-checksum-address/-/ethereum-checksum-address-0.0.8.tgz", "integrity": "sha512-n7m16IjUmbv03QKwHF77lKWyx538f0ICjgHGd2g31BESgBqdxVmilb45uJj26ARVsA8/gZZO/yK5fPJJF/i4Ug==", + "license": "MIT", "dependencies": { "keccak": "^3.0.2", "meow": "^10.1.2" @@ -4756,36 +5199,15 @@ } }, "node_modules/ethereum-cryptography": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", - "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", - "dependencies": { - "@noble/curves": "1.1.0", - "@noble/hashes": "1.3.1", - "@scure/bip32": "1.3.1", - "@scure/bip39": "1.2.1" - } - }, - "node_modules/ethereum-cryptography/node_modules/@noble/curves": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", - "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, "node_modules/ethers": { @@ -4802,6 +5224,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@ethersproject/abi": "5.7.0", "@ethersproject/abstract-provider": "5.7.0", @@ -4838,12 +5261,14 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -4859,17 +5284,20 @@ "node_modules/fast-stable-stringify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", + "license": "MIT" }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" }, "node_modules/find": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/find/-/find-0.3.0.tgz", "integrity": "sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==", + "license": "MIT", "dependencies": { "traverse-chain": "~0.1.0" } @@ -4878,6 +5306,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4890,15 +5319,16 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -4912,6 +5342,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -4924,17 +5355,23 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -4943,6 +5380,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4951,6 +5389,8 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4970,6 +5410,7 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -4978,25 +5419,16 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -5005,15 +5437,29 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -5024,6 +5470,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5035,6 +5482,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5045,12 +5493,14 @@ "node_modules/hosted-git-info/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { "ms": "^2.0.0" } @@ -5072,12 +5522,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5093,6 +5545,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5104,6 +5557,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5112,17 +5567,20 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/injectpromise": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/injectpromise/-/injectpromise-1.0.0.tgz", - "integrity": "sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA==" + "integrity": "sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA==", + "license": "MIT" }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } @@ -5130,14 +5588,19 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5147,6 +5610,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5155,6 +5619,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.1", "whatwg-fetch": "^3.4.1" @@ -5164,14 +5629,16 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "license": "MIT", "peerDependencies": { "ws": "*" } }, "node_modules/jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.1.tgz", + "integrity": "sha512-5ZWm4Q/0DHPyeMfAsrwViwUS2DMVsQgWh8bEEIVTkfb3DzHZ2L3G5WUnF+AKmGjjM9r1uAv73SaqC1/U4RL45w==", + "license": "MIT", "dependencies": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", @@ -5184,7 +5651,7 @@ "json-stringify-safe": "^5.0.1", "JSONStream": "^1.3.5", "uuid": "^8.3.2", - "ws": "^7.4.5" + "ws": "^7.5.10" }, "bin": { "jayson": "bin/jayson.js" @@ -5193,15 +5660,11 @@ "node": ">=8" } }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, "node_modules/jayson/node_modules/isomorphic-ws": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "license": "MIT", "peerDependencies": { "ws": "*" } @@ -5209,22 +5672,26 @@ "node_modules/js-sha256": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", + "license": "MIT" }, "node_modules/js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -5235,17 +5702,20 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -5259,12 +5729,14 @@ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -5277,10 +5749,11 @@ } }, "node_modules/keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", @@ -5293,12 +5766,14 @@ "node_modules/keyvaluestorage-interface": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", - "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==" + "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==", + "license": "MIT" }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5306,12 +5781,14 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -5325,22 +5802,26 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -5352,6 +5833,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -5360,6 +5842,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -5368,6 +5851,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -5376,23 +5860,26 @@ } }, "node_modules/match-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", - "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.5", - "remove-accents": "0.4.2" + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" } }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" }, "node_modules/meow": { "version": "10.1.5", "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.2", "camelcase-keys": "^7.0.0", @@ -5417,12 +5904,14 @@ "node_modules/microseconds": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", - "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==", + "license": "MIT" }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5431,6 +5920,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -5442,6 +5932,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -5449,17 +5940,20 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5471,6 +5965,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -5483,17 +5978,20 @@ "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" }, "node_modules/nano-time": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "license": "ISC", "dependencies": { "big-integer": "^1.6.16" } @@ -5502,6 +6000,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -5510,12 +6009,14 @@ "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -5532,9 +6033,10 @@ } }, "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -5542,14 +6044,16 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" }, "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -5560,24 +6064,11 @@ "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -5585,15 +6076,11 @@ "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -5604,20 +6091,32 @@ "node_modules/oblivious-set": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", - "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==", + "license": "MIT" }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -5632,6 +6131,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -5642,15 +6142,45 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -5662,6 +6192,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -5679,6 +6210,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -5687,6 +6219,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5694,25 +6227,29 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -5720,6 +6257,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -5732,6 +6275,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -5740,9 +6284,10 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "peer": true, "dependencies": { "loose-envify": "^1.1.0" @@ -5752,22 +6297,24 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "peer": true, "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-query": { "version": "3.39.3", "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.5.5", "broadcast-channel": "^3.4.1", @@ -5790,11 +6337,12 @@ } }, "node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "license": "MIT", "dependencies": { - "react-remove-scroll-bar": "^2.3.3", + "react-remove-scroll-bar": "^2.3.4", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", "use-callback-ref": "^1.3.0", @@ -5814,9 +6362,10 @@ } }, "node_modules/react-remove-scroll-bar": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.1", "tslib": "^2.0.0" @@ -5838,6 +6387,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -5860,6 +6410,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^3.0.2", @@ -5877,6 +6428,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "license": "MIT", "dependencies": { "find-up": "^5.0.0", "read-pkg": "^6.0.0", @@ -5893,6 +6445,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5906,6 +6459,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "license": "MIT", "dependencies": { "indent-string": "^5.0.0", "strip-indent": "^4.0.0" @@ -5920,12 +6474,14 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -5934,14 +6490,16 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -5950,6 +6508,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "license": "MIT", "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -5966,6 +6525,7 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -5982,14 +6542,16 @@ } }, "node_modules/remove-accents": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", - "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -6006,6 +6568,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -6014,6 +6577,8 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -6025,12 +6590,16 @@ } }, "node_modules/rpc-websockets": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.6.0.tgz", - "integrity": "sha512-Jgcs8q6t8Go98dEulww1x7RysgTkzpCMelVxZW4hvuyFtOGpeUz9prpr2KjUa/usqxgFCd9Tu3+yhHEP9GVmiQ==", - "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.2.tgz", + "integrity": "sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw==", + "license": "LGPL-3.0-only", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/uuid": "^8.3.4", + "@types/ws": "^8.2.2", + "buffer": "^6.0.3", + "eventemitter3": "^5.0.1", "uuid": "^8.3.2", "ws": "^8.5.0" }, @@ -6043,10 +6612,26 @@ "utf-8-validate": "^5.0.2" } }, + "node_modules/rpc-websockets/node_modules/@types/ws": { + "version": "8.5.11", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.11.tgz", + "integrity": "sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rpc-websockets/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -6080,17 +6665,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-json-utils": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz", - "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==" + "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==", + "license": "MIT" }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "peer": true, "dependencies": { "loose-envify": "^1.1.0" @@ -6099,12 +6687,14 @@ "node_modules/scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -6113,6 +6703,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -6122,6 +6713,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -6130,45 +6722,52 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "license": "CC0-1.0" }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" }, "node_modules/strict-event-emitter-types": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz", - "integrity": "sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==" + "integrity": "sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==", + "license": "ISC" }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -6177,6 +6776,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "license": "MIT", "dependencies": { "min-indent": "^1.0.1" }, @@ -6188,14 +6788,16 @@ } }, "node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", + "license": "MIT" }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -6207,6 +6809,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6217,12 +6820,14 @@ "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" }, "node_modules/svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -6243,6 +6848,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -6255,12 +6861,14 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", "engines": { "node": ">=4" } @@ -6268,22 +6876,26 @@ "node_modules/toml": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/traverse-chain": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz", - "integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==" + "integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==", + "license": "MIT" }, "node_modules/trim-newlines": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6292,14 +6904,15 @@ } }, "node_modules/tronweb": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/tronweb/-/tronweb-5.3.0.tgz", - "integrity": "sha512-i03+3UviQacqdrr3VgXHDL8h/2E24BeULak4w6+yRkJaCuEyxjWOtEn1dq87ulTkHzS/vKK0zIyvW7rSxuISOA==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/tronweb/-/tronweb-5.3.2.tgz", + "integrity": "sha512-iPcIjMCxb6H7FXMntAj47F3L+7jSideyQ7ZOvRj9MeZBh46SHevMrDDR57HzakUa/tT8VvlPFHtqFK4hzTLkXw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", "@ethersproject/abi": "^5.7.0", "@tronweb3/google-protobuf": "^3.21.2", - "axios": "^0.26.1", + "axios": "^1.6.2", "bignumber.js": "^9.0.1", "ethereum-cryptography": "^2.0.0", "ethers": "^6.6.0", @@ -6311,39 +6924,57 @@ "validator": "^13.7.0" } }, + "node_modules/tronweb/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/tronweb/node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/tronweb/node_modules/@types/node": { "version": "18.15.13", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", + "license": "MIT" }, "node_modules/tronweb/node_modules/aes-js": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" }, "node_modules/tronweb/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.8" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/tronweb/node_modules/ethers": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.7.1.tgz", - "integrity": "sha512-qX5kxIFMfg1i+epfgb0xF4WM7IqapIIu50pOJ17aebkxxa4BacW5jFrQRmCJpDEg2ZK2oNtR5QjrQ1WDBF29dA==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", "funding": [ { "type": "individual", @@ -6354,14 +6985,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "1.9.2", - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.7.1", + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", "@types/node": "18.15.13", "aes-js": "4.0.0-beta.5", "tslib": "2.4.0", - "ws": "8.5.0" + "ws": "8.17.1" }, "engines": { "node": ">=14.0.0" @@ -6370,12 +7002,14 @@ "node_modules/tronweb/node_modules/eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "license": "MIT" }, "node_modules/tronweb/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -6383,18 +7017,20 @@ "node_modules/tronweb/node_modules/tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "license": "0BSD" }, "node_modules/tronweb/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -6406,20 +7042,23 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" }, "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" }, "node_modules/tweetnacl-ts": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl-ts/-/tweetnacl-ts-1.0.3.tgz", "integrity": "sha512-C5I/dWf6xjAXaCDlf84T4HvozU/8ycAlq5WRllF1hAeeq5390tfXD+bNas5bhEV0HMSOx8bsQYpLjPl8wfnEeQ==", "dev": true, + "license": "UNLICENSED", "dependencies": { "tslib": "^1" } @@ -6428,12 +7067,14 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/type-fest": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6445,6 +7086,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -6453,6 +7095,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -6465,6 +7108,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -6473,6 +7117,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", "engines": { "node": ">=4" } @@ -6481,15 +7126,16 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.6.2", "detect-node": "^2.0.4" } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "funding": [ { "type": "opencollective", @@ -6504,9 +7150,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -6516,9 +7163,10 @@ } }, "node_modules/use-callback-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -6539,6 +7187,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -6561,6 +7210,7 @@ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -6572,12 +7222,14 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -6586,15 +7238,17 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -6602,17 +7256,20 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/whatwg-fetch": { - "version": "3.6.17", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.17.tgz", - "integrity": "sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==" + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -6621,12 +7278,14 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -6646,12 +7305,14 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", "engines": { "node": ">= 6" } @@ -6660,6 +7321,7 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", "engines": { "node": ">=10" } @@ -6668,6 +7330,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/packages/hubble-sdk/package.json b/packages/hubble-sdk/package.json index da326ef9..ec6e9058 100644 --- a/packages/hubble-sdk/package.json +++ b/packages/hubble-sdk/package.json @@ -27,7 +27,6 @@ "homepage": "https://github.com/hubbleprotocol/hubble-common/blob/master/packages/hubble-sdk", "devDependencies": { "@solana/buffer-layout": "^4.0.1", - "@types/bn.js": "^5.1.0", "tweetnacl-ts": "^1.0.3" }, "overrides": { @@ -36,17 +35,14 @@ } }, "dependencies": { - "@coral-xyz/borsh": "^0.29.0", + "@coral-xyz/anchor": "^0.29.0", + "@coral-xyz/borsh": "^0.30.1", "@hubbleprotocol/hubble-config": "^5.0.0", "@hubbleprotocol/hubble-idl": "^5.0.16", "@hubbleprotocol/scope-sdk": "^5.0.20", - "@project-serum/anchor": "^0.21.0", - "@project-serum/serum": "^0.13.65", - "@streamflow/stream": "5.2.0", - "bn.js": "^5.2.1" - }, - "peerDependencies": { "@solana/web3.js": "^1.78.4", + "@streamflow/stream": "6.3.8", + "bn.js": "^5.2.1", "decimal.js": "^10.3.1" }, "publishConfig": { diff --git a/packages/hubble-sdk/src/Hubble.ts b/packages/hubble-sdk/src/Hubble.ts index 4d644773..4d9f9f67 100644 --- a/packages/hubble-sdk/src/Hubble.ts +++ b/packages/hubble-sdk/src/Hubble.ts @@ -3,7 +3,7 @@ import { Connection, PublicKey, SYSVAR_RENT_PUBKEY, SystemProgram, TransactionIn import StakingPoolState from './models/StakingPoolState'; import StabilityPoolState from './models/StabilityPoolState'; import BorrowingMarketState from './models/BorrowingMarketState'; -import { Idl, Program, Provider } from '@project-serum/anchor'; +import { Idl, Program, AnchorProvider } from '@coral-xyz/anchor'; import { BORROWING_IDL } from '@hubbleprotocol/hubble-idl'; import { calculatePendingGains, @@ -30,13 +30,12 @@ import { } from './constants'; import Decimal from 'decimal.js'; import UserMetadataWithJson from './models/UserMetadataWithJson'; -import { StreamflowSolana, Types } from '@streamflow/stream'; +import { StreamflowSolana, StreamType, StreamDirection, ICluster } from '@streamflow/stream'; import StabilityProviderStateWithJson from './models/StabilityProviderStateWithJson'; import { HbbVault, HubblePrices, MintToPriceMap, PsmReserve, UsdhVault } from './models'; import GlobalConfig from './models/GlobalConfig'; import { SwapInfo } from './models/SwapInfo'; import { signTerms, SignTermsAccounts, SignTermsArgs, TermsSignature } from './models/TermsSignature'; -import { ICluster } from '@streamflow/stream/dist/common/types'; import { OraclePrices, Scope } from '@hubbleprotocol/scope-sdk'; export class Hubble { @@ -44,7 +43,7 @@ export class Hubble { private readonly _connection: Connection; private readonly _scope: Scope; readonly _config: HubbleConfig; - private readonly _provider: Provider; + private readonly _provider: AnchorProvider; private _borrowingProgram: Program; /** @@ -61,7 +60,7 @@ export class Hubble { if (borrowingProgramId) { this._config.borrowing.programId = new PublicKey(borrowingProgramId); } - this._provider = new Provider(connection, getReadOnlyWallet(), { + this._provider = new AnchorProvider(connection, getReadOnlyWallet(), { commitment: connection.commitment, }); this._borrowingProgram = new Program(BORROWING_IDL as Idl, this._config.borrowing.programId, this._provider); @@ -541,8 +540,8 @@ export class Hubble { const client = new StreamflowSolana.SolanaStreamClient(this._connection.rpcEndpoint, ICluster.Mainnet); const streams = await client.get({ address: STREAMFLOW_HBB_CONTRACT, - type: Types.StreamType.All, - direction: Types.StreamDirection.All, + type: StreamType.All, + direction: StreamDirection.All, }); let notWithdrawnTokens = new Decimal(0); for (let [pubkey, stream] of streams) { diff --git a/packages/hubble-sdk/src/models/TermsSignature.ts b/packages/hubble-sdk/src/models/TermsSignature.ts index e40a47f9..a6477895 100644 --- a/packages/hubble-sdk/src/models/TermsSignature.ts +++ b/packages/hubble-sdk/src/models/TermsSignature.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection, TransactionInstruction, AccountMeta } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars export interface TermsSignatureFields { signature: Array; diff --git a/packages/hubble-sdk/src/utils/anchorUtils.ts b/packages/hubble-sdk/src/utils/anchorUtils.ts index 5bdee3e4..f96a35ca 100644 --- a/packages/hubble-sdk/src/utils/anchorUtils.ts +++ b/packages/hubble-sdk/src/utils/anchorUtils.ts @@ -1,5 +1,5 @@ import { Keypair } from '@solana/web3.js'; -import { Wallet } from '@project-serum/anchor'; +import { Wallet } from '@coral-xyz/anchor'; /** * Get a read-only wallet for Anchor provider diff --git a/packages/hubble-sdk/src/utils/mathUtils.ts b/packages/hubble-sdk/src/utils/mathUtils.ts index 2df68cfe..4e2bab1d 100644 --- a/packages/hubble-sdk/src/utils/mathUtils.ts +++ b/packages/hubble-sdk/src/utils/mathUtils.ts @@ -32,7 +32,7 @@ import { DECIMALS_KUSHUSDCORCA, DECIMALS_KUSDCUSDTORCA, } from '../constants'; -import { BN } from '@project-serum/anchor'; +import { BN } from '@coral-xyz/anchor'; import Decimal from 'decimal.js'; import StabilityPoolState from '../models/StabilityPoolState'; import StabilityProviderState from '../models/StabilityProviderState'; diff --git a/packages/hubble-sdk/tests/integration.test.ts b/packages/hubble-sdk/tests/integration.test.ts index 794fb522..971c76c5 100644 --- a/packages/hubble-sdk/tests/integration.test.ts +++ b/packages/hubble-sdk/tests/integration.test.ts @@ -1,10 +1,10 @@ import { SolanaCluster } from '@hubbleprotocol/hubble-config'; -import { clusterApiUrl, Connection, Keypair, Transaction } from '@solana/web3.js'; +import { Connection, Keypair, Transaction } from '@solana/web3.js'; import * as ed25519 from 'tweetnacl-ts'; import Hubble from '../src/Hubble'; import { sendTransactionWithLogs, solAirdrop } from './utils'; import { getReadOnlyWallet } from '../src'; -import { Provider } from '@project-serum/anchor'; +import { AnchorProvider } from '@coral-xyz/anchor'; import Decimal from 'decimal.js'; describe('Hubble SDK Tests', () => { @@ -23,7 +23,7 @@ describe('Hubble SDK Tests', () => { await solAirdrop( connection, - new Provider(connection, getReadOnlyWallet(), { + new AnchorProvider(connection, getReadOnlyWallet(), { commitment: connection.commitment, }), owner.publicKey, diff --git a/packages/hubble-sdk/tests/utils.ts b/packages/hubble-sdk/tests/utils.ts index f9812f90..51524c10 100644 --- a/packages/hubble-sdk/tests/utils.ts +++ b/packages/hubble-sdk/tests/utils.ts @@ -1,5 +1,5 @@ import Decimal from 'decimal.js'; -import * as anchor from '@project-serum/anchor'; +import * as anchor from '@coral-xyz/anchor'; import { Connection, PublicKey, diff --git a/packages/kamino-sdk/package-lock.json b/packages/kamino-sdk/package-lock.json index 51a89019..8dfb650c 100644 --- a/packages/kamino-sdk/package-lock.json +++ b/packages/kamino-sdk/package-lock.json @@ -6,71 +6,82 @@ "packages": { "": { "name": "@hubbleprotocol/kamino-sdk", - "version": "5.1.0", + "version": "5.2.4", "license": "Apache-2.0", "dependencies": { + "@coral-xyz/anchor": "^0.29.0", "@coral-xyz/borsh": "^0.30.1", "@hubbleprotocol/hubble-config": "^5.0.0", - "@hubbleprotocol/hubble-idl": "^5.0.16", "@hubbleprotocol/scope-sdk": "^5.0.20", "@jup-ag/api": "^6.0.1", "@orca-so/sdk": "^1.2.26", "@orca-so/whirlpool-client-sdk": "^0.0.8", "@orca-so/whirlpool-sdk": "^0.4.2", - "@project-serum/anchor": "^0.21.0", - "@project-serum/borsh": "^0.2.5", - "@project-serum/serum": "^0.13.65", "@raydium-io/raydium-sdk": "=1.3.1-beta.5", - "@solana/buffer-layout": "^4.0.1", "@solana/spl-token": "^0.1.8", - "@types/mocha": "^10.0.1", + "@solana/web3.js": "^1.78.4", "axios": "^1.2.6", - "bn.js": "^5.2.1" + "bn.js": "^5.2.1", + "bs58": "^6.0.0", + "decimal.js": "^10.3.1" }, "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai-as-promised": "^7.1.4", - "bs58": "^5.0.0", - "chai": "^4.3.6", "tweetnacl-ts": "^1.0.3" - }, - "peerDependencies": { - "@solana/web3.js": "~1.78.4", - "decimal.js": "^10.3.1" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "engines": { - "node": ">=0.10.0" + "../hubble-config": { + "name": "@hubbleprotocol/hubble-config", + "version": "5.0.0", + "license": "Apache-2.0", + "dependencies": { + "@solana/web3.js": "^1.78.4" + } + }, + "../scope-sdk": { + "name": "@hubbleprotocol/scope-sdk", + "version": "5.0.20", + "license": "Apache-2.0", + "dependencies": { + "@coral-xyz/anchor": "^0.29.0", + "@hubbleprotocol/hubble-config": "^5.0.0", + "@solana/buffer-layout": "^4.0.1", + "@solana/web3.js": "^1.78.4", + "bn.js": "^5.2.1", + "decimal.js": "^10.3.1" } }, + "../scope-sdk/node_modules/@hubbleprotocol/hubble-config": { + "resolved": "../hubble-config", + "link": true + }, "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "license": "MIT", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", - "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -80,6 +91,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -91,6 +103,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -104,6 +117,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -111,12 +125,14 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -125,6 +141,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -133,6 +150,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -141,9 +159,10 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -151,10 +170,70 @@ "node": ">=6.9.0" } }, + "node_modules/@coral-xyz/anchor": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.29.0.tgz", + "integrity": "sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@coral-xyz/borsh": "^0.29.0", + "@noble/hashes": "^1.3.1", + "@solana/web3.js": "^1.68.0", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, "node_modules/@coral-xyz/borsh": { "version": "0.30.1", "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.30.1.tgz", "integrity": "sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" @@ -170,6 +249,7 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -186,38 +266,19 @@ } }, "node_modules/@hubbleprotocol/hubble-config": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hubbleprotocol/hubble-config/-/hubble-config-5.0.0.tgz", - "integrity": "sha512-oLdS2SwdYN8sggZhIesN+Kk8KQXGrbYn0kvnvTnk5Wh4pck1kR458ze5gh0XrMDpRVTdgwItf4mXhqiLXvQCKQ==", - "peerDependencies": { - "@solana/web3.js": "^1.78.4" - } - }, - "node_modules/@hubbleprotocol/hubble-idl": { - "version": "5.0.16", - "resolved": "https://registry.npmjs.org/@hubbleprotocol/hubble-idl/-/hubble-idl-5.0.16.tgz", - "integrity": "sha512-Hjo+WL2UXyqbJpOzs3nDlfrTbbQ2BMkZwCPc0TKifCPUTJ8q8OqYUVaCEpszxDBlFMibQftVS97Ut1IQRqyWvw==" + "resolved": "../hubble-config", + "link": true }, "node_modules/@hubbleprotocol/scope-sdk": { - "version": "5.0.20", - "resolved": "https://registry.npmjs.org/@hubbleprotocol/scope-sdk/-/scope-sdk-5.0.20.tgz", - "integrity": "sha512-l1EMtSEaYE4f8j2h6/386OCsYvN8Kx+3IPsfYl301pIcdSTynK3jVP/NjRyCb3RXeonmly4GsxiOHa5HLyVmZw==", - "dependencies": { - "@hubbleprotocol/hubble-config": "^5.0.0", - "@project-serum/anchor": "^0.21.0", - "@project-serum/serum": "^0.13.65", - "@solana/buffer-layout": "^4.0.1", - "bn.js": "^5.2.1" - }, - "peerDependencies": { - "@solana/web3.js": "^1.78.4", - "decimal.js": "^10.3.1" - } + "resolved": "../scope-sdk", + "link": true }, "node_modules/@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", @@ -230,27 +291,32 @@ "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause" }, "node_modules/@jup-ag/api": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@jup-ag/api/-/api-6.0.4.tgz", - "integrity": "sha512-wj+7xcvQRI4pZUj4O0DFvaqlZxHry74m79BM+fb6DwP4RPS2lZvuyjjACX8tUbW+VaIS5hUzYisNHthtlcC0AA==" + "version": "6.0.24", + "resolved": "https://registry.npmjs.org/@jup-ag/api/-/api-6.0.24.tgz", + "integrity": "sha512-zIX4WIPb0Kb2UnK2wNIOQBWqPJyMJq/D9dQTf/2qvPb0hfa8XdgbrQAzomHMHnAzw9StMQoybBk+JK/A76xP3w==", + "license": "MIT" }, "node_modules/@metaplex-foundation/mpl-core": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/@metaplex-foundation/mpl-core/-/mpl-core-0.0.2.tgz", "integrity": "sha512-UUJ4BlYiWdDegAWmjsNQiNehwYU3QfSFWs3sv4VX0J6/ZrQ28zqosGhQ+I2ZCTEy216finJ82sZWNjuwSWCYyQ==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "@solana/web3.js": "^1.31.0", "bs58": "^4.0.1" } }, "node_modules/@metaplex-foundation/mpl-core/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -259,6 +325,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } @@ -267,6 +334,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-1.2.5.tgz", "integrity": "sha512-pxRG53JsTSwXpiJJMHNulJhH8kO3hHztQ3QxslUoKw2hBYKXsg9TGsiHgNIhN2MPZGBJ2pDeK6kNGv0sd54HhA==", + "license": "MIT", "dependencies": { "@metaplex-foundation/mpl-core": "^0.0.2", "@solana/spl-token": "^0.1.8", @@ -274,20 +342,22 @@ } }, "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.2" + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -299,6 +369,7 @@ "version": "0.0.12", "resolved": "https://registry.npmjs.org/@orca-so/aquafarm/-/aquafarm-0.0.12.tgz", "integrity": "sha512-4vEkxeI5A5NHR9wre7Dtp9MYPCnke4v2PkaIv7933S490PErCYeqrlDPIEBTAKYWJpHFz5jR+h0bPFbmdMs3kw==", + "license": "MIT", "dependencies": { "@solana/spl-token": "^0.1.6", "@solana/web3.js": "^1.20.0", @@ -314,18 +385,22 @@ "yargs": "^17.0.1" } }, - "node_modules/@orca-so/aquafarm/node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" + "node_modules/@orca-so/common-sdk": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@orca-so/common-sdk/-/common-sdk-0.0.4.tgz", + "integrity": "sha512-3YrVgrgt2HlDyzwE6KwmD/u3knFjNCGtKi/1HJsBQMcR95R99vVnsvQylnUcZ6CJm1KyjTAOl5lvEIzgFnu+3g==", + "license": "MIT", + "dependencies": { + "@project-serum/anchor": "0.20.1", + "@solana/spl-token": "^0.1.8", + "decimal.js": "^10.3.1" } }, "node_modules/@orca-so/sdk": { "version": "1.2.26", "resolved": "https://registry.npmjs.org/@orca-so/sdk/-/sdk-1.2.26.tgz", "integrity": "sha512-SnPqzUW5fGNFzDm1Ho09R07eCBHv50idXYjvCYdZzOUFdIO9M3dvpw69sT1OugDy2bETseiUSnVuUXEBpHHhGg==", + "license": "MIT", "dependencies": { "@orca-so/aquafarm": "^0.0.12", "@orca-so/stablecurve": "^1.0.5", @@ -339,6 +414,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@orca-so/stablecurve/-/stablecurve-1.0.8.tgz", "integrity": "sha512-P+d2oPvsenkzZoZvDyIsUbfdBAdTXaaIWmm0bjWMrLzR/mOZlEDlEuYVuGF62L8e2E7SkrNeOKyic1jX+DavAA==", + "license": "ISC", "dependencies": { "@solana/spl-token": "^0.1.8", "bn.js": "^5.1.3", @@ -350,6 +426,7 @@ "resolved": "https://registry.npmjs.org/@orca-so/whirlpool-client-sdk/-/whirlpool-client-sdk-0.0.8.tgz", "integrity": "sha512-LUPkfMDcFSEKZOGnLB5Nso48dlA3t2vwCG6Wsx8exGL2jw0lEK6U89pOmaMPlf+7xEp6eAf/eF0KH0hNYmVQ3A==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "@metaplex-foundation/mpl-token-metadata": "1.2.5", "@project-serum/anchor": "^0.20.1", @@ -357,51 +434,12 @@ "decimal.js": "^10.3.1" } }, - "node_modules/@orca-so/whirlpool-client-sdk/node_modules/@project-serum/anchor": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.20.1.tgz", - "integrity": "sha512-2TuBmGUn9qeYz6sJINJlElrBuPsaUAtYyUsJ3XplEBf1pczrANAgs5ceJUFzdiqGEWLn+84ObSdBeChT/AXYFA==", - "dependencies": { - "@project-serum/borsh": "^0.2.2", - "@solana/web3.js": "^1.17.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "find": "^0.3.0", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@orca-so/whirlpool-client-sdk/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@orca-so/whirlpool-client-sdk/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, "node_modules/@orca-so/whirlpool-sdk": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@orca-so/whirlpool-sdk/-/whirlpool-sdk-0.4.2.tgz", "integrity": "sha512-HRklWsejdRfSAB3LAdbBtC/jdo4zl0UsWg5UxBLbT8+hZYbxFafKLNBX5OfCMRXBFIqqbcHQbCJdC6XIf8LRLA==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "@orca-so/common-sdk": "0.0.4", "@orca-so/whirlpool-client-sdk": "0.0.7", @@ -413,21 +451,12 @@ "tiny-invariant": "^1.2.0" } }, - "node_modules/@orca-so/whirlpool-sdk/node_modules/@orca-so/common-sdk": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@orca-so/common-sdk/-/common-sdk-0.0.4.tgz", - "integrity": "sha512-3YrVgrgt2HlDyzwE6KwmD/u3knFjNCGtKi/1HJsBQMcR95R99vVnsvQylnUcZ6CJm1KyjTAOl5lvEIzgFnu+3g==", - "dependencies": { - "@project-serum/anchor": "0.20.1", - "@solana/spl-token": "^0.1.8", - "decimal.js": "^10.3.1" - } - }, "node_modules/@orca-so/whirlpool-sdk/node_modules/@orca-so/whirlpool-client-sdk": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/@orca-so/whirlpool-client-sdk/-/whirlpool-client-sdk-0.0.7.tgz", "integrity": "sha512-fmGQjdRkW2lX1GqZVvrkklYfk0VpXbwuOw8AZA05RrqMZtSL+ePNZMBjBztlccxqKulweCPRCEYFXC17ZdNbAQ==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", "dependencies": { "@metaplex-foundation/mpl-token-metadata": "1.2.5", "@project-serum/anchor": "^0.20.1", @@ -435,67 +464,28 @@ "decimal.js": "^10.3.1" } }, - "node_modules/@orca-so/whirlpool-sdk/node_modules/@project-serum/anchor": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.20.1.tgz", - "integrity": "sha512-2TuBmGUn9qeYz6sJINJlElrBuPsaUAtYyUsJ3XplEBf1pczrANAgs5ceJUFzdiqGEWLn+84ObSdBeChT/AXYFA==", - "dependencies": { - "@project-serum/borsh": "^0.2.2", - "@solana/web3.js": "^1.17.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "find": "^0.3.0", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, "node_modules/@orca-so/whirlpool-sdk/node_modules/axios": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.7" } }, - "node_modules/@orca-so/whirlpool-sdk/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@orca-so/whirlpool-sdk/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, "node_modules/@project-serum/anchor": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.21.0.tgz", - "integrity": "sha512-flRuW/F+iC8mitNokx82LOXyND7Dyk6n5UUPJpQv/+NfySFrNFlzuQZaBZJ4CG5g9s8HS/uaaIz1nVkDR8V/QA==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.20.1.tgz", + "integrity": "sha512-2TuBmGUn9qeYz6sJINJlElrBuPsaUAtYyUsJ3XplEBf1pczrANAgs5ceJUFzdiqGEWLn+84ObSdBeChT/AXYFA==", + "license": "(MIT OR Apache-2.0)", "dependencies": { - "@project-serum/borsh": "^0.2.4", + "@project-serum/borsh": "^0.2.2", "@solana/web3.js": "^1.17.0", "base64-js": "^1.5.1", "bn.js": "^5.1.2", "bs58": "^4.0.1", "buffer-layout": "^1.2.2", "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", "crypto-hash": "^1.3.0", "eventemitter3": "^4.0.7", "find": "^0.3.0", @@ -509,9 +499,10 @@ } }, "node_modules/@project-serum/anchor/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -520,14 +511,25 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } }, + "node_modules/@project-serum/anchor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@project-serum/borsh": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" @@ -539,65 +541,11 @@ "@solana/web3.js": "^1.2.0" } }, - "node_modules/@project-serum/serum": { - "version": "0.13.65", - "resolved": "https://registry.npmjs.org/@project-serum/serum/-/serum-0.13.65.tgz", - "integrity": "sha512-BHRqsTqPSfFB5p+MgI2pjvMBAQtO8ibTK2fYY96boIFkCI3TTwXDt2gUmspeChKO2pqHr5aKevmexzAcXxrSRA==", - "dependencies": { - "@project-serum/anchor": "^0.11.1", - "@solana/spl-token": "^0.1.6", - "@solana/web3.js": "^1.21.0", - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@project-serum/serum/node_modules/@project-serum/anchor": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.11.1.tgz", - "integrity": "sha512-oIdm4vTJkUy6GmE6JgqDAuQPKI7XM4TPJkjtoIzp69RZe0iAD9JP2XHx7lV1jLdYXeYHqDXfBt3zcq7W91K6PA==", - "dependencies": { - "@project-serum/borsh": "^0.2.2", - "@solana/web3.js": "^1.17.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.0", - "camelcase": "^5.3.1", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "find": "^0.3.0", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@project-serum/serum/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@project-serum/serum/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, "node_modules/@raydium-io/raydium-sdk": { "version": "1.3.1-beta.5", "resolved": "https://registry.npmjs.org/@raydium-io/raydium-sdk/-/raydium-sdk-1.3.1-beta.5.tgz", "integrity": "sha512-0j6Eg+Oa0KqV8+7Qz5e9KXyKSo7cA189mdorhZGZoRjI8Q6o77ADT+4HTqPhP/1ext2YSDRikU4zOdyfw4sTVw==", + "license": "GPL-3.0", "dependencies": { "@solana/buffer-layout": "^4.0.1", "@solana/spl-token": "^0.3.7", @@ -615,37 +563,28 @@ } }, "node_modules/@raydium-io/raydium-sdk/node_modules/@solana/spl-token": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.8.tgz", - "integrity": "sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.11.tgz", + "integrity": "sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==", + "license": "Apache-2.0", "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/buffer-layout-utils": "^0.2.0", + "@solana/spl-token-metadata": "^0.1.2", "buffer": "^6.0.3" }, "engines": { "node": ">=16" }, "peerDependencies": { - "@solana/web3.js": "^1.47.4" - } - }, - "node_modules/@raydium-io/raydium-sdk/node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "engines": { - "node": "*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" + "@solana/web3.js": "^1.88.0" } }, "node_modules/@solana/buffer-layout": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "license": "MIT", "dependencies": { "buffer": "~6.0.3" }, @@ -657,6 +596,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "license": "Apache-2.0", "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/web3.js": "^1.32.0", @@ -667,10 +607,112 @@ "node": ">= 10" } }, + "node_modules/@solana/codecs": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.0.0-preview.2.tgz", + "integrity": "sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-data-structures": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2", + "@solana/codecs-strings": "2.0.0-preview.2", + "@solana/options": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-core": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.0.0-preview.2.tgz", + "integrity": "sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-data-structures": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-preview.2.tgz", + "integrity": "sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2", + "@solana/errors": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-numbers": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.0.0-preview.2.tgz", + "integrity": "sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/errors": "2.0.0-preview.2" + } + }, + "node_modules/@solana/codecs-strings": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.0.0-preview.2.tgz", + "integrity": "sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2", + "@solana/errors": "2.0.0-preview.2" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22" + } + }, + "node_modules/@solana/errors": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.0.0-preview.2.tgz", + "integrity": "sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "commander": "^12.0.0" + }, + "bin": { + "errors": "bin/cli.js" + } + }, + "node_modules/@solana/errors/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@solana/errors/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@solana/options": { + "version": "2.0.0-preview.2", + "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.0.0-preview.2.tgz", + "integrity": "sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.0.0-preview.2", + "@solana/codecs-numbers": "2.0.0-preview.2" + } + }, "node_modules/@solana/spl-token": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz", "integrity": "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.5", "@solana/web3.js": "^1.21.0", @@ -683,66 +725,73 @@ "node": ">= 10" } }, + "node_modules/@solana/spl-token-metadata": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@solana/spl-token-metadata/-/spl-token-metadata-0.1.4.tgz", + "integrity": "sha512-N3gZ8DlW6NWDV28+vCCDJoTqaCZiF/jDUnk3o8GRkAFzHObiR60Bs1gXHBa8zCPdvOwiG6Z3dg5pg7+RW6XNsQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/codecs": "2.0.0-preview.2", + "@solana/spl-type-length-value": "0.1.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.91.6" + } + }, "node_modules/@solana/spl-token-swap": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@solana/spl-token-swap/-/spl-token-swap-0.1.4.tgz", "integrity": "sha512-q0vHo1m6UwqXTpKM4sk/gnPk8BopPJ+qx+qXkx0pMGiBep/66MAj7Drx186xStyqEXVuXtvgPEPIEREVJDKt/w==", + "license": "MIT", "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/web3.js": "^1.42.0", "bn.js": "^5.1.3" } }, - "node_modules/@solana/spl-token/node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "node_modules/@solana/spl-type-length-value": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@solana/spl-type-length-value/-/spl-type-length-value-0.1.0.tgz", + "integrity": "sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==", + "license": "Apache-2.0", + "dependencies": { + "buffer": "^6.0.3" + }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/@solana/web3.js": { - "version": "1.78.4", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.78.4.tgz", - "integrity": "sha512-up5VG1dK+GPhykmuMIozJZBbVqpm77vbOG6/r5dS7NBGZonwHfTLdBbsYc3rjmaQ4DpCXUa3tUc4RZHRORvZrw==", - "dependencies": { - "@babel/runtime": "^7.22.6", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.1", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.3.0", + "version": "1.95.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.2.tgz", + "integrity": "sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.8", + "@noble/curves": "^1.4.2", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", "bigint-buffer": "^1.1.5", "bn.js": "^5.2.1", "borsh": "^0.7.0", "bs58": "^4.0.1", "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.0", - "node-fetch": "^2.6.12", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" + "jayson": "^4.1.1", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^2.0.2" } }, - "node_modules/@solana/web3.js/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@solana/web3.js/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, "node_modules/@solana/web3.js/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -751,80 +800,67 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } }, - "node_modules/@solana/web3.js/node_modules/jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", + "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "node_modules/@swc/helpers": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", + "license": "Apache-2.0", "dependencies": { - "@types/node": "*" + "tslib": "^2.4.0" } }, - "node_modules/@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", - "dev": true, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "license": "MIT", "dependencies": { - "@types/chai": "*" + "@types/node": "*" } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==" - }, "node_modules/@types/node": { - "version": "20.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.4.tgz", - "integrity": "sha512-Y9vbIAoM31djQZrPYjpTLo0XlaSwOIsrlfE3LpulZeRblttsLQRFRlBAppW0LOxyT3ALj2M5vU1ucQQayQH3jA==" + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.0.0.tgz", + "integrity": "sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.11.1" + } + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" }, "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -833,6 +869,7 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -844,6 +881,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -852,6 +890,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" }, @@ -863,6 +902,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -878,6 +918,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -886,6 +927,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -894,6 +936,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -907,29 +950,23 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -937,14 +974,16 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -952,13 +991,14 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.0.tgz", + "integrity": "sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==", + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -977,13 +1017,28 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" + }, + "node_modules/big.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", + "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bigjs" + } }, "node_modules/bigint-buffer": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "bindings": "^1.3.0" }, @@ -992,9 +1047,10 @@ } }, "node_modules/bignumber.js": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", - "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } @@ -1003,6 +1059,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } @@ -1010,12 +1067,14 @@ "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" }, "node_modules/borsh": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.2.0", "bs58": "^4.0.0", @@ -1023,9 +1082,10 @@ } }, "node_modules/borsh/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -1034,6 +1094,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } @@ -1042,18 +1103,19 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "license": "MIT", "dependencies": { - "base-x": "^4.0.0" + "base-x": "^5.0.0" } }, "node_modules/buffer": { @@ -1074,6 +1136,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -1083,15 +1146,17 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", + "license": "MIT", "engines": { "node": ">=4.5" } }, "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -1104,40 +1169,28 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "node": ">=10" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1149,19 +1202,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -1175,6 +1220,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1185,12 +1231,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -1201,44 +1249,29 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1252,6 +1285,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -1260,9 +1294,10 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -1278,34 +1313,26 @@ "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" }, "node_modules/decimal.js-light": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" }, "node_modules/delay": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -1317,6 +1344,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -1325,6 +1353,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -1336,20 +1365,32 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/enquirer": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -1361,20 +1402,23 @@ "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "license": "MIT", "dependencies": { "es6-promise": "^4.0.3" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1383,6 +1427,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -1394,6 +1439,7 @@ "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -1450,6 +1496,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -1462,6 +1509,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -1476,6 +1524,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "license": "Apache-2.0", "engines": { "node": ">=4" } @@ -1484,6 +1533,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", "engines": { "node": ">=10" } @@ -1492,6 +1542,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -1505,6 +1556,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "license": "Apache-2.0", "engines": { "node": ">=4" } @@ -1513,6 +1565,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -1522,9 +1575,10 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1536,6 +1590,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1544,6 +1599,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1555,6 +1611,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1563,6 +1620,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1571,6 +1629,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -1578,7 +1637,8 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, "node_modules/eyes": { "version": "0.1.8", @@ -1591,32 +1651,51 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" }, "node_modules/fast-stable-stringify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "license": "MIT" + }, + "node_modules/fastestsmallesttextencoderdecoder": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", + "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", + "license": "CC0-1.0", + "peer": true }, "node_modules/fecha": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -1627,22 +1706,26 @@ "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" }, "node_modules/find": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/find/-/find-0.3.0.tgz", "integrity": "sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==", + "license": "MIT", "dependencies": { "traverse-chain": "~0.1.0" } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -1650,20 +1733,22 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -1677,6 +1762,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -1689,34 +1775,30 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "license": "MIT" }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1736,6 +1818,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1744,9 +1827,10 @@ } }, "node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -1761,6 +1845,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1769,6 +1854,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { "ms": "^2.0.0" } @@ -1790,12 +1876,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -1804,6 +1892,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1819,6 +1908,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -1827,6 +1917,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1835,12 +1927,14 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1849,6 +1943,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1857,6 +1952,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1867,30 +1963,67 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/isomorphic-ws": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "license": "MIT", "peerDependencies": { "ws": "*" } }, + "node_modules/jayson": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.1.tgz", + "integrity": "sha512-5ZWm4Q/0DHPyeMfAsrwViwUS2DMVsQgWh8bEEIVTkfb3DzHZ2L3G5WUnF+AKmGjjM9r1uAv73SaqC1/U4RL45w==", + "license": "MIT", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.5.10" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" + }, "node_modules/js-sha256": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1899,20 +2032,29 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/jsonparse": { "version": "1.3.1", @@ -1920,12 +2062,14 @@ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -1937,10 +2081,20 @@ "node": "*" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1949,6 +2103,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -1960,50 +2115,35 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "license": "MIT" }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -2012,6 +2152,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -2023,6 +2164,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2033,12 +2175,14 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -2048,12 +2192,14 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -2063,6 +2209,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -2079,9 +2226,10 @@ } }, "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "license": "MIT", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -2093,6 +2241,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2101,21 +2250,23 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -2124,12 +2275,14 @@ "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -2141,6 +2294,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2149,23 +2303,22 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -2174,6 +2327,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -2182,6 +2336,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -2193,25 +2348,29 @@ "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -2223,6 +2382,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2231,6 +2391,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2239,6 +2400,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -2247,6 +2409,8 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -2258,12 +2422,16 @@ } }, "node_modules/rpc-websockets": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.6.0.tgz", - "integrity": "sha512-Jgcs8q6t8Go98dEulww1x7RysgTkzpCMelVxZW4hvuyFtOGpeUz9prpr2KjUa/usqxgFCd9Tu3+yhHEP9GVmiQ==", - "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.2.tgz", + "integrity": "sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw==", + "license": "LGPL-3.0-only", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/uuid": "^8.3.4", + "@types/ws": "^8.2.2", + "buffer": "^6.0.3", + "eventemitter3": "^5.0.1", "uuid": "^8.3.2", "ws": "^8.5.0" }, @@ -2276,10 +2444,26 @@ "utf-8-validate": "^5.0.2" } }, + "node_modules/rpc-websockets/node_modules/@types/ws": { + "version": "8.5.11", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.11.tgz", + "integrity": "sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rpc-websockets/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -2313,15 +2497,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2333,6 +2516,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2344,6 +2528,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } @@ -2351,12 +2536,14 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -2373,6 +2560,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -2381,12 +2569,14 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2400,6 +2590,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2411,6 +2602,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -2419,14 +2611,16 @@ } }, "node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2435,9 +2629,10 @@ } }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -2450,14 +2645,15 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -2467,7 +2663,8 @@ "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/text-encoding-utf-8": { "version": "1.0.2", @@ -2477,12 +2674,14 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -2491,6 +2690,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -2501,43 +2701,51 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, "node_modules/toformat": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/toformat/-/toformat-2.0.0.tgz", - "integrity": "sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ==" + "integrity": "sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ==", + "license": "MIT" }, "node_modules/toml": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/traverse-chain": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz", - "integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==" + "integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==", + "license": "MIT" }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" }, "node_modules/tweetnacl-ts": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl-ts/-/tweetnacl-ts-1.0.3.tgz", "integrity": "sha512-C5I/dWf6xjAXaCDlf84T4HvozU/8ycAlq5WRllF1hAeeq5390tfXD+bNas5bhEV0HMSOx8bsQYpLjPl8wfnEeQ==", "dev": true, + "license": "UNLICENSED", "dependencies": { "tslib": "^1" } @@ -2546,12 +2754,14 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -2559,19 +2769,11 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2583,6 +2785,7 @@ "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2591,10 +2794,17 @@ "node": ">=4.2.0" } }, + "node_modules/undici-types": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.11.1.tgz", + "integrity": "sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==", + "license": "MIT" + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -2604,6 +2814,7 @@ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -2616,6 +2827,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -2623,17 +2835,20 @@ "node_modules/v8-compile-cache": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "license": "MIT" }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -2643,6 +2858,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -2653,10 +2869,20 @@ "node": ">= 8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2672,12 +2898,14 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -2698,19 +2926,16 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -2728,6 +2953,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } diff --git a/packages/kamino-sdk/package.json b/packages/kamino-sdk/package.json index cac7f397..c3867f28 100644 --- a/packages/kamino-sdk/package.json +++ b/packages/kamino-sdk/package.json @@ -27,33 +27,23 @@ }, "homepage": "https://github.com/hubbleprotocol/hubble-common/blob/master/packages/kamino-sdk", "devDependencies": { - "@types/bn.js": "^5.1.0", - "@types/chai-as-promised": "^7.1.4", - "bs58": "^5.0.0", - "chai": "^4.3.6", "tweetnacl-ts": "^1.0.3" }, "dependencies": { + "@coral-xyz/anchor": "^0.29.0", "@coral-xyz/borsh": "^0.30.1", "@hubbleprotocol/hubble-config": "^5.0.0", - "@hubbleprotocol/hubble-idl": "^5.0.16", "@hubbleprotocol/scope-sdk": "^5.0.20", "@jup-ag/api": "^6.0.1", "@orca-so/sdk": "^1.2.26", "@orca-so/whirlpool-client-sdk": "^0.0.8", "@orca-so/whirlpool-sdk": "^0.4.2", - "@project-serum/anchor": "^0.21.0", - "@project-serum/borsh": "^0.2.5", - "@project-serum/serum": "^0.13.65", "@raydium-io/raydium-sdk": "=1.3.1-beta.5", - "@solana/buffer-layout": "^4.0.1", "@solana/spl-token": "^0.1.8", - "@types/mocha": "^10.0.1", + "@solana/web3.js": "^1.78.4", "axios": "^1.2.6", - "bn.js": "^5.2.1" - }, - "peerDependencies": { - "@solana/web3.js": "~1.78.4", + "bn.js": "^5.2.1", + "bs58": "^6.0.0", "decimal.js": "^10.3.1" }, "publishConfig": { diff --git a/packages/kamino-sdk/src/Kamino.ts b/packages/kamino-sdk/src/Kamino.ts index 04017fc9..75afdbbe 100644 --- a/packages/kamino-sdk/src/Kamino.ts +++ b/packages/kamino-sdk/src/Kamino.ts @@ -16,14 +16,9 @@ import { Transaction, ParsedAccountData, } from '@solana/web3.js'; +import bs58 from 'bs58'; import { setKaminoProgramId } from './kamino-client/programId'; -import { - GlobalConfig, - TermsSignature, - WhirlpoolStrategy, - WhirlpoolStrategyFields, - CollateralInfos, -} from './kamino-client/accounts'; +import { GlobalConfig, TermsSignature, WhirlpoolStrategy, CollateralInfos } from './kamino-client/accounts'; import Decimal from 'decimal.js'; import { initializeTickArray, @@ -106,7 +101,6 @@ import { ProfiledFunctionExecution, noopProfiledFunctionExecution, MaybeTokensBalances, - ProportionalMintingMethod, PerformanceFees, PriceReferenceType, InputRebalanceFieldInfo, @@ -124,6 +118,7 @@ import { stripTwapZeros, getTokenNameFromCollateralInfo, keyOrDefault, + getMintDecimals, } from './utils'; import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, MintInfo, MintLayout, u64, Token } from '@solana/spl-token'; import { @@ -166,7 +161,7 @@ import { } from './kamino-client/instructions'; import BN from 'bn.js'; import StrategyWithAddress from './models/StrategyWithAddress'; -import { Idl, Program, Provider } from '@project-serum/anchor'; +import { Idl, Program, AnchorProvider } from '@coral-xyz/anchor'; import { Rebalancing, Uninitialized } from './kamino-client/types/StrategyStatus'; import { FRONTEND_KAMINO_STRATEGY_URL, METADATA_PROGRAM_ID, U64_MAX } from './constants'; import { @@ -199,25 +194,16 @@ import { import { signTerms, SignTermsAccounts, SignTermsArgs } from './kamino-client/instructions'; import { Pool } from './services/RaydiumPoolsResponse'; import { - UpdateDepositCap, - UpdateDepositCapIxn, UpdateWithdrawFee, - UpdateDepositFee, UpdateReward0Fee, UpdateReward1Fee, UpdateReward2Fee, UpdateCollectFeesFee, UpdateRebalanceType, UpdateLookupTable, - UpdateDepositMintingMethod, UpdateReferencePriceType, } from './kamino-client/types/StrategyConfigOption'; -import { - DefaultDepositCap, - DefaultDepositCapPerIx, - DefaultPerformanceFeeBps, - DefaultWithdrawFeeBps, -} from './constants/DefaultStrategyConfig'; +import { DefaultPerformanceFeeBps } from './constants/DefaultStrategyConfig'; import { ADDRESS_LUT_PROGRAM_ID, CONSENSUS_ID, @@ -245,7 +231,6 @@ import { RebalanceMethod, TakeProfitMethod, } from './utils/CreationParameters'; -import { getMintDecimals } from '@project-serum/serum/lib/market'; import { DOLAR_BASED, PROPORTION_BASED } from './constants/deposit_method'; import { JupService } from './services/JupService'; import { @@ -348,7 +333,6 @@ import { getBinFromBinArray, getBinFromBinArrays, getBinIdFromPriceWithDecimals, - getPriceOfBinByBinId, getPriceOfBinByBinIdWithDecimals, MeteoraPosition, } from './utils/meteora'; @@ -356,7 +340,6 @@ import { BinArray, LbPair, PositionV2 } from './meteora_client/accounts'; import LbPairWithAddress from './models/LbPairWithAddress'; import { initializeBinArray, InitializeBinArrayAccounts, InitializeBinArrayArgs } from './meteora_client/instructions'; import { PubkeyHashMap } from './utils/pubkey'; -import { findProgramAddressSync } from '@project-serum/anchor/dist/cjs/utils/pubkey'; export const KAMINO_IDL = KaminoIdl; export class Kamino { @@ -365,7 +348,7 @@ export class Kamino { readonly _config: HubbleConfig; private _globalConfig: PublicKey; private readonly _scope: Scope; - private readonly _provider: Provider; + private readonly _provider: AnchorProvider; private readonly _kaminoProgram: Program; private readonly _kaminoProgramId: PublicKey; private readonly _orcaService: OrcaService; @@ -394,7 +377,7 @@ export class Kamino { this._connection = connection; this._config = getConfigByCluster(cluster); - this._provider = new Provider(connection, getReadOnlyWallet(), { + this._provider = new AnchorProvider(connection, getReadOnlyWallet(), { commitment: connection.commitment, }); if (programId && programId.equals(STAGING_KAMINO_PROGRAM_ID)) { @@ -1243,7 +1226,13 @@ export class Kamino { getAllStrategiesWithFilters = async (strategyFilters: StrategiesFilters): Promise> => { let filters: GetProgramAccountsFilter[] = []; filters.push({ - dataSize: 4064, + dataSize: WhirlpoolStrategy.layout.span + 8, + }); + filters.push({ + memcmp: { + offset: 0, + bytes: bs58.encode(WhirlpoolStrategy.discriminator), + }, }); if (strategyFilters.owner) { @@ -1282,10 +1271,14 @@ export class Kamino { }); } - return (await this._kaminoProgram.account.whirlpoolStrategy.all(filters)).map((x) => { + return ( + await this._connection.getProgramAccounts(this._kaminoProgramId, { + filters, + }) + ).map((x) => { const res: StrategyWithAddress = { - strategy: new WhirlpoolStrategy(x.account as WhirlpoolStrategyFields), - address: x.publicKey, + strategy: WhirlpoolStrategy.decode(x.account.data), + address: x.pubkey, }; return res; }); @@ -1302,14 +1295,25 @@ export class Kamino { * @param kTokenMint - mint address of the kToken */ getStrategyByKTokenMint = async (kTokenMint: PublicKey): Promise => { - const matchingStrategies = await this._kaminoProgram.account.whirlpoolStrategy.all([ - { - memcmp: { - bytes: kTokenMint.toBase58(), - offset: 720, + const matchingStrategies = await this._connection.getProgramAccounts(this._kaminoProgram.programId, { + filters: [ + { + dataSize: WhirlpoolStrategy.layout.span + 8, }, - }, - ]); + { + memcmp: { + offset: 0, + bytes: bs58.encode(WhirlpoolStrategy.discriminator), + }, + }, + { + memcmp: { + bytes: kTokenMint.toBase58(), + offset: 720, + }, + }, + ], + }); if (matchingStrategies.length === 0) { return null; @@ -1317,13 +1321,13 @@ export class Kamino { if (matchingStrategies.length > 1) { throw new Error( `Multiple strategies found for kToken mint: ${kTokenMint.toBase58()}. Strategies found: ${matchingStrategies.map( - (x) => x.publicKey.toBase58() + (x) => x.pubkey.toBase58() )}` ); } - const decodedStrategy = new WhirlpoolStrategy(matchingStrategies[0].account as WhirlpoolStrategyFields); + const decodedStrategy = WhirlpoolStrategy.decode(matchingStrategies[0].account.data); return { - address: matchingStrategies[0].publicKey, + address: matchingStrategies[0].pubkey, strategy: decodedStrategy, }; }; @@ -4684,7 +4688,7 @@ export class Kamino { tokenBTokenProgram: keyOrDefault(tokenBTokenProgram, TOKEN_PROGRAM_ID), memoProgram: MEMO_PROGRAM_ID, }; - const [poolTickArrayBitmap, _poolTickArrayBitmapBump] = findProgramAddressSync( + const [poolTickArrayBitmap, _poolTickArrayBitmapBump] = PublicKey.findProgramAddressSync( [Buffer.from('pool_tick_array_bitmap_extension'), pool.toBuffer()], RAYDIUM_PROGRAM_ID ); diff --git a/packages/kamino-sdk/src/meteora_client/accounts/BinArray.ts b/packages/kamino-sdk/src/meteora_client/accounts/BinArray.ts index 6f064cd1..9a48f182 100644 --- a/packages/kamino-sdk/src/meteora_client/accounts/BinArray.ts +++ b/packages/kamino-sdk/src/meteora_client/accounts/BinArray.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from "@solana/web3.js" import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -58,14 +58,15 @@ export class BinArray { static async fetch( c: Connection, - address: PublicKey + address: PublicKey, + programId: PublicKey = PROGRAM_ID ): Promise { const info = await c.getAccountInfo(address) if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -74,7 +75,8 @@ export class BinArray { static async fetchMultiple( c: Connection, - addresses: PublicKey[] + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses) @@ -82,7 +84,7 @@ export class BinArray { if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } diff --git a/packages/kamino-sdk/src/meteora_client/accounts/BinArrayBitmapExtension.ts b/packages/kamino-sdk/src/meteora_client/accounts/BinArrayBitmapExtension.ts index ba5b4b2c..724b47c7 100644 --- a/packages/kamino-sdk/src/meteora_client/accounts/BinArrayBitmapExtension.ts +++ b/packages/kamino-sdk/src/meteora_client/accounts/BinArrayBitmapExtension.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from "@solana/web3.js" import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -45,14 +45,15 @@ export class BinArrayBitmapExtension { static async fetch( c: Connection, - address: PublicKey + address: PublicKey, + programId: PublicKey = PROGRAM_ID ): Promise { const info = await c.getAccountInfo(address) if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -61,7 +62,8 @@ export class BinArrayBitmapExtension { static async fetchMultiple( c: Connection, - addresses: PublicKey[] + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses) @@ -69,7 +71,7 @@ export class BinArrayBitmapExtension { if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } diff --git a/packages/kamino-sdk/src/meteora_client/accounts/LbPair.ts b/packages/kamino-sdk/src/meteora_client/accounts/LbPair.ts index bf26af63..7be7b776 100644 --- a/packages/kamino-sdk/src/meteora_client/accounts/LbPair.ts +++ b/packages/kamino-sdk/src/meteora_client/accounts/LbPair.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from "@solana/web3.js" import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -16,8 +16,10 @@ export interface LbPairFields { activeId: number /** Bin step. Represent the price increment / decrement. */ binStep: number - /** Status of the pair */ + /** Status of the pair. Check PairStatus enum. */ status: number + requireBaseFactorSeed: number + baseFactorSeed: Array padding1: Array /** Token X mint */ tokenXMint: PublicKey @@ -40,7 +42,21 @@ export interface LbPairFields { /** Last time the pool fee parameter was updated */ lastUpdatedAt: BN /** Whitelisted wallet */ - whitelistedWallet: Array + whitelistedWallet: PublicKey + /** Address allowed to swap when the current slot is greater than or equal to the pre-activation slot. The pre-activation slot is calculated as `activation_slot - pre_activation_slot_duration`. */ + preActivationSwapAddress: PublicKey + /** Base keypair. Only required for permission pair */ + baseKey: PublicKey + /** Slot to enable the pair. Only applicable for permission pair. */ + activationSlot: BN + /** Number of slot before activation slot. Used to calculate pre-activation slot for pre_activation_swap_address */ + preActivationSlotDuration: BN + /** _padding2 is reclaimed free space from swap_cap_deactivate_slot and swap_cap_amount before, BE CAREFUL FOR TOMBSTONE WHEN REUSE !! */ + padding2: Array + /** Liquidity lock duration for positions which created before activate. Only applicable for permission pair. */ + lockDurationsInSlot: BN + /** Pool creator */ + creator: PublicKey /** Reserved space for future use */ reserved: Array } @@ -57,8 +73,10 @@ export interface LbPairJSON { activeId: number /** Bin step. Represent the price increment / decrement. */ binStep: number - /** Status of the pair */ + /** Status of the pair. Check PairStatus enum. */ status: number + requireBaseFactorSeed: number + baseFactorSeed: Array padding1: Array /** Token X mint */ tokenXMint: string @@ -81,7 +99,21 @@ export interface LbPairJSON { /** Last time the pool fee parameter was updated */ lastUpdatedAt: string /** Whitelisted wallet */ - whitelistedWallet: Array + whitelistedWallet: string + /** Address allowed to swap when the current slot is greater than or equal to the pre-activation slot. The pre-activation slot is calculated as `activation_slot - pre_activation_slot_duration`. */ + preActivationSwapAddress: string + /** Base keypair. Only required for permission pair */ + baseKey: string + /** Slot to enable the pair. Only applicable for permission pair. */ + activationSlot: string + /** Number of slot before activation slot. Used to calculate pre-activation slot for pre_activation_swap_address */ + preActivationSlotDuration: string + /** _padding2 is reclaimed free space from swap_cap_deactivate_slot and swap_cap_amount before, BE CAREFUL FOR TOMBSTONE WHEN REUSE !! */ + padding2: Array + /** Liquidity lock duration for positions which created before activate. Only applicable for permission pair. */ + lockDurationsInSlot: string + /** Pool creator */ + creator: string /** Reserved space for future use */ reserved: Array } @@ -98,8 +130,10 @@ export class LbPair { readonly activeId: number /** Bin step. Represent the price increment / decrement. */ readonly binStep: number - /** Status of the pair */ + /** Status of the pair. Check PairStatus enum. */ readonly status: number + readonly requireBaseFactorSeed: number + readonly baseFactorSeed: Array readonly padding1: Array /** Token X mint */ readonly tokenXMint: PublicKey @@ -122,7 +156,21 @@ export class LbPair { /** Last time the pool fee parameter was updated */ readonly lastUpdatedAt: BN /** Whitelisted wallet */ - readonly whitelistedWallet: Array + readonly whitelistedWallet: PublicKey + /** Address allowed to swap when the current slot is greater than or equal to the pre-activation slot. The pre-activation slot is calculated as `activation_slot - pre_activation_slot_duration`. */ + readonly preActivationSwapAddress: PublicKey + /** Base keypair. Only required for permission pair */ + readonly baseKey: PublicKey + /** Slot to enable the pair. Only applicable for permission pair. */ + readonly activationSlot: BN + /** Number of slot before activation slot. Used to calculate pre-activation slot for pre_activation_swap_address */ + readonly preActivationSlotDuration: BN + /** _padding2 is reclaimed free space from swap_cap_deactivate_slot and swap_cap_amount before, BE CAREFUL FOR TOMBSTONE WHEN REUSE !! */ + readonly padding2: Array + /** Liquidity lock duration for positions which created before activate. Only applicable for permission pair. */ + readonly lockDurationsInSlot: BN + /** Pool creator */ + readonly creator: PublicKey /** Reserved space for future use */ readonly reserved: Array @@ -139,7 +187,9 @@ export class LbPair { borsh.i32("activeId"), borsh.u16("binStep"), borsh.u8("status"), - borsh.array(borsh.u8(), 5, "padding1"), + borsh.u8("requireBaseFactorSeed"), + borsh.array(borsh.u8(), 2, "baseFactorSeed"), + borsh.array(borsh.u8(), 2, "padding1"), borsh.publicKey("tokenXMint"), borsh.publicKey("tokenYMint"), borsh.publicKey("reserveX"), @@ -150,8 +200,15 @@ export class LbPair { borsh.publicKey("oracle"), borsh.array(borsh.u64(), 16, "binArrayBitmap"), borsh.i64("lastUpdatedAt"), - borsh.array(borsh.publicKey(), 3, "whitelistedWallet"), - borsh.array(borsh.u8(), 88, "reserved"), + borsh.publicKey("whitelistedWallet"), + borsh.publicKey("preActivationSwapAddress"), + borsh.publicKey("baseKey"), + borsh.u64("activationSlot"), + borsh.u64("preActivationSlotDuration"), + borsh.array(borsh.u8(), 8, "padding2"), + borsh.u64("lockDurationsInSlot"), + borsh.publicKey("creator"), + borsh.array(borsh.u8(), 24, "reserved"), ]) constructor(fields: LbPairFields) { @@ -163,6 +220,8 @@ export class LbPair { this.activeId = fields.activeId this.binStep = fields.binStep this.status = fields.status + this.requireBaseFactorSeed = fields.requireBaseFactorSeed + this.baseFactorSeed = fields.baseFactorSeed this.padding1 = fields.padding1 this.tokenXMint = fields.tokenXMint this.tokenYMint = fields.tokenYMint @@ -177,19 +236,27 @@ export class LbPair { this.binArrayBitmap = fields.binArrayBitmap this.lastUpdatedAt = fields.lastUpdatedAt this.whitelistedWallet = fields.whitelistedWallet + this.preActivationSwapAddress = fields.preActivationSwapAddress + this.baseKey = fields.baseKey + this.activationSlot = fields.activationSlot + this.preActivationSlotDuration = fields.preActivationSlotDuration + this.padding2 = fields.padding2 + this.lockDurationsInSlot = fields.lockDurationsInSlot + this.creator = fields.creator this.reserved = fields.reserved } static async fetch( c: Connection, - address: PublicKey + address: PublicKey, + programId: PublicKey = PROGRAM_ID ): Promise { const info = await c.getAccountInfo(address) if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -198,7 +265,8 @@ export class LbPair { static async fetchMultiple( c: Connection, - addresses: PublicKey[] + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses) @@ -206,7 +274,7 @@ export class LbPair { if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -230,6 +298,8 @@ export class LbPair { activeId: dec.activeId, binStep: dec.binStep, status: dec.status, + requireBaseFactorSeed: dec.requireBaseFactorSeed, + baseFactorSeed: dec.baseFactorSeed, padding1: dec.padding1, tokenXMint: dec.tokenXMint, tokenYMint: dec.tokenYMint, @@ -246,6 +316,13 @@ export class LbPair { binArrayBitmap: dec.binArrayBitmap, lastUpdatedAt: dec.lastUpdatedAt, whitelistedWallet: dec.whitelistedWallet, + preActivationSwapAddress: dec.preActivationSwapAddress, + baseKey: dec.baseKey, + activationSlot: dec.activationSlot, + preActivationSlotDuration: dec.preActivationSlotDuration, + padding2: dec.padding2, + lockDurationsInSlot: dec.lockDurationsInSlot, + creator: dec.creator, reserved: dec.reserved, }) } @@ -260,6 +337,8 @@ export class LbPair { activeId: this.activeId, binStep: this.binStep, status: this.status, + requireBaseFactorSeed: this.requireBaseFactorSeed, + baseFactorSeed: this.baseFactorSeed, padding1: this.padding1, tokenXMint: this.tokenXMint.toString(), tokenYMint: this.tokenYMint.toString(), @@ -271,7 +350,14 @@ export class LbPair { oracle: this.oracle.toString(), binArrayBitmap: this.binArrayBitmap.map((item) => item.toString()), lastUpdatedAt: this.lastUpdatedAt.toString(), - whitelistedWallet: this.whitelistedWallet.map((item) => item.toString()), + whitelistedWallet: this.whitelistedWallet.toString(), + preActivationSwapAddress: this.preActivationSwapAddress.toString(), + baseKey: this.baseKey.toString(), + activationSlot: this.activationSlot.toString(), + preActivationSlotDuration: this.preActivationSlotDuration.toString(), + padding2: this.padding2, + lockDurationsInSlot: this.lockDurationsInSlot.toString(), + creator: this.creator.toString(), reserved: this.reserved, } } @@ -286,6 +372,8 @@ export class LbPair { activeId: obj.activeId, binStep: obj.binStep, status: obj.status, + requireBaseFactorSeed: obj.requireBaseFactorSeed, + baseFactorSeed: obj.baseFactorSeed, padding1: obj.padding1, tokenXMint: new PublicKey(obj.tokenXMint), tokenYMint: new PublicKey(obj.tokenYMint), @@ -299,9 +387,14 @@ export class LbPair { oracle: new PublicKey(obj.oracle), binArrayBitmap: obj.binArrayBitmap.map((item) => new BN(item)), lastUpdatedAt: new BN(obj.lastUpdatedAt), - whitelistedWallet: obj.whitelistedWallet.map( - (item) => new PublicKey(item) - ), + whitelistedWallet: new PublicKey(obj.whitelistedWallet), + preActivationSwapAddress: new PublicKey(obj.preActivationSwapAddress), + baseKey: new PublicKey(obj.baseKey), + activationSlot: new BN(obj.activationSlot), + preActivationSlotDuration: new BN(obj.preActivationSlotDuration), + padding2: obj.padding2, + lockDurationsInSlot: new BN(obj.lockDurationsInSlot), + creator: new PublicKey(obj.creator), reserved: obj.reserved, }) } diff --git a/packages/kamino-sdk/src/meteora_client/accounts/Oracle.ts b/packages/kamino-sdk/src/meteora_client/accounts/Oracle.ts index 802ea3d3..4d02cb97 100644 --- a/packages/kamino-sdk/src/meteora_client/accounts/Oracle.ts +++ b/packages/kamino-sdk/src/meteora_client/accounts/Oracle.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from "@solana/web3.js" import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -48,14 +48,15 @@ export class Oracle { static async fetch( c: Connection, - address: PublicKey + address: PublicKey, + programId: PublicKey = PROGRAM_ID ): Promise { const info = await c.getAccountInfo(address) if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -64,7 +65,8 @@ export class Oracle { static async fetchMultiple( c: Connection, - addresses: PublicKey[] + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses) @@ -72,7 +74,7 @@ export class Oracle { if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } diff --git a/packages/kamino-sdk/src/meteora_client/accounts/Position.ts b/packages/kamino-sdk/src/meteora_client/accounts/Position.ts index 891b93e9..102ae958 100644 --- a/packages/kamino-sdk/src/meteora_client/accounts/Position.ts +++ b/packages/kamino-sdk/src/meteora_client/accounts/Position.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from "@solana/web3.js" import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -124,14 +124,15 @@ export class Position { static async fetch( c: Connection, - address: PublicKey + address: PublicKey, + programId: PublicKey = PROGRAM_ID ): Promise { const info = await c.getAccountInfo(address) if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -140,7 +141,8 @@ export class Position { static async fetchMultiple( c: Connection, - addresses: PublicKey[] + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses) @@ -148,7 +150,7 @@ export class Position { if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } diff --git a/packages/kamino-sdk/src/meteora_client/accounts/PositionV2.ts b/packages/kamino-sdk/src/meteora_client/accounts/PositionV2.ts index 9a17218b..078bb5d4 100644 --- a/packages/kamino-sdk/src/meteora_client/accounts/PositionV2.ts +++ b/packages/kamino-sdk/src/meteora_client/accounts/PositionV2.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from "@solana/web3.js" import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -27,6 +27,14 @@ export interface PositionV2Fields { totalClaimedFeeYAmount: BN /** Total claimed rewards */ totalClaimedRewards: Array + /** Operator of position */ + operator: PublicKey + /** Slot which the locked liquidity can be withdraw */ + lockReleaseSlot: BN + /** Is the position subjected to liquidity locking for the launch pool. */ + subjectedToBootstrapLiquidityLocking: number + /** Address is able to claim fee in this position, only valid for bootstrap_liquidity_position */ + feeOwner: PublicKey /** Reserved space for future use */ reserved: Array } @@ -54,6 +62,14 @@ export interface PositionV2JSON { totalClaimedFeeYAmount: string /** Total claimed rewards */ totalClaimedRewards: Array + /** Operator of position */ + operator: string + /** Slot which the locked liquidity can be withdraw */ + lockReleaseSlot: string + /** Is the position subjected to liquidity locking for the launch pool. */ + subjectedToBootstrapLiquidityLocking: number + /** Address is able to claim fee in this position, only valid for bootstrap_liquidity_position */ + feeOwner: string /** Reserved space for future use */ reserved: Array } @@ -81,6 +97,14 @@ export class PositionV2 { readonly totalClaimedFeeYAmount: BN /** Total claimed rewards */ readonly totalClaimedRewards: Array + /** Operator of position */ + readonly operator: PublicKey + /** Slot which the locked liquidity can be withdraw */ + readonly lockReleaseSlot: BN + /** Is the position subjected to liquidity locking for the launch pool. */ + readonly subjectedToBootstrapLiquidityLocking: number + /** Address is able to claim fee in this position, only valid for bootstrap_liquidity_position */ + readonly feeOwner: PublicKey /** Reserved space for future use */ readonly reserved: Array @@ -100,7 +124,11 @@ export class PositionV2 { borsh.u64("totalClaimedFeeXAmount"), borsh.u64("totalClaimedFeeYAmount"), borsh.array(borsh.u64(), 2, "totalClaimedRewards"), - borsh.array(borsh.u8(), 160, "reserved"), + borsh.publicKey("operator"), + borsh.u64("lockReleaseSlot"), + borsh.u8("subjectedToBootstrapLiquidityLocking"), + borsh.publicKey("feeOwner"), + borsh.array(borsh.u8(), 87, "reserved"), ]) constructor(fields: PositionV2Fields) { @@ -119,19 +147,25 @@ export class PositionV2 { this.totalClaimedFeeXAmount = fields.totalClaimedFeeXAmount this.totalClaimedFeeYAmount = fields.totalClaimedFeeYAmount this.totalClaimedRewards = fields.totalClaimedRewards + this.operator = fields.operator + this.lockReleaseSlot = fields.lockReleaseSlot + this.subjectedToBootstrapLiquidityLocking = + fields.subjectedToBootstrapLiquidityLocking + this.feeOwner = fields.feeOwner this.reserved = fields.reserved } static async fetch( c: Connection, - address: PublicKey + address: PublicKey, + programId: PublicKey = PROGRAM_ID ): Promise { const info = await c.getAccountInfo(address) if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -140,7 +174,8 @@ export class PositionV2 { static async fetchMultiple( c: Connection, - addresses: PublicKey[] + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses) @@ -148,7 +183,7 @@ export class PositionV2 { if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -183,6 +218,11 @@ export class PositionV2 { totalClaimedFeeXAmount: dec.totalClaimedFeeXAmount, totalClaimedFeeYAmount: dec.totalClaimedFeeYAmount, totalClaimedRewards: dec.totalClaimedRewards, + operator: dec.operator, + lockReleaseSlot: dec.lockReleaseSlot, + subjectedToBootstrapLiquidityLocking: + dec.subjectedToBootstrapLiquidityLocking, + feeOwner: dec.feeOwner, reserved: dec.reserved, }) } @@ -202,6 +242,11 @@ export class PositionV2 { totalClaimedRewards: this.totalClaimedRewards.map((item) => item.toString() ), + operator: this.operator.toString(), + lockReleaseSlot: this.lockReleaseSlot.toString(), + subjectedToBootstrapLiquidityLocking: + this.subjectedToBootstrapLiquidityLocking, + feeOwner: this.feeOwner.toString(), reserved: this.reserved, } } @@ -221,6 +266,11 @@ export class PositionV2 { totalClaimedFeeXAmount: new BN(obj.totalClaimedFeeXAmount), totalClaimedFeeYAmount: new BN(obj.totalClaimedFeeYAmount), totalClaimedRewards: obj.totalClaimedRewards.map((item) => new BN(item)), + operator: new PublicKey(obj.operator), + lockReleaseSlot: new BN(obj.lockReleaseSlot), + subjectedToBootstrapLiquidityLocking: + obj.subjectedToBootstrapLiquidityLocking, + feeOwner: new PublicKey(obj.feeOwner), reserved: obj.reserved, }) } diff --git a/packages/kamino-sdk/src/meteora_client/accounts/PresetParameter.ts b/packages/kamino-sdk/src/meteora_client/accounts/PresetParameter.ts index 80a0a6a9..8555ba13 100644 --- a/packages/kamino-sdk/src/meteora_client/accounts/PresetParameter.ts +++ b/packages/kamino-sdk/src/meteora_client/accounts/PresetParameter.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from "@solana/web3.js" import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -104,14 +104,15 @@ export class PresetParameter { static async fetch( c: Connection, - address: PublicKey + address: PublicKey, + programId: PublicKey = PROGRAM_ID ): Promise { const info = await c.getAccountInfo(address) if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } @@ -120,7 +121,8 @@ export class PresetParameter { static async fetchMultiple( c: Connection, - addresses: PublicKey[] + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses) @@ -128,7 +130,7 @@ export class PresetParameter { if (info === null) { return null } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program") } diff --git a/packages/kamino-sdk/src/meteora_client/errors/anchor.ts b/packages/kamino-sdk/src/meteora_client/errors/anchor.ts index a4f79a25..f40da698 100644 --- a/packages/kamino-sdk/src/meteora_client/errors/anchor.ts +++ b/packages/kamino-sdk/src/meteora_client/errors/anchor.ts @@ -25,6 +25,7 @@ export type AnchorError = | ConstraintMintFreezeAuthority | ConstraintMintDecimals | ConstraintSpace + | ConstraintAccountIsNone | RequireViolated | RequireEqViolated | RequireKeysEqViolated @@ -50,7 +51,6 @@ export type AnchorError = | AccountSysvarMismatch | AccountReallocExceedsLimit | AccountDuplicateReallocs - | StateInvalidAddress | DeclaredProgramIdMismatch | Deprecated @@ -138,10 +138,10 @@ export class ConstraintHasOne extends Error { static readonly code = 2001 readonly code = 2001 readonly name = "ConstraintHasOne" - readonly msg = "A has_one constraint was violated" + readonly msg = "A has one constraint was violated" constructor(readonly logs?: string[]) { - super("2001: A has_one constraint was violated") + super("2001: A has one constraint was violated") } } @@ -215,10 +215,10 @@ export class ConstraintState extends Error { static readonly code = 2008 readonly code = 2008 readonly name = "ConstraintState" - readonly msg = "A state constraint was violated" + readonly msg = "Deprecated Error, feel free to replace with something else" constructor(readonly logs?: string[]) { - super("2008: A state constraint was violated") + super("2008: Deprecated Error, feel free to replace with something else") } } @@ -343,6 +343,17 @@ export class ConstraintSpace extends Error { } } +export class ConstraintAccountIsNone extends Error { + static readonly code = 2020 + readonly code = 2020 + readonly name = "ConstraintAccountIsNone" + readonly msg = "A required account for the constraint is None" + + constructor(readonly logs?: string[]) { + super("2020: A required account for the constraint is None") + } +} + export class RequireViolated extends Error { static readonly code = 2500 readonly code = 2500 @@ -624,17 +635,6 @@ export class AccountDuplicateReallocs extends Error { } } -export class StateInvalidAddress extends Error { - static readonly code = 4000 - readonly code = 4000 - readonly name = "StateInvalidAddress" - readonly msg = "The given state account does not have the correct address" - - constructor(readonly logs?: string[]) { - super("4000: The given state account does not have the correct address") - } -} - export class DeclaredProgramIdMismatch extends Error { static readonly code = 4100 readonly code = 4100 @@ -711,6 +711,8 @@ export function fromCode(code: number, logs?: string[]): AnchorError | null { return new ConstraintMintDecimals(logs) case 2019: return new ConstraintSpace(logs) + case 2020: + return new ConstraintAccountIsNone(logs) case 2500: return new RequireViolated(logs) case 2501: @@ -761,8 +763,6 @@ export function fromCode(code: number, logs?: string[]): AnchorError | null { return new AccountReallocExceedsLimit(logs) case 3017: return new AccountDuplicateReallocs(logs) - case 4000: - return new StateInvalidAddress(logs) case 4100: return new DeclaredProgramIdMismatch(logs) case 5000: diff --git a/packages/kamino-sdk/src/meteora_client/errors/custom.ts b/packages/kamino-sdk/src/meteora_client/errors/custom.ts index fdcf604c..ed9c609c 100644 --- a/packages/kamino-sdk/src/meteora_client/errors/custom.ts +++ b/packages/kamino-sdk/src/meteora_client/errors/custom.ts @@ -30,7 +30,7 @@ export type CustomError = | NonContinuousBinArrays | InvalidRewardVault | NonEmptyPosition - | UnauthorizedAlphaAccess + | UnauthorizedAccess | InvalidFeeParameter | MissingOracle | InsufficientSample @@ -45,6 +45,19 @@ export type CustomError = | InvalidPoolType | ExceedMaxWhitelist | InvalidIndex + | RewardNotEnded + | MustWithdrawnIneligibleReward + | UnauthorizedAddress + | OperatorsAreTheSame + | WithdrawToWrongTokenAccount + | WrongRentReceiver + | AlreadyPassActivationSlot + | LastSlotCannotBeSmallerThanActivateSlot + | ExceedMaxSwappedAmount + | InvalidStrategyParameters + | LiquidityLocked + | InvalidLockReleaseSlot + | BinRangeIsNotEmpty export class InvalidStartBinIndex extends Error { static readonly code = 6000 @@ -387,14 +400,14 @@ export class NonEmptyPosition extends Error { } } -export class UnauthorizedAlphaAccess extends Error { +export class UnauthorizedAccess extends Error { static readonly code = 6031 readonly code = 6031 - readonly name = "UnauthorizedAlphaAccess" - readonly msg = "Unauthorized alpha access" + readonly name = "UnauthorizedAccess" + readonly msg = "Unauthorized access" constructor(readonly logs?: string[]) { - super("6031: Unauthorized alpha access") + super("6031: Unauthorized access") } } @@ -552,6 +565,149 @@ export class InvalidIndex extends Error { } } +export class RewardNotEnded extends Error { + static readonly code = 6046 + readonly code = 6046 + readonly name = "RewardNotEnded" + readonly msg = "Reward not ended" + + constructor(readonly logs?: string[]) { + super("6046: Reward not ended") + } +} + +export class MustWithdrawnIneligibleReward extends Error { + static readonly code = 6047 + readonly code = 6047 + readonly name = "MustWithdrawnIneligibleReward" + readonly msg = "Must withdraw ineligible reward" + + constructor(readonly logs?: string[]) { + super("6047: Must withdraw ineligible reward") + } +} + +export class UnauthorizedAddress extends Error { + static readonly code = 6048 + readonly code = 6048 + readonly name = "UnauthorizedAddress" + readonly msg = "Unauthorized address" + + constructor(readonly logs?: string[]) { + super("6048: Unauthorized address") + } +} + +export class OperatorsAreTheSame extends Error { + static readonly code = 6049 + readonly code = 6049 + readonly name = "OperatorsAreTheSame" + readonly msg = "Cannot update because operators are the same" + + constructor(readonly logs?: string[]) { + super("6049: Cannot update because operators are the same") + } +} + +export class WithdrawToWrongTokenAccount extends Error { + static readonly code = 6050 + readonly code = 6050 + readonly name = "WithdrawToWrongTokenAccount" + readonly msg = "Withdraw to wrong token account" + + constructor(readonly logs?: string[]) { + super("6050: Withdraw to wrong token account") + } +} + +export class WrongRentReceiver extends Error { + static readonly code = 6051 + readonly code = 6051 + readonly name = "WrongRentReceiver" + readonly msg = "Wrong rent receiver" + + constructor(readonly logs?: string[]) { + super("6051: Wrong rent receiver") + } +} + +export class AlreadyPassActivationSlot extends Error { + static readonly code = 6052 + readonly code = 6052 + readonly name = "AlreadyPassActivationSlot" + readonly msg = "Already activated" + + constructor(readonly logs?: string[]) { + super("6052: Already activated") + } +} + +export class LastSlotCannotBeSmallerThanActivateSlot extends Error { + static readonly code = 6053 + readonly code = 6053 + readonly name = "LastSlotCannotBeSmallerThanActivateSlot" + readonly msg = "Last slot cannot be smaller than activate slot" + + constructor(readonly logs?: string[]) { + super("6053: Last slot cannot be smaller than activate slot") + } +} + +export class ExceedMaxSwappedAmount extends Error { + static readonly code = 6054 + readonly code = 6054 + readonly name = "ExceedMaxSwappedAmount" + readonly msg = "Swapped amount is exceeded max swapped amount" + + constructor(readonly logs?: string[]) { + super("6054: Swapped amount is exceeded max swapped amount") + } +} + +export class InvalidStrategyParameters extends Error { + static readonly code = 6055 + readonly code = 6055 + readonly name = "InvalidStrategyParameters" + readonly msg = "Invalid strategy parameters" + + constructor(readonly logs?: string[]) { + super("6055: Invalid strategy parameters") + } +} + +export class LiquidityLocked extends Error { + static readonly code = 6056 + readonly code = 6056 + readonly name = "LiquidityLocked" + readonly msg = "Liquidity locked" + + constructor(readonly logs?: string[]) { + super("6056: Liquidity locked") + } +} + +export class InvalidLockReleaseSlot extends Error { + static readonly code = 6057 + readonly code = 6057 + readonly name = "InvalidLockReleaseSlot" + readonly msg = "Invalid lock release slot" + + constructor(readonly logs?: string[]) { + super("6057: Invalid lock release slot") + } +} + +export class BinRangeIsNotEmpty extends Error { + static readonly code = 6058 + readonly code = 6058 + readonly name = "BinRangeIsNotEmpty" + readonly msg = "Bin range is not empty" + + constructor(readonly logs?: string[]) { + super("6058: Bin range is not empty") + } +} + export function fromCode(code: number, logs?: string[]): CustomError | null { switch (code) { case 6000: @@ -617,7 +773,7 @@ export function fromCode(code: number, logs?: string[]): CustomError | null { case 6030: return new NonEmptyPosition(logs) case 6031: - return new UnauthorizedAlphaAccess(logs) + return new UnauthorizedAccess(logs) case 6032: return new InvalidFeeParameter(logs) case 6033: @@ -646,6 +802,32 @@ export function fromCode(code: number, logs?: string[]): CustomError | null { return new ExceedMaxWhitelist(logs) case 6045: return new InvalidIndex(logs) + case 6046: + return new RewardNotEnded(logs) + case 6047: + return new MustWithdrawnIneligibleReward(logs) + case 6048: + return new UnauthorizedAddress(logs) + case 6049: + return new OperatorsAreTheSame(logs) + case 6050: + return new WithdrawToWrongTokenAccount(logs) + case 6051: + return new WrongRentReceiver(logs) + case 6052: + return new AlreadyPassActivationSlot(logs) + case 6053: + return new LastSlotCannotBeSmallerThanActivateSlot(logs) + case 6054: + return new ExceedMaxSwappedAmount(logs) + case 6055: + return new InvalidStrategyParameters(logs) + case 6056: + return new LiquidityLocked(logs) + case 6057: + return new InvalidLockReleaseSlot(logs) + case 6058: + return new BinRangeIsNotEmpty(logs) } return null diff --git a/packages/kamino-sdk/src/meteora_client/errors/index.ts b/packages/kamino-sdk/src/meteora_client/errors/index.ts index b23bd0ee..f5e92d69 100644 --- a/packages/kamino-sdk/src/meteora_client/errors/index.ts +++ b/packages/kamino-sdk/src/meteora_client/errors/index.ts @@ -1,3 +1,4 @@ +import { PublicKey } from "@solana/web3.js" import { PROGRAM_ID } from "../programId" import * as anchor from "./anchor" import * as custom from "./custom" @@ -21,7 +22,8 @@ function hasOwnProperty( const errorRe = /Program (\w+) failed: custom program error: (\w+)/ export function fromTxError( - err: unknown + err: unknown, + programId: PublicKey = PROGRAM_ID ): custom.CustomError | anchor.AnchorError | null { if ( typeof err !== "object" || @@ -45,7 +47,7 @@ export function fromTxError( } const [programIdRaw, codeRaw] = firstMatch.slice(1) - if (programIdRaw !== PROGRAM_ID.toString()) { + if (programIdRaw !== programId.toString()) { return null } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidity.ts b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidity.ts index f381e4c4..c4f298ed 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidity.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidity.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -20,7 +20,7 @@ export interface AddLiquidityAccounts { tokenYMint: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey tokenXProgram: PublicKey tokenYProgram: PublicKey eventAuthority: PublicKey @@ -33,7 +33,8 @@ export const layout = borsh.struct([ export function addLiquidity( args: AddLiquidityArgs, - accounts: AddLiquidityAccounts + accounts: AddLiquidityAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, @@ -51,7 +52,7 @@ export function addLiquidity( { pubkey: accounts.tokenYMint, isSigner: false, isWritable: false }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.tokenXProgram, isSigner: false, isWritable: false }, { pubkey: accounts.tokenYProgram, isSigner: false, isWritable: false }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, @@ -68,6 +69,6 @@ export function addLiquidity( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategy.ts b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategy.ts index 4545f723..9aa2d6ab 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategy.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategy.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -20,7 +20,7 @@ export interface AddLiquidityByStrategyAccounts { tokenYMint: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey tokenXProgram: PublicKey tokenYProgram: PublicKey eventAuthority: PublicKey @@ -33,7 +33,8 @@ export const layout = borsh.struct([ export function addLiquidityByStrategy( args: AddLiquidityByStrategyArgs, - accounts: AddLiquidityByStrategyAccounts + accounts: AddLiquidityByStrategyAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, @@ -51,7 +52,7 @@ export function addLiquidityByStrategy( { pubkey: accounts.tokenYMint, isSigner: false, isWritable: false }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.tokenXProgram, isSigner: false, isWritable: false }, { pubkey: accounts.tokenYProgram, isSigner: false, isWritable: false }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, @@ -68,6 +69,6 @@ export function addLiquidityByStrategy( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategyOneSide.ts b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategyOneSide.ts index 6ca0c518..339d5bc5 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategyOneSide.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByStrategyOneSide.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -17,7 +17,7 @@ export interface AddLiquidityByStrategyOneSideAccounts { tokenMint: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey tokenProgram: PublicKey eventAuthority: PublicKey program: PublicKey @@ -29,7 +29,8 @@ export const layout = borsh.struct([ export function addLiquidityByStrategyOneSide( args: AddLiquidityByStrategyOneSideArgs, - accounts: AddLiquidityByStrategyOneSideAccounts + accounts: AddLiquidityByStrategyOneSideAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, @@ -44,7 +45,7 @@ export function addLiquidityByStrategyOneSide( { pubkey: accounts.tokenMint, isSigner: false, isWritable: false }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, { pubkey: accounts.program, isSigner: false, isWritable: false }, @@ -60,6 +61,6 @@ export function addLiquidityByStrategyOneSide( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByWeight.ts b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByWeight.ts index 41d9da53..3083e14c 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByWeight.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityByWeight.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -20,7 +20,7 @@ export interface AddLiquidityByWeightAccounts { tokenYMint: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey tokenXProgram: PublicKey tokenYProgram: PublicKey eventAuthority: PublicKey @@ -33,7 +33,8 @@ export const layout = borsh.struct([ export function addLiquidityByWeight( args: AddLiquidityByWeightArgs, - accounts: AddLiquidityByWeightAccounts + accounts: AddLiquidityByWeightAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, @@ -51,7 +52,7 @@ export function addLiquidityByWeight( { pubkey: accounts.tokenYMint, isSigner: false, isWritable: false }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.tokenXProgram, isSigner: false, isWritable: false }, { pubkey: accounts.tokenYProgram, isSigner: false, isWritable: false }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, @@ -68,6 +69,6 @@ export function addLiquidityByWeight( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSide.ts b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSide.ts index f9d7e429..d854e9e6 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSide.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSide.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -17,7 +17,7 @@ export interface AddLiquidityOneSideAccounts { tokenMint: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey tokenProgram: PublicKey eventAuthority: PublicKey program: PublicKey @@ -29,7 +29,8 @@ export const layout = borsh.struct([ export function addLiquidityOneSide( args: AddLiquidityOneSideArgs, - accounts: AddLiquidityOneSideAccounts + accounts: AddLiquidityOneSideAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, @@ -44,7 +45,7 @@ export function addLiquidityOneSide( { pubkey: accounts.tokenMint, isSigner: false, isWritable: false }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, { pubkey: accounts.program, isSigner: false, isWritable: false }, @@ -60,6 +61,6 @@ export function addLiquidityOneSide( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSidePrecise.ts b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSidePrecise.ts new file mode 100644 index 00000000..c44ed82e --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/addLiquidityOneSidePrecise.ts @@ -0,0 +1,66 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface AddLiquidityOneSidePreciseArgs { + parameter: types.AddLiquiditySingleSidePreciseParameterFields +} + +export interface AddLiquidityOneSidePreciseAccounts { + position: PublicKey + lbPair: PublicKey + binArrayBitmapExtension: PublicKey + userToken: PublicKey + reserve: PublicKey + tokenMint: PublicKey + binArrayLower: PublicKey + binArrayUpper: PublicKey + sender: PublicKey + tokenProgram: PublicKey + eventAuthority: PublicKey + program: PublicKey +} + +export const layout = borsh.struct([ + types.AddLiquiditySingleSidePreciseParameter.layout("parameter"), +]) + +export function addLiquidityOneSidePrecise( + args: AddLiquidityOneSidePreciseArgs, + accounts: AddLiquidityOneSidePreciseAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, + { + pubkey: accounts.binArrayBitmapExtension, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.userToken, isSigner: false, isWritable: true }, + { pubkey: accounts.reserve, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenMint, isSigner: false, isWritable: false }, + { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, + { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, + { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, + { pubkey: accounts.program, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([161, 194, 103, 84, 171, 71, 250, 154]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + parameter: types.AddLiquiditySingleSidePreciseParameter.toEncodable( + args.parameter + ), + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/claimFee.ts b/packages/kamino-sdk/src/meteora_client/instructions/claimFee.ts index 128a58c5..a8264d1a 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/claimFee.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/claimFee.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -9,7 +9,7 @@ export interface ClaimFeeAccounts { position: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey reserveX: PublicKey reserveY: PublicKey userTokenX: PublicKey @@ -21,13 +21,16 @@ export interface ClaimFeeAccounts { program: PublicKey } -export function claimFee(accounts: ClaimFeeAccounts) { +export function claimFee( + accounts: ClaimFeeAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { pubkey: accounts.position, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.reserveX, isSigner: false, isWritable: true }, { pubkey: accounts.reserveY, isSigner: false, isWritable: true }, { pubkey: accounts.userTokenX, isSigner: false, isWritable: true }, @@ -40,6 +43,6 @@ export function claimFee(accounts: ClaimFeeAccounts) { ] const identifier = Buffer.from([169, 32, 79, 137, 136, 232, 70, 137]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/claimReward.ts b/packages/kamino-sdk/src/meteora_client/instructions/claimReward.ts index 2bb15181..cb51736d 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/claimReward.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/claimReward.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -13,7 +13,7 @@ export interface ClaimRewardAccounts { position: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey rewardVault: PublicKey rewardMint: PublicKey userTokenAccount: PublicKey @@ -26,14 +26,15 @@ export const layout = borsh.struct([borsh.u64("rewardIndex")]) export function claimReward( args: ClaimRewardArgs, - accounts: ClaimRewardAccounts + accounts: ClaimRewardAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { pubkey: accounts.position, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.rewardVault, isSigner: false, isWritable: true }, { pubkey: accounts.rewardMint, isSigner: false, isWritable: false }, { pubkey: accounts.userTokenAccount, isSigner: false, isWritable: true }, @@ -50,6 +51,6 @@ export function claimReward( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/closePosition.ts b/packages/kamino-sdk/src/meteora_client/instructions/closePosition.ts index bb4e2d79..7f7ae76a 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/closePosition.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/closePosition.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -9,25 +9,28 @@ export interface ClosePositionAccounts { lbPair: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey rentReceiver: PublicKey eventAuthority: PublicKey program: PublicKey } -export function closePosition(accounts: ClosePositionAccounts) { +export function closePosition( + accounts: ClosePositionAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.rentReceiver, isSigner: false, isWritable: true }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, { pubkey: accounts.program, isSigner: false, isWritable: false }, ] const identifier = Buffer.from([123, 134, 81, 0, 49, 68, 98, 98]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/closePresetParameter.ts b/packages/kamino-sdk/src/meteora_client/instructions/closePresetParameter.ts index 07bf51b7..e13252d1 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/closePresetParameter.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/closePresetParameter.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -10,7 +10,10 @@ export interface ClosePresetParameterAccounts { rentReceiver: PublicKey } -export function closePresetParameter(accounts: ClosePresetParameterAccounts) { +export function closePresetParameter( + accounts: ClosePresetParameterAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.presetParameter, isSigner: false, isWritable: true }, { pubkey: accounts.admin, isSigner: true, isWritable: true }, @@ -18,6 +21,6 @@ export function closePresetParameter(accounts: ClosePresetParameterAccounts) { ] const identifier = Buffer.from([4, 148, 145, 100, 134, 26, 181, 61]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/fundReward.ts b/packages/kamino-sdk/src/meteora_client/instructions/fundReward.ts index 73bf8740..3cd3eaeb 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/fundReward.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/fundReward.ts @@ -1,12 +1,13 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" export interface FundRewardArgs { rewardIndex: BN amount: BN + carryForward: boolean } export interface FundRewardAccounts { @@ -24,9 +25,14 @@ export interface FundRewardAccounts { export const layout = borsh.struct([ borsh.u64("rewardIndex"), borsh.u64("amount"), + borsh.bool("carryForward"), ]) -export function fundReward(args: FundRewardArgs, accounts: FundRewardAccounts) { +export function fundReward( + args: FundRewardArgs, + accounts: FundRewardAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { pubkey: accounts.rewardVault, isSigner: false, isWritable: true }, @@ -44,10 +50,11 @@ export function fundReward(args: FundRewardArgs, accounts: FundRewardAccounts) { { rewardIndex: args.rewardIndex, amount: args.amount, + carryForward: args.carryForward, }, buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/goToABin.ts b/packages/kamino-sdk/src/meteora_client/instructions/goToABin.ts new file mode 100644 index 00000000..636f4c2c --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/goToABin.ts @@ -0,0 +1,50 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface GoToABinArgs { + binId: number +} + +export interface GoToABinAccounts { + lbPair: PublicKey + binArrayBitmapExtension: PublicKey + fromBinArray: PublicKey + toBinArray: PublicKey + eventAuthority: PublicKey + program: PublicKey +} + +export const layout = borsh.struct([borsh.i32("binId")]) + +export function goToABin( + args: GoToABinArgs, + accounts: GoToABinAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, + { + pubkey: accounts.binArrayBitmapExtension, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.fromBinArray, isSigner: false, isWritable: false }, + { pubkey: accounts.toBinArray, isSigner: false, isWritable: false }, + { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, + { pubkey: accounts.program, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([146, 72, 174, 224, 40, 253, 84, 174]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + binId: args.binId, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/increaseOracleLength.ts b/packages/kamino-sdk/src/meteora_client/instructions/increaseOracleLength.ts index 227ba018..f20ef878 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/increaseOracleLength.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/increaseOracleLength.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -20,7 +20,8 @@ export const layout = borsh.struct([borsh.u64("lengthToAdd")]) export function increaseOracleLength( args: IncreaseOracleLengthArgs, - accounts: IncreaseOracleLengthAccounts + accounts: IncreaseOracleLengthAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.oracle, isSigner: false, isWritable: true }, @@ -38,6 +39,6 @@ export function increaseOracleLength( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/index.ts b/packages/kamino-sdk/src/meteora_client/instructions/index.ts index 02262909..b3371887 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/index.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/index.ts @@ -52,6 +52,16 @@ export type { InitializePositionPdaArgs, InitializePositionPdaAccounts, } from "./initializePositionPda" +export { initializePositionByOperator } from "./initializePositionByOperator" +export type { + InitializePositionByOperatorArgs, + InitializePositionByOperatorAccounts, +} from "./initializePositionByOperator" +export { updatePositionOperator } from "./updatePositionOperator" +export type { + UpdatePositionOperatorArgs, + UpdatePositionOperatorAccounts, +} from "./updatePositionOperator" export { swap } from "./swap" export type { SwapArgs, SwapAccounts } from "./swap" export { withdrawProtocolFee } from "./withdrawProtocolFee" @@ -116,3 +126,40 @@ export { migrateBinArray } from "./migrateBinArray" export type { MigrateBinArrayAccounts } from "./migrateBinArray" export { updateFeesAndRewards } from "./updateFeesAndRewards" export type { UpdateFeesAndRewardsAccounts } from "./updateFeesAndRewards" +export { withdrawIneligibleReward } from "./withdrawIneligibleReward" +export type { + WithdrawIneligibleRewardArgs, + WithdrawIneligibleRewardAccounts, +} from "./withdrawIneligibleReward" +export { setActivationSlot } from "./setActivationSlot" +export type { + SetActivationSlotArgs, + SetActivationSlotAccounts, +} from "./setActivationSlot" +export { setLockReleaseSlot } from "./setLockReleaseSlot" +export type { + SetLockReleaseSlotArgs, + SetLockReleaseSlotAccounts, +} from "./setLockReleaseSlot" +export { removeLiquidityByRange } from "./removeLiquidityByRange" +export type { + RemoveLiquidityByRangeArgs, + RemoveLiquidityByRangeAccounts, +} from "./removeLiquidityByRange" +export { addLiquidityOneSidePrecise } from "./addLiquidityOneSidePrecise" +export type { + AddLiquidityOneSidePreciseArgs, + AddLiquidityOneSidePreciseAccounts, +} from "./addLiquidityOneSidePrecise" +export { goToABin } from "./goToABin" +export type { GoToABinArgs, GoToABinAccounts } from "./goToABin" +export { setPreActivationSlotDuration } from "./setPreActivationSlotDuration" +export type { + SetPreActivationSlotDurationArgs, + SetPreActivationSlotDurationAccounts, +} from "./setPreActivationSlotDuration" +export { setPreActivationSwapAddress } from "./setPreActivationSwapAddress" +export type { + SetPreActivationSwapAddressArgs, + SetPreActivationSwapAddressAccounts, +} from "./setPreActivationSwapAddress" diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArray.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArray.ts index 12f283bf..1da396df 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArray.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArray.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -19,7 +19,8 @@ export const layout = borsh.struct([borsh.i64("index")]) export function initializeBinArray( args: InitializeBinArrayArgs, - accounts: InitializeBinArrayAccounts + accounts: InitializeBinArrayAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: false }, @@ -36,6 +37,6 @@ export function initializeBinArray( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArrayBitmapExtension.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArrayBitmapExtension.ts index 838c8219..32bff7a2 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArrayBitmapExtension.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializeBinArrayBitmapExtension.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -14,7 +14,8 @@ export interface InitializeBinArrayBitmapExtensionAccounts { } export function initializeBinArrayBitmapExtension( - accounts: InitializeBinArrayBitmapExtensionAccounts + accounts: InitializeBinArrayBitmapExtensionAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: false }, @@ -29,6 +30,6 @@ export function initializeBinArrayBitmapExtension( ] const identifier = Buffer.from([47, 157, 226, 180, 12, 240, 33, 71]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializeLbPair.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializeLbPair.ts index 0d1da38b..9476a67a 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializeLbPair.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializeLbPair.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -33,7 +33,8 @@ export const layout = borsh.struct([ export function initializeLbPair( args: InitializeLbPairArgs, - accounts: InitializeLbPairAccounts + accounts: InitializeLbPairAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -65,6 +66,6 @@ export function initializeLbPair( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializePermissionLbPair.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializePermissionLbPair.ts index 4f619734..036ee0f4 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializePermissionLbPair.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializePermissionLbPair.ts @@ -1,15 +1,15 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" export interface InitializePermissionLbPairArgs { - activeId: number - binStep: number + ixData: types.InitPermissionPairIxFields } export interface InitializePermissionLbPairAccounts { + base: PublicKey lbPair: PublicKey binArrayBitmapExtension: PublicKey tokenMintX: PublicKey @@ -17,8 +17,7 @@ export interface InitializePermissionLbPairAccounts { reserveX: PublicKey reserveY: PublicKey oracle: PublicKey - presetParameter: PublicKey - funder: PublicKey + admin: PublicKey tokenProgram: PublicKey systemProgram: PublicKey rent: PublicKey @@ -27,15 +26,16 @@ export interface InitializePermissionLbPairAccounts { } export const layout = borsh.struct([ - borsh.i32("activeId"), - borsh.u16("binStep"), + types.InitPermissionPairIx.layout("ixData"), ]) export function initializePermissionLbPair( args: InitializePermissionLbPairArgs, - accounts: InitializePermissionLbPairAccounts + accounts: InitializePermissionLbPairAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ + { pubkey: accounts.base, isSigner: true, isWritable: false }, { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayBitmapExtension, @@ -47,8 +47,7 @@ export function initializePermissionLbPair( { pubkey: accounts.reserveX, isSigner: false, isWritable: true }, { pubkey: accounts.reserveY, isSigner: false, isWritable: true }, { pubkey: accounts.oracle, isSigner: false, isWritable: true }, - { pubkey: accounts.presetParameter, isSigner: false, isWritable: false }, - { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.admin, isSigner: true, isWritable: true }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, { pubkey: accounts.rent, isSigner: false, isWritable: false }, @@ -59,12 +58,11 @@ export function initializePermissionLbPair( const buffer = Buffer.alloc(1000) const len = layout.encode( { - activeId: args.activeId, - binStep: args.binStep, + ixData: types.InitPermissionPairIx.toEncodable(args.ixData), }, buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializePosition.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializePosition.ts index d47c3238..c01d7fb8 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializePosition.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializePosition.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -27,7 +27,8 @@ export const layout = borsh.struct([ export function initializePosition( args: InitializePositionArgs, - accounts: InitializePositionAccounts + accounts: InitializePositionAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.payer, isSigner: true, isWritable: true }, @@ -49,6 +50,6 @@ export function initializePosition( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializePositionByOperator.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializePositionByOperator.ts new file mode 100644 index 00000000..ff8e2160 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializePositionByOperator.ts @@ -0,0 +1,64 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface InitializePositionByOperatorArgs { + lowerBinId: number + width: number + owner: PublicKey + feeOwner: PublicKey +} + +export interface InitializePositionByOperatorAccounts { + payer: PublicKey + base: PublicKey + position: PublicKey + lbPair: PublicKey + /** operator */ + operator: PublicKey + systemProgram: PublicKey + rent: PublicKey + eventAuthority: PublicKey + program: PublicKey +} + +export const layout = borsh.struct([ + borsh.i32("lowerBinId"), + borsh.i32("width"), + borsh.publicKey("owner"), + borsh.publicKey("feeOwner"), +]) + +export function initializePositionByOperator( + args: InitializePositionByOperatorArgs, + accounts: InitializePositionByOperatorAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.payer, isSigner: true, isWritable: true }, + { pubkey: accounts.base, isSigner: true, isWritable: false }, + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { pubkey: accounts.lbPair, isSigner: false, isWritable: false }, + { pubkey: accounts.operator, isSigner: true, isWritable: false }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.rent, isSigner: false, isWritable: false }, + { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, + { pubkey: accounts.program, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([251, 189, 190, 244, 117, 254, 35, 148]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + lowerBinId: args.lowerBinId, + width: args.width, + owner: args.owner, + feeOwner: args.feeOwner, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializePositionPda.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializePositionPda.ts index 25fdba66..bef268fd 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializePositionPda.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializePositionPda.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -14,6 +14,7 @@ export interface InitializePositionPdaAccounts { base: PublicKey position: PublicKey lbPair: PublicKey + /** owner */ owner: PublicKey systemProgram: PublicKey rent: PublicKey @@ -28,7 +29,8 @@ export const layout = borsh.struct([ export function initializePositionPda( args: InitializePositionPdaArgs, - accounts: InitializePositionPdaAccounts + accounts: InitializePositionPdaAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.payer, isSigner: true, isWritable: true }, @@ -51,6 +53,6 @@ export function initializePositionPda( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializePresetParameter.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializePresetParameter.ts index a9a16d2b..d74c3079 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializePresetParameter.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializePresetParameter.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -19,7 +19,8 @@ export const layout = borsh.struct([types.InitPresetParametersIx.layout("ix")]) export function initializePresetParameter( args: InitializePresetParameterArgs, - accounts: InitializePresetParameterAccounts + accounts: InitializePresetParameterAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.presetParameter, isSigner: false, isWritable: true }, @@ -36,6 +37,6 @@ export function initializePresetParameter( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/initializeReward.ts b/packages/kamino-sdk/src/meteora_client/instructions/initializeReward.ts index d01ad680..aa8aef72 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/initializeReward.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/initializeReward.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -30,7 +30,8 @@ export const layout = borsh.struct([ export function initializeReward( args: InitializeRewardArgs, - accounts: InitializeRewardAccounts + accounts: InitializeRewardAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -54,6 +55,6 @@ export function initializeReward( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/migrateBinArray.ts b/packages/kamino-sdk/src/meteora_client/instructions/migrateBinArray.ts index d8e59732..099b0b11 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/migrateBinArray.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/migrateBinArray.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -8,12 +8,15 @@ export interface MigrateBinArrayAccounts { lbPair: PublicKey } -export function migrateBinArray(accounts: MigrateBinArrayAccounts) { +export function migrateBinArray( + accounts: MigrateBinArrayAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: false }, ] const identifier = Buffer.from([17, 23, 159, 211, 101, 184, 41, 241]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/migratePosition.ts b/packages/kamino-sdk/src/meteora_client/instructions/migratePosition.ts index 8b638418..3ae3c3ab 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/migratePosition.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/migratePosition.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -17,7 +17,10 @@ export interface MigratePositionAccounts { program: PublicKey } -export function migratePosition(accounts: MigratePositionAccounts) { +export function migratePosition( + accounts: MigratePositionAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.positionV2, isSigner: true, isWritable: true }, { pubkey: accounts.positionV1, isSigner: false, isWritable: true }, @@ -32,6 +35,6 @@ export function migratePosition(accounts: MigratePositionAccounts) { ] const identifier = Buffer.from([15, 132, 59, 50, 199, 6, 251, 46]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/removeAllLiquidity.ts b/packages/kamino-sdk/src/meteora_client/instructions/removeAllLiquidity.ts index a43fafce..1fafd8ab 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/removeAllLiquidity.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/removeAllLiquidity.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -16,14 +16,17 @@ export interface RemoveAllLiquidityAccounts { tokenYMint: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey tokenXProgram: PublicKey tokenYProgram: PublicKey eventAuthority: PublicKey program: PublicKey } -export function removeAllLiquidity(accounts: RemoveAllLiquidityAccounts) { +export function removeAllLiquidity( + accounts: RemoveAllLiquidityAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -40,7 +43,7 @@ export function removeAllLiquidity(accounts: RemoveAllLiquidityAccounts) { { pubkey: accounts.tokenYMint, isSigner: false, isWritable: false }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.tokenXProgram, isSigner: false, isWritable: false }, { pubkey: accounts.tokenYProgram, isSigner: false, isWritable: false }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, @@ -48,6 +51,6 @@ export function removeAllLiquidity(accounts: RemoveAllLiquidityAccounts) { ] const identifier = Buffer.from([10, 51, 61, 35, 112, 105, 24, 85]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/removeLiquidity.ts b/packages/kamino-sdk/src/meteora_client/instructions/removeLiquidity.ts index 84a038f9..5a85a414 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/removeLiquidity.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/removeLiquidity.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -20,7 +20,7 @@ export interface RemoveLiquidityAccounts { tokenYMint: PublicKey binArrayLower: PublicKey binArrayUpper: PublicKey - owner: PublicKey + sender: PublicKey tokenXProgram: PublicKey tokenYProgram: PublicKey eventAuthority: PublicKey @@ -33,7 +33,8 @@ export const layout = borsh.struct([ export function removeLiquidity( args: RemoveLiquidityArgs, - accounts: RemoveLiquidityAccounts + accounts: RemoveLiquidityAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, @@ -51,7 +52,7 @@ export function removeLiquidity( { pubkey: accounts.tokenYMint, isSigner: false, isWritable: false }, { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, - { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, { pubkey: accounts.tokenXProgram, isSigner: false, isWritable: false }, { pubkey: accounts.tokenYProgram, isSigner: false, isWritable: false }, { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, @@ -68,6 +69,6 @@ export function removeLiquidity( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/removeLiquidityByRange.ts b/packages/kamino-sdk/src/meteora_client/instructions/removeLiquidityByRange.ts new file mode 100644 index 00000000..f382557e --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/removeLiquidityByRange.ts @@ -0,0 +1,78 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface RemoveLiquidityByRangeArgs { + fromBinId: number + toBinId: number + bpsToRemove: number +} + +export interface RemoveLiquidityByRangeAccounts { + position: PublicKey + lbPair: PublicKey + binArrayBitmapExtension: PublicKey + userTokenX: PublicKey + userTokenY: PublicKey + reserveX: PublicKey + reserveY: PublicKey + tokenXMint: PublicKey + tokenYMint: PublicKey + binArrayLower: PublicKey + binArrayUpper: PublicKey + sender: PublicKey + tokenXProgram: PublicKey + tokenYProgram: PublicKey + eventAuthority: PublicKey + program: PublicKey +} + +export const layout = borsh.struct([ + borsh.i32("fromBinId"), + borsh.i32("toBinId"), + borsh.u16("bpsToRemove"), +]) + +export function removeLiquidityByRange( + args: RemoveLiquidityByRangeArgs, + accounts: RemoveLiquidityByRangeAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, + { + pubkey: accounts.binArrayBitmapExtension, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.userTokenX, isSigner: false, isWritable: true }, + { pubkey: accounts.userTokenY, isSigner: false, isWritable: true }, + { pubkey: accounts.reserveX, isSigner: false, isWritable: true }, + { pubkey: accounts.reserveY, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenXMint, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenYMint, isSigner: false, isWritable: false }, + { pubkey: accounts.binArrayLower, isSigner: false, isWritable: true }, + { pubkey: accounts.binArrayUpper, isSigner: false, isWritable: true }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, + { pubkey: accounts.tokenXProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenYProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, + { pubkey: accounts.program, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([26, 82, 102, 152, 240, 74, 105, 26]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + fromBinId: args.fromBinId, + toBinId: args.toBinId, + bpsToRemove: args.bpsToRemove, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/setActivationSlot.ts b/packages/kamino-sdk/src/meteora_client/instructions/setActivationSlot.ts new file mode 100644 index 00000000..6f414609 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/setActivationSlot.ts @@ -0,0 +1,38 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface SetActivationSlotArgs { + activationSlot: BN +} + +export interface SetActivationSlotAccounts { + lbPair: PublicKey + admin: PublicKey +} + +export const layout = borsh.struct([borsh.u64("activationSlot")]) + +export function setActivationSlot( + args: SetActivationSlotArgs, + accounts: SetActivationSlotAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, + { pubkey: accounts.admin, isSigner: true, isWritable: true }, + ] + const identifier = Buffer.from([200, 227, 90, 83, 27, 79, 191, 88]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + activationSlot: args.activationSlot, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/setLockReleaseSlot.ts b/packages/kamino-sdk/src/meteora_client/instructions/setLockReleaseSlot.ts new file mode 100644 index 00000000..43231230 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/setLockReleaseSlot.ts @@ -0,0 +1,44 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface SetLockReleaseSlotArgs { + newLockReleaseSlot: BN +} + +export interface SetLockReleaseSlotAccounts { + position: PublicKey + lbPair: PublicKey + sender: PublicKey + eventAuthority: PublicKey + program: PublicKey +} + +export const layout = borsh.struct([borsh.u64("newLockReleaseSlot")]) + +export function setLockReleaseSlot( + args: SetLockReleaseSlotArgs, + accounts: SetLockReleaseSlotAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { pubkey: accounts.lbPair, isSigner: false, isWritable: false }, + { pubkey: accounts.sender, isSigner: true, isWritable: false }, + { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, + { pubkey: accounts.program, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([207, 224, 170, 143, 189, 159, 46, 150]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + newLockReleaseSlot: args.newLockReleaseSlot, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSlotDuration.ts b/packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSlotDuration.ts new file mode 100644 index 00000000..041d68a6 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSlotDuration.ts @@ -0,0 +1,38 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface SetPreActivationSlotDurationArgs { + preActivationSlotDuration: number +} + +export interface SetPreActivationSlotDurationAccounts { + lbPair: PublicKey + creator: PublicKey +} + +export const layout = borsh.struct([borsh.u16("preActivationSlotDuration")]) + +export function setPreActivationSlotDuration( + args: SetPreActivationSlotDurationArgs, + accounts: SetPreActivationSlotDurationAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, + { pubkey: accounts.creator, isSigner: true, isWritable: false }, + ] + const identifier = Buffer.from([24, 213, 73, 145, 1, 149, 127, 37]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + preActivationSlotDuration: args.preActivationSlotDuration, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSwapAddress.ts b/packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSwapAddress.ts new file mode 100644 index 00000000..5f0d5336 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/setPreActivationSwapAddress.ts @@ -0,0 +1,40 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface SetPreActivationSwapAddressArgs { + preActivationSwapAddress: PublicKey +} + +export interface SetPreActivationSwapAddressAccounts { + lbPair: PublicKey + creator: PublicKey +} + +export const layout = borsh.struct([ + borsh.publicKey("preActivationSwapAddress"), +]) + +export function setPreActivationSwapAddress( + args: SetPreActivationSwapAddressArgs, + accounts: SetPreActivationSwapAddressAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, + { pubkey: accounts.creator, isSigner: true, isWritable: false }, + ] + const identifier = Buffer.from([57, 139, 47, 123, 216, 80, 223, 10]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + preActivationSwapAddress: args.preActivationSwapAddress, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/swap.ts b/packages/kamino-sdk/src/meteora_client/instructions/swap.ts index e8fbe1bc..8495f608 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/swap.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/swap.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -32,7 +32,11 @@ export const layout = borsh.struct([ borsh.u64("minAmountOut"), ]) -export function swap(args: SwapArgs, accounts: SwapAccounts) { +export function swap( + args: SwapArgs, + accounts: SwapAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { @@ -64,6 +68,6 @@ export function swap(args: SwapArgs, accounts: SwapAccounts) { buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/togglePairStatus.ts b/packages/kamino-sdk/src/meteora_client/instructions/togglePairStatus.ts index b90ee527..85cf18fc 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/togglePairStatus.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/togglePairStatus.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -9,13 +9,16 @@ export interface TogglePairStatusAccounts { admin: PublicKey } -export function togglePairStatus(accounts: TogglePairStatusAccounts) { +export function togglePairStatus( + accounts: TogglePairStatusAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { pubkey: accounts.admin, isSigner: true, isWritable: false }, ] const identifier = Buffer.from([61, 115, 52, 23, 46, 13, 31, 144]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/updateFeeOwner.ts b/packages/kamino-sdk/src/meteora_client/instructions/updateFeeOwner.ts index 36f5ce2a..612fb95b 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/updateFeeOwner.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/updateFeeOwner.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -10,7 +10,10 @@ export interface UpdateFeeOwnerAccounts { admin: PublicKey } -export function updateFeeOwner(accounts: UpdateFeeOwnerAccounts) { +export function updateFeeOwner( + accounts: UpdateFeeOwnerAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, { pubkey: accounts.newFeeOwner, isSigner: false, isWritable: false }, @@ -18,6 +21,6 @@ export function updateFeeOwner(accounts: UpdateFeeOwnerAccounts) { ] const identifier = Buffer.from([60, 63, 17, 64, 13, 196, 166, 243]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/updateFeeParameters.ts b/packages/kamino-sdk/src/meteora_client/instructions/updateFeeParameters.ts index 4beb4283..9634bcfb 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/updateFeeParameters.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/updateFeeParameters.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -19,7 +19,8 @@ export const layout = borsh.struct([types.FeeParameter.layout("feeParameter")]) export function updateFeeParameters( args: UpdateFeeParametersArgs, - accounts: UpdateFeeParametersAccounts + accounts: UpdateFeeParametersAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -36,6 +37,6 @@ export function updateFeeParameters( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/updateFeesAndRewards.ts b/packages/kamino-sdk/src/meteora_client/instructions/updateFeesAndRewards.ts index 401620b6..97cc8080 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/updateFeesAndRewards.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/updateFeesAndRewards.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -12,7 +12,10 @@ export interface UpdateFeesAndRewardsAccounts { owner: PublicKey } -export function updateFeesAndRewards(accounts: UpdateFeesAndRewardsAccounts) { +export function updateFeesAndRewards( + accounts: UpdateFeesAndRewardsAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.position, isSigner: false, isWritable: true }, { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -22,6 +25,6 @@ export function updateFeesAndRewards(accounts: UpdateFeesAndRewardsAccounts) { ] const identifier = Buffer.from([154, 230, 250, 13, 236, 209, 75, 223]) const data = identifier - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/updatePositionOperator.ts b/packages/kamino-sdk/src/meteora_client/instructions/updatePositionOperator.ts new file mode 100644 index 00000000..7fadf806 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/updatePositionOperator.ts @@ -0,0 +1,42 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface UpdatePositionOperatorArgs { + operator: PublicKey +} + +export interface UpdatePositionOperatorAccounts { + position: PublicKey + owner: PublicKey + eventAuthority: PublicKey + program: PublicKey +} + +export const layout = borsh.struct([borsh.publicKey("operator")]) + +export function updatePositionOperator( + args: UpdatePositionOperatorArgs, + accounts: UpdatePositionOperatorAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { pubkey: accounts.owner, isSigner: true, isWritable: false }, + { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, + { pubkey: accounts.program, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([202, 184, 103, 143, 180, 191, 116, 217]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + operator: args.operator, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/updateRewardDuration.ts b/packages/kamino-sdk/src/meteora_client/instructions/updateRewardDuration.ts index cd05fa7b..08ae7425 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/updateRewardDuration.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/updateRewardDuration.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -24,7 +24,8 @@ export const layout = borsh.struct([ export function updateRewardDuration( args: UpdateRewardDurationArgs, - accounts: UpdateRewardDurationAccounts + accounts: UpdateRewardDurationAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -43,6 +44,6 @@ export function updateRewardDuration( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/updateRewardFunder.ts b/packages/kamino-sdk/src/meteora_client/instructions/updateRewardFunder.ts index 40bcfed5..b17375a0 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/updateRewardFunder.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/updateRewardFunder.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -23,7 +23,8 @@ export const layout = borsh.struct([ export function updateRewardFunder( args: UpdateRewardFunderArgs, - accounts: UpdateRewardFunderAccounts + accounts: UpdateRewardFunderAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -41,6 +42,6 @@ export function updateRewardFunder( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/updateWhitelistedWallet.ts b/packages/kamino-sdk/src/meteora_client/instructions/updateWhitelistedWallet.ts index 31c679ba..fbb70683 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/updateWhitelistedWallet.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/updateWhitelistedWallet.ts @@ -1,39 +1,38 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" export interface UpdateWhitelistedWalletArgs { - idx: number wallet: PublicKey } export interface UpdateWhitelistedWalletAccounts { lbPair: PublicKey - admin: PublicKey + creator: PublicKey } -export const layout = borsh.struct([borsh.u8("idx"), borsh.publicKey("wallet")]) +export const layout = borsh.struct([borsh.publicKey("wallet")]) export function updateWhitelistedWallet( args: UpdateWhitelistedWalletArgs, - accounts: UpdateWhitelistedWalletAccounts + accounts: UpdateWhitelistedWalletAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, - { pubkey: accounts.admin, isSigner: true, isWritable: false }, + { pubkey: accounts.creator, isSigner: true, isWritable: false }, ] const identifier = Buffer.from([4, 105, 92, 167, 132, 28, 9, 90]) const buffer = Buffer.alloc(1000) const len = layout.encode( { - idx: args.idx, wallet: args.wallet, }, buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/instructions/withdrawIneligibleReward.ts b/packages/kamino-sdk/src/meteora_client/instructions/withdrawIneligibleReward.ts new file mode 100644 index 00000000..a69f8096 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/instructions/withdrawIneligibleReward.ts @@ -0,0 +1,52 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { PROGRAM_ID } from "../programId" + +export interface WithdrawIneligibleRewardArgs { + rewardIndex: BN +} + +export interface WithdrawIneligibleRewardAccounts { + lbPair: PublicKey + rewardVault: PublicKey + rewardMint: PublicKey + funderTokenAccount: PublicKey + funder: PublicKey + binArray: PublicKey + tokenProgram: PublicKey + eventAuthority: PublicKey + program: PublicKey +} + +export const layout = borsh.struct([borsh.u64("rewardIndex")]) + +export function withdrawIneligibleReward( + args: WithdrawIneligibleRewardArgs, + accounts: WithdrawIneligibleRewardAccounts, + programId: PublicKey = PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, + { pubkey: accounts.rewardVault, isSigner: false, isWritable: true }, + { pubkey: accounts.rewardMint, isSigner: false, isWritable: false }, + { pubkey: accounts.funderTokenAccount, isSigner: false, isWritable: true }, + { pubkey: accounts.funder, isSigner: true, isWritable: false }, + { pubkey: accounts.binArray, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.eventAuthority, isSigner: false, isWritable: false }, + { pubkey: accounts.program, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([148, 206, 42, 195, 247, 49, 103, 8]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + rewardIndex: args.rewardIndex, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/meteora_client/instructions/withdrawProtocolFee.ts b/packages/kamino-sdk/src/meteora_client/instructions/withdrawProtocolFee.ts index ccb2896e..d2a4000b 100644 --- a/packages/kamino-sdk/src/meteora_client/instructions/withdrawProtocolFee.ts +++ b/packages/kamino-sdk/src/meteora_client/instructions/withdrawProtocolFee.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from "../programId" @@ -17,7 +17,6 @@ export interface WithdrawProtocolFeeAccounts { tokenYMint: PublicKey receiverTokenX: PublicKey receiverTokenY: PublicKey - feeOwner: PublicKey tokenXProgram: PublicKey tokenYProgram: PublicKey } @@ -26,7 +25,8 @@ export const layout = borsh.struct([borsh.u64("amountX"), borsh.u64("amountY")]) export function withdrawProtocolFee( args: WithdrawProtocolFeeArgs, - accounts: WithdrawProtocolFeeAccounts + accounts: WithdrawProtocolFeeAccounts, + programId: PublicKey = PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.lbPair, isSigner: false, isWritable: true }, @@ -36,7 +36,6 @@ export function withdrawProtocolFee( { pubkey: accounts.tokenYMint, isSigner: false, isWritable: false }, { pubkey: accounts.receiverTokenX, isSigner: false, isWritable: true }, { pubkey: accounts.receiverTokenY, isSigner: false, isWritable: true }, - { pubkey: accounts.feeOwner, isSigner: true, isWritable: false }, { pubkey: accounts.tokenXProgram, isSigner: false, isWritable: false }, { pubkey: accounts.tokenYProgram, isSigner: false, isWritable: false }, ] @@ -50,6 +49,6 @@ export function withdrawProtocolFee( buffer ) const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }) + const ix = new TransactionInstruction({ keys, programId, data }) return ix } diff --git a/packages/kamino-sdk/src/meteora_client/types/AddLiquiditySingleSidePreciseParameter.ts b/packages/kamino-sdk/src/meteora_client/types/AddLiquiditySingleSidePreciseParameter.ts new file mode 100644 index 00000000..f763638c --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/types/AddLiquiditySingleSidePreciseParameter.ts @@ -0,0 +1,79 @@ +import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" + +export interface AddLiquiditySingleSidePreciseParameterFields { + bins: Array + decompressMultiplier: BN +} + +export interface AddLiquiditySingleSidePreciseParameterJSON { + bins: Array + decompressMultiplier: string +} + +export class AddLiquiditySingleSidePreciseParameter { + readonly bins: Array + readonly decompressMultiplier: BN + + constructor(fields: AddLiquiditySingleSidePreciseParameterFields) { + this.bins = fields.bins.map( + (item) => new types.CompressedBinDepositAmount({ ...item }) + ) + this.decompressMultiplier = fields.decompressMultiplier + } + + static layout(property?: string) { + return borsh.struct( + [ + borsh.vec(types.CompressedBinDepositAmount.layout(), "bins"), + borsh.u64("decompressMultiplier"), + ], + property + ) + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + static fromDecoded(obj: any) { + return new AddLiquiditySingleSidePreciseParameter({ + bins: obj.bins.map( + ( + item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */ + ) => types.CompressedBinDepositAmount.fromDecoded(item) + ), + decompressMultiplier: obj.decompressMultiplier, + }) + } + + static toEncodable(fields: AddLiquiditySingleSidePreciseParameterFields) { + return { + bins: fields.bins.map((item) => + types.CompressedBinDepositAmount.toEncodable(item) + ), + decompressMultiplier: fields.decompressMultiplier, + } + } + + toJSON(): AddLiquiditySingleSidePreciseParameterJSON { + return { + bins: this.bins.map((item) => item.toJSON()), + decompressMultiplier: this.decompressMultiplier.toString(), + } + } + + static fromJSON( + obj: AddLiquiditySingleSidePreciseParameterJSON + ): AddLiquiditySingleSidePreciseParameter { + return new AddLiquiditySingleSidePreciseParameter({ + bins: obj.bins.map((item) => + types.CompressedBinDepositAmount.fromJSON(item) + ), + decompressMultiplier: new BN(obj.decompressMultiplier), + }) + } + + toEncodable() { + return AddLiquiditySingleSidePreciseParameter.toEncodable(this) + } +} diff --git a/packages/kamino-sdk/src/meteora_client/types/Bin.ts b/packages/kamino-sdk/src/meteora_client/types/Bin.ts index ff902958..d1a83be0 100644 --- a/packages/kamino-sdk/src/meteora_client/types/Bin.ts +++ b/packages/kamino-sdk/src/meteora_client/types/Bin.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface BinFields { /** Amount of token X in the bin. This already excluded protocol fees. */ diff --git a/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistribution.ts b/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistribution.ts index ed331565..ea992348 100644 --- a/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistribution.ts +++ b/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistribution.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface BinLiquidityDistributionFields { /** Define the bin ID wish to deposit to. */ diff --git a/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistributionByWeight.ts b/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistributionByWeight.ts index c5d4ddf2..82317b67 100644 --- a/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistributionByWeight.ts +++ b/packages/kamino-sdk/src/meteora_client/types/BinLiquidityDistributionByWeight.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface BinLiquidityDistributionByWeightFields { /** Define the bin ID wish to deposit to. */ diff --git a/packages/kamino-sdk/src/meteora_client/types/BinLiquidityReduction.ts b/packages/kamino-sdk/src/meteora_client/types/BinLiquidityReduction.ts index 11cebcaf..7c46c7d4 100644 --- a/packages/kamino-sdk/src/meteora_client/types/BinLiquidityReduction.ts +++ b/packages/kamino-sdk/src/meteora_client/types/BinLiquidityReduction.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface BinLiquidityReductionFields { binId: number diff --git a/packages/kamino-sdk/src/meteora_client/types/CompressedBinDepositAmount.ts b/packages/kamino-sdk/src/meteora_client/types/CompressedBinDepositAmount.ts new file mode 100644 index 00000000..4864e5b8 --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/types/CompressedBinDepositAmount.ts @@ -0,0 +1,63 @@ +import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" + +export interface CompressedBinDepositAmountFields { + binId: number + amount: number +} + +export interface CompressedBinDepositAmountJSON { + binId: number + amount: number +} + +export class CompressedBinDepositAmount { + readonly binId: number + readonly amount: number + + constructor(fields: CompressedBinDepositAmountFields) { + this.binId = fields.binId + this.amount = fields.amount + } + + static layout(property?: string) { + return borsh.struct([borsh.i32("binId"), borsh.u32("amount")], property) + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + static fromDecoded(obj: any) { + return new CompressedBinDepositAmount({ + binId: obj.binId, + amount: obj.amount, + }) + } + + static toEncodable(fields: CompressedBinDepositAmountFields) { + return { + binId: fields.binId, + amount: fields.amount, + } + } + + toJSON(): CompressedBinDepositAmountJSON { + return { + binId: this.binId, + amount: this.amount, + } + } + + static fromJSON( + obj: CompressedBinDepositAmountJSON + ): CompressedBinDepositAmount { + return new CompressedBinDepositAmount({ + binId: obj.binId, + amount: obj.amount, + }) + } + + toEncodable() { + return CompressedBinDepositAmount.toEncodable(this) + } +} diff --git a/packages/kamino-sdk/src/meteora_client/types/FeeInfo.ts b/packages/kamino-sdk/src/meteora_client/types/FeeInfo.ts index 5dd3be43..8ce2385b 100644 --- a/packages/kamino-sdk/src/meteora_client/types/FeeInfo.ts +++ b/packages/kamino-sdk/src/meteora_client/types/FeeInfo.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface FeeInfoFields { feeXPerTokenComplete: BN diff --git a/packages/kamino-sdk/src/meteora_client/types/FeeParameter.ts b/packages/kamino-sdk/src/meteora_client/types/FeeParameter.ts index 70460dc0..73d2fdd0 100644 --- a/packages/kamino-sdk/src/meteora_client/types/FeeParameter.ts +++ b/packages/kamino-sdk/src/meteora_client/types/FeeParameter.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface FeeParameterFields { /** Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee */ diff --git a/packages/kamino-sdk/src/meteora_client/types/InitPermissionPairIx.ts b/packages/kamino-sdk/src/meteora_client/types/InitPermissionPairIx.ts new file mode 100644 index 00000000..620ee3db --- /dev/null +++ b/packages/kamino-sdk/src/meteora_client/types/InitPermissionPairIx.ts @@ -0,0 +1,103 @@ +import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" + +export interface InitPermissionPairIxFields { + activeId: number + binStep: number + baseFactor: number + minBinId: number + maxBinId: number + lockDurationInSlot: BN +} + +export interface InitPermissionPairIxJSON { + activeId: number + binStep: number + baseFactor: number + minBinId: number + maxBinId: number + lockDurationInSlot: string +} + +export class InitPermissionPairIx { + readonly activeId: number + readonly binStep: number + readonly baseFactor: number + readonly minBinId: number + readonly maxBinId: number + readonly lockDurationInSlot: BN + + constructor(fields: InitPermissionPairIxFields) { + this.activeId = fields.activeId + this.binStep = fields.binStep + this.baseFactor = fields.baseFactor + this.minBinId = fields.minBinId + this.maxBinId = fields.maxBinId + this.lockDurationInSlot = fields.lockDurationInSlot + } + + static layout(property?: string) { + return borsh.struct( + [ + borsh.i32("activeId"), + borsh.u16("binStep"), + borsh.u16("baseFactor"), + borsh.i32("minBinId"), + borsh.i32("maxBinId"), + borsh.u64("lockDurationInSlot"), + ], + property + ) + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + static fromDecoded(obj: any) { + return new InitPermissionPairIx({ + activeId: obj.activeId, + binStep: obj.binStep, + baseFactor: obj.baseFactor, + minBinId: obj.minBinId, + maxBinId: obj.maxBinId, + lockDurationInSlot: obj.lockDurationInSlot, + }) + } + + static toEncodable(fields: InitPermissionPairIxFields) { + return { + activeId: fields.activeId, + binStep: fields.binStep, + baseFactor: fields.baseFactor, + minBinId: fields.minBinId, + maxBinId: fields.maxBinId, + lockDurationInSlot: fields.lockDurationInSlot, + } + } + + toJSON(): InitPermissionPairIxJSON { + return { + activeId: this.activeId, + binStep: this.binStep, + baseFactor: this.baseFactor, + minBinId: this.minBinId, + maxBinId: this.maxBinId, + lockDurationInSlot: this.lockDurationInSlot.toString(), + } + } + + static fromJSON(obj: InitPermissionPairIxJSON): InitPermissionPairIx { + return new InitPermissionPairIx({ + activeId: obj.activeId, + binStep: obj.binStep, + baseFactor: obj.baseFactor, + minBinId: obj.minBinId, + maxBinId: obj.maxBinId, + lockDurationInSlot: new BN(obj.lockDurationInSlot), + }) + } + + toEncodable() { + return InitPermissionPairIx.toEncodable(this) + } +} diff --git a/packages/kamino-sdk/src/meteora_client/types/InitPresetParametersIx.ts b/packages/kamino-sdk/src/meteora_client/types/InitPresetParametersIx.ts index 2e0050bd..a65954d6 100644 --- a/packages/kamino-sdk/src/meteora_client/types/InitPresetParametersIx.ts +++ b/packages/kamino-sdk/src/meteora_client/types/InitPresetParametersIx.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface InitPresetParametersIxFields { /** Bin step. Represent the price increment / decrement. */ diff --git a/packages/kamino-sdk/src/meteora_client/types/LayoutVersion.ts b/packages/kamino-sdk/src/meteora_client/types/LayoutVersion.ts index ebc9ce46..8ce46903 100644 --- a/packages/kamino-sdk/src/meteora_client/types/LayoutVersion.ts +++ b/packages/kamino-sdk/src/meteora_client/types/LayoutVersion.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface V0JSON { kind: "V0" diff --git a/packages/kamino-sdk/src/meteora_client/types/LiquidityOneSideParameter.ts b/packages/kamino-sdk/src/meteora_client/types/LiquidityOneSideParameter.ts index 79c2715f..013a8863 100644 --- a/packages/kamino-sdk/src/meteora_client/types/LiquidityOneSideParameter.ts +++ b/packages/kamino-sdk/src/meteora_client/types/LiquidityOneSideParameter.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface LiquidityOneSideParameterFields { /** Amount of X token or Y token to deposit */ diff --git a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameter.ts b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameter.ts index 33b1ff69..1169b1b0 100644 --- a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameter.ts +++ b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameter.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface LiquidityParameterFields { /** Amount of X token to deposit */ diff --git a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategy.ts b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategy.ts index 50811cff..69f1c0b0 100644 --- a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategy.ts +++ b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategy.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface LiquidityParameterByStrategyFields { /** Amount of X token to deposit */ diff --git a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategyOneSide.ts b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategyOneSide.ts index df035f33..7907b0cb 100644 --- a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategyOneSide.ts +++ b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByStrategyOneSide.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface LiquidityParameterByStrategyOneSideFields { /** Amount of X token or Y token to deposit */ diff --git a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByWeight.ts b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByWeight.ts index 3f9e8f24..055857de 100644 --- a/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByWeight.ts +++ b/packages/kamino-sdk/src/meteora_client/types/LiquidityParameterByWeight.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface LiquidityParameterByWeightFields { /** Amount of X token to deposit */ diff --git a/packages/kamino-sdk/src/meteora_client/types/Observation.ts b/packages/kamino-sdk/src/meteora_client/types/Observation.ts index 298b56c2..f8265514 100644 --- a/packages/kamino-sdk/src/meteora_client/types/Observation.ts +++ b/packages/kamino-sdk/src/meteora_client/types/Observation.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface ObservationFields { /** Cumulative active bin ID */ diff --git a/packages/kamino-sdk/src/meteora_client/types/PairStatus.ts b/packages/kamino-sdk/src/meteora_client/types/PairStatus.ts index 76b1a167..da173642 100644 --- a/packages/kamino-sdk/src/meteora_client/types/PairStatus.ts +++ b/packages/kamino-sdk/src/meteora_client/types/PairStatus.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface EnabledJSON { kind: "Enabled" diff --git a/packages/kamino-sdk/src/meteora_client/types/PairType.ts b/packages/kamino-sdk/src/meteora_client/types/PairType.ts index a369e69b..54b86518 100644 --- a/packages/kamino-sdk/src/meteora_client/types/PairType.ts +++ b/packages/kamino-sdk/src/meteora_client/types/PairType.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface PermissionlessJSON { kind: "Permissionless" diff --git a/packages/kamino-sdk/src/meteora_client/types/ParabolicParameter.ts b/packages/kamino-sdk/src/meteora_client/types/ParabolicParameter.ts deleted file mode 100644 index 61051003..00000000 --- a/packages/kamino-sdk/src/meteora_client/types/ParabolicParameter.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" - -export interface ParabolicParameterFields { - /** amplification */ - a: number -} - -export interface ParabolicParameterJSON { - /** amplification */ - a: number -} - -export class ParabolicParameter { - /** amplification */ - readonly a: number - - constructor(fields: ParabolicParameterFields) { - this.a = fields.a - } - - static layout(property?: string) { - return borsh.struct([borsh.i16("a")], property) - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - static fromDecoded(obj: any) { - return new ParabolicParameter({ - a: obj.a, - }) - } - - static toEncodable(fields: ParabolicParameterFields) { - return { - a: fields.a, - } - } - - toJSON(): ParabolicParameterJSON { - return { - a: this.a, - } - } - - static fromJSON(obj: ParabolicParameterJSON): ParabolicParameter { - return new ParabolicParameter({ - a: obj.a, - }) - } - - toEncodable() { - return ParabolicParameter.toEncodable(this) - } -} diff --git a/packages/kamino-sdk/src/meteora_client/types/ProtocolFee.ts b/packages/kamino-sdk/src/meteora_client/types/ProtocolFee.ts index ff760f64..2523494d 100644 --- a/packages/kamino-sdk/src/meteora_client/types/ProtocolFee.ts +++ b/packages/kamino-sdk/src/meteora_client/types/ProtocolFee.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface ProtocolFeeFields { amountX: BN diff --git a/packages/kamino-sdk/src/meteora_client/types/RewardInfo.ts b/packages/kamino-sdk/src/meteora_client/types/RewardInfo.ts index 76e62188..3fa966a9 100644 --- a/packages/kamino-sdk/src/meteora_client/types/RewardInfo.ts +++ b/packages/kamino-sdk/src/meteora_client/types/RewardInfo.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface RewardInfoFields { /** Reward token mint. */ @@ -18,8 +18,8 @@ export interface RewardInfoFields { rewardRate: BN /** The last time reward states were updated. */ lastUpdateTime: BN - /** padding, ignored field */ - padding: Array + /** Accumulated seconds where when farm distribute rewards, but the bin is empty. The reward will be accumulated for next reward time window. */ + cumulativeSecondsWithEmptyLiquidityReward: BN } export interface RewardInfoJSON { @@ -37,8 +37,8 @@ export interface RewardInfoJSON { rewardRate: string /** The last time reward states were updated. */ lastUpdateTime: string - /** padding, ignored field */ - padding: Array + /** Accumulated seconds where when farm distribute rewards, but the bin is empty. The reward will be accumulated for next reward time window. */ + cumulativeSecondsWithEmptyLiquidityReward: string } /** Stores the state relevant for tracking liquidity mining rewards */ @@ -57,8 +57,8 @@ export class RewardInfo { readonly rewardRate: BN /** The last time reward states were updated. */ readonly lastUpdateTime: BN - /** padding, ignored field */ - readonly padding: Array + /** Accumulated seconds where when farm distribute rewards, but the bin is empty. The reward will be accumulated for next reward time window. */ + readonly cumulativeSecondsWithEmptyLiquidityReward: BN constructor(fields: RewardInfoFields) { this.mint = fields.mint @@ -68,7 +68,8 @@ export class RewardInfo { this.rewardDurationEnd = fields.rewardDurationEnd this.rewardRate = fields.rewardRate this.lastUpdateTime = fields.lastUpdateTime - this.padding = fields.padding + this.cumulativeSecondsWithEmptyLiquidityReward = + fields.cumulativeSecondsWithEmptyLiquidityReward } static layout(property?: string) { @@ -81,7 +82,7 @@ export class RewardInfo { borsh.u64("rewardDurationEnd"), borsh.u128("rewardRate"), borsh.u64("lastUpdateTime"), - borsh.array(borsh.u8(), 8, "padding"), + borsh.u64("cumulativeSecondsWithEmptyLiquidityReward"), ], property ) @@ -97,7 +98,8 @@ export class RewardInfo { rewardDurationEnd: obj.rewardDurationEnd, rewardRate: obj.rewardRate, lastUpdateTime: obj.lastUpdateTime, - padding: obj.padding, + cumulativeSecondsWithEmptyLiquidityReward: + obj.cumulativeSecondsWithEmptyLiquidityReward, }) } @@ -110,7 +112,8 @@ export class RewardInfo { rewardDurationEnd: fields.rewardDurationEnd, rewardRate: fields.rewardRate, lastUpdateTime: fields.lastUpdateTime, - padding: fields.padding, + cumulativeSecondsWithEmptyLiquidityReward: + fields.cumulativeSecondsWithEmptyLiquidityReward, } } @@ -123,7 +126,8 @@ export class RewardInfo { rewardDurationEnd: this.rewardDurationEnd.toString(), rewardRate: this.rewardRate.toString(), lastUpdateTime: this.lastUpdateTime.toString(), - padding: this.padding, + cumulativeSecondsWithEmptyLiquidityReward: + this.cumulativeSecondsWithEmptyLiquidityReward.toString(), } } @@ -136,7 +140,9 @@ export class RewardInfo { rewardDurationEnd: new BN(obj.rewardDurationEnd), rewardRate: new BN(obj.rewardRate), lastUpdateTime: new BN(obj.lastUpdateTime), - padding: obj.padding, + cumulativeSecondsWithEmptyLiquidityReward: new BN( + obj.cumulativeSecondsWithEmptyLiquidityReward + ), }) } diff --git a/packages/kamino-sdk/src/meteora_client/types/Rounding.ts b/packages/kamino-sdk/src/meteora_client/types/Rounding.ts index 26798be9..bd35f106 100644 --- a/packages/kamino-sdk/src/meteora_client/types/Rounding.ts +++ b/packages/kamino-sdk/src/meteora_client/types/Rounding.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface UpJSON { kind: "Up" diff --git a/packages/kamino-sdk/src/meteora_client/types/StaticParameters.ts b/packages/kamino-sdk/src/meteora_client/types/StaticParameters.ts index 320cefaf..9dbe73e9 100644 --- a/packages/kamino-sdk/src/meteora_client/types/StaticParameters.ts +++ b/packages/kamino-sdk/src/meteora_client/types/StaticParameters.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface StaticParametersFields { /** Used for base fee calculation. base_fee_rate = base_factor * bin_step */ diff --git a/packages/kamino-sdk/src/meteora_client/types/StrategyParameters.ts b/packages/kamino-sdk/src/meteora_client/types/StrategyParameters.ts index d81a8ca0..31345bb8 100644 --- a/packages/kamino-sdk/src/meteora_client/types/StrategyParameters.ts +++ b/packages/kamino-sdk/src/meteora_client/types/StrategyParameters.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface StrategyParametersFields { /** min bin id */ diff --git a/packages/kamino-sdk/src/meteora_client/types/StrategyType.ts b/packages/kamino-sdk/src/meteora_client/types/StrategyType.ts index 0a74951c..cada7c21 100644 --- a/packages/kamino-sdk/src/meteora_client/types/StrategyType.ts +++ b/packages/kamino-sdk/src/meteora_client/types/StrategyType.ts @@ -1,73 +1,211 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" -export interface SpotJSON { - kind: "Spot" +export interface SpotOneSideJSON { + kind: "SpotOneSide" } -export class Spot { +export class SpotOneSide { static readonly discriminator = 0 - static readonly kind = "Spot" + static readonly kind = "SpotOneSide" readonly discriminator = 0 - readonly kind = "Spot" + readonly kind = "SpotOneSide" - toJSON(): SpotJSON { + toJSON(): SpotOneSideJSON { return { - kind: "Spot", + kind: "SpotOneSide", } } toEncodable() { return { - Spot: {}, + SpotOneSide: {}, } } } -export interface CurveJSON { - kind: "Curve" +export interface CurveOneSideJSON { + kind: "CurveOneSide" } -export class Curve { +export class CurveOneSide { static readonly discriminator = 1 - static readonly kind = "Curve" + static readonly kind = "CurveOneSide" readonly discriminator = 1 - readonly kind = "Curve" + readonly kind = "CurveOneSide" - toJSON(): CurveJSON { + toJSON(): CurveOneSideJSON { return { - kind: "Curve", + kind: "CurveOneSide", } } toEncodable() { return { - Curve: {}, + CurveOneSide: {}, } } } -export interface BidAskJSON { - kind: "BidAsk" +export interface BidAskOneSideJSON { + kind: "BidAskOneSide" } -export class BidAsk { +export class BidAskOneSide { static readonly discriminator = 2 - static readonly kind = "BidAsk" + static readonly kind = "BidAskOneSide" readonly discriminator = 2 - readonly kind = "BidAsk" + readonly kind = "BidAskOneSide" - toJSON(): BidAskJSON { + toJSON(): BidAskOneSideJSON { return { - kind: "BidAsk", + kind: "BidAskOneSide", } } toEncodable() { return { - BidAsk: {}, + BidAskOneSide: {}, + } + } +} + +export interface SpotBalancedJSON { + kind: "SpotBalanced" +} + +export class SpotBalanced { + static readonly discriminator = 3 + static readonly kind = "SpotBalanced" + readonly discriminator = 3 + readonly kind = "SpotBalanced" + + toJSON(): SpotBalancedJSON { + return { + kind: "SpotBalanced", + } + } + + toEncodable() { + return { + SpotBalanced: {}, + } + } +} + +export interface CurveBalancedJSON { + kind: "CurveBalanced" +} + +export class CurveBalanced { + static readonly discriminator = 4 + static readonly kind = "CurveBalanced" + readonly discriminator = 4 + readonly kind = "CurveBalanced" + + toJSON(): CurveBalancedJSON { + return { + kind: "CurveBalanced", + } + } + + toEncodable() { + return { + CurveBalanced: {}, + } + } +} + +export interface BidAskBalancedJSON { + kind: "BidAskBalanced" +} + +export class BidAskBalanced { + static readonly discriminator = 5 + static readonly kind = "BidAskBalanced" + readonly discriminator = 5 + readonly kind = "BidAskBalanced" + + toJSON(): BidAskBalancedJSON { + return { + kind: "BidAskBalanced", + } + } + + toEncodable() { + return { + BidAskBalanced: {}, + } + } +} + +export interface SpotImBalancedJSON { + kind: "SpotImBalanced" +} + +export class SpotImBalanced { + static readonly discriminator = 6 + static readonly kind = "SpotImBalanced" + readonly discriminator = 6 + readonly kind = "SpotImBalanced" + + toJSON(): SpotImBalancedJSON { + return { + kind: "SpotImBalanced", + } + } + + toEncodable() { + return { + SpotImBalanced: {}, + } + } +} + +export interface CurveImBalancedJSON { + kind: "CurveImBalanced" +} + +export class CurveImBalanced { + static readonly discriminator = 7 + static readonly kind = "CurveImBalanced" + readonly discriminator = 7 + readonly kind = "CurveImBalanced" + + toJSON(): CurveImBalancedJSON { + return { + kind: "CurveImBalanced", + } + } + + toEncodable() { + return { + CurveImBalanced: {}, + } + } +} + +export interface BidAskImBalancedJSON { + kind: "BidAskImBalanced" +} + +export class BidAskImBalanced { + static readonly discriminator = 8 + static readonly kind = "BidAskImBalanced" + readonly discriminator = 8 + readonly kind = "BidAskImBalanced" + + toJSON(): BidAskImBalancedJSON { + return { + kind: "BidAskImBalanced", + } + } + + toEncodable() { + return { + BidAskImBalanced: {}, } } } @@ -78,14 +216,32 @@ export function fromDecoded(obj: any): types.StrategyTypeKind { throw new Error("Invalid enum object") } - if ("Spot" in obj) { - return new Spot() + if ("SpotOneSide" in obj) { + return new SpotOneSide() + } + if ("CurveOneSide" in obj) { + return new CurveOneSide() } - if ("Curve" in obj) { - return new Curve() + if ("BidAskOneSide" in obj) { + return new BidAskOneSide() } - if ("BidAsk" in obj) { - return new BidAsk() + if ("SpotBalanced" in obj) { + return new SpotBalanced() + } + if ("CurveBalanced" in obj) { + return new CurveBalanced() + } + if ("BidAskBalanced" in obj) { + return new BidAskBalanced() + } + if ("SpotImBalanced" in obj) { + return new SpotImBalanced() + } + if ("CurveImBalanced" in obj) { + return new CurveImBalanced() + } + if ("BidAskImBalanced" in obj) { + return new BidAskImBalanced() } throw new Error("Invalid enum object") @@ -93,23 +249,47 @@ export function fromDecoded(obj: any): types.StrategyTypeKind { export function fromJSON(obj: types.StrategyTypeJSON): types.StrategyTypeKind { switch (obj.kind) { - case "Spot": { - return new Spot() + case "SpotOneSide": { + return new SpotOneSide() + } + case "CurveOneSide": { + return new CurveOneSide() + } + case "BidAskOneSide": { + return new BidAskOneSide() + } + case "SpotBalanced": { + return new SpotBalanced() + } + case "CurveBalanced": { + return new CurveBalanced() + } + case "BidAskBalanced": { + return new BidAskBalanced() + } + case "SpotImBalanced": { + return new SpotImBalanced() } - case "Curve": { - return new Curve() + case "CurveImBalanced": { + return new CurveImBalanced() } - case "BidAsk": { - return new BidAsk() + case "BidAskImBalanced": { + return new BidAskImBalanced() } } } export function layout(property?: string) { const ret = borsh.rustEnum([ - borsh.struct([], "Spot"), - borsh.struct([], "Curve"), - borsh.struct([], "BidAsk"), + borsh.struct([], "SpotOneSide"), + borsh.struct([], "CurveOneSide"), + borsh.struct([], "BidAskOneSide"), + borsh.struct([], "SpotBalanced"), + borsh.struct([], "CurveBalanced"), + borsh.struct([], "BidAskBalanced"), + borsh.struct([], "SpotImBalanced"), + borsh.struct([], "CurveImBalanced"), + borsh.struct([], "BidAskImBalanced"), ]) if (property !== undefined) { return ret.replicate(property) diff --git a/packages/kamino-sdk/src/meteora_client/types/UserRewardInfo.ts b/packages/kamino-sdk/src/meteora_client/types/UserRewardInfo.ts index b5e3fafd..fc55f1fe 100644 --- a/packages/kamino-sdk/src/meteora_client/types/UserRewardInfo.ts +++ b/packages/kamino-sdk/src/meteora_client/types/UserRewardInfo.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface UserRewardInfoFields { rewardPerTokenCompletes: Array diff --git a/packages/kamino-sdk/src/meteora_client/types/VariableParameters.ts b/packages/kamino-sdk/src/meteora_client/types/VariableParameters.ts index aceea54b..e78b2e96 100644 --- a/packages/kamino-sdk/src/meteora_client/types/VariableParameters.ts +++ b/packages/kamino-sdk/src/meteora_client/types/VariableParameters.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface VariableParametersFields { /** diff --git a/packages/kamino-sdk/src/meteora_client/types/index.ts b/packages/kamino-sdk/src/meteora_client/types/index.ts index edd83d96..18089b7c 100644 --- a/packages/kamino-sdk/src/meteora_client/types/index.ts +++ b/packages/kamino-sdk/src/meteora_client/types/index.ts @@ -19,11 +19,11 @@ export type { StrategyParametersFields, StrategyParametersJSON, } from "./StrategyParameters" -export { ParabolicParameter } from "./ParabolicParameter" +export { LiquidityOneSideParameter } from "./LiquidityOneSideParameter" export type { - ParabolicParameterFields, - ParabolicParameterJSON, -} from "./ParabolicParameter" + LiquidityOneSideParameterFields, + LiquidityOneSideParameterJSON, +} from "./LiquidityOneSideParameter" export { BinLiquidityDistributionByWeight } from "./BinLiquidityDistributionByWeight" export type { BinLiquidityDistributionByWeightFields, @@ -34,11 +34,16 @@ export type { LiquidityParameterByWeightFields, LiquidityParameterByWeightJSON, } from "./LiquidityParameterByWeight" -export { LiquidityOneSideParameter } from "./LiquidityOneSideParameter" +export { AddLiquiditySingleSidePreciseParameter } from "./AddLiquiditySingleSidePreciseParameter" export type { - LiquidityOneSideParameterFields, - LiquidityOneSideParameterJSON, -} from "./LiquidityOneSideParameter" + AddLiquiditySingleSidePreciseParameterFields, + AddLiquiditySingleSidePreciseParameterJSON, +} from "./AddLiquiditySingleSidePreciseParameter" +export { CompressedBinDepositAmount } from "./CompressedBinDepositAmount" +export type { + CompressedBinDepositAmountFields, + CompressedBinDepositAmountJSON, +} from "./CompressedBinDepositAmount" export { BinLiquidityDistribution } from "./BinLiquidityDistribution" export type { BinLiquidityDistributionFields, @@ -49,6 +54,11 @@ export type { LiquidityParameterFields, LiquidityParameterJSON, } from "./LiquidityParameter" +export { InitPermissionPairIx } from "./InitPermissionPairIx" +export type { + InitPermissionPairIxFields, + InitPermissionPairIxJSON, +} from "./InitPermissionPairIx" export { InitPresetParametersIx } from "./InitPresetParametersIx" export type { InitPresetParametersIxFields, @@ -86,13 +96,25 @@ export type { UserRewardInfoFields, UserRewardInfoJSON } from "./UserRewardInfo" export { StrategyType } export type StrategyTypeKind = - | StrategyType.Spot - | StrategyType.Curve - | StrategyType.BidAsk + | StrategyType.SpotOneSide + | StrategyType.CurveOneSide + | StrategyType.BidAskOneSide + | StrategyType.SpotBalanced + | StrategyType.CurveBalanced + | StrategyType.BidAskBalanced + | StrategyType.SpotImBalanced + | StrategyType.CurveImBalanced + | StrategyType.BidAskImBalanced export type StrategyTypeJSON = - | StrategyType.SpotJSON - | StrategyType.CurveJSON - | StrategyType.BidAskJSON + | StrategyType.SpotOneSideJSON + | StrategyType.CurveOneSideJSON + | StrategyType.BidAskOneSideJSON + | StrategyType.SpotBalancedJSON + | StrategyType.CurveBalancedJSON + | StrategyType.BidAskBalancedJSON + | StrategyType.SpotImBalancedJSON + | StrategyType.CurveImBalancedJSON + | StrategyType.BidAskImBalancedJSON export { Rounding } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/AmmConfig.ts b/packages/kamino-sdk/src/raydium_client/accounts/AmmConfig.ts index c66aed9d..35e222b6 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/AmmConfig.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/AmmConfig.ts @@ -1,22 +1,16 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface AmmConfigFields { - /** Bump to identify PDA */ bump: number; index: number; - /** Address of the protocol owner */ owner: PublicKey; - /** The protocol fee */ protocolFeeRate: number; - /** The trade fee, denominated in hundredths of a bip (10^-6) */ tradeFeeRate: number; - /** The tick spacing */ tickSpacing: number; - /** The fund fee, denominated in hundredths of a bip (10^-6) */ fundFeeRate: number; paddingU32: number; fundOwner: PublicKey; @@ -24,38 +18,25 @@ export interface AmmConfigFields { } export interface AmmConfigJSON { - /** Bump to identify PDA */ bump: number; index: number; - /** Address of the protocol owner */ owner: string; - /** The protocol fee */ protocolFeeRate: number; - /** The trade fee, denominated in hundredths of a bip (10^-6) */ tradeFeeRate: number; - /** The tick spacing */ tickSpacing: number; - /** The fund fee, denominated in hundredths of a bip (10^-6) */ fundFeeRate: number; paddingU32: number; fundOwner: string; padding: Array; } -/** Holds the current owner of the factory */ export class AmmConfig { - /** Bump to identify PDA */ readonly bump: number; readonly index: number; - /** Address of the protocol owner */ readonly owner: PublicKey; - /** The protocol fee */ readonly protocolFeeRate: number; - /** The trade fee, denominated in hundredths of a bip (10^-6) */ readonly tradeFeeRate: number; - /** The tick spacing */ readonly tickSpacing: number; - /** The fund fee, denominated in hundredths of a bip (10^-6) */ readonly fundFeeRate: number; readonly paddingU32: number; readonly fundOwner: PublicKey; @@ -89,27 +70,31 @@ export class AmmConfig { this.padding = fields.padding; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch(c: Connection, address: PublicKey, programId: PublicKey = PROGRAM_ID): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/ObservationState.ts b/packages/kamino-sdk/src/raydium_client/accounts/ObservationState.ts index 90b735ac..fd50f119 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/ObservationState.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/ObservationState.ts @@ -1,36 +1,27 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface ObservationStateFields { - /** Whether the ObservationState is initialized */ initialized: boolean; poolId: PublicKey; - /** observation array */ observations: Array; - /** padding for feature update */ padding: Array; } export interface ObservationStateJSON { - /** Whether the ObservationState is initialized */ initialized: boolean; poolId: string; - /** observation array */ observations: Array; - /** padding for feature update */ padding: Array; } export class ObservationState { - /** Whether the ObservationState is initialized */ readonly initialized: boolean; readonly poolId: PublicKey; - /** observation array */ readonly observations: Array; - /** padding for feature update */ readonly padding: Array; static readonly discriminator = Buffer.from([122, 174, 197, 53, 129, 9, 165, 132]); @@ -49,27 +40,35 @@ export class ObservationState { this.padding = fields.padding; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = PROGRAM_ID + ): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/OperationState.ts b/packages/kamino-sdk/src/raydium_client/accounts/OperationState.ts index f905724d..d9446969 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/OperationState.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/OperationState.ts @@ -1,34 +1,24 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface OperationStateFields { - /** Bump to identify PDA */ bump: number; - /** Address of the operation owner */ operationOwners: Array; - /** The mint address of whitelist to emmit reward */ whitelistMints: Array; } export interface OperationStateJSON { - /** Bump to identify PDA */ bump: number; - /** Address of the operation owner */ operationOwners: Array; - /** The mint address of whitelist to emmit reward */ whitelistMints: Array; } -/** Holds the current owner of the factory */ export class OperationState { - /** Bump to identify PDA */ readonly bump: number; - /** Address of the operation owner */ readonly operationOwners: Array; - /** The mint address of whitelist to emmit reward */ readonly whitelistMints: Array; static readonly discriminator = Buffer.from([19, 236, 58, 237, 81, 222, 183, 252]); @@ -45,27 +35,35 @@ export class OperationState { this.whitelistMints = fields.whitelistMints; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = PROGRAM_ID + ): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/PersonalPositionState.ts b/packages/kamino-sdk/src/raydium_client/accounts/PersonalPositionState.ts index 03530264..eb0f4b70 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/PersonalPositionState.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/PersonalPositionState.ts @@ -1,79 +1,49 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface PersonalPositionStateFields { - /** Bump to identify PDA */ bump: number; - /** Mint address of the tokenized position */ nftMint: PublicKey; - /** The ID of the pool with which this token is connected */ poolId: PublicKey; - /** The lower bound tick of the position */ tickLowerIndex: number; - /** The upper bound tick of the position */ tickUpperIndex: number; - /** The amount of liquidity owned by this position */ liquidity: BN; - /** The token_0 fee growth of the aggregate position as of the last action on the individual position */ feeGrowthInside0LastX64: BN; - /** The token_1 fee growth of the aggregate position as of the last action on the individual position */ feeGrowthInside1LastX64: BN; - /** The fees owed to the position owner in token_0, as of the last computation */ tokenFeesOwed0: BN; - /** The fees owed to the position owner in token_1, as of the last computation */ tokenFeesOwed1: BN; rewardInfos: Array; padding: Array; } export interface PersonalPositionStateJSON { - /** Bump to identify PDA */ bump: number; - /** Mint address of the tokenized position */ nftMint: string; - /** The ID of the pool with which this token is connected */ poolId: string; - /** The lower bound tick of the position */ tickLowerIndex: number; - /** The upper bound tick of the position */ tickUpperIndex: number; - /** The amount of liquidity owned by this position */ liquidity: string; - /** The token_0 fee growth of the aggregate position as of the last action on the individual position */ feeGrowthInside0LastX64: string; - /** The token_1 fee growth of the aggregate position as of the last action on the individual position */ feeGrowthInside1LastX64: string; - /** The fees owed to the position owner in token_0, as of the last computation */ tokenFeesOwed0: string; - /** The fees owed to the position owner in token_1, as of the last computation */ tokenFeesOwed1: string; rewardInfos: Array; padding: Array; } export class PersonalPositionState { - /** Bump to identify PDA */ readonly bump: number; - /** Mint address of the tokenized position */ readonly nftMint: PublicKey; - /** The ID of the pool with which this token is connected */ readonly poolId: PublicKey; - /** The lower bound tick of the position */ readonly tickLowerIndex: number; - /** The upper bound tick of the position */ readonly tickUpperIndex: number; - /** The amount of liquidity owned by this position */ readonly liquidity: BN; - /** The token_0 fee growth of the aggregate position as of the last action on the individual position */ readonly feeGrowthInside0LastX64: BN; - /** The token_1 fee growth of the aggregate position as of the last action on the individual position */ readonly feeGrowthInside1LastX64: BN; - /** The fees owed to the position owner in token_0, as of the last computation */ readonly tokenFeesOwed0: BN; - /** The fees owed to the position owner in token_1, as of the last computation */ readonly tokenFeesOwed1: BN; readonly rewardInfos: Array; readonly padding: Array; @@ -110,28 +80,35 @@ export class PersonalPositionState { this.padding = fields.padding; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = PROGRAM_ID + ): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/PoolState.ts b/packages/kamino-sdk/src/raydium_client/accounts/PoolState.ts index 01988462..f94c02c6 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/PoolState.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/PoolState.ts @@ -1,67 +1,39 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface PoolStateFields { - /** Bump to identify PDA */ - bump: number; + bump: Array; ammConfig: PublicKey; owner: PublicKey; - /** Token pair of the pool, where token_mint_0 address < token_mint_1 address */ tokenMint0: PublicKey; tokenMint1: PublicKey; - /** Token pair vault */ tokenVault0: PublicKey; tokenVault1: PublicKey; - /** observation account key */ observationKey: PublicKey; - /** mint0 and mint1 decimals */ mintDecimals0: number; mintDecimals1: number; - /** The minimum number of ticks between initialized ticks */ tickSpacing: number; - /** The currently in range liquidity available to the pool. */ liquidity: BN; - /** The current price of the pool as a sqrt(token_1/token_0) Q64.64 value */ sqrtPriceX64: BN; - /** The current tick of the pool, i.e. according to the last tick transition that was run. */ tickCurrent: number; - /** the most-recently updated index of the observations array */ observationIndex: number; observationUpdateDuration: number; - /** - * The fee growth as a Q64.64 number, i.e. fees of token_0 and token_1 collected per - * unit of liquidity for the entire life of the pool. - */ feeGrowthGlobal0X64: BN; feeGrowthGlobal1X64: BN; - /** The amounts of token_0 and token_1 that are owed to the protocol. */ protocolFeesToken0: BN; protocolFeesToken1: BN; - /** The amounts in and out of swap token_0 and token_1 */ swapInAmountToken0: BN; swapOutAmountToken1: BN; swapInAmountToken1: BN; swapOutAmountToken0: BN; - /** - * Bitwise representation of the state of the pool - * bit0, 1: disable open position and increase liquidity, 0: normal - * bit1, 1: disable decrease liquidity, 0: normal - * bit2, 1: disable collect fee, 0: normal - * bit3, 1: disable collect reward, 0: normal - * bit4, 1: disable swap, 0: normal - */ status: number; - /** Leave blank for future use */ padding: Array; rewardInfos: Array; - /** Packed initialized tick array state */ tickArrayBitmap: Array; - /** except protocol_fee and fund_fee */ totalFeesToken0: BN; - /** except protocol_fee and fund_fee */ totalFeesClaimedToken0: BN; totalFeesToken1: BN; totalFeesClaimedToken1: BN; @@ -73,63 +45,35 @@ export interface PoolStateFields { } export interface PoolStateJSON { - /** Bump to identify PDA */ - bump: number; + bump: Array; ammConfig: string; owner: string; - /** Token pair of the pool, where token_mint_0 address < token_mint_1 address */ tokenMint0: string; tokenMint1: string; - /** Token pair vault */ tokenVault0: string; tokenVault1: string; - /** observation account key */ observationKey: string; - /** mint0 and mint1 decimals */ mintDecimals0: number; mintDecimals1: number; - /** The minimum number of ticks between initialized ticks */ tickSpacing: number; - /** The currently in range liquidity available to the pool. */ liquidity: string; - /** The current price of the pool as a sqrt(token_1/token_0) Q64.64 value */ sqrtPriceX64: string; - /** The current tick of the pool, i.e. according to the last tick transition that was run. */ tickCurrent: number; - /** the most-recently updated index of the observations array */ observationIndex: number; observationUpdateDuration: number; - /** - * The fee growth as a Q64.64 number, i.e. fees of token_0 and token_1 collected per - * unit of liquidity for the entire life of the pool. - */ feeGrowthGlobal0X64: string; feeGrowthGlobal1X64: string; - /** The amounts of token_0 and token_1 that are owed to the protocol. */ protocolFeesToken0: string; protocolFeesToken1: string; - /** The amounts in and out of swap token_0 and token_1 */ swapInAmountToken0: string; swapOutAmountToken1: string; swapInAmountToken1: string; swapOutAmountToken0: string; - /** - * Bitwise representation of the state of the pool - * bit0, 1: disable open position and increase liquidity, 0: normal - * bit1, 1: disable decrease liquidity, 0: normal - * bit2, 1: disable collect fee, 0: normal - * bit3, 1: disable collect reward, 0: normal - * bit4, 1: disable swap, 0: normal - */ status: number; - /** Leave blank for future use */ padding: Array; rewardInfos: Array; - /** Packed initialized tick array state */ tickArrayBitmap: Array; - /** except protocol_fee and fund_fee */ totalFeesToken0: string; - /** except protocol_fee and fund_fee */ totalFeesClaimedToken0: string; totalFeesToken1: string; totalFeesClaimedToken1: string; @@ -140,70 +84,36 @@ export interface PoolStateJSON { padding2: Array; } -/** - * The pool state - * - * PDA of `[POOL_SEED, config, token_mint_0, token_mint_1]` - * - */ export class PoolState { - /** Bump to identify PDA */ - readonly bump: number; + readonly bump: Array; readonly ammConfig: PublicKey; readonly owner: PublicKey; - /** Token pair of the pool, where token_mint_0 address < token_mint_1 address */ readonly tokenMint0: PublicKey; readonly tokenMint1: PublicKey; - /** Token pair vault */ readonly tokenVault0: PublicKey; readonly tokenVault1: PublicKey; - /** observation account key */ readonly observationKey: PublicKey; - /** mint0 and mint1 decimals */ readonly mintDecimals0: number; readonly mintDecimals1: number; - /** The minimum number of ticks between initialized ticks */ readonly tickSpacing: number; - /** The currently in range liquidity available to the pool. */ readonly liquidity: BN; - /** The current price of the pool as a sqrt(token_1/token_0) Q64.64 value */ readonly sqrtPriceX64: BN; - /** The current tick of the pool, i.e. according to the last tick transition that was run. */ readonly tickCurrent: number; - /** the most-recently updated index of the observations array */ readonly observationIndex: number; readonly observationUpdateDuration: number; - /** - * The fee growth as a Q64.64 number, i.e. fees of token_0 and token_1 collected per - * unit of liquidity for the entire life of the pool. - */ readonly feeGrowthGlobal0X64: BN; readonly feeGrowthGlobal1X64: BN; - /** The amounts of token_0 and token_1 that are owed to the protocol. */ readonly protocolFeesToken0: BN; readonly protocolFeesToken1: BN; - /** The amounts in and out of swap token_0 and token_1 */ readonly swapInAmountToken0: BN; readonly swapOutAmountToken1: BN; readonly swapInAmountToken1: BN; readonly swapOutAmountToken0: BN; - /** - * Bitwise representation of the state of the pool - * bit0, 1: disable open position and increase liquidity, 0: normal - * bit1, 1: disable decrease liquidity, 0: normal - * bit2, 1: disable collect fee, 0: normal - * bit3, 1: disable collect reward, 0: normal - * bit4, 1: disable swap, 0: normal - */ readonly status: number; - /** Leave blank for future use */ readonly padding: Array; readonly rewardInfos: Array; - /** Packed initialized tick array state */ readonly tickArrayBitmap: Array; - /** except protocol_fee and fund_fee */ readonly totalFeesToken0: BN; - /** except protocol_fee and fund_fee */ readonly totalFeesClaimedToken0: BN; readonly totalFeesToken1: BN; readonly totalFeesClaimedToken1: BN; @@ -216,7 +126,7 @@ export class PoolState { static readonly discriminator = Buffer.from([247, 237, 227, 245, 215, 195, 222, 70]); static readonly layout = borsh.struct([ - borsh.u8('bump'), + borsh.array(borsh.u8(), 1, 'bump'), borsh.publicKey('ammConfig'), borsh.publicKey('owner'), borsh.publicKey('tokenMint0'), @@ -295,26 +205,31 @@ export class PoolState { this.padding2 = fields.padding2; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch(c: Connection, address: PublicKey, programId: PublicKey = PROGRAM_ID): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); + return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/ProtocolPositionState.ts b/packages/kamino-sdk/src/raydium_client/accounts/ProtocolPositionState.ts index 71c562fa..cd743c54 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/ProtocolPositionState.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/ProtocolPositionState.ts @@ -1,78 +1,47 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface ProtocolPositionStateFields { - /** Bump to identify PDA */ bump: number; - /** The ID of the pool with which this token is connected */ poolId: PublicKey; - /** The lower bound tick of the position */ tickLowerIndex: number; - /** The upper bound tick of the position */ tickUpperIndex: number; - /** The amount of liquidity owned by this position */ liquidity: BN; - /** The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed */ feeGrowthInside0LastX64: BN; - /** The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed */ feeGrowthInside1LastX64: BN; - /** The fees owed to the position owner in token_0 */ tokenFeesOwed0: BN; - /** The fees owed to the position owner in token_1 */ tokenFeesOwed1: BN; - /** The reward growth per unit of liquidity as of the last update to liquidity */ rewardGrowthInside: Array; padding: Array; } export interface ProtocolPositionStateJSON { - /** Bump to identify PDA */ bump: number; - /** The ID of the pool with which this token is connected */ poolId: string; - /** The lower bound tick of the position */ tickLowerIndex: number; - /** The upper bound tick of the position */ tickUpperIndex: number; - /** The amount of liquidity owned by this position */ liquidity: string; - /** The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed */ feeGrowthInside0LastX64: string; - /** The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed */ feeGrowthInside1LastX64: string; - /** The fees owed to the position owner in token_0 */ tokenFeesOwed0: string; - /** The fees owed to the position owner in token_1 */ tokenFeesOwed1: string; - /** The reward growth per unit of liquidity as of the last update to liquidity */ rewardGrowthInside: Array; padding: Array; } -/** Info stored for each user's position */ export class ProtocolPositionState { - /** Bump to identify PDA */ readonly bump: number; - /** The ID of the pool with which this token is connected */ readonly poolId: PublicKey; - /** The lower bound tick of the position */ readonly tickLowerIndex: number; - /** The upper bound tick of the position */ readonly tickUpperIndex: number; - /** The amount of liquidity owned by this position */ readonly liquidity: BN; - /** The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed */ readonly feeGrowthInside0LastX64: BN; - /** The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed */ readonly feeGrowthInside1LastX64: BN; - /** The fees owed to the position owner in token_0 */ readonly tokenFeesOwed0: BN; - /** The fees owed to the position owner in token_1 */ readonly tokenFeesOwed1: BN; - /** The reward growth per unit of liquidity as of the last update to liquidity */ readonly rewardGrowthInside: Array; readonly padding: Array; @@ -106,27 +75,35 @@ export class ProtocolPositionState { this.padding = fields.padding; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = PROGRAM_ID + ): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/TickArrayBitmapExtension.ts b/packages/kamino-sdk/src/raydium_client/accounts/TickArrayBitmapExtension.ts index 0aa2caf2..f43916b0 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/TickArrayBitmapExtension.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/TickArrayBitmapExtension.ts @@ -1,30 +1,24 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface TickArrayBitmapExtensionFields { poolId: PublicKey; - /** Packed initialized tick array state for start_tick_index is positive */ positiveTickArrayBitmap: Array>; - /** Packed initialized tick array state for start_tick_index is negitive */ negativeTickArrayBitmap: Array>; } export interface TickArrayBitmapExtensionJSON { poolId: string; - /** Packed initialized tick array state for start_tick_index is positive */ positiveTickArrayBitmap: Array>; - /** Packed initialized tick array state for start_tick_index is negitive */ negativeTickArrayBitmap: Array>; } export class TickArrayBitmapExtension { readonly poolId: PublicKey; - /** Packed initialized tick array state for start_tick_index is positive */ readonly positiveTickArrayBitmap: Array>; - /** Packed initialized tick array state for start_tick_index is negitive */ readonly negativeTickArrayBitmap: Array>; static readonly discriminator = Buffer.from([60, 150, 36, 219, 97, 128, 139, 153]); @@ -41,27 +35,35 @@ export class TickArrayBitmapExtension { this.negativeTickArrayBitmap = fields.negativeTickArrayBitmap; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = PROGRAM_ID + ): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/TickArrayState.ts b/packages/kamino-sdk/src/raydium_client/accounts/TickArrayState.ts index 535da8bb..0b0476c9 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/TickArrayState.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/TickArrayState.ts @@ -1,6 +1,6 @@ import { PublicKey, Connection } from '@solana/web3.js'; import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -45,27 +45,35 @@ export class TickArrayState { this.padding = fields.padding; } - static async fetch(c: Connection, address: PublicKey): Promise { + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = PROGRAM_ID + ): Promise { const info = await c.getAccountInfo(address); if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } return this.decode(info.data); } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = PROGRAM_ID + ): Promise> { const infos = await c.getMultipleAccountsInfo(addresses); return infos.map((info) => { if (info === null) { return null; } - if (!info.owner.equals(PROGRAM_ID)) { + if (!info.owner.equals(programId)) { throw new Error("account doesn't belong to this program"); } diff --git a/packages/kamino-sdk/src/raydium_client/accounts/index.ts b/packages/kamino-sdk/src/raydium_client/accounts/index.ts index c2072c20..249da99b 100644 --- a/packages/kamino-sdk/src/raydium_client/accounts/index.ts +++ b/packages/kamino-sdk/src/raydium_client/accounts/index.ts @@ -12,3 +12,5 @@ export { ProtocolPositionState } from './ProtocolPositionState'; export type { ProtocolPositionStateFields, ProtocolPositionStateJSON } from './ProtocolPositionState'; export { TickArrayState } from './TickArrayState'; export type { TickArrayStateFields, TickArrayStateJSON } from './TickArrayState'; +export { TickArrayBitmapExtension } from './TickArrayBitmapExtension'; +export type { TickArrayBitmapExtensionFields, TickArrayBitmapExtensionJSON } from './TickArrayBitmapExtension'; diff --git a/packages/kamino-sdk/src/raydium_client/errors/anchor.ts b/packages/kamino-sdk/src/raydium_client/errors/anchor.ts index 4401b028..f1684712 100644 --- a/packages/kamino-sdk/src/raydium_client/errors/anchor.ts +++ b/packages/kamino-sdk/src/raydium_client/errors/anchor.ts @@ -25,6 +25,7 @@ export type AnchorError = | ConstraintMintFreezeAuthority | ConstraintMintDecimals | ConstraintSpace + | ConstraintAccountIsNone | RequireViolated | RequireEqViolated | RequireKeysEqViolated @@ -50,7 +51,6 @@ export type AnchorError = | AccountSysvarMismatch | AccountReallocExceedsLimit | AccountDuplicateReallocs - | StateInvalidAddress | DeclaredProgramIdMismatch | Deprecated; @@ -135,10 +135,10 @@ export class ConstraintHasOne extends Error { static readonly code = 2001; readonly code = 2001; readonly name = 'ConstraintHasOne'; - readonly msg = 'A has_one constraint was violated'; + readonly msg = 'A has one constraint was violated'; constructor(readonly logs?: string[]) { - super('2001: A has_one constraint was violated'); + super('2001: A has one constraint was violated'); } } @@ -212,10 +212,10 @@ export class ConstraintState extends Error { static readonly code = 2008; readonly code = 2008; readonly name = 'ConstraintState'; - readonly msg = 'A state constraint was violated'; + readonly msg = 'Deprecated Error, feel free to replace with something else'; constructor(readonly logs?: string[]) { - super('2008: A state constraint was violated'); + super('2008: Deprecated Error, feel free to replace with something else'); } } @@ -340,6 +340,17 @@ export class ConstraintSpace extends Error { } } +export class ConstraintAccountIsNone extends Error { + static readonly code = 2020; + readonly code = 2020; + readonly name = 'ConstraintAccountIsNone'; + readonly msg = 'A required account for the constraint is None'; + + constructor(readonly logs?: string[]) { + super('2020: A required account for the constraint is None'); + } +} + export class RequireViolated extends Error { static readonly code = 2500; readonly code = 2500; @@ -615,17 +626,6 @@ export class AccountDuplicateReallocs extends Error { } } -export class StateInvalidAddress extends Error { - static readonly code = 4000; - readonly code = 4000; - readonly name = 'StateInvalidAddress'; - readonly msg = 'The given state account does not have the correct address'; - - constructor(readonly logs?: string[]) { - super('4000: The given state account does not have the correct address'); - } -} - export class DeclaredProgramIdMismatch extends Error { static readonly code = 4100; readonly code = 4100; @@ -702,6 +702,8 @@ export function fromCode(code: number, logs?: string[]): AnchorError | null { return new ConstraintMintDecimals(logs); case 2019: return new ConstraintSpace(logs); + case 2020: + return new ConstraintAccountIsNone(logs); case 2500: return new RequireViolated(logs); case 2501: @@ -752,8 +754,6 @@ export function fromCode(code: number, logs?: string[]): AnchorError | null { return new AccountReallocExceedsLimit(logs); case 3017: return new AccountDuplicateReallocs(logs); - case 4000: - return new StateInvalidAddress(logs); case 4100: return new DeclaredProgramIdMismatch(logs); case 5000: diff --git a/packages/kamino-sdk/src/raydium_client/errors/custom.ts b/packages/kamino-sdk/src/raydium_client/errors/custom.ts index 53d738d5..931be897 100644 --- a/packages/kamino-sdk/src/raydium_client/errors/custom.ts +++ b/packages/kamino-sdk/src/raydium_client/errors/custom.ts @@ -37,7 +37,10 @@ export type CustomError = | InvalidRewardInputAccountNumber | InvalidRewardPeriod | NotApproveUpdateRewardEmissiones - | UnInitializedRewardInfo; + | UnInitializedRewardInfo + | NotSupportMint + | MissingTickArrayBitmapExtensionAccount + | InsufficientLiquidityForDirection; export class LOK extends Error { static readonly code = 6000; @@ -468,6 +471,39 @@ export class UnInitializedRewardInfo extends Error { } } +export class NotSupportMint extends Error { + static readonly code = 6039; + readonly code = 6039; + readonly name = 'NotSupportMint'; + readonly msg = 'Not support token_2022 mint extension'; + + constructor(readonly logs?: string[]) { + super('6039: Not support token_2022 mint extension'); + } +} + +export class MissingTickArrayBitmapExtensionAccount extends Error { + static readonly code = 6040; + readonly code = 6040; + readonly name = 'MissingTickArrayBitmapExtensionAccount'; + readonly msg = 'Missing tickarray bitmap extension account'; + + constructor(readonly logs?: string[]) { + super('6040: Missing tickarray bitmap extension account'); + } +} + +export class InsufficientLiquidityForDirection extends Error { + static readonly code = 6041; + readonly code = 6041; + readonly name = 'InsufficientLiquidityForDirection'; + readonly msg = 'Insufficient liquidity for this direction'; + + constructor(readonly logs?: string[]) { + super('6041: Insufficient liquidity for this direction'); + } +} + export function fromCode(code: number, logs?: string[]): CustomError | null { switch (code) { case 6000: @@ -548,6 +584,12 @@ export function fromCode(code: number, logs?: string[]): CustomError | null { return new NotApproveUpdateRewardEmissiones(logs); case 6038: return new UnInitializedRewardInfo(logs); + case 6039: + return new NotSupportMint(logs); + case 6040: + return new MissingTickArrayBitmapExtensionAccount(logs); + case 6041: + return new InsufficientLiquidityForDirection(logs); } return null; diff --git a/packages/kamino-sdk/src/raydium_client/errors/index.ts b/packages/kamino-sdk/src/raydium_client/errors/index.ts index d938a3d5..9ac7b929 100644 --- a/packages/kamino-sdk/src/raydium_client/errors/index.ts +++ b/packages/kamino-sdk/src/raydium_client/errors/index.ts @@ -1,3 +1,4 @@ +import { PublicKey } from '@solana/web3.js'; import { PROGRAM_ID } from '../programId'; import * as anchor from './anchor'; import * as custom from './custom'; @@ -12,7 +13,10 @@ function hasOwnProperty(obj: X, prop: Y const errorRe = /Program (\w+) failed: custom program error: (\w+)/; -export function fromTxError(err: unknown): custom.CustomError | anchor.AnchorError | null { +export function fromTxError( + err: unknown, + programId: PublicKey = PROGRAM_ID +): custom.CustomError | anchor.AnchorError | null { if (typeof err !== 'object' || err === null || !hasOwnProperty(err, 'logs') || !Array.isArray(err.logs)) { return null; } @@ -30,7 +34,7 @@ export function fromTxError(err: unknown): custom.CustomError | anchor.AnchorErr } const [programIdRaw, codeRaw] = firstMatch.slice(1); - if (programIdRaw !== PROGRAM_ID.toString()) { + if (programIdRaw !== programId.toString()) { return null; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/closePosition.ts b/packages/kamino-sdk/src/raydium_client/instructions/closePosition.ts index a967de21..67e67ffe 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/closePosition.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/closePosition.ts @@ -1,36 +1,19 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface ClosePositionAccounts { - /** The position nft owner */ nftOwner: PublicKey; - /** Unique token mint address */ positionNftMint: PublicKey; - /** Token account where position NFT will be minted */ positionNftAccount: PublicKey; - /** - * To store metaplex metadata - * Metadata for the tokenized position - */ personalPosition: PublicKey; - /** Program to create the position manager state account */ systemProgram: PublicKey; - /** Program to create mint account and mint tokens */ tokenProgram: PublicKey; } -/** - * Close a position, the nft mint and nft account - * - * # Arguments - * - * * `ctx` - The context of accounts - * - */ -export function closePosition(accounts: ClosePositionAccounts) { +export function closePosition(accounts: ClosePositionAccounts, programId: PublicKey = PROGRAM_ID) { const keys: Array = [ { pubkey: accounts.nftOwner, isSigner: true, isWritable: true }, { pubkey: accounts.positionNftMint, isSigner: false, isWritable: true }, @@ -41,6 +24,6 @@ export function closePosition(accounts: ClosePositionAccounts) { ]; const identifier = Buffer.from([123, 134, 81, 0, 49, 68, 98, 98]); const data = identifier; - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/collectFundFee.ts b/packages/kamino-sdk/src/raydium_client/instructions/collectFundFee.ts index 2633dd3b..c0dc8333 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/collectFundFee.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/collectFundFee.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -10,43 +10,34 @@ export interface CollectFundFeeArgs { } export interface CollectFundFeeAccounts { - /** Only admin or fund_owner can collect fee now */ owner: PublicKey; - /** Pool state stores accumulated protocol fee amount */ poolState: PublicKey; - /** Amm config account stores fund_owner */ ammConfig: PublicKey; - /** The address that holds pool tokens for token_0 */ tokenVault0: PublicKey; - /** The address that holds pool tokens for token_1 */ tokenVault1: PublicKey; - /** The address that receives the collected token_0 protocol fees */ + vault0Mint: PublicKey; + vault1Mint: PublicKey; recipientTokenAccount0: PublicKey; - /** The address that receives the collected token_1 protocol fees */ recipientTokenAccount1: PublicKey; - /** The SPL program to perform token transfers */ tokenProgram: PublicKey; + tokenProgram2022: PublicKey; } export const layout = borsh.struct([borsh.u64('amount0Requested'), borsh.u64('amount1Requested')]); -/** - * Collect the fund fee accrued to the pool - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `amount_0_requested` - The maximum amount of token_0 to send, can be 0 to collect fees in only token_1 - * * `amount_1_requested` - The maximum amount of token_1 to send, can be 0 to collect fees in only token_0 - * - */ -export function collectFundFee(args: CollectFundFeeArgs, accounts: CollectFundFeeAccounts) { +export function collectFundFee( + args: CollectFundFeeArgs, + accounts: CollectFundFeeAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.owner, isSigner: true, isWritable: false }, { pubkey: accounts.poolState, isSigner: false, isWritable: true }, { pubkey: accounts.ammConfig, isSigner: false, isWritable: false }, { pubkey: accounts.tokenVault0, isSigner: false, isWritable: true }, { pubkey: accounts.tokenVault1, isSigner: false, isWritable: true }, + { pubkey: accounts.vault0Mint, isSigner: false, isWritable: false }, + { pubkey: accounts.vault1Mint, isSigner: false, isWritable: false }, { pubkey: accounts.recipientTokenAccount0, isSigner: false, @@ -58,6 +49,7 @@ export function collectFundFee(args: CollectFundFeeArgs, accounts: CollectFundFe isWritable: true, }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgram2022, isSigner: false, isWritable: false }, ]; const identifier = Buffer.from([167, 138, 78, 149, 223, 194, 6, 126]); const buffer = Buffer.alloc(1000); @@ -69,6 +61,6 @@ export function collectFundFee(args: CollectFundFeeArgs, accounts: CollectFundFe buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/collectProtocolFee.ts b/packages/kamino-sdk/src/raydium_client/instructions/collectProtocolFee.ts index 932a3d81..3b07f666 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/collectProtocolFee.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/collectProtocolFee.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -10,43 +10,34 @@ export interface CollectProtocolFeeArgs { } export interface CollectProtocolFeeAccounts { - /** Only admin or config owner can collect fee now */ owner: PublicKey; - /** Pool state stores accumulated protocol fee amount */ poolState: PublicKey; - /** Amm config account stores owner */ ammConfig: PublicKey; - /** The address that holds pool tokens for token_0 */ tokenVault0: PublicKey; - /** The address that holds pool tokens for token_1 */ tokenVault1: PublicKey; - /** The address that receives the collected token_0 protocol fees */ + vault0Mint: PublicKey; + vault1Mint: PublicKey; recipientTokenAccount0: PublicKey; - /** The address that receives the collected token_1 protocol fees */ recipientTokenAccount1: PublicKey; - /** The SPL program to perform token transfers */ tokenProgram: PublicKey; + tokenProgram2022: PublicKey; } export const layout = borsh.struct([borsh.u64('amount0Requested'), borsh.u64('amount1Requested')]); -/** - * Collect the protocol fee accrued to the pool - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `amount_0_requested` - The maximum amount of token_0 to send, can be 0 to collect fees in only token_1 - * * `amount_1_requested` - The maximum amount of token_1 to send, can be 0 to collect fees in only token_0 - * - */ -export function collectProtocolFee(args: CollectProtocolFeeArgs, accounts: CollectProtocolFeeAccounts) { +export function collectProtocolFee( + args: CollectProtocolFeeArgs, + accounts: CollectProtocolFeeAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.owner, isSigner: true, isWritable: false }, { pubkey: accounts.poolState, isSigner: false, isWritable: true }, { pubkey: accounts.ammConfig, isSigner: false, isWritable: false }, { pubkey: accounts.tokenVault0, isSigner: false, isWritable: true }, { pubkey: accounts.tokenVault1, isSigner: false, isWritable: true }, + { pubkey: accounts.vault0Mint, isSigner: false, isWritable: false }, + { pubkey: accounts.vault1Mint, isSigner: false, isWritable: false }, { pubkey: accounts.recipientTokenAccount0, isSigner: false, @@ -58,6 +49,7 @@ export function collectProtocolFee(args: CollectProtocolFeeArgs, accounts: Colle isWritable: true, }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgram2022, isSigner: false, isWritable: false }, ]; const identifier = Buffer.from([136, 136, 252, 221, 194, 66, 126, 89]); const buffer = Buffer.alloc(1000); @@ -69,6 +61,6 @@ export function collectProtocolFee(args: CollectProtocolFeeArgs, accounts: Colle buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/collectRemainingRewards.ts b/packages/kamino-sdk/src/raydium_client/instructions/collectRemainingRewards.ts index a4e9d631..1ba8bbd5 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/collectRemainingRewards.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/collectRemainingRewards.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -9,35 +9,32 @@ export interface CollectRemainingRewardsArgs { } export interface CollectRemainingRewardsAccounts { - /** The founder who init reward info in berfore */ rewardFunder: PublicKey; - /** The funder's reward token account */ funderTokenAccount: PublicKey; - /** Set reward for this pool */ poolState: PublicKey; - /** Reward vault transfer remaining token to founder token account */ rewardTokenVault: PublicKey; + rewardVaultMint: PublicKey; tokenProgram: PublicKey; + tokenProgram2022: PublicKey; + memoProgram: PublicKey; } export const layout = borsh.struct([borsh.u8('rewardIndex')]); -/** - * Collect remaining reward token for reward founder - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `reward_index` - the index to reward info - * - */ -export function collectRemainingRewards(args: CollectRemainingRewardsArgs, accounts: CollectRemainingRewardsAccounts) { +export function collectRemainingRewards( + args: CollectRemainingRewardsArgs, + accounts: CollectRemainingRewardsAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.rewardFunder, isSigner: true, isWritable: false }, { pubkey: accounts.funderTokenAccount, isSigner: false, isWritable: true }, { pubkey: accounts.poolState, isSigner: false, isWritable: true }, { pubkey: accounts.rewardTokenVault, isSigner: false, isWritable: false }, + { pubkey: accounts.rewardVaultMint, isSigner: false, isWritable: false }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgram2022, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, ]; const identifier = Buffer.from([18, 237, 166, 197, 34, 16, 213, 144]); const buffer = Buffer.alloc(1000); @@ -48,6 +45,6 @@ export function collectRemainingRewards(args: CollectRemainingRewardsArgs, accou buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/createAmmConfig.ts b/packages/kamino-sdk/src/raydium_client/instructions/createAmmConfig.ts index 36657c98..11d43750 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/createAmmConfig.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/createAmmConfig.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -13,9 +13,7 @@ export interface CreateAmmConfigArgs { } export interface CreateAmmConfigAccounts { - /** Address to be set as protocol owner. */ owner: PublicKey; - /** Initialize config state account to store protocol owner address and fee rates. */ ammConfig: PublicKey; systemProgram: PublicKey; } @@ -28,18 +26,11 @@ export const layout = borsh.struct([ borsh.u32('fundFeeRate'), ]); -/** - * # Arguments - * - * * `ctx`- The accounts needed by instruction. - * * `index` - The index of amm config, there may be multiple config. - * * `tick_spacing` - The tickspacing binding with config, cannot be changed. - * * `trade_fee_rate` - Trade fee rate, can be changed. - * * `protocol_fee_rate` - The rate of protocol fee within tarde fee. - * * `fund_fee_rate` - The rate of fund fee within tarde fee. - * - */ -export function createAmmConfig(args: CreateAmmConfigArgs, accounts: CreateAmmConfigAccounts) { +export function createAmmConfig( + args: CreateAmmConfigArgs, + accounts: CreateAmmConfigAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.owner, isSigner: true, isWritable: true }, { pubkey: accounts.ammConfig, isSigner: false, isWritable: true }, @@ -58,6 +49,6 @@ export function createAmmConfig(args: CreateAmmConfigArgs, accounts: CreateAmmCo buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/createOperationAccount.ts b/packages/kamino-sdk/src/raydium_client/instructions/createOperationAccount.ts index b6ffbfbb..0fff2910 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/createOperationAccount.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/createOperationAccount.ts @@ -1,26 +1,16 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface CreateOperationAccountAccounts { - /** Address to be set as operation account owner. */ owner: PublicKey; - /** Initialize operation state account to store operation owner address and white list mint. */ operationState: PublicKey; systemProgram: PublicKey; } -/** - * Creates an operation account for the program - * - * # Arguments - * - * * `ctx`- The context of accounts - * - */ -export function createOperationAccount(accounts: CreateOperationAccountAccounts) { +export function createOperationAccount(accounts: CreateOperationAccountAccounts, programId: PublicKey = PROGRAM_ID) { const keys: Array = [ { pubkey: accounts.owner, isSigner: true, isWritable: true }, { pubkey: accounts.operationState, isSigner: false, isWritable: true }, @@ -28,6 +18,6 @@ export function createOperationAccount(accounts: CreateOperationAccountAccounts) ]; const identifier = Buffer.from([63, 87, 148, 33, 109, 35, 8, 104]); const data = identifier; - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/createPool.ts b/packages/kamino-sdk/src/raydium_client/instructions/createPool.ts index 865c6207..8cea45cf 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/createPool.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/createPool.ts @@ -10,44 +10,23 @@ export interface CreatePoolArgs { } export interface CreatePoolAccounts { - /** Address paying to create the pool. Can be anyone */ poolCreator: PublicKey; - /** Which config the pool belongs to. */ ammConfig: PublicKey; - /** Initialize an account to store the pool state */ poolState: PublicKey; - /** Token_0 mint, the key must grater then token_1 mint. */ tokenMint0: PublicKey; - /** Token_1 mint */ tokenMint1: PublicKey; - /** Token_0 vault for the pool */ tokenVault0: PublicKey; - /** Token_1 vault for the pool */ tokenVault1: PublicKey; observationState: PublicKey; - /** Initialize an account to store if a tick array is initialized. */ tickArrayBitmap: PublicKey; - /** Spl token program or token program 2022 */ tokenProgram0: PublicKey; - /** Spl token program or token program 2022 */ tokenProgram1: PublicKey; - /** To create a new program account */ systemProgram: PublicKey; - /** Sysvar for program account */ rent: PublicKey; } export const layout = borsh.struct([borsh.u128('sqrtPriceX64'), borsh.u64('openTime')]); -/** - * Creates a pool for the given token pair and the initial price - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `sqrt_price_x64` - the initial sqrt price (amount_token_1 / amount_token_0) of the pool as a Q64.64 - * - */ export function createPool(args: CreatePoolArgs, accounts: CreatePoolAccounts, programId: PublicKey = PROGRAM_ID) { const keys: Array = [ { pubkey: accounts.poolCreator, isSigner: true, isWritable: true }, diff --git a/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidity.ts b/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidity.ts index afe9b9f2..98f07695 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidity.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidity.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -11,44 +11,27 @@ export interface DecreaseLiquidityArgs { } export interface DecreaseLiquidityAccounts { - /** The position owner or delegated authority */ nftOwner: PublicKey; - /** The token account for the tokenized position */ nftAccount: PublicKey; - /** Decrease liquidity for this position */ personalPosition: PublicKey; poolState: PublicKey; protocolPosition: PublicKey; - /** Token_0 vault */ tokenVault0: PublicKey; - /** Token_1 vault */ tokenVault1: PublicKey; - /** Stores init state for the lower tick */ tickArrayLower: PublicKey; - /** Stores init state for the upper tick */ tickArrayUpper: PublicKey; - /** The destination token account for receive amount_0 */ recipientTokenAccount0: PublicKey; - /** The destination token account for receive amount_1 */ recipientTokenAccount1: PublicKey; - /** SPL program to transfer out tokens */ tokenProgram: PublicKey; } export const layout = borsh.struct([borsh.u128('liquidity'), borsh.u64('amount0Min'), borsh.u64('amount1Min')]); -/** - * Decreases liquidity with a exist position - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `liquidity` - The amount by which liquidity will be decreased - * * `amount_0_min` - The minimum amount of token_0 that should be accounted for the burned liquidity - * * `amount_1_min` - The minimum amount of token_1 that should be accounted for the burned liquidity - * - */ -export function decreaseLiquidity(args: DecreaseLiquidityArgs, accounts: DecreaseLiquidityAccounts) { +export function decreaseLiquidity( + args: DecreaseLiquidityArgs, + accounts: DecreaseLiquidityAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.nftOwner, isSigner: true, isWritable: false }, { pubkey: accounts.nftAccount, isSigner: false, isWritable: false }, @@ -82,6 +65,6 @@ export function decreaseLiquidity(args: DecreaseLiquidityArgs, accounts: Decreas buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidityV2.ts b/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidityV2.ts index 4dacaefc..26aa2dcd 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidityV2.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/decreaseLiquidityV2.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -11,52 +11,31 @@ export interface DecreaseLiquidityV2Args { } export interface DecreaseLiquidityV2Accounts { - /** The position owner or delegated authority */ nftOwner: PublicKey; - /** The token account for the tokenized position */ nftAccount: PublicKey; - /** Decrease liquidity for this position */ personalPosition: PublicKey; poolState: PublicKey; protocolPosition: PublicKey; - /** Token_0 vault */ tokenVault0: PublicKey; - /** Token_1 vault */ tokenVault1: PublicKey; - /** Stores init state for the lower tick */ tickArrayLower: PublicKey; - /** Stores init state for the upper tick */ tickArrayUpper: PublicKey; - /** The destination token account for receive amount_0 */ recipientTokenAccount0: PublicKey; - /** The destination token account for receive amount_1 */ recipientTokenAccount1: PublicKey; - /** SPL program to transfer out tokens */ tokenProgram: PublicKey; - /** Token program 2022 */ tokenProgram2022: PublicKey; - /** memo program */ memoProgram: PublicKey; - /** The mint of token vault 0 */ vault0Mint: PublicKey; - /** The mint of token vault 1 */ vault1Mint: PublicKey; } export const layout = borsh.struct([borsh.u128('liquidity'), borsh.u64('amount0Min'), borsh.u64('amount1Min')]); -/** - * Decreases liquidity with a exist position, support Token2022 - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `liquidity` - The amount by which liquidity will be decreased - * * `amount_0_min` - The minimum amount of token_0 that should be accounted for the burned liquidity - * * `amount_1_min` - The minimum amount of token_1 that should be accounted for the burned liquidity - * - */ -export function decreaseLiquidityV2(args: DecreaseLiquidityV2Args, accounts: DecreaseLiquidityV2Accounts) { +export function decreaseLiquidityV2( + args: DecreaseLiquidityV2Args, + accounts: DecreaseLiquidityV2Accounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.nftOwner, isSigner: true, isWritable: false }, { pubkey: accounts.nftAccount, isSigner: false, isWritable: false }, @@ -94,6 +73,6 @@ export function decreaseLiquidityV2(args: DecreaseLiquidityV2Args, accounts: Dec buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidity.ts b/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidity.ts index 2c498a90..8067bd37 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidity.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidity.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -11,44 +11,27 @@ export interface IncreaseLiquidityArgs { } export interface IncreaseLiquidityAccounts { - /** Pays to mint the position */ nftOwner: PublicKey; - /** The token account for nft */ nftAccount: PublicKey; poolState: PublicKey; protocolPosition: PublicKey; - /** Increase liquidity for this position */ personalPosition: PublicKey; - /** Stores init state for the lower tick */ tickArrayLower: PublicKey; - /** Stores init state for the upper tick */ tickArrayUpper: PublicKey; - /** The payer's token account for token_0 */ tokenAccount0: PublicKey; - /** The token account spending token_1 to mint the position */ tokenAccount1: PublicKey; - /** The address that holds pool tokens for token_0 */ tokenVault0: PublicKey; - /** The address that holds pool tokens for token_1 */ tokenVault1: PublicKey; - /** Program to create mint account and mint tokens */ tokenProgram: PublicKey; } export const layout = borsh.struct([borsh.u128('liquidity'), borsh.u64('amount0Max'), borsh.u64('amount1Max')]); -/** - * Increases liquidity with a exist position, with amount paid by `payer` - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `liquidity` - The desired liquidity to be added - * * `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check - * * `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check - * - */ -export function increaseLiquidity(args: IncreaseLiquidityArgs, accounts: IncreaseLiquidityAccounts) { +export function increaseLiquidity( + args: IncreaseLiquidityArgs, + accounts: IncreaseLiquidityAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.nftOwner, isSigner: true, isWritable: false }, { pubkey: accounts.nftAccount, isSigner: false, isWritable: false }, @@ -74,6 +57,6 @@ export function increaseLiquidity(args: IncreaseLiquidityArgs, accounts: Increas buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidityV2.ts b/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidityV2.ts index bfa0aa52..488d651d 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidityV2.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/increaseLiquidityV2.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -12,33 +12,20 @@ export interface IncreaseLiquidityV2Args { } export interface IncreaseLiquidityV2Accounts { - /** Pays to mint the position */ nftOwner: PublicKey; - /** The token account for nft */ nftAccount: PublicKey; poolState: PublicKey; protocolPosition: PublicKey; - /** Increase liquidity for this position */ personalPosition: PublicKey; - /** Stores init state for the lower tick */ tickArrayLower: PublicKey; - /** Stores init state for the upper tick */ tickArrayUpper: PublicKey; - /** The payer's token account for token_0 */ tokenAccount0: PublicKey; - /** The token account spending token_1 to mint the position */ tokenAccount1: PublicKey; - /** The address that holds pool tokens for token_0 */ tokenVault0: PublicKey; - /** The address that holds pool tokens for token_1 */ tokenVault1: PublicKey; - /** Program to create mint account and mint tokens */ tokenProgram: PublicKey; - /** Token program 2022 */ tokenProgram2022: PublicKey; - /** The mint of token vault 0 */ vault0Mint: PublicKey; - /** The mint of token vault 1 */ vault1Mint: PublicKey; } @@ -49,19 +36,11 @@ export const layout = borsh.struct([ borsh.option(borsh.bool(), 'baseFlag'), ]); -/** - * Increases liquidity with a exist position, with amount paid by `payer`, support Token2022 - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `liquidity` - The desired liquidity to be added, if zero, calculate liquidity base amount_0 or amount_1 according base_flag - * * `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check - * * `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check - * * `base_flag` - active if liquidity is zero, 0: calculate liquidity base amount_0_max otherwise base amount_1_max - * - */ -export function increaseLiquidityV2(args: IncreaseLiquidityV2Args, accounts: IncreaseLiquidityV2Accounts) { +export function increaseLiquidityV2( + args: IncreaseLiquidityV2Args, + accounts: IncreaseLiquidityV2Accounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.nftOwner, isSigner: true, isWritable: false }, { pubkey: accounts.nftAccount, isSigner: false, isWritable: false }, @@ -91,6 +70,6 @@ export function increaseLiquidityV2(args: IncreaseLiquidityV2Args, accounts: Inc buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/index.ts b/packages/kamino-sdk/src/raydium_client/instructions/index.ts index f36cd2a6..050d751b 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/index.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/index.ts @@ -26,13 +26,21 @@ export { collectFundFee } from './collectFundFee'; export type { CollectFundFeeArgs, CollectFundFeeAccounts } from './collectFundFee'; export { openPosition } from './openPosition'; export type { OpenPositionArgs, OpenPositionAccounts } from './openPosition'; +export { openPositionV2 } from './openPositionV2'; +export type { OpenPositionV2Args, OpenPositionV2Accounts } from './openPositionV2'; export { closePosition } from './closePosition'; export type { ClosePositionAccounts } from './closePosition'; export { increaseLiquidity } from './increaseLiquidity'; export type { IncreaseLiquidityArgs, IncreaseLiquidityAccounts } from './increaseLiquidity'; +export { increaseLiquidityV2 } from './increaseLiquidityV2'; +export type { IncreaseLiquidityV2Args, IncreaseLiquidityV2Accounts } from './increaseLiquidityV2'; export { decreaseLiquidity } from './decreaseLiquidity'; export type { DecreaseLiquidityArgs, DecreaseLiquidityAccounts } from './decreaseLiquidity'; +export { decreaseLiquidityV2 } from './decreaseLiquidityV2'; +export type { DecreaseLiquidityV2Args, DecreaseLiquidityV2Accounts } from './decreaseLiquidityV2'; export { swap } from './swap'; export type { SwapArgs, SwapAccounts } from './swap'; +export { swapV2 } from './swapV2'; +export type { SwapV2Args, SwapV2Accounts } from './swapV2'; export { swapRouterBaseIn } from './swapRouterBaseIn'; export type { SwapRouterBaseInArgs, SwapRouterBaseInAccounts } from './swapRouterBaseIn'; diff --git a/packages/kamino-sdk/src/raydium_client/instructions/initializeReward.ts b/packages/kamino-sdk/src/raydium_client/instructions/initializeReward.ts index 0055e83a..693d3631 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/initializeReward.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/initializeReward.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -9,39 +9,25 @@ export interface InitializeRewardArgs { } export interface InitializeRewardAccounts { - /** The founder deposit reward token to vault */ rewardFunder: PublicKey; funderTokenAccount: PublicKey; - /** For check the reward_funder authority */ ammConfig: PublicKey; - /** Set reward for this pool */ poolState: PublicKey; - /** load info from the account to judge reward permission */ operationState: PublicKey; - /** Reward mint */ rewardTokenMint: PublicKey; - /** A pda, reward vault */ rewardTokenVault: PublicKey; - tokenProgram: PublicKey; + rewardTokenProgram: PublicKey; systemProgram: PublicKey; rent: PublicKey; } export const layout = borsh.struct([types.InitializeRewardParam.layout('param')]); -/** - * Initialize a reward info for a given pool and reward index - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `reward_index` - the index to reward info - * * `open_time` - reward open timestamp - * * `end_time` - reward end timestamp - * * `emissions_per_second_x64` - Token reward per second are earned per unit of liquidity. - * - */ -export function initializeReward(args: InitializeRewardArgs, accounts: InitializeRewardAccounts) { +export function initializeReward( + args: InitializeRewardArgs, + accounts: InitializeRewardAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.rewardFunder, isSigner: true, isWritable: true }, { pubkey: accounts.funderTokenAccount, isSigner: false, isWritable: true }, @@ -50,7 +36,7 @@ export function initializeReward(args: InitializeRewardArgs, accounts: Initializ { pubkey: accounts.operationState, isSigner: false, isWritable: false }, { pubkey: accounts.rewardTokenMint, isSigner: false, isWritable: false }, { pubkey: accounts.rewardTokenVault, isSigner: false, isWritable: true }, - { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.rewardTokenProgram, isSigner: false, isWritable: false }, { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, { pubkey: accounts.rent, isSigner: false, isWritable: false }, ]; @@ -63,6 +49,6 @@ export function initializeReward(args: InitializeRewardArgs, accounts: Initializ buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/openPosition.ts b/packages/kamino-sdk/src/raydium_client/instructions/openPosition.ts index a2d0b79d..c53973c5 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/openPosition.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/openPosition.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -15,40 +15,24 @@ export interface OpenPositionArgs { } export interface OpenPositionAccounts { - /** Pays to mint the position */ payer: PublicKey; positionNftOwner: PublicKey; - /** Unique token mint address */ positionNftMint: PublicKey; - /** Token account where position NFT will be minted */ positionNftAccount: PublicKey; - /** To store metaplex metadata */ metadataAccount: PublicKey; - /** Add liquidity for this pool */ poolState: PublicKey; - /** Store the information of market marking in range */ protocolPosition: PublicKey; tickArrayLower: PublicKey; tickArrayUpper: PublicKey; - /** personal position state */ personalPosition: PublicKey; - /** The token_0 account deposit token to the pool */ tokenAccount0: PublicKey; - /** The token_1 account deposit token to the pool */ tokenAccount1: PublicKey; - /** The address that holds pool tokens for token_0 */ tokenVault0: PublicKey; - /** The address that holds pool tokens for token_1 */ tokenVault1: PublicKey; - /** Sysvar for token mint and ATA creation */ rent: PublicKey; - /** Program to create the position manager state account */ systemProgram: PublicKey; - /** Program to create mint account and mint tokens */ tokenProgram: PublicKey; - /** Program to create an ATA for receiving position NFT */ associatedTokenProgram: PublicKey; - /** Program to create NFT metadata */ metadataProgram: PublicKey; } @@ -62,22 +46,11 @@ export const layout = borsh.struct([ borsh.u64('amount1Max'), ]); -/** - * Creates a new position wrapped in a NFT - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `tick_lower_index` - The low boundary of market - * * `tick_upper_index` - The upper boundary of market - * * `tick_array_lower_start_index` - The start index of tick array which include tick low - * * `tick_array_upper_start_index` - The start index of tick array which include tick upper - * * `liquidity` - The liquidity to be added - * * `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check - * * `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check - * - */ -export function openPosition(args: OpenPositionArgs, accounts: OpenPositionAccounts) { +export function openPosition( + args: OpenPositionArgs, + accounts: OpenPositionAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.payer, isSigner: true, isWritable: true }, { pubkey: accounts.positionNftOwner, isSigner: false, isWritable: false }, @@ -118,6 +91,6 @@ export function openPosition(args: OpenPositionArgs, accounts: OpenPositionAccou buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/openPositionV2.ts b/packages/kamino-sdk/src/raydium_client/instructions/openPositionV2.ts index d3edf288..055e04cf 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/openPositionV2.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/openPositionV2.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -17,46 +17,27 @@ export interface OpenPositionV2Args { } export interface OpenPositionV2Accounts { - /** Pays to mint the position */ payer: PublicKey; positionNftOwner: PublicKey; - /** Unique token mint address */ positionNftMint: PublicKey; - /** Token account where position NFT will be minted */ positionNftAccount: PublicKey; - /** To store metaplex metadata */ metadataAccount: PublicKey; - /** Add liquidity for this pool */ poolState: PublicKey; - /** Store the information of market marking in range */ protocolPosition: PublicKey; tickArrayLower: PublicKey; tickArrayUpper: PublicKey; - /** personal position state */ personalPosition: PublicKey; - /** The token_0 account deposit token to the pool */ tokenAccount0: PublicKey; - /** The token_1 account deposit token to the pool */ tokenAccount1: PublicKey; - /** The address that holds pool tokens for token_0 */ tokenVault0: PublicKey; - /** The address that holds pool tokens for token_1 */ tokenVault1: PublicKey; - /** Sysvar for token mint and ATA creation */ rent: PublicKey; - /** Program to create the position manager state account */ systemProgram: PublicKey; - /** Program to create mint account and mint tokens */ tokenProgram: PublicKey; - /** Program to create an ATA for receiving position NFT */ associatedTokenProgram: PublicKey; - /** Program to create NFT metadata */ metadataProgram: PublicKey; - /** Program to create mint account and mint tokens */ tokenProgram2022: PublicKey; - /** The mint of token vault 0 */ vault0Mint: PublicKey; - /** The mint of token vault 1 */ vault1Mint: PublicKey; } @@ -72,23 +53,11 @@ export const layout = borsh.struct([ borsh.option(borsh.bool(), 'baseFlag'), ]); -/** - * Creates a new position wrapped in a NFT, support Token2022 - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `tick_lower_index` - The low boundary of market - * * `tick_upper_index` - The upper boundary of market - * * `tick_array_lower_start_index` - The start index of tick array which include tick low - * * `tick_array_upper_start_index` - The start index of tick array which include tick upper - * * `liquidity` - The liquidity to be added, if zero, calculate liquidity base amount_0_max or amount_1_max according base_flag - * * `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check - * * `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check - * * `base_flag` - must be special if liquidity is zero, false: calculate liquidity base amount_0_max otherwise base amount_1_max - * - */ -export function openPositionV2(args: OpenPositionV2Args, accounts: OpenPositionV2Accounts) { +export function openPositionV2( + args: OpenPositionV2Args, + accounts: OpenPositionV2Accounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.payer, isSigner: true, isWritable: true }, { pubkey: accounts.positionNftOwner, isSigner: false, isWritable: false }, @@ -134,6 +103,6 @@ export function openPositionV2(args: OpenPositionV2Args, accounts: OpenPositionV buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/resetSqrtPrice.ts b/packages/kamino-sdk/src/raydium_client/instructions/resetSqrtPrice.ts deleted file mode 100644 index 62fbde1b..00000000 --- a/packages/kamino-sdk/src/raydium_client/instructions/resetSqrtPrice.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { PROGRAM_ID } from '../programId'; - -export interface ResetSqrtPriceArgs { - sqrtPriceX64: BN; -} - -export interface ResetSqrtPriceAccounts { - /** Only admin has the authority to reset initial price */ - owner: PublicKey; - /** Initialize an account to store the pool state */ - poolState: PublicKey; - /** Token_0 vault */ - tokenVault0: PublicKey; - /** Token_1 vault */ - tokenVault1: PublicKey; - /** The program account for the most recent oracle observation */ - observationState: PublicKey; - /** The destination token account for receive amount_0 */ - recipientTokenAccount0: PublicKey; - /** The destination token account for receive amount_1 */ - recipientTokenAccount1: PublicKey; - /** SPL program to transfer out tokens */ - tokenProgram: PublicKey; -} - -export const layout = borsh.struct([borsh.u128('sqrtPriceX64')]); - -/** - * Reset a pool sqrt price, only can be reset if the pool hasn't be used. - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `sqrt_price_x64` - the reset sqrt price of the pool as a Q64.64 - * - */ -export function resetSqrtPrice(args: ResetSqrtPriceArgs, accounts: ResetSqrtPriceAccounts) { - const keys: Array = [ - { pubkey: accounts.owner, isSigner: true, isWritable: false }, - { pubkey: accounts.poolState, isSigner: false, isWritable: true }, - { pubkey: accounts.tokenVault0, isSigner: false, isWritable: true }, - { pubkey: accounts.tokenVault1, isSigner: false, isWritable: true }, - { pubkey: accounts.observationState, isSigner: false, isWritable: true }, - { - pubkey: accounts.recipientTokenAccount0, - isSigner: false, - isWritable: true, - }, - { - pubkey: accounts.recipientTokenAccount1, - isSigner: false, - isWritable: true, - }, - { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([36, 83, 233, 182, 194, 87, 47, 31]); - const buffer = Buffer.alloc(1000); - const len = layout.encode( - { - sqrtPriceX64: args.sqrtPriceX64, - }, - buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); - return ix; -} diff --git a/packages/kamino-sdk/src/raydium_client/instructions/setRewardParams.ts b/packages/kamino-sdk/src/raydium_client/instructions/setRewardParams.ts index 27100b92..6dd032b3 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/setRewardParams.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/setRewardParams.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -12,12 +12,12 @@ export interface SetRewardParamsArgs { } export interface SetRewardParamsAccounts { - /** Address to be set as protocol owner. It pays to create factory state account. */ authority: PublicKey; ammConfig: PublicKey; poolState: PublicKey; - /** load info from the account to judge reward permission */ operationState: PublicKey; + tokenProgram: PublicKey; + tokenProgram2022: PublicKey; } export const layout = borsh.struct([ @@ -27,25 +27,18 @@ export const layout = borsh.struct([ borsh.u64('endTime'), ]); -/** - * Restset reward param, start a new reward cycle or extend the current cycle. - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `reward_index` - The index of reward token in the pool. - * * `emissions_per_second_x64` - The per second emission reward, when extend the current cycle, - * new value can't be less than old value - * * `open_time` - reward open timestamp, must be set when state a new cycle - * * `end_time` - reward end timestamp - * - */ -export function setRewardParams(args: SetRewardParamsArgs, accounts: SetRewardParamsAccounts) { +export function setRewardParams( + args: SetRewardParamsArgs, + accounts: SetRewardParamsAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.authority, isSigner: true, isWritable: false }, { pubkey: accounts.ammConfig, isSigner: false, isWritable: false }, { pubkey: accounts.poolState, isSigner: false, isWritable: true }, { pubkey: accounts.operationState, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgram2022, isSigner: false, isWritable: false }, ]; const identifier = Buffer.from([112, 52, 167, 75, 32, 201, 211, 137]); const buffer = Buffer.alloc(1000); @@ -59,6 +52,6 @@ export function setRewardParams(args: SetRewardParamsArgs, accounts: SetRewardPa buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/swap.ts b/packages/kamino-sdk/src/raydium_client/instructions/swap.ts index c0511272..1e8c6e29 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/swap.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/swap.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -12,23 +12,14 @@ export interface SwapArgs { } export interface SwapAccounts { - /** The user performing the swap */ payer: PublicKey; - /** The factory state to read protocol fees */ ammConfig: PublicKey; - /** The program account of the pool in which the swap will be performed */ poolState: PublicKey; - /** The user token account for input token */ inputTokenAccount: PublicKey; - /** The user token account for output token */ outputTokenAccount: PublicKey; - /** The vault token account for input token */ inputVault: PublicKey; - /** The vault token account for output token */ outputVault: PublicKey; - /** The program account for the most recent oracle observation */ observationState: PublicKey; - /** SPL program for token transfers */ tokenProgram: PublicKey; tickArray: PublicKey; } @@ -40,19 +31,7 @@ export const layout = borsh.struct([ borsh.bool('isBaseInput'), ]); -/** - * Swaps one token for as much as possible of another token across a single pool - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `amount` - Arranged in pairs with other_amount_threshold. (amount_in, amount_out_minimum) or (amount_out, amount_in_maximum) - * * `other_amount_threshold` - For slippage check - * * `sqrt_price_limit` - The Q64.64 sqrt price √P limit. If zero for one, the price cannot - * * `is_base_input` - swap base input or swap base output - * - */ -export function swap(args: SwapArgs, accounts: SwapAccounts) { +export function swap(args: SwapArgs, accounts: SwapAccounts, programId: PublicKey = PROGRAM_ID) { const keys: Array = [ { pubkey: accounts.payer, isSigner: true, isWritable: false }, { pubkey: accounts.ammConfig, isSigner: false, isWritable: false }, @@ -77,6 +56,6 @@ export function swap(args: SwapArgs, accounts: SwapAccounts) { buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/swapRouterBaseIn.ts b/packages/kamino-sdk/src/raydium_client/instructions/swapRouterBaseIn.ts index 1cf04ed7..9dde250c 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/swapRouterBaseIn.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/swapRouterBaseIn.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -10,31 +10,28 @@ export interface SwapRouterBaseInArgs { } export interface SwapRouterBaseInAccounts { - /** The user performing the swap */ payer: PublicKey; - /** The token account that pays input tokens for the swap */ inputTokenAccount: PublicKey; - /** SPL program for token transfers */ + inputTokenMint: PublicKey; tokenProgram: PublicKey; + tokenProgram2022: PublicKey; + memoProgram: PublicKey; } export const layout = borsh.struct([borsh.u64('amountIn'), borsh.u64('amountOutMinimum')]); -/** - * Swap token for as much as possible of another token across the path provided, base input - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `amount_in` - Token amount to be swapped in - * * `amount_out_minimum` - Panic if output amount is below minimum amount. For slippage. - * - */ -export function swapRouterBaseIn(args: SwapRouterBaseInArgs, accounts: SwapRouterBaseInAccounts) { +export function swapRouterBaseIn( + args: SwapRouterBaseInArgs, + accounts: SwapRouterBaseInAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.payer, isSigner: true, isWritable: false }, { pubkey: accounts.inputTokenAccount, isSigner: false, isWritable: true }, + { pubkey: accounts.inputTokenMint, isSigner: false, isWritable: true }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgram2022, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, ]; const identifier = Buffer.from([69, 125, 115, 218, 245, 186, 242, 196]); const buffer = Buffer.alloc(1000); @@ -46,6 +43,6 @@ export function swapRouterBaseIn(args: SwapRouterBaseInArgs, accounts: SwapRoute buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/swapV2.ts b/packages/kamino-sdk/src/raydium_client/instructions/swapV2.ts index c3e6d5ee..457be48f 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/swapV2.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/swapV2.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -12,30 +12,18 @@ export interface SwapV2Args { } export interface SwapV2Accounts { - /** The user performing the swap */ payer: PublicKey; - /** The factory state to read protocol fees */ ammConfig: PublicKey; - /** The program account of the pool in which the swap will be performed */ poolState: PublicKey; - /** The user token account for input token */ inputTokenAccount: PublicKey; - /** The user token account for output token */ outputTokenAccount: PublicKey; - /** The vault token account for input token */ inputVault: PublicKey; - /** The vault token account for output token */ outputVault: PublicKey; - /** The program account for the most recent oracle observation */ observationState: PublicKey; - /** SPL program for token transfers */ tokenProgram: PublicKey; - /** SPL program 2022 for token transfers */ tokenProgram2022: PublicKey; memoProgram: PublicKey; - /** The mint of token vault 0 */ inputVaultMint: PublicKey; - /** The mint of token vault 1 */ outputVaultMint: PublicKey; } @@ -46,19 +34,7 @@ export const layout = borsh.struct([ borsh.bool('isBaseInput'), ]); -/** - * Swaps one token for as much as possible of another token across a single pool, support token program 2022 - * - * # Arguments - * - * * `ctx` - The context of accounts - * * `amount` - Arranged in pairs with other_amount_threshold. (amount_in, amount_out_minimum) or (amount_out, amount_in_maximum) - * * `other_amount_threshold` - For slippage check - * * `sqrt_price_limit` - The Q64.64 sqrt price √P limit. If zero for one, the price cannot - * * `is_base_input` - swap base input or swap base output - * - */ -export function swapV2(args: SwapV2Args, accounts: SwapV2Accounts) { +export function swapV2(args: SwapV2Args, accounts: SwapV2Accounts, programId: PublicKey = PROGRAM_ID) { const keys: Array = [ { pubkey: accounts.payer, isSigner: true, isWritable: false }, { pubkey: accounts.ammConfig, isSigner: false, isWritable: false }, @@ -86,6 +62,6 @@ export function swapV2(args: SwapV2Args, accounts: SwapV2Accounts) { buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/transferRewardOwner.ts b/packages/kamino-sdk/src/raydium_client/instructions/transferRewardOwner.ts index 2e9a9252..110926d3 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/transferRewardOwner.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/transferRewardOwner.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -9,23 +9,17 @@ export interface TransferRewardOwnerArgs { } export interface TransferRewardOwnerAccounts { - /** Address to be set as operation account owner. */ authority: PublicKey; poolState: PublicKey; } export const layout = borsh.struct([borsh.publicKey('newOwner')]); -/** - * Transfer reward owner - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `new_owner`- new owner pubkey - * - */ -export function transferRewardOwner(args: TransferRewardOwnerArgs, accounts: TransferRewardOwnerAccounts) { +export function transferRewardOwner( + args: TransferRewardOwnerArgs, + accounts: TransferRewardOwnerAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.authority, isSigner: true, isWritable: false }, { pubkey: accounts.poolState, isSigner: false, isWritable: true }, @@ -39,6 +33,6 @@ export function transferRewardOwner(args: TransferRewardOwnerArgs, accounts: Tra buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/updateAmmConfig.ts b/packages/kamino-sdk/src/raydium_client/instructions/updateAmmConfig.ts index 32688204..82f59bc2 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/updateAmmConfig.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/updateAmmConfig.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -10,30 +10,17 @@ export interface UpdateAmmConfigArgs { } export interface UpdateAmmConfigAccounts { - /** The amm config owner or admin */ owner: PublicKey; - /** Amm config account to be changed */ ammConfig: PublicKey; } export const layout = borsh.struct([borsh.u8('param'), borsh.u32('value')]); -/** - * Updates the owner of the amm config - * Must be called by the current owner or admin - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `trade_fee_rate`- The new trade fee rate of amm config, be set when `param` is 0 - * * `protocol_fee_rate`- The new protocol fee rate of amm config, be set when `param` is 1 - * * `fund_fee_rate`- The new fund fee rate of amm config, be set when `param` is 2 - * * `new_owner`- The config's new owner, be set when `param` is 3 - * * `new_fund_owner`- The config's new fund owner, be set when `param` is 4 - * * `param`- The vaule can be 0 | 1 | 2 | 3 | 4, otherwise will report a error - * - */ -export function updateAmmConfig(args: UpdateAmmConfigArgs, accounts: UpdateAmmConfigAccounts) { +export function updateAmmConfig( + args: UpdateAmmConfigArgs, + accounts: UpdateAmmConfigAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.owner, isSigner: true, isWritable: false }, { pubkey: accounts.ammConfig, isSigner: false, isWritable: true }, @@ -48,6 +35,6 @@ export function updateAmmConfig(args: UpdateAmmConfigArgs, accounts: UpdateAmmCo buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/updateOperationAccount.ts b/packages/kamino-sdk/src/raydium_client/instructions/updateOperationAccount.ts index 14aa2f89..d6627645 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/updateOperationAccount.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/updateOperationAccount.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -10,29 +10,18 @@ export interface UpdateOperationAccountArgs { } export interface UpdateOperationAccountAccounts { - /** Address to be set as operation account owner. */ owner: PublicKey; - /** Initialize operation state account to store operation owner address and white list mint. */ operationState: PublicKey; systemProgram: PublicKey; } export const layout = borsh.struct([borsh.u8('param'), borsh.vec(borsh.publicKey(), 'keys')]); -/** - * Update the operation account - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `param`- The vaule can be 0 | 1 | 2 | 3, otherwise will report a error - * * `keys`- update operation owner when the `param` is 0 - * remove operation owner when the `param` is 1 - * update whitelist mint when the `param` is 2 - * remove whitelist mint when the `param` is 3 - * - */ -export function updateOperationAccount(args: UpdateOperationAccountArgs, accounts: UpdateOperationAccountAccounts) { +export function updateOperationAccount( + args: UpdateOperationAccountArgs, + accounts: UpdateOperationAccountAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.owner, isSigner: true, isWritable: false }, { pubkey: accounts.operationState, isSigner: false, isWritable: true }, @@ -48,6 +37,6 @@ export function updateOperationAccount(args: UpdateOperationAccountArgs, account buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/updatePoolStatus.ts b/packages/kamino-sdk/src/raydium_client/instructions/updatePoolStatus.ts index d97e4b05..88452378 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/updatePoolStatus.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/updatePoolStatus.ts @@ -1,6 +1,6 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; @@ -15,16 +15,11 @@ export interface UpdatePoolStatusAccounts { export const layout = borsh.struct([borsh.u8('status')]); -/** - * Update pool status for given vaule - * - * # Arguments - * - * * `ctx`- The context of accounts - * * `status` - The vaule of status - * - */ -export function updatePoolStatus(args: UpdatePoolStatusArgs, accounts: UpdatePoolStatusAccounts) { +export function updatePoolStatus( + args: UpdatePoolStatusArgs, + accounts: UpdatePoolStatusAccounts, + programId: PublicKey = PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.authority, isSigner: true, isWritable: false }, { pubkey: accounts.poolState, isSigner: false, isWritable: true }, @@ -38,6 +33,6 @@ export function updatePoolStatus(args: UpdatePoolStatusArgs, accounts: UpdatePoo buffer ); const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/instructions/updateRewardInfos.ts b/packages/kamino-sdk/src/raydium_client/instructions/updateRewardInfos.ts index cc36fcd7..c983d8d8 100644 --- a/packages/kamino-sdk/src/raydium_client/instructions/updateRewardInfos.ts +++ b/packages/kamino-sdk/src/raydium_client/instructions/updateRewardInfos.ts @@ -1,26 +1,17 @@ import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from '@coral-xyz/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars import { PROGRAM_ID } from '../programId'; export interface UpdateRewardInfosAccounts { - /** The liquidity pool for which reward info to update */ poolState: PublicKey; } -/** - * Update rewards info of the given pool, can be called for everyone - * - * # Arguments - * - * * `ctx`- The context of accounts - * - */ -export function updateRewardInfos(accounts: UpdateRewardInfosAccounts) { +export function updateRewardInfos(accounts: UpdateRewardInfosAccounts, programId: PublicKey = PROGRAM_ID) { const keys: Array = [{ pubkey: accounts.poolState, isSigner: false, isWritable: true }]; const identifier = Buffer.from([163, 172, 224, 52, 11, 154, 106, 223]); const data = identifier; - const ix = new TransactionInstruction({ keys, programId: PROGRAM_ID, data }); + const ix = new TransactionInstruction({ keys, programId, data }); return ix; } diff --git a/packages/kamino-sdk/src/raydium_client/types/InitializeRewardParam.ts b/packages/kamino-sdk/src/raydium_client/types/InitializeRewardParam.ts index efbe632f..926b0201 100644 --- a/packages/kamino-sdk/src/raydium_client/types/InitializeRewardParam.ts +++ b/packages/kamino-sdk/src/raydium_client/types/InitializeRewardParam.ts @@ -1,32 +1,23 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface InitializeRewardParamFields { - /** Reward open time */ openTime: BN; - /** Reward end time */ endTime: BN; - /** Token reward per second are earned per unit of liquidity */ emissionsPerSecondX64: BN; } export interface InitializeRewardParamJSON { - /** Reward open time */ openTime: string; - /** Reward end time */ endTime: string; - /** Token reward per second are earned per unit of liquidity */ emissionsPerSecondX64: string; } export class InitializeRewardParam { - /** Reward open time */ readonly openTime: BN; - /** Reward end time */ readonly endTime: BN; - /** Token reward per second are earned per unit of liquidity */ readonly emissionsPerSecondX64: BN; constructor(fields: InitializeRewardParamFields) { diff --git a/packages/kamino-sdk/src/raydium_client/types/Observation.ts b/packages/kamino-sdk/src/raydium_client/types/Observation.ts index 086e01ef..68be6163 100644 --- a/packages/kamino-sdk/src/raydium_client/types/Observation.ts +++ b/packages/kamino-sdk/src/raydium_client/types/Observation.ts @@ -1,39 +1,26 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface ObservationFields { - /** The block timestamp of the observation */ blockTimestamp: number; - /** the price of the observation timestamp, Q64.64 */ sqrtPriceX64: BN; - /** the cumulative of price during the duration time, Q64.64 */ cumulativeTimePriceX64: BN; - /** padding for feature update */ padding: BN; } export interface ObservationJSON { - /** The block timestamp of the observation */ blockTimestamp: number; - /** the price of the observation timestamp, Q64.64 */ sqrtPriceX64: string; - /** the cumulative of price during the duration time, Q64.64 */ cumulativeTimePriceX64: string; - /** padding for feature update */ padding: string; } -/** The element of observations in ObservationState */ export class Observation { - /** The block timestamp of the observation */ readonly blockTimestamp: number; - /** the price of the observation timestamp, Q64.64 */ readonly sqrtPriceX64: BN; - /** the cumulative of price during the duration time, Q64.64 */ readonly cumulativeTimePriceX64: BN; - /** padding for feature update */ readonly padding: BN; constructor(fields: ObservationFields) { diff --git a/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitFlag.ts b/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitFlag.ts index 3843f2e5..6efc4851 100644 --- a/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitFlag.ts +++ b/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitFlag.ts @@ -1,7 +1,7 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface EnableJSON { kind: 'Enable'; diff --git a/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitIndex.ts b/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitIndex.ts index c6ac0891..8eab5437 100644 --- a/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitIndex.ts +++ b/packages/kamino-sdk/src/raydium_client/types/PoolStatusBitIndex.ts @@ -1,7 +1,7 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface OpenPositionOrIncreaseLiquidityJSON { kind: 'OpenPositionOrIncreaseLiquidity'; diff --git a/packages/kamino-sdk/src/raydium_client/types/PositionRewardInfo.ts b/packages/kamino-sdk/src/raydium_client/types/PositionRewardInfo.ts index 5af189de..80cd8db0 100644 --- a/packages/kamino-sdk/src/raydium_client/types/PositionRewardInfo.ts +++ b/packages/kamino-sdk/src/raydium_client/types/PositionRewardInfo.ts @@ -1,7 +1,7 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface PositionRewardInfoFields { growthInsideLastX64: BN; diff --git a/packages/kamino-sdk/src/raydium_client/types/RewardInfo.ts b/packages/kamino-sdk/src/raydium_client/types/RewardInfo.ts index 2f47d891..6cdf44ec 100644 --- a/packages/kamino-sdk/src/raydium_client/types/RewardInfo.ts +++ b/packages/kamino-sdk/src/raydium_client/types/RewardInfo.ts @@ -1,89 +1,47 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface RewardInfoFields { - /** Reward state */ rewardState: number; - /** Reward open time */ openTime: BN; - /** Reward end time */ endTime: BN; - /** Reward last update time */ lastUpdateTime: BN; - /** Q64.64 number indicates how many tokens per second are earned per unit of liquidity. */ emissionsPerSecondX64: BN; - /** The total amount of reward emissioned */ rewardTotalEmissioned: BN; - /** The total amount of claimed reward */ rewardClaimed: BN; - /** Reward token mint. */ tokenMint: PublicKey; - /** Reward vault token account. */ tokenVault: PublicKey; - /** The owner that has permission to set reward param */ authority: PublicKey; - /** - * Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward - * emissions were turned on. - */ rewardGrowthGlobalX64: BN; } export interface RewardInfoJSON { - /** Reward state */ rewardState: number; - /** Reward open time */ openTime: string; - /** Reward end time */ endTime: string; - /** Reward last update time */ lastUpdateTime: string; - /** Q64.64 number indicates how many tokens per second are earned per unit of liquidity. */ emissionsPerSecondX64: string; - /** The total amount of reward emissioned */ rewardTotalEmissioned: string; - /** The total amount of claimed reward */ rewardClaimed: string; - /** Reward token mint. */ tokenMint: string; - /** Reward vault token account. */ tokenVault: string; - /** The owner that has permission to set reward param */ authority: string; - /** - * Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward - * emissions were turned on. - */ rewardGrowthGlobalX64: string; } export class RewardInfo { - /** Reward state */ readonly rewardState: number; - /** Reward open time */ readonly openTime: BN; - /** Reward end time */ readonly endTime: BN; - /** Reward last update time */ readonly lastUpdateTime: BN; - /** Q64.64 number indicates how many tokens per second are earned per unit of liquidity. */ readonly emissionsPerSecondX64: BN; - /** The total amount of reward emissioned */ readonly rewardTotalEmissioned: BN; - /** The total amount of claimed reward */ readonly rewardClaimed: BN; - /** Reward token mint. */ readonly tokenMint: PublicKey; - /** Reward vault token account. */ readonly tokenVault: PublicKey; - /** The owner that has permission to set reward param */ readonly authority: PublicKey; - /** - * Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward - * emissions were turned on. - */ readonly rewardGrowthGlobalX64: BN; constructor(fields: RewardInfoFields) { diff --git a/packages/kamino-sdk/src/raydium_client/types/RewardState.ts b/packages/kamino-sdk/src/raydium_client/types/RewardState.ts index 941818b6..0b41c40e 100644 --- a/packages/kamino-sdk/src/raydium_client/types/RewardState.ts +++ b/packages/kamino-sdk/src/raydium_client/types/RewardState.ts @@ -1,7 +1,7 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface UninitializedJSON { kind: 'Uninitialized'; diff --git a/packages/kamino-sdk/src/raydium_client/types/TickArryBitmap.ts b/packages/kamino-sdk/src/raydium_client/types/TickArryBitmap.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/kamino-sdk/src/raydium_client/types/TickState.ts b/packages/kamino-sdk/src/raydium_client/types/TickState.ts index d281267f..82ec4b98 100644 --- a/packages/kamino-sdk/src/raydium_client/types/TickState.ts +++ b/packages/kamino-sdk/src/raydium_client/types/TickState.ts @@ -1,18 +1,12 @@ import { PublicKey } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; +import * as borsh from '@coral-xyz/borsh'; export interface TickStateFields { tick: number; - /** Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left) */ liquidityNet: BN; - /** The total position liquidity that references this tick */ liquidityGross: BN; - /** - * Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick) - * only has relative meaning, not absolute — the value depends on when the tick is initialized - */ feeGrowthOutside0X64: BN; feeGrowthOutside1X64: BN; rewardGrowthsOutsideX64: Array; @@ -21,14 +15,8 @@ export interface TickStateFields { export interface TickStateJSON { tick: number; - /** Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left) */ liquidityNet: string; - /** The total position liquidity that references this tick */ liquidityGross: string; - /** - * Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick) - * only has relative meaning, not absolute — the value depends on when the tick is initialized - */ feeGrowthOutside0X64: string; feeGrowthOutside1X64: string; rewardGrowthsOutsideX64: Array; @@ -37,14 +25,8 @@ export interface TickStateJSON { export class TickState { readonly tick: number; - /** Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left) */ readonly liquidityNet: BN; - /** The total position liquidity that references this tick */ readonly liquidityGross: BN; - /** - * Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick) - * only has relative meaning, not absolute — the value depends on when the tick is initialized - */ readonly feeGrowthOutside0X64: BN; readonly feeGrowthOutside1X64: BN; readonly rewardGrowthsOutsideX64: Array; diff --git a/packages/kamino-sdk/src/raydium_client/types/index.ts b/packages/kamino-sdk/src/raydium_client/types/index.ts index b3da2c9f..305c5984 100644 --- a/packages/kamino-sdk/src/raydium_client/types/index.ts +++ b/packages/kamino-sdk/src/raydium_client/types/index.ts @@ -34,7 +34,6 @@ export type PoolStatusBitFlagJSON = PoolStatusBitFlag.EnableJSON | PoolStatusBit export { RewardState }; -/** State of reward */ export type RewardStateKind = | RewardState.Uninitialized | RewardState.Initialized diff --git a/packages/kamino-sdk/src/services/MeteoraService.ts b/packages/kamino-sdk/src/services/MeteoraService.ts index 8ccf7812..8acba684 100644 --- a/packages/kamino-sdk/src/services/MeteoraService.ts +++ b/packages/kamino-sdk/src/services/MeteoraService.ts @@ -5,11 +5,11 @@ import { aprToApy, GenericPoolInfo, getMeteoraPriceLowerUpper, + getMintDecimals, getStrategyPriceRangeMeteora, LiquidityDistribution, ZERO, } from '../utils'; -import { getMintDecimals } from '@project-serum/serum/lib/market'; import { KaminoPrices } from '../models'; import { LbPair, PositionV2 } from '../meteora_client/accounts'; import { WhirlpoolAprApy } from './WhirlpoolAprApy'; diff --git a/packages/kamino-sdk/src/utils/anchorUtils.ts b/packages/kamino-sdk/src/utils/anchorUtils.ts index 5bdee3e4..f96a35ca 100644 --- a/packages/kamino-sdk/src/utils/anchorUtils.ts +++ b/packages/kamino-sdk/src/utils/anchorUtils.ts @@ -1,5 +1,5 @@ import { Keypair } from '@solana/web3.js'; -import { Wallet } from '@project-serum/anchor'; +import { Wallet } from '@coral-xyz/anchor'; /** * Get a read-only wallet for Anchor provider diff --git a/packages/kamino-sdk/src/utils/meteora.ts b/packages/kamino-sdk/src/utils/meteora.ts index d3b05626..eb432e48 100644 --- a/packages/kamino-sdk/src/utils/meteora.ts +++ b/packages/kamino-sdk/src/utils/meteora.ts @@ -1,9 +1,9 @@ import { PublicKey } from '@solana/web3.js'; import Decimal from 'decimal.js'; import { U64_MAX } from '../constants/numericalValues'; -import { BinArray, LbPair, PositionV2 } from '../meteora_client/accounts'; +import { BinArray } from '../meteora_client/accounts'; import { Bin } from '../meteora_client/types'; -import { BN } from '@project-serum/anchor'; +import { BN } from '@coral-xyz/anchor'; const BASIS_POINT_MAX = 10000; const MAX_BIN_ARRAY_SIZE = 70; diff --git a/packages/kamino-sdk/src/utils/tokenUtils.ts b/packages/kamino-sdk/src/utils/tokenUtils.ts index d5b80862..01b01906 100644 --- a/packages/kamino-sdk/src/utils/tokenUtils.ts +++ b/packages/kamino-sdk/src/utils/tokenUtils.ts @@ -11,13 +11,13 @@ import { TransactionInstruction, TransactionSignature, } from '@solana/web3.js'; -import { struct, u32, u8 } from '@project-serum/borsh'; import { sleep } from './utils'; import { WhirlpoolStrategy } from '../kamino-client/accounts'; import { tickIndexToPrice } from '@orca-so/whirlpool-sdk'; import Decimal from 'decimal.js'; import { CollateralInfo } from '../kamino-client/types'; import { getPriceOfBinByBinIdWithDecimals } from './meteora'; +import { MintInfo, MintLayout, u64 } from '@solana/spl-token'; export const ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'); export const TOKEN_PROGRAM_ID = new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'); @@ -206,6 +206,40 @@ export const isSOLMint = (mint: PublicKey): boolean => { return SOL_MINTS.filter((m) => m.equals(mint)).length > 0; }; +export async function getMintDecimals(connection: Connection, mint: PublicKey): Promise { + if (isSOLMint(mint)) { + return DECIMALS_SOL; + } + const acc = await connection.getAccountInfo(mint); + if (!acc) { + throw new Error(`Mint ${mint.toBase58()} not found`); + } + const mintInfo = decodeMint(acc); + return mintInfo.decimals; +} + +export function decodeMint(acc: AccountInfo): MintInfo { + const data = Buffer.from(acc.data); + const mintInfo = MintLayout.decode(data); + + if (mintInfo.mintAuthorityOption === 0) { + mintInfo.mintAuthority = null; + } else { + mintInfo.mintAuthority = new PublicKey(mintInfo.mintAuthority); + } + + mintInfo.supply = u64.fromBuffer(mintInfo.supply); + mintInfo.isInitialized = mintInfo.isInitialized != 0; + + if (mintInfo.freezeAuthorityOption === 0) { + mintInfo.freezeAuthority = null; + } else { + mintInfo.freezeAuthority = new PublicKey(mintInfo.freezeAuthority); + } + + return mintInfo; +} + export function removeBudgetAndAtaIxns(ixns: TransactionInstruction[], mints: PublicKey[]): TransactionInstruction[] { return ixns.filter((ixn) => { const { programId, keys } = ixn; diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/FeeTier.ts b/packages/kamino-sdk/src/whirpools-client/accounts/FeeTier.ts index f4b50dc4..a7ea3dd9 100644 --- a/packages/kamino-sdk/src/whirpools-client/accounts/FeeTier.ts +++ b/packages/kamino-sdk/src/whirpools-client/accounts/FeeTier.ts @@ -1,80 +1,90 @@ -import { PublicKey, Connection } from '@solana/web3.js'; -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface FeeTierFields { - whirlpoolsConfig: PublicKey; - tickSpacing: number; - defaultFeeRate: number; + whirlpoolsConfig: PublicKey + tickSpacing: number + defaultFeeRate: number } export interface FeeTierJSON { - whirlpoolsConfig: string; - tickSpacing: number; - defaultFeeRate: number; + whirlpoolsConfig: string + tickSpacing: number + defaultFeeRate: number } export class FeeTier { - readonly whirlpoolsConfig: PublicKey; - readonly tickSpacing: number; - readonly defaultFeeRate: number; + readonly whirlpoolsConfig: PublicKey + readonly tickSpacing: number + readonly defaultFeeRate: number - static readonly discriminator = Buffer.from([56, 75, 159, 76, 142, 68, 190, 105]); + static readonly discriminator = Buffer.from([ + 56, 75, 159, 76, 142, 68, 190, 105, + ]) static readonly layout = borsh.struct([ - borsh.publicKey('whirlpoolsConfig'), - borsh.u16('tickSpacing'), - borsh.u16('defaultFeeRate'), - ]); + borsh.publicKey("whirlpoolsConfig"), + borsh.u16("tickSpacing"), + borsh.u16("defaultFeeRate"), + ]) constructor(fields: FeeTierFields) { - this.whirlpoolsConfig = fields.whirlpoolsConfig; - this.tickSpacing = fields.tickSpacing; - this.defaultFeeRate = fields.defaultFeeRate; + this.whirlpoolsConfig = fields.whirlpoolsConfig + this.tickSpacing = fields.tickSpacing + this.defaultFeeRate = fields.defaultFeeRate } - static async fetch(c: Connection, address: PublicKey): Promise { - const info = await c.getAccountInfo(address); + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); + return this.decode(info.data) } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { - const infos = await c.getMultipleAccountsInfo(addresses); + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) return infos.map((info) => { if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); - }); + return this.decode(info.data) + }) } static decode(data: Buffer): FeeTier { if (!data.slice(0, 8).equals(FeeTier.discriminator)) { - throw new Error('invalid account discriminator'); + throw new Error("invalid account discriminator") } - const dec = FeeTier.layout.decode(data.slice(8)); + const dec = FeeTier.layout.decode(data.slice(8)) return new FeeTier({ whirlpoolsConfig: dec.whirlpoolsConfig, tickSpacing: dec.tickSpacing, defaultFeeRate: dec.defaultFeeRate, - }); + }) } toJSON(): FeeTierJSON { @@ -82,7 +92,7 @@ export class FeeTier { whirlpoolsConfig: this.whirlpoolsConfig.toString(), tickSpacing: this.tickSpacing, defaultFeeRate: this.defaultFeeRate, - }; + } } static fromJSON(obj: FeeTierJSON): FeeTier { @@ -90,6 +100,6 @@ export class FeeTier { whirlpoolsConfig: new PublicKey(obj.whirlpoolsConfig), tickSpacing: obj.tickSpacing, defaultFeeRate: obj.defaultFeeRate, - }); + }) } } diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/Position.ts b/packages/kamino-sdk/src/whirpools-client/accounts/Position.ts index 18de3a17..f934ddb3 100644 --- a/packages/kamino-sdk/src/whirpools-client/accounts/Position.ts +++ b/packages/kamino-sdk/src/whirpools-client/accounts/Position.ts @@ -1,109 +1,121 @@ -import { PublicKey, Connection } from '@solana/web3.js'; -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface PositionFields { - whirlpool: PublicKey; - positionMint: PublicKey; - liquidity: BN; - tickLowerIndex: number; - tickUpperIndex: number; - feeGrowthCheckpointA: BN; - feeOwedA: BN; - feeGrowthCheckpointB: BN; - feeOwedB: BN; - rewardInfos: Array; + whirlpool: PublicKey + positionMint: PublicKey + liquidity: BN + tickLowerIndex: number + tickUpperIndex: number + feeGrowthCheckpointA: BN + feeOwedA: BN + feeGrowthCheckpointB: BN + feeOwedB: BN + rewardInfos: Array } export interface PositionJSON { - whirlpool: string; - positionMint: string; - liquidity: string; - tickLowerIndex: number; - tickUpperIndex: number; - feeGrowthCheckpointA: string; - feeOwedA: string; - feeGrowthCheckpointB: string; - feeOwedB: string; - rewardInfos: Array; + whirlpool: string + positionMint: string + liquidity: string + tickLowerIndex: number + tickUpperIndex: number + feeGrowthCheckpointA: string + feeOwedA: string + feeGrowthCheckpointB: string + feeOwedB: string + rewardInfos: Array } export class Position { - readonly whirlpool: PublicKey; - readonly positionMint: PublicKey; - readonly liquidity: BN; - readonly tickLowerIndex: number; - readonly tickUpperIndex: number; - readonly feeGrowthCheckpointA: BN; - readonly feeOwedA: BN; - readonly feeGrowthCheckpointB: BN; - readonly feeOwedB: BN; - readonly rewardInfos: Array; - - static readonly discriminator = Buffer.from([170, 188, 143, 228, 122, 64, 247, 208]); + readonly whirlpool: PublicKey + readonly positionMint: PublicKey + readonly liquidity: BN + readonly tickLowerIndex: number + readonly tickUpperIndex: number + readonly feeGrowthCheckpointA: BN + readonly feeOwedA: BN + readonly feeGrowthCheckpointB: BN + readonly feeOwedB: BN + readonly rewardInfos: Array + + static readonly discriminator = Buffer.from([ + 170, 188, 143, 228, 122, 64, 247, 208, + ]) static readonly layout = borsh.struct([ - borsh.publicKey('whirlpool'), - borsh.publicKey('positionMint'), - borsh.u128('liquidity'), - borsh.i32('tickLowerIndex'), - borsh.i32('tickUpperIndex'), - borsh.u128('feeGrowthCheckpointA'), - borsh.u64('feeOwedA'), - borsh.u128('feeGrowthCheckpointB'), - borsh.u64('feeOwedB'), - borsh.array(types.PositionRewardInfo.layout(), 3, 'rewardInfos'), - ]); + borsh.publicKey("whirlpool"), + borsh.publicKey("positionMint"), + borsh.u128("liquidity"), + borsh.i32("tickLowerIndex"), + borsh.i32("tickUpperIndex"), + borsh.u128("feeGrowthCheckpointA"), + borsh.u64("feeOwedA"), + borsh.u128("feeGrowthCheckpointB"), + borsh.u64("feeOwedB"), + borsh.array(types.PositionRewardInfo.layout(), 3, "rewardInfos"), + ]) constructor(fields: PositionFields) { - this.whirlpool = fields.whirlpool; - this.positionMint = fields.positionMint; - this.liquidity = fields.liquidity; - this.tickLowerIndex = fields.tickLowerIndex; - this.tickUpperIndex = fields.tickUpperIndex; - this.feeGrowthCheckpointA = fields.feeGrowthCheckpointA; - this.feeOwedA = fields.feeOwedA; - this.feeGrowthCheckpointB = fields.feeGrowthCheckpointB; - this.feeOwedB = fields.feeOwedB; - this.rewardInfos = fields.rewardInfos.map((item) => new types.PositionRewardInfo({ ...item })); + this.whirlpool = fields.whirlpool + this.positionMint = fields.positionMint + this.liquidity = fields.liquidity + this.tickLowerIndex = fields.tickLowerIndex + this.tickUpperIndex = fields.tickUpperIndex + this.feeGrowthCheckpointA = fields.feeGrowthCheckpointA + this.feeOwedA = fields.feeOwedA + this.feeGrowthCheckpointB = fields.feeGrowthCheckpointB + this.feeOwedB = fields.feeOwedB + this.rewardInfos = fields.rewardInfos.map( + (item) => new types.PositionRewardInfo({ ...item }) + ) } - static async fetch(c: Connection, address: PublicKey): Promise { - const info = await c.getAccountInfo(address); + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); + return this.decode(info.data) } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { - const infos = await c.getMultipleAccountsInfo(addresses); + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) return infos.map((info) => { if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); - }); + return this.decode(info.data) + }) } static decode(data: Buffer): Position { if (!data.slice(0, 8).equals(Position.discriminator)) { - throw new Error('invalid account discriminator'); + throw new Error("invalid account discriminator") } - const dec = Position.layout.decode(data.slice(8)); + const dec = Position.layout.decode(data.slice(8)) return new Position({ whirlpool: dec.whirlpool, @@ -115,10 +127,12 @@ export class Position { feeOwedA: dec.feeOwedA, feeGrowthCheckpointB: dec.feeGrowthCheckpointB, feeOwedB: dec.feeOwedB, - rewardInfos: dec.rewardInfos.map((item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */) => - types.PositionRewardInfo.fromDecoded(item) + rewardInfos: dec.rewardInfos.map( + ( + item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */ + ) => types.PositionRewardInfo.fromDecoded(item) ), - }); + }) } toJSON(): PositionJSON { @@ -133,7 +147,7 @@ export class Position { feeGrowthCheckpointB: this.feeGrowthCheckpointB.toString(), feeOwedB: this.feeOwedB.toString(), rewardInfos: this.rewardInfos.map((item) => item.toJSON()), - }; + } } static fromJSON(obj: PositionJSON): Position { @@ -147,7 +161,9 @@ export class Position { feeOwedA: new BN(obj.feeOwedA), feeGrowthCheckpointB: new BN(obj.feeGrowthCheckpointB), feeOwedB: new BN(obj.feeOwedB), - rewardInfos: obj.rewardInfos.map((item) => types.PositionRewardInfo.fromJSON(item)), - }); + rewardInfos: obj.rewardInfos.map((item) => + types.PositionRewardInfo.fromJSON(item) + ), + }) } } diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/PositionBundle.ts b/packages/kamino-sdk/src/whirpools-client/accounts/PositionBundle.ts new file mode 100644 index 00000000..ff076dc2 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/accounts/PositionBundle.ts @@ -0,0 +1,97 @@ +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface PositionBundleFields { + positionBundleMint: PublicKey + positionBitmap: Array +} + +export interface PositionBundleJSON { + positionBundleMint: string + positionBitmap: Array +} + +export class PositionBundle { + readonly positionBundleMint: PublicKey + readonly positionBitmap: Array + + static readonly discriminator = Buffer.from([ + 129, 169, 175, 65, 185, 95, 32, 100, + ]) + + static readonly layout = borsh.struct([ + borsh.publicKey("positionBundleMint"), + borsh.array(borsh.u8(), 32, "positionBitmap"), + ]) + + constructor(fields: PositionBundleFields) { + this.positionBundleMint = fields.positionBundleMint + this.positionBitmap = fields.positionBitmap + } + + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) + + if (info === null) { + return null + } + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") + } + + return this.decode(info.data) + } + + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) + + return infos.map((info) => { + if (info === null) { + return null + } + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") + } + + return this.decode(info.data) + }) + } + + static decode(data: Buffer): PositionBundle { + if (!data.slice(0, 8).equals(PositionBundle.discriminator)) { + throw new Error("invalid account discriminator") + } + + const dec = PositionBundle.layout.decode(data.slice(8)) + + return new PositionBundle({ + positionBundleMint: dec.positionBundleMint, + positionBitmap: dec.positionBitmap, + }) + } + + toJSON(): PositionBundleJSON { + return { + positionBundleMint: this.positionBundleMint.toString(), + positionBitmap: this.positionBitmap, + } + } + + static fromJSON(obj: PositionBundleJSON): PositionBundle { + return new PositionBundle({ + positionBundleMint: new PublicKey(obj.positionBundleMint), + positionBitmap: obj.positionBitmap, + }) + } +} diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/TickArray.ts b/packages/kamino-sdk/src/whirpools-client/accounts/TickArray.ts index f51dccd2..5aad80fc 100644 --- a/packages/kamino-sdk/src/whirpools-client/accounts/TickArray.ts +++ b/packages/kamino-sdk/src/whirpools-client/accounts/TickArray.ts @@ -1,82 +1,94 @@ -import { PublicKey, Connection } from '@solana/web3.js'; -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface TickArrayFields { - startTickIndex: number; - ticks: Array; - whirlpool: PublicKey; + startTickIndex: number + ticks: Array + whirlpool: PublicKey } export interface TickArrayJSON { - startTickIndex: number; - ticks: Array; - whirlpool: string; + startTickIndex: number + ticks: Array + whirlpool: string } export class TickArray { - readonly startTickIndex: number; - readonly ticks: Array; - readonly whirlpool: PublicKey; + readonly startTickIndex: number + readonly ticks: Array + readonly whirlpool: PublicKey - static readonly discriminator = Buffer.from([69, 97, 189, 190, 110, 7, 66, 187]); + static readonly discriminator = Buffer.from([ + 69, 97, 189, 190, 110, 7, 66, 187, + ]) static readonly layout = borsh.struct([ - borsh.i32('startTickIndex'), - borsh.array(types.Tick.layout(), 88, 'ticks'), - borsh.publicKey('whirlpool'), - ]); + borsh.i32("startTickIndex"), + borsh.array(types.Tick.layout(), 88, "ticks"), + borsh.publicKey("whirlpool"), + ]) constructor(fields: TickArrayFields) { - this.startTickIndex = fields.startTickIndex; - this.ticks = fields.ticks.map((item) => new types.Tick({ ...item })); - this.whirlpool = fields.whirlpool; + this.startTickIndex = fields.startTickIndex + this.ticks = fields.ticks.map((item) => new types.Tick({ ...item })) + this.whirlpool = fields.whirlpool } - static async fetch(c: Connection, address: PublicKey): Promise { - const info = await c.getAccountInfo(address); + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); + return this.decode(info.data) } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { - const infos = await c.getMultipleAccountsInfo(addresses); + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) return infos.map((info) => { if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); - }); + return this.decode(info.data) + }) } static decode(data: Buffer): TickArray { if (!data.slice(0, 8).equals(TickArray.discriminator)) { - throw new Error('invalid account discriminator'); + throw new Error("invalid account discriminator") } - const dec = TickArray.layout.decode(data.slice(8)); + const dec = TickArray.layout.decode(data.slice(8)) return new TickArray({ startTickIndex: dec.startTickIndex, - ticks: dec.ticks.map((item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */) => - types.Tick.fromDecoded(item) + ticks: dec.ticks.map( + ( + item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */ + ) => types.Tick.fromDecoded(item) ), whirlpool: dec.whirlpool, - }); + }) } toJSON(): TickArrayJSON { @@ -84,7 +96,7 @@ export class TickArray { startTickIndex: this.startTickIndex, ticks: this.ticks.map((item) => item.toJSON()), whirlpool: this.whirlpool.toString(), - }; + } } static fromJSON(obj: TickArrayJSON): TickArray { @@ -92,6 +104,6 @@ export class TickArray { startTickIndex: obj.startTickIndex, ticks: obj.ticks.map((item) => types.Tick.fromJSON(item)), whirlpool: new PublicKey(obj.whirlpool), - }); + }) } } diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/TokenBadge.ts b/packages/kamino-sdk/src/whirpools-client/accounts/TokenBadge.ts new file mode 100644 index 00000000..1fa4937f --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/accounts/TokenBadge.ts @@ -0,0 +1,97 @@ +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface TokenBadgeFields { + whirlpoolsConfig: PublicKey + tokenMint: PublicKey +} + +export interface TokenBadgeJSON { + whirlpoolsConfig: string + tokenMint: string +} + +export class TokenBadge { + readonly whirlpoolsConfig: PublicKey + readonly tokenMint: PublicKey + + static readonly discriminator = Buffer.from([ + 116, 219, 204, 229, 249, 116, 255, 150, + ]) + + static readonly layout = borsh.struct([ + borsh.publicKey("whirlpoolsConfig"), + borsh.publicKey("tokenMint"), + ]) + + constructor(fields: TokenBadgeFields) { + this.whirlpoolsConfig = fields.whirlpoolsConfig + this.tokenMint = fields.tokenMint + } + + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) + + if (info === null) { + return null + } + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") + } + + return this.decode(info.data) + } + + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) + + return infos.map((info) => { + if (info === null) { + return null + } + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") + } + + return this.decode(info.data) + }) + } + + static decode(data: Buffer): TokenBadge { + if (!data.slice(0, 8).equals(TokenBadge.discriminator)) { + throw new Error("invalid account discriminator") + } + + const dec = TokenBadge.layout.decode(data.slice(8)) + + return new TokenBadge({ + whirlpoolsConfig: dec.whirlpoolsConfig, + tokenMint: dec.tokenMint, + }) + } + + toJSON(): TokenBadgeJSON { + return { + whirlpoolsConfig: this.whirlpoolsConfig.toString(), + tokenMint: this.tokenMint.toString(), + } + } + + static fromJSON(obj: TokenBadgeJSON): TokenBadge { + return new TokenBadge({ + whirlpoolsConfig: new PublicKey(obj.whirlpoolsConfig), + tokenMint: new PublicKey(obj.tokenMint), + }) + } +} diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/Whirlpool.ts b/packages/kamino-sdk/src/whirpools-client/accounts/Whirlpool.ts index da2e927e..110fbc60 100644 --- a/packages/kamino-sdk/src/whirpools-client/accounts/Whirlpool.ts +++ b/packages/kamino-sdk/src/whirpools-client/accounts/Whirlpool.ts @@ -1,154 +1,166 @@ -import { PublicKey, Connection } from '@solana/web3.js'; -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface WhirlpoolFields { - whirlpoolsConfig: PublicKey; - whirlpoolBump: Array; - tickSpacing: number; - tickSpacingSeed: Array; - feeRate: number; - protocolFeeRate: number; - liquidity: BN; - sqrtPrice: BN; - tickCurrentIndex: number; - protocolFeeOwedA: BN; - protocolFeeOwedB: BN; - tokenMintA: PublicKey; - tokenVaultA: PublicKey; - feeGrowthGlobalA: BN; - tokenMintB: PublicKey; - tokenVaultB: PublicKey; - feeGrowthGlobalB: BN; - rewardLastUpdatedTimestamp: BN; - rewardInfos: Array; + whirlpoolsConfig: PublicKey + whirlpoolBump: Array + tickSpacing: number + tickSpacingSeed: Array + feeRate: number + protocolFeeRate: number + liquidity: BN + sqrtPrice: BN + tickCurrentIndex: number + protocolFeeOwedA: BN + protocolFeeOwedB: BN + tokenMintA: PublicKey + tokenVaultA: PublicKey + feeGrowthGlobalA: BN + tokenMintB: PublicKey + tokenVaultB: PublicKey + feeGrowthGlobalB: BN + rewardLastUpdatedTimestamp: BN + rewardInfos: Array } export interface WhirlpoolJSON { - whirlpoolsConfig: string; - whirlpoolBump: Array; - tickSpacing: number; - tickSpacingSeed: Array; - feeRate: number; - protocolFeeRate: number; - liquidity: string; - sqrtPrice: string; - tickCurrentIndex: number; - protocolFeeOwedA: string; - protocolFeeOwedB: string; - tokenMintA: string; - tokenVaultA: string; - feeGrowthGlobalA: string; - tokenMintB: string; - tokenVaultB: string; - feeGrowthGlobalB: string; - rewardLastUpdatedTimestamp: string; - rewardInfos: Array; + whirlpoolsConfig: string + whirlpoolBump: Array + tickSpacing: number + tickSpacingSeed: Array + feeRate: number + protocolFeeRate: number + liquidity: string + sqrtPrice: string + tickCurrentIndex: number + protocolFeeOwedA: string + protocolFeeOwedB: string + tokenMintA: string + tokenVaultA: string + feeGrowthGlobalA: string + tokenMintB: string + tokenVaultB: string + feeGrowthGlobalB: string + rewardLastUpdatedTimestamp: string + rewardInfos: Array } export class Whirlpool { - readonly whirlpoolsConfig: PublicKey; - readonly whirlpoolBump: Array; - readonly tickSpacing: number; - readonly tickSpacingSeed: Array; - readonly feeRate: number; - readonly protocolFeeRate: number; - readonly liquidity: BN; - readonly sqrtPrice: BN; - readonly tickCurrentIndex: number; - readonly protocolFeeOwedA: BN; - readonly protocolFeeOwedB: BN; - readonly tokenMintA: PublicKey; - readonly tokenVaultA: PublicKey; - readonly feeGrowthGlobalA: BN; - readonly tokenMintB: PublicKey; - readonly tokenVaultB: PublicKey; - readonly feeGrowthGlobalB: BN; - readonly rewardLastUpdatedTimestamp: BN; - readonly rewardInfos: Array; - - static readonly discriminator = Buffer.from([63, 149, 209, 12, 225, 128, 99, 9]); + readonly whirlpoolsConfig: PublicKey + readonly whirlpoolBump: Array + readonly tickSpacing: number + readonly tickSpacingSeed: Array + readonly feeRate: number + readonly protocolFeeRate: number + readonly liquidity: BN + readonly sqrtPrice: BN + readonly tickCurrentIndex: number + readonly protocolFeeOwedA: BN + readonly protocolFeeOwedB: BN + readonly tokenMintA: PublicKey + readonly tokenVaultA: PublicKey + readonly feeGrowthGlobalA: BN + readonly tokenMintB: PublicKey + readonly tokenVaultB: PublicKey + readonly feeGrowthGlobalB: BN + readonly rewardLastUpdatedTimestamp: BN + readonly rewardInfos: Array + + static readonly discriminator = Buffer.from([ + 63, 149, 209, 12, 225, 128, 99, 9, + ]) static readonly layout = borsh.struct([ - borsh.publicKey('whirlpoolsConfig'), - borsh.array(borsh.u8(), 1, 'whirlpoolBump'), - borsh.u16('tickSpacing'), - borsh.array(borsh.u8(), 2, 'tickSpacingSeed'), - borsh.u16('feeRate'), - borsh.u16('protocolFeeRate'), - borsh.u128('liquidity'), - borsh.u128('sqrtPrice'), - borsh.i32('tickCurrentIndex'), - borsh.u64('protocolFeeOwedA'), - borsh.u64('protocolFeeOwedB'), - borsh.publicKey('tokenMintA'), - borsh.publicKey('tokenVaultA'), - borsh.u128('feeGrowthGlobalA'), - borsh.publicKey('tokenMintB'), - borsh.publicKey('tokenVaultB'), - borsh.u128('feeGrowthGlobalB'), - borsh.u64('rewardLastUpdatedTimestamp'), - borsh.array(types.WhirlpoolRewardInfo.layout(), 3, 'rewardInfos'), - ]); + borsh.publicKey("whirlpoolsConfig"), + borsh.array(borsh.u8(), 1, "whirlpoolBump"), + borsh.u16("tickSpacing"), + borsh.array(borsh.u8(), 2, "tickSpacingSeed"), + borsh.u16("feeRate"), + borsh.u16("protocolFeeRate"), + borsh.u128("liquidity"), + borsh.u128("sqrtPrice"), + borsh.i32("tickCurrentIndex"), + borsh.u64("protocolFeeOwedA"), + borsh.u64("protocolFeeOwedB"), + borsh.publicKey("tokenMintA"), + borsh.publicKey("tokenVaultA"), + borsh.u128("feeGrowthGlobalA"), + borsh.publicKey("tokenMintB"), + borsh.publicKey("tokenVaultB"), + borsh.u128("feeGrowthGlobalB"), + borsh.u64("rewardLastUpdatedTimestamp"), + borsh.array(types.WhirlpoolRewardInfo.layout(), 3, "rewardInfos"), + ]) constructor(fields: WhirlpoolFields) { - this.whirlpoolsConfig = fields.whirlpoolsConfig; - this.whirlpoolBump = fields.whirlpoolBump; - this.tickSpacing = fields.tickSpacing; - this.tickSpacingSeed = fields.tickSpacingSeed; - this.feeRate = fields.feeRate; - this.protocolFeeRate = fields.protocolFeeRate; - this.liquidity = fields.liquidity; - this.sqrtPrice = fields.sqrtPrice; - this.tickCurrentIndex = fields.tickCurrentIndex; - this.protocolFeeOwedA = fields.protocolFeeOwedA; - this.protocolFeeOwedB = fields.protocolFeeOwedB; - this.tokenMintA = fields.tokenMintA; - this.tokenVaultA = fields.tokenVaultA; - this.feeGrowthGlobalA = fields.feeGrowthGlobalA; - this.tokenMintB = fields.tokenMintB; - this.tokenVaultB = fields.tokenVaultB; - this.feeGrowthGlobalB = fields.feeGrowthGlobalB; - this.rewardLastUpdatedTimestamp = fields.rewardLastUpdatedTimestamp; - this.rewardInfos = fields.rewardInfos.map((item) => new types.WhirlpoolRewardInfo({ ...item })); + this.whirlpoolsConfig = fields.whirlpoolsConfig + this.whirlpoolBump = fields.whirlpoolBump + this.tickSpacing = fields.tickSpacing + this.tickSpacingSeed = fields.tickSpacingSeed + this.feeRate = fields.feeRate + this.protocolFeeRate = fields.protocolFeeRate + this.liquidity = fields.liquidity + this.sqrtPrice = fields.sqrtPrice + this.tickCurrentIndex = fields.tickCurrentIndex + this.protocolFeeOwedA = fields.protocolFeeOwedA + this.protocolFeeOwedB = fields.protocolFeeOwedB + this.tokenMintA = fields.tokenMintA + this.tokenVaultA = fields.tokenVaultA + this.feeGrowthGlobalA = fields.feeGrowthGlobalA + this.tokenMintB = fields.tokenMintB + this.tokenVaultB = fields.tokenVaultB + this.feeGrowthGlobalB = fields.feeGrowthGlobalB + this.rewardLastUpdatedTimestamp = fields.rewardLastUpdatedTimestamp + this.rewardInfos = fields.rewardInfos.map( + (item) => new types.WhirlpoolRewardInfo({ ...item }) + ) } - static async fetch(c: Connection, address: PublicKey): Promise { - const info = await c.getAccountInfo(address); + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); + return this.decode(info.data) } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { - const infos = await c.getMultipleAccountsInfo(addresses); + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) return infos.map((info) => { if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); - }); + return this.decode(info.data) + }) } static decode(data: Buffer): Whirlpool { if (!data.slice(0, 8).equals(Whirlpool.discriminator)) { - throw new Error('invalid account discriminator'); + throw new Error("invalid account discriminator") } - const dec = Whirlpool.layout.decode(data.slice(8)); + const dec = Whirlpool.layout.decode(data.slice(8)) return new Whirlpool({ whirlpoolsConfig: dec.whirlpoolsConfig, @@ -169,10 +181,12 @@ export class Whirlpool { tokenVaultB: dec.tokenVaultB, feeGrowthGlobalB: dec.feeGrowthGlobalB, rewardLastUpdatedTimestamp: dec.rewardLastUpdatedTimestamp, - rewardInfos: dec.rewardInfos.map((item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */) => - types.WhirlpoolRewardInfo.fromDecoded(item) + rewardInfos: dec.rewardInfos.map( + ( + item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */ + ) => types.WhirlpoolRewardInfo.fromDecoded(item) ), - }); + }) } toJSON(): WhirlpoolJSON { @@ -196,7 +210,7 @@ export class Whirlpool { feeGrowthGlobalB: this.feeGrowthGlobalB.toString(), rewardLastUpdatedTimestamp: this.rewardLastUpdatedTimestamp.toString(), rewardInfos: this.rewardInfos.map((item) => item.toJSON()), - }; + } } static fromJSON(obj: WhirlpoolJSON): Whirlpool { @@ -219,7 +233,9 @@ export class Whirlpool { tokenVaultB: new PublicKey(obj.tokenVaultB), feeGrowthGlobalB: new BN(obj.feeGrowthGlobalB), rewardLastUpdatedTimestamp: new BN(obj.rewardLastUpdatedTimestamp), - rewardInfos: obj.rewardInfos.map((item) => types.WhirlpoolRewardInfo.fromJSON(item)), - }); + rewardInfos: obj.rewardInfos.map((item) => + types.WhirlpoolRewardInfo.fromJSON(item) + ), + }) } } diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfig.ts b/packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfig.ts index f3e6798e..19bcddf9 100644 --- a/packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfig.ts +++ b/packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfig.ts @@ -1,103 +1,119 @@ -import { PublicKey, Connection } from '@solana/web3.js'; -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface WhirlpoolsConfigFields { - feeAuthority: PublicKey; - collectProtocolFeesAuthority: PublicKey; - rewardEmissionsSuperAuthority: PublicKey; - defaultProtocolFeeRate: number; + feeAuthority: PublicKey + collectProtocolFeesAuthority: PublicKey + rewardEmissionsSuperAuthority: PublicKey + defaultProtocolFeeRate: number } export interface WhirlpoolsConfigJSON { - feeAuthority: string; - collectProtocolFeesAuthority: string; - rewardEmissionsSuperAuthority: string; - defaultProtocolFeeRate: number; + feeAuthority: string + collectProtocolFeesAuthority: string + rewardEmissionsSuperAuthority: string + defaultProtocolFeeRate: number } export class WhirlpoolsConfig { - readonly feeAuthority: PublicKey; - readonly collectProtocolFeesAuthority: PublicKey; - readonly rewardEmissionsSuperAuthority: PublicKey; - readonly defaultProtocolFeeRate: number; + readonly feeAuthority: PublicKey + readonly collectProtocolFeesAuthority: PublicKey + readonly rewardEmissionsSuperAuthority: PublicKey + readonly defaultProtocolFeeRate: number - static readonly discriminator = Buffer.from([157, 20, 49, 224, 217, 87, 193, 254]); + static readonly discriminator = Buffer.from([ + 157, 20, 49, 224, 217, 87, 193, 254, + ]) static readonly layout = borsh.struct([ - borsh.publicKey('feeAuthority'), - borsh.publicKey('collectProtocolFeesAuthority'), - borsh.publicKey('rewardEmissionsSuperAuthority'), - borsh.u16('defaultProtocolFeeRate'), - ]); + borsh.publicKey("feeAuthority"), + borsh.publicKey("collectProtocolFeesAuthority"), + borsh.publicKey("rewardEmissionsSuperAuthority"), + borsh.u16("defaultProtocolFeeRate"), + ]) constructor(fields: WhirlpoolsConfigFields) { - this.feeAuthority = fields.feeAuthority; - this.collectProtocolFeesAuthority = fields.collectProtocolFeesAuthority; - this.rewardEmissionsSuperAuthority = fields.rewardEmissionsSuperAuthority; - this.defaultProtocolFeeRate = fields.defaultProtocolFeeRate; + this.feeAuthority = fields.feeAuthority + this.collectProtocolFeesAuthority = fields.collectProtocolFeesAuthority + this.rewardEmissionsSuperAuthority = fields.rewardEmissionsSuperAuthority + this.defaultProtocolFeeRate = fields.defaultProtocolFeeRate } - static async fetch(c: Connection, address: PublicKey): Promise { - const info = await c.getAccountInfo(address); + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); + return this.decode(info.data) } - static async fetchMultiple(c: Connection, addresses: PublicKey[]): Promise> { - const infos = await c.getMultipleAccountsInfo(addresses); + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) return infos.map((info) => { if (info === null) { - return null; + return null } - if (!info.owner.equals(WHIRLPOOL_PROGRAM_ID)) { - throw new Error("account doesn't belong to this program"); + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") } - return this.decode(info.data); - }); + return this.decode(info.data) + }) } static decode(data: Buffer): WhirlpoolsConfig { if (!data.slice(0, 8).equals(WhirlpoolsConfig.discriminator)) { - throw new Error('invalid account discriminator'); + throw new Error("invalid account discriminator") } - const dec = WhirlpoolsConfig.layout.decode(data.slice(8)); + const dec = WhirlpoolsConfig.layout.decode(data.slice(8)) return new WhirlpoolsConfig({ feeAuthority: dec.feeAuthority, collectProtocolFeesAuthority: dec.collectProtocolFeesAuthority, rewardEmissionsSuperAuthority: dec.rewardEmissionsSuperAuthority, defaultProtocolFeeRate: dec.defaultProtocolFeeRate, - }); + }) } toJSON(): WhirlpoolsConfigJSON { return { feeAuthority: this.feeAuthority.toString(), - collectProtocolFeesAuthority: this.collectProtocolFeesAuthority.toString(), - rewardEmissionsSuperAuthority: this.rewardEmissionsSuperAuthority.toString(), + collectProtocolFeesAuthority: + this.collectProtocolFeesAuthority.toString(), + rewardEmissionsSuperAuthority: + this.rewardEmissionsSuperAuthority.toString(), defaultProtocolFeeRate: this.defaultProtocolFeeRate, - }; + } } static fromJSON(obj: WhirlpoolsConfigJSON): WhirlpoolsConfig { return new WhirlpoolsConfig({ feeAuthority: new PublicKey(obj.feeAuthority), - collectProtocolFeesAuthority: new PublicKey(obj.collectProtocolFeesAuthority), - rewardEmissionsSuperAuthority: new PublicKey(obj.rewardEmissionsSuperAuthority), + collectProtocolFeesAuthority: new PublicKey( + obj.collectProtocolFeesAuthority + ), + rewardEmissionsSuperAuthority: new PublicKey( + obj.rewardEmissionsSuperAuthority + ), defaultProtocolFeeRate: obj.defaultProtocolFeeRate, - }); + }) } } diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfigExtension.ts b/packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfigExtension.ts new file mode 100644 index 00000000..59d54ee2 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/accounts/WhirlpoolsConfigExtension.ts @@ -0,0 +1,107 @@ +import { PublicKey, Connection } from "@solana/web3.js" +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface WhirlpoolsConfigExtensionFields { + whirlpoolsConfig: PublicKey + configExtensionAuthority: PublicKey + tokenBadgeAuthority: PublicKey +} + +export interface WhirlpoolsConfigExtensionJSON { + whirlpoolsConfig: string + configExtensionAuthority: string + tokenBadgeAuthority: string +} + +export class WhirlpoolsConfigExtension { + readonly whirlpoolsConfig: PublicKey + readonly configExtensionAuthority: PublicKey + readonly tokenBadgeAuthority: PublicKey + + static readonly discriminator = Buffer.from([ + 2, 99, 215, 163, 240, 26, 153, 58, + ]) + + static readonly layout = borsh.struct([ + borsh.publicKey("whirlpoolsConfig"), + borsh.publicKey("configExtensionAuthority"), + borsh.publicKey("tokenBadgeAuthority"), + ]) + + constructor(fields: WhirlpoolsConfigExtensionFields) { + this.whirlpoolsConfig = fields.whirlpoolsConfig + this.configExtensionAuthority = fields.configExtensionAuthority + this.tokenBadgeAuthority = fields.tokenBadgeAuthority + } + + static async fetch( + c: Connection, + address: PublicKey, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise { + const info = await c.getAccountInfo(address) + + if (info === null) { + return null + } + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") + } + + return this.decode(info.data) + } + + static async fetchMultiple( + c: Connection, + addresses: PublicKey[], + programId: PublicKey = WHIRLPOOL_PROGRAM_ID + ): Promise> { + const infos = await c.getMultipleAccountsInfo(addresses) + + return infos.map((info) => { + if (info === null) { + return null + } + if (!info.owner.equals(programId)) { + throw new Error("account doesn't belong to this program") + } + + return this.decode(info.data) + }) + } + + static decode(data: Buffer): WhirlpoolsConfigExtension { + if (!data.slice(0, 8).equals(WhirlpoolsConfigExtension.discriminator)) { + throw new Error("invalid account discriminator") + } + + const dec = WhirlpoolsConfigExtension.layout.decode(data.slice(8)) + + return new WhirlpoolsConfigExtension({ + whirlpoolsConfig: dec.whirlpoolsConfig, + configExtensionAuthority: dec.configExtensionAuthority, + tokenBadgeAuthority: dec.tokenBadgeAuthority, + }) + } + + toJSON(): WhirlpoolsConfigExtensionJSON { + return { + whirlpoolsConfig: this.whirlpoolsConfig.toString(), + configExtensionAuthority: this.configExtensionAuthority.toString(), + tokenBadgeAuthority: this.tokenBadgeAuthority.toString(), + } + } + + static fromJSON( + obj: WhirlpoolsConfigExtensionJSON + ): WhirlpoolsConfigExtension { + return new WhirlpoolsConfigExtension({ + whirlpoolsConfig: new PublicKey(obj.whirlpoolsConfig), + configExtensionAuthority: new PublicKey(obj.configExtensionAuthority), + tokenBadgeAuthority: new PublicKey(obj.tokenBadgeAuthority), + }) + } +} diff --git a/packages/kamino-sdk/src/whirpools-client/accounts/index.ts b/packages/kamino-sdk/src/whirpools-client/accounts/index.ts index 0f3f34fa..e62c4d11 100644 --- a/packages/kamino-sdk/src/whirpools-client/accounts/index.ts +++ b/packages/kamino-sdk/src/whirpools-client/accounts/index.ts @@ -1,3 +1,8 @@ +export { WhirlpoolsConfigExtension } from "./WhirlpoolsConfigExtension" +export type { + WhirlpoolsConfigExtensionFields, + WhirlpoolsConfigExtensionJSON, +} from "./WhirlpoolsConfigExtension" export { WhirlpoolsConfig } from "./WhirlpoolsConfig" export type { WhirlpoolsConfigFields, @@ -5,9 +10,13 @@ export type { } from "./WhirlpoolsConfig" export { FeeTier } from "./FeeTier" export type { FeeTierFields, FeeTierJSON } from "./FeeTier" +export { PositionBundle } from "./PositionBundle" +export type { PositionBundleFields, PositionBundleJSON } from "./PositionBundle" export { Position } from "./Position" export type { PositionFields, PositionJSON } from "./Position" export { TickArray } from "./TickArray" export type { TickArrayFields, TickArrayJSON } from "./TickArray" +export { TokenBadge } from "./TokenBadge" +export type { TokenBadgeFields, TokenBadgeJSON } from "./TokenBadge" export { Whirlpool } from "./Whirlpool" export type { WhirlpoolFields, WhirlpoolJSON } from "./Whirlpool" diff --git a/packages/kamino-sdk/src/whirpools-client/errors/anchor.ts b/packages/kamino-sdk/src/whirpools-client/errors/anchor.ts index a4f79a25..f40da698 100644 --- a/packages/kamino-sdk/src/whirpools-client/errors/anchor.ts +++ b/packages/kamino-sdk/src/whirpools-client/errors/anchor.ts @@ -25,6 +25,7 @@ export type AnchorError = | ConstraintMintFreezeAuthority | ConstraintMintDecimals | ConstraintSpace + | ConstraintAccountIsNone | RequireViolated | RequireEqViolated | RequireKeysEqViolated @@ -50,7 +51,6 @@ export type AnchorError = | AccountSysvarMismatch | AccountReallocExceedsLimit | AccountDuplicateReallocs - | StateInvalidAddress | DeclaredProgramIdMismatch | Deprecated @@ -138,10 +138,10 @@ export class ConstraintHasOne extends Error { static readonly code = 2001 readonly code = 2001 readonly name = "ConstraintHasOne" - readonly msg = "A has_one constraint was violated" + readonly msg = "A has one constraint was violated" constructor(readonly logs?: string[]) { - super("2001: A has_one constraint was violated") + super("2001: A has one constraint was violated") } } @@ -215,10 +215,10 @@ export class ConstraintState extends Error { static readonly code = 2008 readonly code = 2008 readonly name = "ConstraintState" - readonly msg = "A state constraint was violated" + readonly msg = "Deprecated Error, feel free to replace with something else" constructor(readonly logs?: string[]) { - super("2008: A state constraint was violated") + super("2008: Deprecated Error, feel free to replace with something else") } } @@ -343,6 +343,17 @@ export class ConstraintSpace extends Error { } } +export class ConstraintAccountIsNone extends Error { + static readonly code = 2020 + readonly code = 2020 + readonly name = "ConstraintAccountIsNone" + readonly msg = "A required account for the constraint is None" + + constructor(readonly logs?: string[]) { + super("2020: A required account for the constraint is None") + } +} + export class RequireViolated extends Error { static readonly code = 2500 readonly code = 2500 @@ -624,17 +635,6 @@ export class AccountDuplicateReallocs extends Error { } } -export class StateInvalidAddress extends Error { - static readonly code = 4000 - readonly code = 4000 - readonly name = "StateInvalidAddress" - readonly msg = "The given state account does not have the correct address" - - constructor(readonly logs?: string[]) { - super("4000: The given state account does not have the correct address") - } -} - export class DeclaredProgramIdMismatch extends Error { static readonly code = 4100 readonly code = 4100 @@ -711,6 +711,8 @@ export function fromCode(code: number, logs?: string[]): AnchorError | null { return new ConstraintMintDecimals(logs) case 2019: return new ConstraintSpace(logs) + case 2020: + return new ConstraintAccountIsNone(logs) case 2500: return new RequireViolated(logs) case 2501: @@ -761,8 +763,6 @@ export function fromCode(code: number, logs?: string[]): AnchorError | null { return new AccountReallocExceedsLimit(logs) case 3017: return new AccountDuplicateReallocs(logs) - case 4000: - return new StateInvalidAddress(logs) case 4100: return new DeclaredProgramIdMismatch(logs) case 5000: diff --git a/packages/kamino-sdk/src/whirpools-client/errors/custom.ts b/packages/kamino-sdk/src/whirpools-client/errors/custom.ts index e40a19c8..6fbd4160 100644 --- a/packages/kamino-sdk/src/whirpools-client/errors/custom.ts +++ b/packages/kamino-sdk/src/whirpools-client/errors/custom.ts @@ -40,6 +40,19 @@ export type CustomError = | TickArraySequenceInvalidIndex | AmountCalcOverflow | AmountRemainingOverflow + | InvalidIntermediaryMint + | DuplicateTwoHopPool + | InvalidBundleIndex + | BundledPositionAlreadyOpened + | BundledPositionAlreadyClosed + | PositionBundleNotDeletable + | UnsupportedTokenMint + | RemainingAccountsInvalidSlice + | RemainingAccountsInsufficient + | NoExtraAccountsForTransferHook + | IntermediateTokenAmountMismatch + | TransferFeeCalculationError + | RemainingAccountsDuplicatedAccountsType export class InvalidEnum extends Error { static readonly code = 6000 @@ -501,6 +514,149 @@ export class AmountRemainingOverflow extends Error { } } +export class InvalidIntermediaryMint extends Error { + static readonly code = 6041 + readonly code = 6041 + readonly name = "InvalidIntermediaryMint" + readonly msg = "Invalid intermediary mint" + + constructor(readonly logs?: string[]) { + super("6041: Invalid intermediary mint") + } +} + +export class DuplicateTwoHopPool extends Error { + static readonly code = 6042 + readonly code = 6042 + readonly name = "DuplicateTwoHopPool" + readonly msg = "Duplicate two hop pool" + + constructor(readonly logs?: string[]) { + super("6042: Duplicate two hop pool") + } +} + +export class InvalidBundleIndex extends Error { + static readonly code = 6043 + readonly code = 6043 + readonly name = "InvalidBundleIndex" + readonly msg = "Bundle index is out of bounds" + + constructor(readonly logs?: string[]) { + super("6043: Bundle index is out of bounds") + } +} + +export class BundledPositionAlreadyOpened extends Error { + static readonly code = 6044 + readonly code = 6044 + readonly name = "BundledPositionAlreadyOpened" + readonly msg = "Position has already been opened" + + constructor(readonly logs?: string[]) { + super("6044: Position has already been opened") + } +} + +export class BundledPositionAlreadyClosed extends Error { + static readonly code = 6045 + readonly code = 6045 + readonly name = "BundledPositionAlreadyClosed" + readonly msg = "Position has already been closed" + + constructor(readonly logs?: string[]) { + super("6045: Position has already been closed") + } +} + +export class PositionBundleNotDeletable extends Error { + static readonly code = 6046 + readonly code = 6046 + readonly name = "PositionBundleNotDeletable" + readonly msg = "Unable to delete PositionBundle with open positions" + + constructor(readonly logs?: string[]) { + super("6046: Unable to delete PositionBundle with open positions") + } +} + +export class UnsupportedTokenMint extends Error { + static readonly code = 6047 + readonly code = 6047 + readonly name = "UnsupportedTokenMint" + readonly msg = "Token mint has unsupported attributes" + + constructor(readonly logs?: string[]) { + super("6047: Token mint has unsupported attributes") + } +} + +export class RemainingAccountsInvalidSlice extends Error { + static readonly code = 6048 + readonly code = 6048 + readonly name = "RemainingAccountsInvalidSlice" + readonly msg = "Invalid remaining accounts" + + constructor(readonly logs?: string[]) { + super("6048: Invalid remaining accounts") + } +} + +export class RemainingAccountsInsufficient extends Error { + static readonly code = 6049 + readonly code = 6049 + readonly name = "RemainingAccountsInsufficient" + readonly msg = "Insufficient remaining accounts" + + constructor(readonly logs?: string[]) { + super("6049: Insufficient remaining accounts") + } +} + +export class NoExtraAccountsForTransferHook extends Error { + static readonly code = 6050 + readonly code = 6050 + readonly name = "NoExtraAccountsForTransferHook" + readonly msg = "Unable to call transfer hook without extra accounts" + + constructor(readonly logs?: string[]) { + super("6050: Unable to call transfer hook without extra accounts") + } +} + +export class IntermediateTokenAmountMismatch extends Error { + static readonly code = 6051 + readonly code = 6051 + readonly name = "IntermediateTokenAmountMismatch" + readonly msg = "Output and input amount mismatch" + + constructor(readonly logs?: string[]) { + super("6051: Output and input amount mismatch") + } +} + +export class TransferFeeCalculationError extends Error { + static readonly code = 6052 + readonly code = 6052 + readonly name = "TransferFeeCalculationError" + readonly msg = "Transfer fee calculation failed" + + constructor(readonly logs?: string[]) { + super("6052: Transfer fee calculation failed") + } +} + +export class RemainingAccountsDuplicatedAccountsType extends Error { + static readonly code = 6053 + readonly code = 6053 + readonly name = "RemainingAccountsDuplicatedAccountsType" + readonly msg = "Same accounts type is provided more than once" + + constructor(readonly logs?: string[]) { + super("6053: Same accounts type is provided more than once") + } +} + export function fromCode(code: number, logs?: string[]): CustomError | null { switch (code) { case 6000: @@ -585,6 +741,32 @@ export function fromCode(code: number, logs?: string[]): CustomError | null { return new AmountCalcOverflow(logs) case 6040: return new AmountRemainingOverflow(logs) + case 6041: + return new InvalidIntermediaryMint(logs) + case 6042: + return new DuplicateTwoHopPool(logs) + case 6043: + return new InvalidBundleIndex(logs) + case 6044: + return new BundledPositionAlreadyOpened(logs) + case 6045: + return new BundledPositionAlreadyClosed(logs) + case 6046: + return new PositionBundleNotDeletable(logs) + case 6047: + return new UnsupportedTokenMint(logs) + case 6048: + return new RemainingAccountsInvalidSlice(logs) + case 6049: + return new RemainingAccountsInsufficient(logs) + case 6050: + return new NoExtraAccountsForTransferHook(logs) + case 6051: + return new IntermediateTokenAmountMismatch(logs) + case 6052: + return new TransferFeeCalculationError(logs) + case 6053: + return new RemainingAccountsDuplicatedAccountsType(logs) } return null diff --git a/packages/kamino-sdk/src/whirpools-client/errors/index.ts b/packages/kamino-sdk/src/whirpools-client/errors/index.ts index 1e411d73..fd0849fa 100644 --- a/packages/kamino-sdk/src/whirpools-client/errors/index.ts +++ b/packages/kamino-sdk/src/whirpools-client/errors/index.ts @@ -1,45 +1,62 @@ -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; -import * as anchor from './anchor'; -import * as custom from './custom'; - -export function fromCode(code: number, logs?: string[]): custom.CustomError | anchor.AnchorError | null { - return code >= 6000 ? custom.fromCode(code, logs) : anchor.fromCode(code, logs); +import { PublicKey } from "@solana/web3.js" +import { WHIRLPOOL_PROGRAM_ID } from "../programId" +import * as anchor from "./anchor" +import * as custom from "./custom" + +export function fromCode( + code: number, + logs?: string[] +): custom.CustomError | anchor.AnchorError | null { + return code >= 6000 + ? custom.fromCode(code, logs) + : anchor.fromCode(code, logs) } -function hasOwnProperty(obj: X, prop: Y): obj is X & Record { - return Object.hasOwnProperty.call(obj, prop); +function hasOwnProperty( + obj: X, + prop: Y +): obj is X & Record { + return Object.hasOwnProperty.call(obj, prop) } -const errorRe = /Program (\w+) failed: custom program error: (\w+)/; - -export function fromTxError(err: unknown): custom.CustomError | anchor.AnchorError | null { - if (typeof err !== 'object' || err === null || !hasOwnProperty(err, 'logs') || !Array.isArray(err.logs)) { - return null; +const errorRe = /Program (\w+) failed: custom program error: (\w+)/ + +export function fromTxError( + err: unknown, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +): custom.CustomError | anchor.AnchorError | null { + if ( + typeof err !== "object" || + err === null || + !hasOwnProperty(err, "logs") || + !Array.isArray(err.logs) + ) { + return null } - let firstMatch: RegExpExecArray | null = null; + let firstMatch: RegExpExecArray | null = null for (const logLine of err.logs) { - firstMatch = errorRe.exec(logLine); + firstMatch = errorRe.exec(logLine) if (firstMatch !== null) { - break; + break } } if (firstMatch === null) { - return null; + return null } - const [programIdRaw, codeRaw] = firstMatch.slice(1); - if (programIdRaw !== WHIRLPOOL_PROGRAM_ID.toString()) { - return null; + const [programIdRaw, codeRaw] = firstMatch.slice(1) + if (programIdRaw !== programId.toString()) { + return null } - let errorCode: number; + let errorCode: number try { - errorCode = parseInt(codeRaw, 16); + errorCode = parseInt(codeRaw, 16) } catch (parseErr) { - return null; + return null } - return fromCode(errorCode, err.logs); + return fromCode(errorCode, err.logs) } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/closeBundledPosition.ts b/packages/kamino-sdk/src/whirpools-client/instructions/closeBundledPosition.ts new file mode 100644 index 00000000..79df49b6 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/closeBundledPosition.ts @@ -0,0 +1,52 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface CloseBundledPositionArgs { + bundleIndex: number +} + +export interface CloseBundledPositionAccounts { + bundledPosition: PublicKey + positionBundle: PublicKey + positionBundleTokenAccount: PublicKey + positionBundleAuthority: PublicKey + receiver: PublicKey +} + +export const layout = borsh.struct([borsh.u16("bundleIndex")]) + +export function closeBundledPosition( + args: CloseBundledPositionArgs, + accounts: CloseBundledPositionAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.bundledPosition, isSigner: false, isWritable: true }, + { pubkey: accounts.positionBundle, isSigner: false, isWritable: true }, + { + pubkey: accounts.positionBundleTokenAccount, + isSigner: false, + isWritable: false, + }, + { + pubkey: accounts.positionBundleAuthority, + isSigner: true, + isWritable: false, + }, + { pubkey: accounts.receiver, isSigner: false, isWritable: true }, + ] + const identifier = Buffer.from([41, 36, 216, 245, 27, 85, 103, 67]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + bundleIndex: args.bundleIndex, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/closePosition.ts b/packages/kamino-sdk/src/whirpools-client/instructions/closePosition.ts index fc0cd6cc..166e63dc 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/closePosition.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/closePosition.ts @@ -1,19 +1,22 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface ClosePositionAccounts { - positionAuthority: PublicKey; - receiver: PublicKey; - position: PublicKey; - positionMint: PublicKey; - positionTokenAccount: PublicKey; - tokenProgram: PublicKey; + positionAuthority: PublicKey + receiver: PublicKey + position: PublicKey + positionMint: PublicKey + positionTokenAccount: PublicKey + tokenProgram: PublicKey } -export function closePosition(accounts: ClosePositionAccounts) { +export function closePosition( + accounts: ClosePositionAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.positionAuthority, isSigner: true, isWritable: false }, { pubkey: accounts.receiver, isSigner: false, isWritable: true }, @@ -25,9 +28,9 @@ export function closePosition(accounts: ClosePositionAccounts) { isWritable: true, }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([123, 134, 81, 0, 49, 68, 98, 98]); - const data = identifier; - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ] + const identifier = Buffer.from([123, 134, 81, 0, 49, 68, 98, 98]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/collectFees.ts b/packages/kamino-sdk/src/whirpools-client/instructions/collectFees.ts index 10d1e0a6..83feebc9 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/collectFees.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/collectFees.ts @@ -1,22 +1,25 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface CollectFeesAccounts { - whirlpool: PublicKey; - positionAuthority: PublicKey; - position: PublicKey; - positionTokenAccount: PublicKey; - tokenOwnerAccountA: PublicKey; - tokenVaultA: PublicKey; - tokenOwnerAccountB: PublicKey; - tokenVaultB: PublicKey; - tokenProgram: PublicKey; + whirlpool: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + tokenOwnerAccountA: PublicKey + tokenVaultA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultB: PublicKey + tokenProgram: PublicKey } -export function collectFees(accounts: CollectFeesAccounts) { +export function collectFees( + accounts: CollectFeesAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: false }, { pubkey: accounts.positionAuthority, isSigner: true, isWritable: false }, @@ -31,9 +34,9 @@ export function collectFees(accounts: CollectFeesAccounts) { { pubkey: accounts.tokenOwnerAccountB, isSigner: false, isWritable: true }, { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([164, 152, 207, 99, 30, 186, 19, 182]); - const data = identifier; - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ] + const identifier = Buffer.from([164, 152, 207, 99, 30, 186, 19, 182]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/collectFeesV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/collectFeesV2.ts new file mode 100644 index 00000000..b0b5e785 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/collectFeesV2.ts @@ -0,0 +1,71 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface CollectFeesV2Args { + remainingAccountsInfo: types.RemainingAccountsInfoFields | null +} + +export interface CollectFeesV2Accounts { + whirlpool: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + tokenMintA: PublicKey + tokenMintB: PublicKey + tokenOwnerAccountA: PublicKey + tokenVaultA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultB: PublicKey + tokenProgramA: PublicKey + tokenProgramB: PublicKey + memoProgram: PublicKey +} + +export const layout = borsh.struct([ + borsh.option(types.RemainingAccountsInfo.layout(), "remainingAccountsInfo"), +]) + +export function collectFeesV2( + args: CollectFeesV2Args, + accounts: CollectFeesV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpool, isSigner: false, isWritable: false }, + { pubkey: accounts.positionAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { + pubkey: accounts.positionTokenAccount, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.tokenMintA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenMintB, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenOwnerAccountA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenOwnerAccountB, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenProgramA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramB, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([207, 117, 95, 191, 229, 180, 226, 15]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + remainingAccountsInfo: + (args.remainingAccountsInfo && + types.RemainingAccountsInfo.toEncodable( + args.remainingAccountsInfo + )) || + null, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFees.ts b/packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFees.ts index c7882a38..905dee15 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFees.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFees.ts @@ -1,21 +1,24 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface CollectProtocolFeesAccounts { - whirlpoolsConfig: PublicKey; - whirlpool: PublicKey; - collectProtocolFeesAuthority: PublicKey; - tokenVaultA: PublicKey; - tokenVaultB: PublicKey; - tokenDestinationA: PublicKey; - tokenDestinationB: PublicKey; - tokenProgram: PublicKey; + whirlpoolsConfig: PublicKey + whirlpool: PublicKey + collectProtocolFeesAuthority: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + tokenDestinationA: PublicKey + tokenDestinationB: PublicKey + tokenProgram: PublicKey } -export function collectProtocolFees(accounts: CollectProtocolFeesAccounts) { +export function collectProtocolFees( + accounts: CollectProtocolFeesAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, @@ -29,9 +32,9 @@ export function collectProtocolFees(accounts: CollectProtocolFeesAccounts) { { pubkey: accounts.tokenDestinationA, isSigner: false, isWritable: true }, { pubkey: accounts.tokenDestinationB, isSigner: false, isWritable: true }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([22, 67, 23, 98, 150, 178, 70, 220]); - const data = identifier; - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ] + const identifier = Buffer.from([22, 67, 23, 98, 150, 178, 70, 220]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFeesV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFeesV2.ts new file mode 100644 index 00000000..dea81045 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/collectProtocolFeesV2.ts @@ -0,0 +1,69 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface CollectProtocolFeesV2Args { + remainingAccountsInfo: types.RemainingAccountsInfoFields | null +} + +export interface CollectProtocolFeesV2Accounts { + whirlpoolsConfig: PublicKey + whirlpool: PublicKey + collectProtocolFeesAuthority: PublicKey + tokenMintA: PublicKey + tokenMintB: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + tokenDestinationA: PublicKey + tokenDestinationB: PublicKey + tokenProgramA: PublicKey + tokenProgramB: PublicKey + memoProgram: PublicKey +} + +export const layout = borsh.struct([ + borsh.option(types.RemainingAccountsInfo.layout(), "remainingAccountsInfo"), +]) + +export function collectProtocolFeesV2( + args: CollectProtocolFeesV2Args, + accounts: CollectProtocolFeesV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, + { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, + { + pubkey: accounts.collectProtocolFeesAuthority, + isSigner: true, + isWritable: false, + }, + { pubkey: accounts.tokenMintA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenMintB, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenVaultA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenDestinationA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenDestinationB, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenProgramA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramB, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([103, 128, 222, 134, 114, 200, 22, 200]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + remainingAccountsInfo: + (args.remainingAccountsInfo && + types.RemainingAccountsInfo.toEncodable( + args.remainingAccountsInfo + )) || + null, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/collectReward.ts b/packages/kamino-sdk/src/whirpools-client/instructions/collectReward.ts index d3bea884..34e99800 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/collectReward.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/collectReward.ts @@ -1,26 +1,30 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface CollectRewardArgs { - rewardIndex: number; + rewardIndex: number } export interface CollectRewardAccounts { - whirlpool: PublicKey; - positionAuthority: PublicKey; - position: PublicKey; - positionTokenAccount: PublicKey; - rewardOwnerAccount: PublicKey; - rewardVault: PublicKey; - tokenProgram: PublicKey; + whirlpool: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + rewardOwnerAccount: PublicKey + rewardVault: PublicKey + tokenProgram: PublicKey } -export const layout = borsh.struct([borsh.u8('rewardIndex')]); +export const layout = borsh.struct([borsh.u8("rewardIndex")]) -export function collectReward(args: CollectRewardArgs, accounts: CollectRewardAccounts) { +export function collectReward( + args: CollectRewardArgs, + accounts: CollectRewardAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: false }, { pubkey: accounts.positionAuthority, isSigner: true, isWritable: false }, @@ -33,16 +37,16 @@ export function collectReward(args: CollectRewardArgs, accounts: CollectRewardAc { pubkey: accounts.rewardOwnerAccount, isSigner: false, isWritable: true }, { pubkey: accounts.rewardVault, isSigner: false, isWritable: true }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([70, 5, 132, 87, 86, 235, 177, 34]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([70, 5, 132, 87, 86, 235, 177, 34]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { rewardIndex: args.rewardIndex, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/collectRewardV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/collectRewardV2.ts new file mode 100644 index 00000000..54ecdf3e --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/collectRewardV2.ts @@ -0,0 +1,66 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface CollectRewardV2Args { + rewardIndex: number + remainingAccountsInfo: types.RemainingAccountsInfoFields | null +} + +export interface CollectRewardV2Accounts { + whirlpool: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + rewardOwnerAccount: PublicKey + rewardMint: PublicKey + rewardVault: PublicKey + rewardTokenProgram: PublicKey + memoProgram: PublicKey +} + +export const layout = borsh.struct([ + borsh.u8("rewardIndex"), + borsh.option(types.RemainingAccountsInfo.layout(), "remainingAccountsInfo"), +]) + +export function collectRewardV2( + args: CollectRewardV2Args, + accounts: CollectRewardV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpool, isSigner: false, isWritable: false }, + { pubkey: accounts.positionAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { + pubkey: accounts.positionTokenAccount, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.rewardOwnerAccount, isSigner: false, isWritable: true }, + { pubkey: accounts.rewardMint, isSigner: false, isWritable: false }, + { pubkey: accounts.rewardVault, isSigner: false, isWritable: true }, + { pubkey: accounts.rewardTokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([177, 107, 37, 180, 160, 19, 49, 209]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + rewardIndex: args.rewardIndex, + remainingAccountsInfo: + (args.remainingAccountsInfo && + types.RemainingAccountsInfo.toEncodable( + args.remainingAccountsInfo + )) || + null, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidity.ts b/packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidity.ts index 149efffe..dfe45c00 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidity.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidity.ts @@ -1,32 +1,40 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface DecreaseLiquidityArgs { - liquidityAmount: BN; - tokenMinA: BN; - tokenMinB: BN; + liquidityAmount: BN + tokenMinA: BN + tokenMinB: BN } export interface DecreaseLiquidityAccounts { - whirlpool: PublicKey; - tokenProgram: PublicKey; - positionAuthority: PublicKey; - position: PublicKey; - positionTokenAccount: PublicKey; - tokenOwnerAccountA: PublicKey; - tokenOwnerAccountB: PublicKey; - tokenVaultA: PublicKey; - tokenVaultB: PublicKey; - tickArrayLower: PublicKey; - tickArrayUpper: PublicKey; + whirlpool: PublicKey + tokenProgram: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + tokenOwnerAccountA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + tickArrayLower: PublicKey + tickArrayUpper: PublicKey } -export const layout = borsh.struct([borsh.u128('liquidityAmount'), borsh.u64('tokenMinA'), borsh.u64('tokenMinB')]); +export const layout = borsh.struct([ + borsh.u128("liquidityAmount"), + borsh.u64("tokenMinA"), + borsh.u64("tokenMinB"), +]) -export function decreaseLiquidity(args: DecreaseLiquidityArgs, accounts: DecreaseLiquidityAccounts) { +export function decreaseLiquidity( + args: DecreaseLiquidityArgs, + accounts: DecreaseLiquidityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, @@ -43,9 +51,9 @@ export function decreaseLiquidity(args: DecreaseLiquidityArgs, accounts: Decreas { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, { pubkey: accounts.tickArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.tickArrayUpper, isSigner: false, isWritable: true }, - ]; - const identifier = Buffer.from([160, 38, 208, 111, 104, 91, 44, 1]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([160, 38, 208, 111, 104, 91, 44, 1]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { liquidityAmount: args.liquidityAmount, @@ -53,8 +61,8 @@ export function decreaseLiquidity(args: DecreaseLiquidityArgs, accounts: Decreas tokenMinB: args.tokenMinB, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidityV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidityV2.ts new file mode 100644 index 00000000..e2ccdfd2 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/decreaseLiquidityV2.ts @@ -0,0 +1,84 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface DecreaseLiquidityV2Args { + liquidityAmount: BN + tokenMinA: BN + tokenMinB: BN + remainingAccountsInfo: types.RemainingAccountsInfoFields | null +} + +export interface DecreaseLiquidityV2Accounts { + whirlpool: PublicKey + tokenProgramA: PublicKey + tokenProgramB: PublicKey + memoProgram: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + tokenMintA: PublicKey + tokenMintB: PublicKey + tokenOwnerAccountA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + tickArrayLower: PublicKey + tickArrayUpper: PublicKey +} + +export const layout = borsh.struct([ + borsh.u128("liquidityAmount"), + borsh.u64("tokenMinA"), + borsh.u64("tokenMinB"), + borsh.option(types.RemainingAccountsInfo.layout(), "remainingAccountsInfo"), +]) + +export function decreaseLiquidityV2( + args: DecreaseLiquidityV2Args, + accounts: DecreaseLiquidityV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenProgramA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramB, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.positionAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { + pubkey: accounts.positionTokenAccount, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.tokenMintA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenMintB, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenOwnerAccountA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenOwnerAccountB, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayLower, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayUpper, isSigner: false, isWritable: true }, + ] + const identifier = Buffer.from([58, 127, 188, 62, 79, 82, 196, 96]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + liquidityAmount: args.liquidityAmount, + tokenMinA: args.tokenMinA, + tokenMinB: args.tokenMinB, + remainingAccountsInfo: + (args.remainingAccountsInfo && + types.RemainingAccountsInfo.toEncodable( + args.remainingAccountsInfo + )) || + null, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/deletePositionBundle.ts b/packages/kamino-sdk/src/whirpools-client/instructions/deletePositionBundle.ts new file mode 100644 index 00000000..8a97fef6 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/deletePositionBundle.ts @@ -0,0 +1,36 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface DeletePositionBundleAccounts { + positionBundle: PublicKey + positionBundleMint: PublicKey + positionBundleTokenAccount: PublicKey + positionBundleOwner: PublicKey + receiver: PublicKey + tokenProgram: PublicKey +} + +export function deletePositionBundle( + accounts: DeletePositionBundleAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.positionBundle, isSigner: false, isWritable: true }, + { pubkey: accounts.positionBundleMint, isSigner: false, isWritable: true }, + { + pubkey: accounts.positionBundleTokenAccount, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.positionBundleOwner, isSigner: true, isWritable: false }, + { pubkey: accounts.receiver, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([100, 25, 99, 2, 217, 239, 124, 173]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/deleteTokenBadge.ts b/packages/kamino-sdk/src/whirpools-client/instructions/deleteTokenBadge.ts new file mode 100644 index 00000000..73b1c9d9 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/deleteTokenBadge.ts @@ -0,0 +1,36 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface DeleteTokenBadgeAccounts { + whirlpoolsConfig: PublicKey + whirlpoolsConfigExtension: PublicKey + tokenBadgeAuthority: PublicKey + tokenMint: PublicKey + tokenBadge: PublicKey + receiver: PublicKey +} + +export function deleteTokenBadge( + accounts: DeleteTokenBadgeAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, + { + pubkey: accounts.whirlpoolsConfigExtension, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.tokenBadgeAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.tokenMint, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenBadge, isSigner: false, isWritable: true }, + { pubkey: accounts.receiver, isSigner: false, isWritable: true }, + ] + const identifier = Buffer.from([53, 146, 68, 8, 18, 117, 17, 185]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidity.ts b/packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidity.ts index 67e4b05e..f709120e 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidity.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidity.ts @@ -1,32 +1,40 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface IncreaseLiquidityArgs { - liquidityAmount: BN; - tokenMaxA: BN; - tokenMaxB: BN; + liquidityAmount: BN + tokenMaxA: BN + tokenMaxB: BN } export interface IncreaseLiquidityAccounts { - whirlpool: PublicKey; - tokenProgram: PublicKey; - positionAuthority: PublicKey; - position: PublicKey; - positionTokenAccount: PublicKey; - tokenOwnerAccountA: PublicKey; - tokenOwnerAccountB: PublicKey; - tokenVaultA: PublicKey; - tokenVaultB: PublicKey; - tickArrayLower: PublicKey; - tickArrayUpper: PublicKey; + whirlpool: PublicKey + tokenProgram: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + tokenOwnerAccountA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + tickArrayLower: PublicKey + tickArrayUpper: PublicKey } -export const layout = borsh.struct([borsh.u128('liquidityAmount'), borsh.u64('tokenMaxA'), borsh.u64('tokenMaxB')]); +export const layout = borsh.struct([ + borsh.u128("liquidityAmount"), + borsh.u64("tokenMaxA"), + borsh.u64("tokenMaxB"), +]) -export function increaseLiquidity(args: IncreaseLiquidityArgs, accounts: IncreaseLiquidityAccounts) { +export function increaseLiquidity( + args: IncreaseLiquidityArgs, + accounts: IncreaseLiquidityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, @@ -43,9 +51,9 @@ export function increaseLiquidity(args: IncreaseLiquidityArgs, accounts: Increas { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, { pubkey: accounts.tickArrayLower, isSigner: false, isWritable: true }, { pubkey: accounts.tickArrayUpper, isSigner: false, isWritable: true }, - ]; - const identifier = Buffer.from([46, 156, 243, 118, 13, 205, 251, 178]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([46, 156, 243, 118, 13, 205, 251, 178]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { liquidityAmount: args.liquidityAmount, @@ -53,8 +61,8 @@ export function increaseLiquidity(args: IncreaseLiquidityArgs, accounts: Increas tokenMaxB: args.tokenMaxB, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidityV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidityV2.ts new file mode 100644 index 00000000..7882ffbf --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/increaseLiquidityV2.ts @@ -0,0 +1,84 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface IncreaseLiquidityV2Args { + liquidityAmount: BN + tokenMaxA: BN + tokenMaxB: BN + remainingAccountsInfo: types.RemainingAccountsInfoFields | null +} + +export interface IncreaseLiquidityV2Accounts { + whirlpool: PublicKey + tokenProgramA: PublicKey + tokenProgramB: PublicKey + memoProgram: PublicKey + positionAuthority: PublicKey + position: PublicKey + positionTokenAccount: PublicKey + tokenMintA: PublicKey + tokenMintB: PublicKey + tokenOwnerAccountA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + tickArrayLower: PublicKey + tickArrayUpper: PublicKey +} + +export const layout = borsh.struct([ + borsh.u128("liquidityAmount"), + borsh.u64("tokenMaxA"), + borsh.u64("tokenMaxB"), + borsh.option(types.RemainingAccountsInfo.layout(), "remainingAccountsInfo"), +]) + +export function increaseLiquidityV2( + args: IncreaseLiquidityV2Args, + accounts: IncreaseLiquidityV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenProgramA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramB, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.positionAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.position, isSigner: false, isWritable: true }, + { + pubkey: accounts.positionTokenAccount, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.tokenMintA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenMintB, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenOwnerAccountA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenOwnerAccountB, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayLower, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayUpper, isSigner: false, isWritable: true }, + ] + const identifier = Buffer.from([133, 29, 89, 223, 69, 238, 176, 10]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + liquidityAmount: args.liquidityAmount, + tokenMaxA: args.tokenMaxA, + tokenMaxB: args.tokenMaxB, + remainingAccountsInfo: + (args.remainingAccountsInfo && + types.RemainingAccountsInfo.toEncodable( + args.remainingAccountsInfo + )) || + null, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/index.ts b/packages/kamino-sdk/src/whirpools-client/instructions/index.ts index ce191e67..04133ef3 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/index.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/index.ts @@ -90,3 +90,72 @@ export type { } from "./setRewardAuthorityBySuperAuthority" export { setRewardEmissionsSuperAuthority } from "./setRewardEmissionsSuperAuthority" export type { SetRewardEmissionsSuperAuthorityAccounts } from "./setRewardEmissionsSuperAuthority" +export { twoHopSwap } from "./twoHopSwap" +export type { TwoHopSwapArgs, TwoHopSwapAccounts } from "./twoHopSwap" +export { initializePositionBundle } from "./initializePositionBundle" +export type { InitializePositionBundleAccounts } from "./initializePositionBundle" +export { initializePositionBundleWithMetadata } from "./initializePositionBundleWithMetadata" +export type { InitializePositionBundleWithMetadataAccounts } from "./initializePositionBundleWithMetadata" +export { deletePositionBundle } from "./deletePositionBundle" +export type { DeletePositionBundleAccounts } from "./deletePositionBundle" +export { openBundledPosition } from "./openBundledPosition" +export type { + OpenBundledPositionArgs, + OpenBundledPositionAccounts, +} from "./openBundledPosition" +export { closeBundledPosition } from "./closeBundledPosition" +export type { + CloseBundledPositionArgs, + CloseBundledPositionAccounts, +} from "./closeBundledPosition" +export { collectFeesV2 } from "./collectFeesV2" +export type { CollectFeesV2Args, CollectFeesV2Accounts } from "./collectFeesV2" +export { collectProtocolFeesV2 } from "./collectProtocolFeesV2" +export type { + CollectProtocolFeesV2Args, + CollectProtocolFeesV2Accounts, +} from "./collectProtocolFeesV2" +export { collectRewardV2 } from "./collectRewardV2" +export type { + CollectRewardV2Args, + CollectRewardV2Accounts, +} from "./collectRewardV2" +export { decreaseLiquidityV2 } from "./decreaseLiquidityV2" +export type { + DecreaseLiquidityV2Args, + DecreaseLiquidityV2Accounts, +} from "./decreaseLiquidityV2" +export { increaseLiquidityV2 } from "./increaseLiquidityV2" +export type { + IncreaseLiquidityV2Args, + IncreaseLiquidityV2Accounts, +} from "./increaseLiquidityV2" +export { initializePoolV2 } from "./initializePoolV2" +export type { + InitializePoolV2Args, + InitializePoolV2Accounts, +} from "./initializePoolV2" +export { initializeRewardV2 } from "./initializeRewardV2" +export type { + InitializeRewardV2Args, + InitializeRewardV2Accounts, +} from "./initializeRewardV2" +export { setRewardEmissionsV2 } from "./setRewardEmissionsV2" +export type { + SetRewardEmissionsV2Args, + SetRewardEmissionsV2Accounts, +} from "./setRewardEmissionsV2" +export { swapV2 } from "./swapV2" +export type { SwapV2Args, SwapV2Accounts } from "./swapV2" +export { twoHopSwapV2 } from "./twoHopSwapV2" +export type { TwoHopSwapV2Args, TwoHopSwapV2Accounts } from "./twoHopSwapV2" +export { initializeConfigExtension } from "./initializeConfigExtension" +export type { InitializeConfigExtensionAccounts } from "./initializeConfigExtension" +export { setConfigExtensionAuthority } from "./setConfigExtensionAuthority" +export type { SetConfigExtensionAuthorityAccounts } from "./setConfigExtensionAuthority" +export { setTokenBadgeAuthority } from "./setTokenBadgeAuthority" +export type { SetTokenBadgeAuthorityAccounts } from "./setTokenBadgeAuthority" +export { initializeTokenBadge } from "./initializeTokenBadge" +export type { InitializeTokenBadgeAccounts } from "./initializeTokenBadge" +export { deleteTokenBadge } from "./deleteTokenBadge" +export type { DeleteTokenBadgeAccounts } from "./deleteTokenBadge" diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializeConfig.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializeConfig.ts index 8290072b..9e91a1eb 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/initializeConfig.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializeConfig.ts @@ -1,37 +1,41 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface InitializeConfigArgs { - feeAuthority: PublicKey; - collectProtocolFeesAuthority: PublicKey; - rewardEmissionsSuperAuthority: PublicKey; - defaultProtocolFeeRate: number; + feeAuthority: PublicKey + collectProtocolFeesAuthority: PublicKey + rewardEmissionsSuperAuthority: PublicKey + defaultProtocolFeeRate: number } export interface InitializeConfigAccounts { - config: PublicKey; - funder: PublicKey; - systemProgram: PublicKey; + config: PublicKey + funder: PublicKey + systemProgram: PublicKey } export const layout = borsh.struct([ - borsh.publicKey('feeAuthority'), - borsh.publicKey('collectProtocolFeesAuthority'), - borsh.publicKey('rewardEmissionsSuperAuthority'), - borsh.u16('defaultProtocolFeeRate'), -]); + borsh.publicKey("feeAuthority"), + borsh.publicKey("collectProtocolFeesAuthority"), + borsh.publicKey("rewardEmissionsSuperAuthority"), + borsh.u16("defaultProtocolFeeRate"), +]) -export function initializeConfig(args: InitializeConfigArgs, accounts: InitializeConfigAccounts) { +export function initializeConfig( + args: InitializeConfigArgs, + accounts: InitializeConfigAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.config, isSigner: true, isWritable: true }, { pubkey: accounts.funder, isSigner: true, isWritable: true }, { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([208, 127, 21, 1, 194, 190, 196, 70]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([208, 127, 21, 1, 194, 190, 196, 70]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { feeAuthority: args.feeAuthority, @@ -40,8 +44,8 @@ export function initializeConfig(args: InitializeConfigArgs, accounts: Initializ defaultProtocolFeeRate: args.defaultProtocolFeeRate, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializeConfigExtension.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializeConfigExtension.ts new file mode 100644 index 00000000..2bc0983d --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializeConfigExtension.ts @@ -0,0 +1,30 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface InitializeConfigExtensionAccounts { + config: PublicKey + configExtension: PublicKey + funder: PublicKey + feeAuthority: PublicKey + systemProgram: PublicKey +} + +export function initializeConfigExtension( + accounts: InitializeConfigExtensionAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.config, isSigner: false, isWritable: false }, + { pubkey: accounts.configExtension, isSigner: false, isWritable: true }, + { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.feeAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([55, 9, 53, 9, 114, 57, 209, 52]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializeFeeTier.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializeFeeTier.ts index 60c6a1c8..5f76a91f 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/initializeFeeTier.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializeFeeTier.ts @@ -1,42 +1,49 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface InitializeFeeTierArgs { - tickSpacing: number; - defaultFeeRate: number; + tickSpacing: number + defaultFeeRate: number } export interface InitializeFeeTierAccounts { - config: PublicKey; - feeTier: PublicKey; - funder: PublicKey; - feeAuthority: PublicKey; - systemProgram: PublicKey; + config: PublicKey + feeTier: PublicKey + funder: PublicKey + feeAuthority: PublicKey + systemProgram: PublicKey } -export const layout = borsh.struct([borsh.u16('tickSpacing'), borsh.u16('defaultFeeRate')]); +export const layout = borsh.struct([ + borsh.u16("tickSpacing"), + borsh.u16("defaultFeeRate"), +]) -export function initializeFeeTier(args: InitializeFeeTierArgs, accounts: InitializeFeeTierAccounts) { +export function initializeFeeTier( + args: InitializeFeeTierArgs, + accounts: InitializeFeeTierAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.config, isSigner: false, isWritable: false }, { pubkey: accounts.feeTier, isSigner: false, isWritable: true }, { pubkey: accounts.funder, isSigner: true, isWritable: true }, { pubkey: accounts.feeAuthority, isSigner: true, isWritable: false }, { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([183, 74, 156, 160, 112, 2, 42, 30]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([183, 74, 156, 160, 112, 2, 42, 30]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { tickSpacing: args.tickSpacing, defaultFeeRate: args.defaultFeeRate, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializePool.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializePool.ts index aaba1bbb..1b8b137e 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/initializePool.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializePool.ts @@ -1,36 +1,40 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface InitializePoolArgs { - bumps: types.WhirlpoolBumpsFields; - tickSpacing: number; - initialSqrtPrice: BN; + bumps: types.WhirlpoolBumpsFields + tickSpacing: number + initialSqrtPrice: BN } export interface InitializePoolAccounts { - whirlpoolsConfig: PublicKey; - tokenMintA: PublicKey; - tokenMintB: PublicKey; - funder: PublicKey; - whirlpool: PublicKey; - tokenVaultA: PublicKey; - tokenVaultB: PublicKey; - feeTier: PublicKey; - tokenProgram: PublicKey; - systemProgram: PublicKey; - rent: PublicKey; + whirlpoolsConfig: PublicKey + tokenMintA: PublicKey + tokenMintB: PublicKey + funder: PublicKey + whirlpool: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + feeTier: PublicKey + tokenProgram: PublicKey + systemProgram: PublicKey + rent: PublicKey } export const layout = borsh.struct([ - types.WhirlpoolBumps.layout('bumps'), - borsh.u16('tickSpacing'), - borsh.u128('initialSqrtPrice'), -]); + types.WhirlpoolBumps.layout("bumps"), + borsh.u16("tickSpacing"), + borsh.u128("initialSqrtPrice"), +]) -export function initializePool(args: InitializePoolArgs, accounts: InitializePoolAccounts) { +export function initializePool( + args: InitializePoolArgs, + accounts: InitializePoolAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, { pubkey: accounts.tokenMintA, isSigner: false, isWritable: false }, @@ -43,9 +47,9 @@ export function initializePool(args: InitializePoolArgs, accounts: InitializePoo { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, { pubkey: accounts.rent, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([95, 180, 10, 172, 84, 174, 232, 40]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([95, 180, 10, 172, 84, 174, 232, 40]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { bumps: types.WhirlpoolBumps.toEncodable(args.bumps), @@ -53,8 +57,8 @@ export function initializePool(args: InitializePoolArgs, accounts: InitializePoo initialSqrtPrice: args.initialSqrtPrice, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializePoolV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializePoolV2.ts new file mode 100644 index 00000000..20da0b7e --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializePoolV2.ts @@ -0,0 +1,67 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface InitializePoolV2Args { + tickSpacing: number + initialSqrtPrice: BN +} + +export interface InitializePoolV2Accounts { + whirlpoolsConfig: PublicKey + tokenMintA: PublicKey + tokenMintB: PublicKey + tokenBadgeA: PublicKey + tokenBadgeB: PublicKey + funder: PublicKey + whirlpool: PublicKey + tokenVaultA: PublicKey + tokenVaultB: PublicKey + feeTier: PublicKey + tokenProgramA: PublicKey + tokenProgramB: PublicKey + systemProgram: PublicKey + rent: PublicKey +} + +export const layout = borsh.struct([ + borsh.u16("tickSpacing"), + borsh.u128("initialSqrtPrice"), +]) + +export function initializePoolV2( + args: InitializePoolV2Args, + accounts: InitializePoolV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenMintA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenMintB, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenBadgeA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenBadgeB, isSigner: false, isWritable: false }, + { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultA, isSigner: true, isWritable: true }, + { pubkey: accounts.tokenVaultB, isSigner: true, isWritable: true }, + { pubkey: accounts.feeTier, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramB, isSigner: false, isWritable: false }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.rent, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([207, 45, 87, 242, 27, 63, 204, 67]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + tickSpacing: args.tickSpacing, + initialSqrtPrice: args.initialSqrtPrice, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundle.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundle.ts new file mode 100644 index 00000000..8cd38f78 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundle.ts @@ -0,0 +1,50 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface InitializePositionBundleAccounts { + positionBundle: PublicKey + positionBundleMint: PublicKey + positionBundleTokenAccount: PublicKey + positionBundleOwner: PublicKey + funder: PublicKey + tokenProgram: PublicKey + systemProgram: PublicKey + rent: PublicKey + associatedTokenProgram: PublicKey +} + +export function initializePositionBundle( + accounts: InitializePositionBundleAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.positionBundle, isSigner: false, isWritable: true }, + { pubkey: accounts.positionBundleMint, isSigner: true, isWritable: true }, + { + pubkey: accounts.positionBundleTokenAccount, + isSigner: false, + isWritable: true, + }, + { + pubkey: accounts.positionBundleOwner, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.rent, isSigner: false, isWritable: false }, + { + pubkey: accounts.associatedTokenProgram, + isSigner: false, + isWritable: false, + }, + ] + const identifier = Buffer.from([117, 45, 241, 149, 24, 18, 194, 65]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundleWithMetadata.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundleWithMetadata.ts new file mode 100644 index 00000000..966e046a --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializePositionBundleWithMetadata.ts @@ -0,0 +1,60 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface InitializePositionBundleWithMetadataAccounts { + positionBundle: PublicKey + positionBundleMint: PublicKey + positionBundleMetadata: PublicKey + positionBundleTokenAccount: PublicKey + positionBundleOwner: PublicKey + funder: PublicKey + metadataUpdateAuth: PublicKey + tokenProgram: PublicKey + systemProgram: PublicKey + rent: PublicKey + associatedTokenProgram: PublicKey + metadataProgram: PublicKey +} + +export function initializePositionBundleWithMetadata( + accounts: InitializePositionBundleWithMetadataAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.positionBundle, isSigner: false, isWritable: true }, + { pubkey: accounts.positionBundleMint, isSigner: true, isWritable: true }, + { + pubkey: accounts.positionBundleMetadata, + isSigner: false, + isWritable: true, + }, + { + pubkey: accounts.positionBundleTokenAccount, + isSigner: false, + isWritable: true, + }, + { + pubkey: accounts.positionBundleOwner, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.metadataUpdateAuth, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.rent, isSigner: false, isWritable: false }, + { + pubkey: accounts.associatedTokenProgram, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.metadataProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([93, 124, 16, 179, 249, 131, 115, 245]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializeReward.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializeReward.ts index 54243bd8..cd0b84a0 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/initializeReward.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializeReward.ts @@ -1,27 +1,31 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface InitializeRewardArgs { - rewardIndex: number; + rewardIndex: number } export interface InitializeRewardAccounts { - rewardAuthority: PublicKey; - funder: PublicKey; - whirlpool: PublicKey; - rewardMint: PublicKey; - rewardVault: PublicKey; - tokenProgram: PublicKey; - systemProgram: PublicKey; - rent: PublicKey; + rewardAuthority: PublicKey + funder: PublicKey + whirlpool: PublicKey + rewardMint: PublicKey + rewardVault: PublicKey + tokenProgram: PublicKey + systemProgram: PublicKey + rent: PublicKey } -export const layout = borsh.struct([borsh.u8('rewardIndex')]); +export const layout = borsh.struct([borsh.u8("rewardIndex")]) -export function initializeReward(args: InitializeRewardArgs, accounts: InitializeRewardAccounts) { +export function initializeReward( + args: InitializeRewardArgs, + accounts: InitializeRewardAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.rewardAuthority, isSigner: true, isWritable: false }, { pubkey: accounts.funder, isSigner: true, isWritable: true }, @@ -31,16 +35,16 @@ export function initializeReward(args: InitializeRewardArgs, accounts: Initializ { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, { pubkey: accounts.rent, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([95, 135, 192, 196, 242, 129, 230, 68]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([95, 135, 192, 196, 242, 129, 230, 68]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { rewardIndex: args.rewardIndex, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializeRewardV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializeRewardV2.ts new file mode 100644 index 00000000..f8afd3bb --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializeRewardV2.ts @@ -0,0 +1,52 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface InitializeRewardV2Args { + rewardIndex: number +} + +export interface InitializeRewardV2Accounts { + rewardAuthority: PublicKey + funder: PublicKey + whirlpool: PublicKey + rewardMint: PublicKey + rewardTokenBadge: PublicKey + rewardVault: PublicKey + rewardTokenProgram: PublicKey + systemProgram: PublicKey + rent: PublicKey +} + +export const layout = borsh.struct([borsh.u8("rewardIndex")]) + +export function initializeRewardV2( + args: InitializeRewardV2Args, + accounts: InitializeRewardV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.rewardAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, + { pubkey: accounts.rewardMint, isSigner: false, isWritable: false }, + { pubkey: accounts.rewardTokenBadge, isSigner: false, isWritable: false }, + { pubkey: accounts.rewardVault, isSigner: true, isWritable: true }, + { pubkey: accounts.rewardTokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.rent, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([91, 1, 77, 50, 235, 229, 133, 49]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + rewardIndex: args.rewardIndex, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializeTickArray.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializeTickArray.ts index 3d5cdbff..a78d4fc9 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/initializeTickArray.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializeTickArray.ts @@ -1,38 +1,42 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface InitializeTickArrayArgs { - startTickIndex: number; + startTickIndex: number } export interface InitializeTickArrayAccounts { - whirlpool: PublicKey; - funder: PublicKey; - tickArray: PublicKey; - systemProgram: PublicKey; + whirlpool: PublicKey + funder: PublicKey + tickArray: PublicKey + systemProgram: PublicKey } -export const layout = borsh.struct([borsh.i32('startTickIndex')]); +export const layout = borsh.struct([borsh.i32("startTickIndex")]) -export function initializeTickArray(args: InitializeTickArrayArgs, accounts: InitializeTickArrayAccounts) { +export function initializeTickArray( + args: InitializeTickArrayArgs, + accounts: InitializeTickArrayAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: false }, { pubkey: accounts.funder, isSigner: true, isWritable: true }, { pubkey: accounts.tickArray, isSigner: false, isWritable: true }, { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([11, 188, 193, 214, 141, 91, 149, 184]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([11, 188, 193, 214, 141, 91, 149, 184]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { startTickIndex: args.startTickIndex, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/initializeTokenBadge.ts b/packages/kamino-sdk/src/whirpools-client/instructions/initializeTokenBadge.ts new file mode 100644 index 00000000..1bd8aba0 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/initializeTokenBadge.ts @@ -0,0 +1,38 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface InitializeTokenBadgeAccounts { + whirlpoolsConfig: PublicKey + whirlpoolsConfigExtension: PublicKey + tokenBadgeAuthority: PublicKey + tokenMint: PublicKey + tokenBadge: PublicKey + funder: PublicKey + systemProgram: PublicKey +} + +export function initializeTokenBadge( + accounts: InitializeTokenBadgeAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, + { + pubkey: accounts.whirlpoolsConfigExtension, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.tokenBadgeAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.tokenMint, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenBadge, isSigner: false, isWritable: true }, + { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([253, 77, 205, 95, 27, 224, 89, 223]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/openBundledPosition.ts b/packages/kamino-sdk/src/whirpools-client/instructions/openBundledPosition.ts new file mode 100644 index 00000000..d2be7d40 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/openBundledPosition.ts @@ -0,0 +1,66 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface OpenBundledPositionArgs { + bundleIndex: number + tickLowerIndex: number + tickUpperIndex: number +} + +export interface OpenBundledPositionAccounts { + bundledPosition: PublicKey + positionBundle: PublicKey + positionBundleTokenAccount: PublicKey + positionBundleAuthority: PublicKey + whirlpool: PublicKey + funder: PublicKey + systemProgram: PublicKey + rent: PublicKey +} + +export const layout = borsh.struct([ + borsh.u16("bundleIndex"), + borsh.i32("tickLowerIndex"), + borsh.i32("tickUpperIndex"), +]) + +export function openBundledPosition( + args: OpenBundledPositionArgs, + accounts: OpenBundledPositionAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.bundledPosition, isSigner: false, isWritable: true }, + { pubkey: accounts.positionBundle, isSigner: false, isWritable: true }, + { + pubkey: accounts.positionBundleTokenAccount, + isSigner: false, + isWritable: false, + }, + { + pubkey: accounts.positionBundleAuthority, + isSigner: true, + isWritable: false, + }, + { pubkey: accounts.whirlpool, isSigner: false, isWritable: false }, + { pubkey: accounts.funder, isSigner: true, isWritable: true }, + { pubkey: accounts.systemProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.rent, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([169, 113, 126, 171, 213, 172, 212, 49]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + bundleIndex: args.bundleIndex, + tickLowerIndex: args.tickLowerIndex, + tickUpperIndex: args.tickUpperIndex, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/openPosition.ts b/packages/kamino-sdk/src/whirpools-client/instructions/openPosition.ts index 97675e95..7416cc0a 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/openPosition.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/openPosition.ts @@ -1,35 +1,39 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface OpenPositionArgs { - bumps: types.OpenPositionBumpsFields; - tickLowerIndex: number; - tickUpperIndex: number; + bumps: types.OpenPositionBumpsFields + tickLowerIndex: number + tickUpperIndex: number } export interface OpenPositionAccounts { - funder: PublicKey; - owner: PublicKey; - position: PublicKey; - positionMint: PublicKey; - positionTokenAccount: PublicKey; - whirlpool: PublicKey; - tokenProgram: PublicKey; - systemProgram: PublicKey; - rent: PublicKey; - associatedTokenProgram: PublicKey; + funder: PublicKey + owner: PublicKey + position: PublicKey + positionMint: PublicKey + positionTokenAccount: PublicKey + whirlpool: PublicKey + tokenProgram: PublicKey + systemProgram: PublicKey + rent: PublicKey + associatedTokenProgram: PublicKey } export const layout = borsh.struct([ - types.OpenPositionBumps.layout('bumps'), - borsh.i32('tickLowerIndex'), - borsh.i32('tickUpperIndex'), -]); + types.OpenPositionBumps.layout("bumps"), + borsh.i32("tickLowerIndex"), + borsh.i32("tickUpperIndex"), +]) -export function openPosition(args: OpenPositionArgs, accounts: OpenPositionAccounts) { +export function openPosition( + args: OpenPositionArgs, + accounts: OpenPositionAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.funder, isSigner: true, isWritable: true }, { pubkey: accounts.owner, isSigner: false, isWritable: false }, @@ -49,9 +53,9 @@ export function openPosition(args: OpenPositionArgs, accounts: OpenPositionAccou isSigner: false, isWritable: false, }, - ]; - const identifier = Buffer.from([135, 128, 47, 77, 15, 152, 240, 49]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([135, 128, 47, 77, 15, 152, 240, 49]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { bumps: types.OpenPositionBumps.toEncodable(args.bumps), @@ -59,8 +63,8 @@ export function openPosition(args: OpenPositionArgs, accounts: OpenPositionAccou tickUpperIndex: args.tickUpperIndex, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/openPositionWithMetadata.ts b/packages/kamino-sdk/src/whirpools-client/instructions/openPositionWithMetadata.ts index fe63795e..9c4bbed8 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/openPositionWithMetadata.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/openPositionWithMetadata.ts @@ -1,40 +1,41 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface OpenPositionWithMetadataArgs { - bumps: types.OpenPositionWithMetadataBumpsFields; - tickLowerIndex: number; - tickUpperIndex: number; + bumps: types.OpenPositionWithMetadataBumpsFields + tickLowerIndex: number + tickUpperIndex: number } export interface OpenPositionWithMetadataAccounts { - funder: PublicKey; - owner: PublicKey; - position: PublicKey; - positionMint: PublicKey; - positionMetadataAccount: PublicKey; - positionTokenAccount: PublicKey; - whirlpool: PublicKey; - tokenProgram: PublicKey; - systemProgram: PublicKey; - rent: PublicKey; - associatedTokenProgram: PublicKey; - metadataProgram: PublicKey; - metadataUpdateAuth: PublicKey; + funder: PublicKey + owner: PublicKey + position: PublicKey + positionMint: PublicKey + positionMetadataAccount: PublicKey + positionTokenAccount: PublicKey + whirlpool: PublicKey + tokenProgram: PublicKey + systemProgram: PublicKey + rent: PublicKey + associatedTokenProgram: PublicKey + metadataProgram: PublicKey + metadataUpdateAuth: PublicKey } export const layout = borsh.struct([ - types.OpenPositionWithMetadataBumps.layout('bumps'), - borsh.i32('tickLowerIndex'), - borsh.i32('tickUpperIndex'), -]); + types.OpenPositionWithMetadataBumps.layout("bumps"), + borsh.i32("tickLowerIndex"), + borsh.i32("tickUpperIndex"), +]) export function openPositionWithMetadata( args: OpenPositionWithMetadataArgs, - accounts: OpenPositionWithMetadataAccounts + accounts: OpenPositionWithMetadataAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.funder, isSigner: true, isWritable: true }, @@ -62,9 +63,9 @@ export function openPositionWithMetadata( }, { pubkey: accounts.metadataProgram, isSigner: false, isWritable: false }, { pubkey: accounts.metadataUpdateAuth, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([242, 29, 134, 48, 58, 110, 14, 60]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([242, 29, 134, 48, 58, 110, 14, 60]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { bumps: types.OpenPositionWithMetadataBumps.toEncodable(args.bumps), @@ -72,8 +73,8 @@ export function openPositionWithMetadata( tickUpperIndex: args.tickUpperIndex, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setCollectProtocolFeesAuthority.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setCollectProtocolFeesAuthority.ts index 9c14e15d..8353e085 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setCollectProtocolFeesAuthority.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setCollectProtocolFeesAuthority.ts @@ -1,16 +1,19 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetCollectProtocolFeesAuthorityAccounts { - whirlpoolsConfig: PublicKey; - collectProtocolFeesAuthority: PublicKey; - newCollectProtocolFeesAuthority: PublicKey; + whirlpoolsConfig: PublicKey + collectProtocolFeesAuthority: PublicKey + newCollectProtocolFeesAuthority: PublicKey } -export function setCollectProtocolFeesAuthority(accounts: SetCollectProtocolFeesAuthorityAccounts) { +export function setCollectProtocolFeesAuthority( + accounts: SetCollectProtocolFeesAuthorityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: true }, { @@ -23,9 +26,9 @@ export function setCollectProtocolFeesAuthority(accounts: SetCollectProtocolFees isSigner: false, isWritable: false, }, - ]; - const identifier = Buffer.from([34, 150, 93, 244, 139, 225, 233, 67]); - const data = identifier; - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ] + const identifier = Buffer.from([34, 150, 93, 244, 139, 225, 233, 67]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setConfigExtensionAuthority.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setConfigExtensionAuthority.ts new file mode 100644 index 00000000..9899c77c --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setConfigExtensionAuthority.ts @@ -0,0 +1,40 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface SetConfigExtensionAuthorityAccounts { + whirlpoolsConfig: PublicKey + whirlpoolsConfigExtension: PublicKey + configExtensionAuthority: PublicKey + newConfigExtensionAuthority: PublicKey +} + +export function setConfigExtensionAuthority( + accounts: SetConfigExtensionAuthorityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, + { + pubkey: accounts.whirlpoolsConfigExtension, + isSigner: false, + isWritable: true, + }, + { + pubkey: accounts.configExtensionAuthority, + isSigner: true, + isWritable: false, + }, + { + pubkey: accounts.newConfigExtensionAuthority, + isSigner: false, + isWritable: false, + }, + ] + const identifier = Buffer.from([44, 94, 241, 116, 24, 188, 60, 143]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultFeeRate.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultFeeRate.ts index f54f27ea..8b64e380 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultFeeRate.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultFeeRate.ts @@ -1,36 +1,40 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetDefaultFeeRateArgs { - defaultFeeRate: number; + defaultFeeRate: number } export interface SetDefaultFeeRateAccounts { - whirlpoolsConfig: PublicKey; - feeTier: PublicKey; - feeAuthority: PublicKey; + whirlpoolsConfig: PublicKey + feeTier: PublicKey + feeAuthority: PublicKey } -export const layout = borsh.struct([borsh.u16('defaultFeeRate')]); +export const layout = borsh.struct([borsh.u16("defaultFeeRate")]) -export function setDefaultFeeRate(args: SetDefaultFeeRateArgs, accounts: SetDefaultFeeRateAccounts) { +export function setDefaultFeeRate( + args: SetDefaultFeeRateArgs, + accounts: SetDefaultFeeRateAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, { pubkey: accounts.feeTier, isSigner: false, isWritable: true }, { pubkey: accounts.feeAuthority, isSigner: true, isWritable: false }, - ]; - const identifier = Buffer.from([118, 215, 214, 157, 182, 229, 208, 228]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([118, 215, 214, 157, 182, 229, 208, 228]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { defaultFeeRate: args.defaultFeeRate, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultProtocolFeeRate.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultProtocolFeeRate.ts index 718e0ce6..3fea7a03 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultProtocolFeeRate.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setDefaultProtocolFeeRate.ts @@ -1,37 +1,38 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetDefaultProtocolFeeRateArgs { - defaultProtocolFeeRate: number; + defaultProtocolFeeRate: number } export interface SetDefaultProtocolFeeRateAccounts { - whirlpoolsConfig: PublicKey; - feeAuthority: PublicKey; + whirlpoolsConfig: PublicKey + feeAuthority: PublicKey } -export const layout = borsh.struct([borsh.u16('defaultProtocolFeeRate')]); +export const layout = borsh.struct([borsh.u16("defaultProtocolFeeRate")]) export function setDefaultProtocolFeeRate( args: SetDefaultProtocolFeeRateArgs, - accounts: SetDefaultProtocolFeeRateAccounts + accounts: SetDefaultProtocolFeeRateAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: true }, { pubkey: accounts.feeAuthority, isSigner: true, isWritable: false }, - ]; - const identifier = Buffer.from([107, 205, 249, 226, 151, 35, 86, 0]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([107, 205, 249, 226, 151, 35, 86, 0]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { defaultProtocolFeeRate: args.defaultProtocolFeeRate, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setFeeAuthority.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setFeeAuthority.ts index 244df573..21f90a32 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setFeeAuthority.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setFeeAuthority.ts @@ -1,23 +1,26 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetFeeAuthorityAccounts { - whirlpoolsConfig: PublicKey; - feeAuthority: PublicKey; - newFeeAuthority: PublicKey; + whirlpoolsConfig: PublicKey + feeAuthority: PublicKey + newFeeAuthority: PublicKey } -export function setFeeAuthority(accounts: SetFeeAuthorityAccounts) { +export function setFeeAuthority( + accounts: SetFeeAuthorityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: true }, { pubkey: accounts.feeAuthority, isSigner: true, isWritable: false }, { pubkey: accounts.newFeeAuthority, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([31, 1, 50, 87, 237, 101, 97, 132]); - const data = identifier; - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ] + const identifier = Buffer.from([31, 1, 50, 87, 237, 101, 97, 132]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setFeeRate.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setFeeRate.ts index 6a89527a..199ab9e9 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setFeeRate.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setFeeRate.ts @@ -1,36 +1,40 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetFeeRateArgs { - feeRate: number; + feeRate: number } export interface SetFeeRateAccounts { - whirlpoolsConfig: PublicKey; - whirlpool: PublicKey; - feeAuthority: PublicKey; + whirlpoolsConfig: PublicKey + whirlpool: PublicKey + feeAuthority: PublicKey } -export const layout = borsh.struct([borsh.u16('feeRate')]); +export const layout = borsh.struct([borsh.u16("feeRate")]) -export function setFeeRate(args: SetFeeRateArgs, accounts: SetFeeRateAccounts) { +export function setFeeRate( + args: SetFeeRateArgs, + accounts: SetFeeRateAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, { pubkey: accounts.feeAuthority, isSigner: true, isWritable: false }, - ]; - const identifier = Buffer.from([53, 243, 137, 65, 8, 140, 158, 6]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([53, 243, 137, 65, 8, 140, 158, 6]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { feeRate: args.feeRate, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setProtocolFeeRate.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setProtocolFeeRate.ts index 978a5b23..9df98b98 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setProtocolFeeRate.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setProtocolFeeRate.ts @@ -1,36 +1,40 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetProtocolFeeRateArgs { - protocolFeeRate: number; + protocolFeeRate: number } export interface SetProtocolFeeRateAccounts { - whirlpoolsConfig: PublicKey; - whirlpool: PublicKey; - feeAuthority: PublicKey; + whirlpoolsConfig: PublicKey + whirlpool: PublicKey + feeAuthority: PublicKey } -export const layout = borsh.struct([borsh.u16('protocolFeeRate')]); +export const layout = borsh.struct([borsh.u16("protocolFeeRate")]) -export function setProtocolFeeRate(args: SetProtocolFeeRateArgs, accounts: SetProtocolFeeRateAccounts) { +export function setProtocolFeeRate( + args: SetProtocolFeeRateArgs, + accounts: SetProtocolFeeRateAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, { pubkey: accounts.feeAuthority, isSigner: true, isWritable: false }, - ]; - const identifier = Buffer.from([95, 7, 4, 50, 154, 79, 156, 131]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([95, 7, 4, 50, 154, 79, 156, 131]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { protocolFeeRate: args.protocolFeeRate, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthority.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthority.ts index 586c29ab..a321b8ef 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthority.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthority.ts @@ -1,36 +1,40 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetRewardAuthorityArgs { - rewardIndex: number; + rewardIndex: number } export interface SetRewardAuthorityAccounts { - whirlpool: PublicKey; - rewardAuthority: PublicKey; - newRewardAuthority: PublicKey; + whirlpool: PublicKey + rewardAuthority: PublicKey + newRewardAuthority: PublicKey } -export const layout = borsh.struct([borsh.u8('rewardIndex')]); +export const layout = borsh.struct([borsh.u8("rewardIndex")]) -export function setRewardAuthority(args: SetRewardAuthorityArgs, accounts: SetRewardAuthorityAccounts) { +export function setRewardAuthority( + args: SetRewardAuthorityArgs, + accounts: SetRewardAuthorityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, { pubkey: accounts.rewardAuthority, isSigner: true, isWritable: false }, { pubkey: accounts.newRewardAuthority, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([34, 39, 183, 252, 83, 28, 85, 127]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([34, 39, 183, 252, 83, 28, 85, 127]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { rewardIndex: args.rewardIndex, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthorityBySuperAuthority.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthorityBySuperAuthority.ts index 3c222dba..15d59b49 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthorityBySuperAuthority.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardAuthorityBySuperAuthority.ts @@ -1,25 +1,26 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetRewardAuthorityBySuperAuthorityArgs { - rewardIndex: number; + rewardIndex: number } export interface SetRewardAuthorityBySuperAuthorityAccounts { - whirlpoolsConfig: PublicKey; - whirlpool: PublicKey; - rewardEmissionsSuperAuthority: PublicKey; - newRewardAuthority: PublicKey; + whirlpoolsConfig: PublicKey + whirlpool: PublicKey + rewardEmissionsSuperAuthority: PublicKey + newRewardAuthority: PublicKey } -export const layout = borsh.struct([borsh.u8('rewardIndex')]); +export const layout = borsh.struct([borsh.u8("rewardIndex")]) export function setRewardAuthorityBySuperAuthority( args: SetRewardAuthorityBySuperAuthorityArgs, - accounts: SetRewardAuthorityBySuperAuthorityAccounts + accounts: SetRewardAuthorityBySuperAuthorityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID ) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, @@ -30,16 +31,16 @@ export function setRewardAuthorityBySuperAuthority( isWritable: false, }, { pubkey: accounts.newRewardAuthority, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([240, 154, 201, 198, 148, 93, 56, 25]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([240, 154, 201, 198, 148, 93, 56, 25]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { rewardIndex: args.rewardIndex, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissions.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissions.ts index 579fd977..c410a732 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissions.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissions.ts @@ -1,38 +1,45 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetRewardEmissionsArgs { - rewardIndex: number; - emissionsPerSecondX64: BN; + rewardIndex: number + emissionsPerSecondX64: BN } export interface SetRewardEmissionsAccounts { - whirlpool: PublicKey; - rewardAuthority: PublicKey; - rewardVault: PublicKey; + whirlpool: PublicKey + rewardAuthority: PublicKey + rewardVault: PublicKey } -export const layout = borsh.struct([borsh.u8('rewardIndex'), borsh.u128('emissionsPerSecondX64')]); +export const layout = borsh.struct([ + borsh.u8("rewardIndex"), + borsh.u128("emissionsPerSecondX64"), +]) -export function setRewardEmissions(args: SetRewardEmissionsArgs, accounts: SetRewardEmissionsAccounts) { +export function setRewardEmissions( + args: SetRewardEmissionsArgs, + accounts: SetRewardEmissionsAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, { pubkey: accounts.rewardAuthority, isSigner: true, isWritable: false }, { pubkey: accounts.rewardVault, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([13, 197, 86, 168, 109, 176, 27, 244]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([13, 197, 86, 168, 109, 176, 27, 244]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { rewardIndex: args.rewardIndex, emissionsPerSecondX64: args.emissionsPerSecondX64, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsSuperAuthority.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsSuperAuthority.ts index 7cebe9b8..94e81b5f 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsSuperAuthority.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsSuperAuthority.ts @@ -1,16 +1,19 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SetRewardEmissionsSuperAuthorityAccounts { - whirlpoolsConfig: PublicKey; - rewardEmissionsSuperAuthority: PublicKey; - newRewardEmissionsSuperAuthority: PublicKey; + whirlpoolsConfig: PublicKey + rewardEmissionsSuperAuthority: PublicKey + newRewardEmissionsSuperAuthority: PublicKey } -export function setRewardEmissionsSuperAuthority(accounts: SetRewardEmissionsSuperAuthorityAccounts) { +export function setRewardEmissionsSuperAuthority( + accounts: SetRewardEmissionsSuperAuthorityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: true }, { @@ -23,9 +26,9 @@ export function setRewardEmissionsSuperAuthority(accounts: SetRewardEmissionsSup isSigner: false, isWritable: false, }, - ]; - const identifier = Buffer.from([207, 5, 200, 209, 122, 56, 82, 183]); - const data = identifier; - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ] + const identifier = Buffer.from([207, 5, 200, 209, 122, 56, 82, 183]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsV2.ts new file mode 100644 index 00000000..0ae36c0e --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setRewardEmissionsV2.ts @@ -0,0 +1,45 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface SetRewardEmissionsV2Args { + rewardIndex: number + emissionsPerSecondX64: BN +} + +export interface SetRewardEmissionsV2Accounts { + whirlpool: PublicKey + rewardAuthority: PublicKey + rewardVault: PublicKey +} + +export const layout = borsh.struct([ + borsh.u8("rewardIndex"), + borsh.u128("emissionsPerSecondX64"), +]) + +export function setRewardEmissionsV2( + args: SetRewardEmissionsV2Args, + accounts: SetRewardEmissionsV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, + { pubkey: accounts.rewardAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.rewardVault, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([114, 228, 72, 32, 193, 48, 160, 102]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + rewardIndex: args.rewardIndex, + emissionsPerSecondX64: args.emissionsPerSecondX64, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/setTokenBadgeAuthority.ts b/packages/kamino-sdk/src/whirpools-client/instructions/setTokenBadgeAuthority.ts new file mode 100644 index 00000000..32284783 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/setTokenBadgeAuthority.ts @@ -0,0 +1,40 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface SetTokenBadgeAuthorityAccounts { + whirlpoolsConfig: PublicKey + whirlpoolsConfigExtension: PublicKey + configExtensionAuthority: PublicKey + newTokenBadgeAuthority: PublicKey +} + +export function setTokenBadgeAuthority( + accounts: SetTokenBadgeAuthorityAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpoolsConfig, isSigner: false, isWritable: false }, + { + pubkey: accounts.whirlpoolsConfigExtension, + isSigner: false, + isWritable: true, + }, + { + pubkey: accounts.configExtensionAuthority, + isSigner: true, + isWritable: false, + }, + { + pubkey: accounts.newTokenBadgeAuthority, + isSigner: false, + isWritable: false, + }, + ] + const identifier = Buffer.from([207, 202, 4, 32, 205, 79, 13, 178]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/swap.ts b/packages/kamino-sdk/src/whirpools-client/instructions/swap.ts index 1592b505..98a74332 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/swap.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/swap.ts @@ -1,40 +1,44 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface SwapArgs { - amount: BN; - otherAmountThreshold: BN; - sqrtPriceLimit: BN; - exactInput: boolean; - aToB: boolean; + amount: BN + otherAmountThreshold: BN + sqrtPriceLimit: BN + amountSpecifiedIsInput: boolean + aToB: boolean } export interface SwapAccounts { - tokenProgram: PublicKey; - tokenAuthority: PublicKey; - whirlpool: PublicKey; - tokenOwnerAccountA: PublicKey; - tokenVaultA: PublicKey; - tokenOwnerAccountB: PublicKey; - tokenVaultB: PublicKey; - tickArray0: PublicKey; - tickArray1: PublicKey; - tickArray2: PublicKey; - oracle: PublicKey; + tokenProgram: PublicKey + tokenAuthority: PublicKey + whirlpool: PublicKey + tokenOwnerAccountA: PublicKey + tokenVaultA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultB: PublicKey + tickArray0: PublicKey + tickArray1: PublicKey + tickArray2: PublicKey + oracle: PublicKey } export const layout = borsh.struct([ - borsh.u64('amount'), - borsh.u64('otherAmountThreshold'), - borsh.u128('sqrtPriceLimit'), - borsh.bool('exactInput'), - borsh.bool('aToB'), -]); + borsh.u64("amount"), + borsh.u64("otherAmountThreshold"), + borsh.u128("sqrtPriceLimit"), + borsh.bool("amountSpecifiedIsInput"), + borsh.bool("aToB"), +]) -export function swap(args: SwapArgs, accounts: SwapAccounts) { +export function swap( + args: SwapArgs, + accounts: SwapAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, { pubkey: accounts.tokenAuthority, isSigner: true, isWritable: false }, @@ -47,20 +51,20 @@ export function swap(args: SwapArgs, accounts: SwapAccounts) { { pubkey: accounts.tickArray1, isSigner: false, isWritable: true }, { pubkey: accounts.tickArray2, isSigner: false, isWritable: true }, { pubkey: accounts.oracle, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([248, 198, 158, 145, 225, 117, 135, 200]); - const buffer = Buffer.alloc(1000); + ] + const identifier = Buffer.from([248, 198, 158, 145, 225, 117, 135, 200]) + const buffer = Buffer.alloc(1000) const len = layout.encode( { amount: args.amount, otherAmountThreshold: args.otherAmountThreshold, sqrtPriceLimit: args.sqrtPriceLimit, - exactInput: args.exactInput, + amountSpecifiedIsInput: args.amountSpecifiedIsInput, aToB: args.aToB, }, buffer - ); - const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len); - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/swapV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/swapV2.ts new file mode 100644 index 00000000..6938428e --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/swapV2.ts @@ -0,0 +1,86 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface SwapV2Args { + amount: BN + otherAmountThreshold: BN + sqrtPriceLimit: BN + amountSpecifiedIsInput: boolean + aToB: boolean + remainingAccountsInfo: types.RemainingAccountsInfoFields | null +} + +export interface SwapV2Accounts { + tokenProgramA: PublicKey + tokenProgramB: PublicKey + memoProgram: PublicKey + tokenAuthority: PublicKey + whirlpool: PublicKey + tokenMintA: PublicKey + tokenMintB: PublicKey + tokenOwnerAccountA: PublicKey + tokenVaultA: PublicKey + tokenOwnerAccountB: PublicKey + tokenVaultB: PublicKey + tickArray0: PublicKey + tickArray1: PublicKey + tickArray2: PublicKey + oracle: PublicKey +} + +export const layout = borsh.struct([ + borsh.u64("amount"), + borsh.u64("otherAmountThreshold"), + borsh.u128("sqrtPriceLimit"), + borsh.bool("amountSpecifiedIsInput"), + borsh.bool("aToB"), + borsh.option(types.RemainingAccountsInfo.layout(), "remainingAccountsInfo"), +]) + +export function swapV2( + args: SwapV2Args, + accounts: SwapV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.tokenProgramA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramB, isSigner: false, isWritable: false }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenMintA, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenMintB, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenOwnerAccountA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultA, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenOwnerAccountB, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenVaultB, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArray0, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArray1, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArray2, isSigner: false, isWritable: true }, + { pubkey: accounts.oracle, isSigner: false, isWritable: true }, + ] + const identifier = Buffer.from([43, 4, 237, 11, 26, 201, 30, 98]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + amount: args.amount, + otherAmountThreshold: args.otherAmountThreshold, + sqrtPriceLimit: args.sqrtPriceLimit, + amountSpecifiedIsInput: args.amountSpecifiedIsInput, + aToB: args.aToB, + remainingAccountsInfo: + (args.remainingAccountsInfo && + types.RemainingAccountsInfo.toEncodable( + args.remainingAccountsInfo + )) || + null, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwap.ts b/packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwap.ts new file mode 100644 index 00000000..b86f30c3 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwap.ts @@ -0,0 +1,110 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface TwoHopSwapArgs { + amount: BN + otherAmountThreshold: BN + amountSpecifiedIsInput: boolean + aToBOne: boolean + aToBTwo: boolean + sqrtPriceLimitOne: BN + sqrtPriceLimitTwo: BN +} + +export interface TwoHopSwapAccounts { + tokenProgram: PublicKey + tokenAuthority: PublicKey + whirlpoolOne: PublicKey + whirlpoolTwo: PublicKey + tokenOwnerAccountOneA: PublicKey + tokenVaultOneA: PublicKey + tokenOwnerAccountOneB: PublicKey + tokenVaultOneB: PublicKey + tokenOwnerAccountTwoA: PublicKey + tokenVaultTwoA: PublicKey + tokenOwnerAccountTwoB: PublicKey + tokenVaultTwoB: PublicKey + tickArrayOne0: PublicKey + tickArrayOne1: PublicKey + tickArrayOne2: PublicKey + tickArrayTwo0: PublicKey + tickArrayTwo1: PublicKey + tickArrayTwo2: PublicKey + oracleOne: PublicKey + oracleTwo: PublicKey +} + +export const layout = borsh.struct([ + borsh.u64("amount"), + borsh.u64("otherAmountThreshold"), + borsh.bool("amountSpecifiedIsInput"), + borsh.bool("aToBOne"), + borsh.bool("aToBTwo"), + borsh.u128("sqrtPriceLimitOne"), + borsh.u128("sqrtPriceLimitTwo"), +]) + +export function twoHopSwap( + args: TwoHopSwapArgs, + accounts: TwoHopSwapAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.tokenProgram, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.whirlpoolOne, isSigner: false, isWritable: true }, + { pubkey: accounts.whirlpoolTwo, isSigner: false, isWritable: true }, + { + pubkey: accounts.tokenOwnerAccountOneA, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.tokenVaultOneA, isSigner: false, isWritable: true }, + { + pubkey: accounts.tokenOwnerAccountOneB, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.tokenVaultOneB, isSigner: false, isWritable: true }, + { + pubkey: accounts.tokenOwnerAccountTwoA, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.tokenVaultTwoA, isSigner: false, isWritable: true }, + { + pubkey: accounts.tokenOwnerAccountTwoB, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.tokenVaultTwoB, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayOne0, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayOne1, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayOne2, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayTwo0, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayTwo1, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayTwo2, isSigner: false, isWritable: true }, + { pubkey: accounts.oracleOne, isSigner: false, isWritable: false }, + { pubkey: accounts.oracleTwo, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([195, 96, 237, 108, 68, 162, 219, 230]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + amount: args.amount, + otherAmountThreshold: args.otherAmountThreshold, + amountSpecifiedIsInput: args.amountSpecifiedIsInput, + aToBOne: args.aToBOne, + aToBTwo: args.aToBTwo, + sqrtPriceLimitOne: args.sqrtPriceLimitOne, + sqrtPriceLimitTwo: args.sqrtPriceLimitTwo, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwapV2.ts b/packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwapV2.ts new file mode 100644 index 00000000..c13e3281 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/instructions/twoHopSwapV2.ts @@ -0,0 +1,134 @@ +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" + +export interface TwoHopSwapV2Args { + amount: BN + otherAmountThreshold: BN + amountSpecifiedIsInput: boolean + aToBOne: boolean + aToBTwo: boolean + sqrtPriceLimitOne: BN + sqrtPriceLimitTwo: BN + remainingAccountsInfo: types.RemainingAccountsInfoFields | null +} + +export interface TwoHopSwapV2Accounts { + whirlpoolOne: PublicKey + whirlpoolTwo: PublicKey + tokenMintInput: PublicKey + tokenMintIntermediate: PublicKey + tokenMintOutput: PublicKey + tokenProgramInput: PublicKey + tokenProgramIntermediate: PublicKey + tokenProgramOutput: PublicKey + tokenOwnerAccountInput: PublicKey + tokenVaultOneInput: PublicKey + tokenVaultOneIntermediate: PublicKey + tokenVaultTwoIntermediate: PublicKey + tokenVaultTwoOutput: PublicKey + tokenOwnerAccountOutput: PublicKey + tokenAuthority: PublicKey + tickArrayOne0: PublicKey + tickArrayOne1: PublicKey + tickArrayOne2: PublicKey + tickArrayTwo0: PublicKey + tickArrayTwo1: PublicKey + tickArrayTwo2: PublicKey + oracleOne: PublicKey + oracleTwo: PublicKey + memoProgram: PublicKey +} + +export const layout = borsh.struct([ + borsh.u64("amount"), + borsh.u64("otherAmountThreshold"), + borsh.bool("amountSpecifiedIsInput"), + borsh.bool("aToBOne"), + borsh.bool("aToBTwo"), + borsh.u128("sqrtPriceLimitOne"), + borsh.u128("sqrtPriceLimitTwo"), + borsh.option(types.RemainingAccountsInfo.layout(), "remainingAccountsInfo"), +]) + +export function twoHopSwapV2( + args: TwoHopSwapV2Args, + accounts: TwoHopSwapV2Accounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { + const keys: Array = [ + { pubkey: accounts.whirlpoolOne, isSigner: false, isWritable: true }, + { pubkey: accounts.whirlpoolTwo, isSigner: false, isWritable: true }, + { pubkey: accounts.tokenMintInput, isSigner: false, isWritable: false }, + { + pubkey: accounts.tokenMintIntermediate, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.tokenMintOutput, isSigner: false, isWritable: false }, + { pubkey: accounts.tokenProgramInput, isSigner: false, isWritable: false }, + { + pubkey: accounts.tokenProgramIntermediate, + isSigner: false, + isWritable: false, + }, + { pubkey: accounts.tokenProgramOutput, isSigner: false, isWritable: false }, + { + pubkey: accounts.tokenOwnerAccountInput, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.tokenVaultOneInput, isSigner: false, isWritable: true }, + { + pubkey: accounts.tokenVaultOneIntermediate, + isSigner: false, + isWritable: true, + }, + { + pubkey: accounts.tokenVaultTwoIntermediate, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.tokenVaultTwoOutput, isSigner: false, isWritable: true }, + { + pubkey: accounts.tokenOwnerAccountOutput, + isSigner: false, + isWritable: true, + }, + { pubkey: accounts.tokenAuthority, isSigner: true, isWritable: false }, + { pubkey: accounts.tickArrayOne0, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayOne1, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayOne2, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayTwo0, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayTwo1, isSigner: false, isWritable: true }, + { pubkey: accounts.tickArrayTwo2, isSigner: false, isWritable: true }, + { pubkey: accounts.oracleOne, isSigner: false, isWritable: true }, + { pubkey: accounts.oracleTwo, isSigner: false, isWritable: true }, + { pubkey: accounts.memoProgram, isSigner: false, isWritable: false }, + ] + const identifier = Buffer.from([186, 143, 209, 29, 254, 2, 194, 117]) + const buffer = Buffer.alloc(1000) + const len = layout.encode( + { + amount: args.amount, + otherAmountThreshold: args.otherAmountThreshold, + amountSpecifiedIsInput: args.amountSpecifiedIsInput, + aToBOne: args.aToBOne, + aToBTwo: args.aToBTwo, + sqrtPriceLimitOne: args.sqrtPriceLimitOne, + sqrtPriceLimitTwo: args.sqrtPriceLimitTwo, + remainingAccountsInfo: + (args.remainingAccountsInfo && + types.RemainingAccountsInfo.toEncodable( + args.remainingAccountsInfo + )) || + null, + }, + buffer + ) + const data = Buffer.concat([identifier, buffer]).slice(0, 8 + len) + const ix = new TransactionInstruction({ keys, programId, data }) + return ix +} diff --git a/packages/kamino-sdk/src/whirpools-client/instructions/updateFeesAndRewards.ts b/packages/kamino-sdk/src/whirpools-client/instructions/updateFeesAndRewards.ts index 53b8d6c4..926cb3db 100644 --- a/packages/kamino-sdk/src/whirpools-client/instructions/updateFeesAndRewards.ts +++ b/packages/kamino-sdk/src/whirpools-client/instructions/updateFeesAndRewards.ts @@ -1,25 +1,28 @@ -import { TransactionInstruction, PublicKey, AccountMeta } from '@solana/web3.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import BN from 'bn.js'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from '@project-serum/borsh'; // eslint-disable-line @typescript-eslint/no-unused-vars -import * as types from '../types'; // eslint-disable-line @typescript-eslint/no-unused-vars -import { WHIRLPOOL_PROGRAM_ID } from '../programId'; +import { TransactionInstruction, PublicKey, AccountMeta } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import { WHIRLPOOL_PROGRAM_ID } from "../programId" export interface UpdateFeesAndRewardsAccounts { - whirlpool: PublicKey; - position: PublicKey; - tickArrayLower: PublicKey; - tickArrayUpper: PublicKey; + whirlpool: PublicKey + position: PublicKey + tickArrayLower: PublicKey + tickArrayUpper: PublicKey } -export function updateFeesAndRewards(accounts: UpdateFeesAndRewardsAccounts) { +export function updateFeesAndRewards( + accounts: UpdateFeesAndRewardsAccounts, + programId: PublicKey = WHIRLPOOL_PROGRAM_ID +) { const keys: Array = [ { pubkey: accounts.whirlpool, isSigner: false, isWritable: true }, { pubkey: accounts.position, isSigner: false, isWritable: true }, { pubkey: accounts.tickArrayLower, isSigner: false, isWritable: false }, { pubkey: accounts.tickArrayUpper, isSigner: false, isWritable: false }, - ]; - const identifier = Buffer.from([154, 230, 250, 13, 236, 209, 75, 223]); - const data = identifier; - const ix = new TransactionInstruction({ keys, programId: WHIRLPOOL_PROGRAM_ID, data }); - return ix; + ] + const identifier = Buffer.from([154, 230, 250, 13, 236, 209, 75, 223]) + const data = identifier + const ix = new TransactionInstruction({ keys, programId, data }) + return ix } diff --git a/packages/kamino-sdk/src/whirpools-client/shim/remove-liquidity.ts b/packages/kamino-sdk/src/whirpools-client/shim/remove-liquidity.ts index ac184dd6..91b4e287 100644 --- a/packages/kamino-sdk/src/whirpools-client/shim/remove-liquidity.ts +++ b/packages/kamino-sdk/src/whirpools-client/shim/remove-liquidity.ts @@ -3,7 +3,7 @@ * Added roundUp flag to accurately estimate token holdings for deposits */ import { tickIndexToSqrtPriceX64 } from "@orca-so/whirlpool-client-sdk"; -import { BN } from "@project-serum/anchor"; +import { BN } from "@coral-xyz/anchor"; import { u64 } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; import { Percentage, ZERO } from "@orca-so/sdk"; diff --git a/packages/kamino-sdk/src/whirpools-client/types/AccountsType.ts b/packages/kamino-sdk/src/whirpools-client/types/AccountsType.ts new file mode 100644 index 00000000..c406450e --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/types/AccountsType.ts @@ -0,0 +1,208 @@ +import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" + +export interface TransferHookAJSON { + kind: "TransferHookA" +} + +export class TransferHookA { + static readonly discriminator = 0 + static readonly kind = "TransferHookA" + readonly discriminator = 0 + readonly kind = "TransferHookA" + + toJSON(): TransferHookAJSON { + return { + kind: "TransferHookA", + } + } + + toEncodable() { + return { + TransferHookA: {}, + } + } +} + +export interface TransferHookBJSON { + kind: "TransferHookB" +} + +export class TransferHookB { + static readonly discriminator = 1 + static readonly kind = "TransferHookB" + readonly discriminator = 1 + readonly kind = "TransferHookB" + + toJSON(): TransferHookBJSON { + return { + kind: "TransferHookB", + } + } + + toEncodable() { + return { + TransferHookB: {}, + } + } +} + +export interface TransferHookRewardJSON { + kind: "TransferHookReward" +} + +export class TransferHookReward { + static readonly discriminator = 2 + static readonly kind = "TransferHookReward" + readonly discriminator = 2 + readonly kind = "TransferHookReward" + + toJSON(): TransferHookRewardJSON { + return { + kind: "TransferHookReward", + } + } + + toEncodable() { + return { + TransferHookReward: {}, + } + } +} + +export interface TransferHookInputJSON { + kind: "TransferHookInput" +} + +export class TransferHookInput { + static readonly discriminator = 3 + static readonly kind = "TransferHookInput" + readonly discriminator = 3 + readonly kind = "TransferHookInput" + + toJSON(): TransferHookInputJSON { + return { + kind: "TransferHookInput", + } + } + + toEncodable() { + return { + TransferHookInput: {}, + } + } +} + +export interface TransferHookIntermediateJSON { + kind: "TransferHookIntermediate" +} + +export class TransferHookIntermediate { + static readonly discriminator = 4 + static readonly kind = "TransferHookIntermediate" + readonly discriminator = 4 + readonly kind = "TransferHookIntermediate" + + toJSON(): TransferHookIntermediateJSON { + return { + kind: "TransferHookIntermediate", + } + } + + toEncodable() { + return { + TransferHookIntermediate: {}, + } + } +} + +export interface TransferHookOutputJSON { + kind: "TransferHookOutput" +} + +export class TransferHookOutput { + static readonly discriminator = 5 + static readonly kind = "TransferHookOutput" + readonly discriminator = 5 + readonly kind = "TransferHookOutput" + + toJSON(): TransferHookOutputJSON { + return { + kind: "TransferHookOutput", + } + } + + toEncodable() { + return { + TransferHookOutput: {}, + } + } +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function fromDecoded(obj: any): types.AccountsTypeKind { + if (typeof obj !== "object") { + throw new Error("Invalid enum object") + } + + if ("TransferHookA" in obj) { + return new TransferHookA() + } + if ("TransferHookB" in obj) { + return new TransferHookB() + } + if ("TransferHookReward" in obj) { + return new TransferHookReward() + } + if ("TransferHookInput" in obj) { + return new TransferHookInput() + } + if ("TransferHookIntermediate" in obj) { + return new TransferHookIntermediate() + } + if ("TransferHookOutput" in obj) { + return new TransferHookOutput() + } + + throw new Error("Invalid enum object") +} + +export function fromJSON(obj: types.AccountsTypeJSON): types.AccountsTypeKind { + switch (obj.kind) { + case "TransferHookA": { + return new TransferHookA() + } + case "TransferHookB": { + return new TransferHookB() + } + case "TransferHookReward": { + return new TransferHookReward() + } + case "TransferHookInput": { + return new TransferHookInput() + } + case "TransferHookIntermediate": { + return new TransferHookIntermediate() + } + case "TransferHookOutput": { + return new TransferHookOutput() + } + } +} + +export function layout(property?: string) { + const ret = borsh.rustEnum([ + borsh.struct([], "TransferHookA"), + borsh.struct([], "TransferHookB"), + borsh.struct([], "TransferHookReward"), + borsh.struct([], "TransferHookInput"), + borsh.struct([], "TransferHookIntermediate"), + borsh.struct([], "TransferHookOutput"), + ]) + if (property !== undefined) { + return ret.replicate(property) + } + return ret +} diff --git a/packages/kamino-sdk/src/whirpools-client/types/CurrIndex.ts b/packages/kamino-sdk/src/whirpools-client/types/CurrIndex.ts index 41747019..5a6940c1 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/CurrIndex.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/CurrIndex.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface BelowJSON { kind: "Below" diff --git a/packages/kamino-sdk/src/whirpools-client/types/Direction.ts b/packages/kamino-sdk/src/whirpools-client/types/Direction.ts index 2ffe2f1d..a485e388 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/Direction.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/Direction.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface LeftJSON { kind: "Left" diff --git a/packages/kamino-sdk/src/whirpools-client/types/OpenPositionBumps.ts b/packages/kamino-sdk/src/whirpools-client/types/OpenPositionBumps.ts index 40af58f2..80ee886c 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/OpenPositionBumps.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/OpenPositionBumps.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface OpenPositionBumpsFields { positionBump: number diff --git a/packages/kamino-sdk/src/whirpools-client/types/OpenPositionWithMetadataBumps.ts b/packages/kamino-sdk/src/whirpools-client/types/OpenPositionWithMetadataBumps.ts index 163403c1..3837af1a 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/OpenPositionWithMetadataBumps.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/OpenPositionWithMetadataBumps.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface OpenPositionWithMetadataBumpsFields { positionBump: number diff --git a/packages/kamino-sdk/src/whirpools-client/types/PositionRewardInfo.ts b/packages/kamino-sdk/src/whirpools-client/types/PositionRewardInfo.ts index d268f087..2a11427e 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/PositionRewardInfo.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/PositionRewardInfo.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface PositionRewardInfoFields { growthInsideCheckpoint: BN diff --git a/packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsInfo.ts b/packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsInfo.ts new file mode 100644 index 00000000..1b14c00b --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsInfo.ts @@ -0,0 +1,66 @@ +import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" + +export interface RemainingAccountsInfoFields { + slices: Array +} + +export interface RemainingAccountsInfoJSON { + slices: Array +} + +export class RemainingAccountsInfo { + readonly slices: Array + + constructor(fields: RemainingAccountsInfoFields) { + this.slices = fields.slices.map( + (item) => new types.RemainingAccountsSlice({ ...item }) + ) + } + + static layout(property?: string) { + return borsh.struct( + [borsh.vec(types.RemainingAccountsSlice.layout(), "slices")], + property + ) + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + static fromDecoded(obj: any) { + return new RemainingAccountsInfo({ + slices: obj.slices.map( + ( + item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */ + ) => types.RemainingAccountsSlice.fromDecoded(item) + ), + }) + } + + static toEncodable(fields: RemainingAccountsInfoFields) { + return { + slices: fields.slices.map((item) => + types.RemainingAccountsSlice.toEncodable(item) + ), + } + } + + toJSON(): RemainingAccountsInfoJSON { + return { + slices: this.slices.map((item) => item.toJSON()), + } + } + + static fromJSON(obj: RemainingAccountsInfoJSON): RemainingAccountsInfo { + return new RemainingAccountsInfo({ + slices: obj.slices.map((item) => + types.RemainingAccountsSlice.fromJSON(item) + ), + }) + } + + toEncodable() { + return RemainingAccountsInfo.toEncodable(this) + } +} diff --git a/packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsSlice.ts b/packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsSlice.ts new file mode 100644 index 00000000..27546bc2 --- /dev/null +++ b/packages/kamino-sdk/src/whirpools-client/types/RemainingAccountsSlice.ts @@ -0,0 +1,64 @@ +import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars +import * as borsh from "@coral-xyz/borsh" + +export interface RemainingAccountsSliceFields { + accountsType: types.AccountsTypeKind + length: number +} + +export interface RemainingAccountsSliceJSON { + accountsType: types.AccountsTypeJSON + length: number +} + +export class RemainingAccountsSlice { + readonly accountsType: types.AccountsTypeKind + readonly length: number + + constructor(fields: RemainingAccountsSliceFields) { + this.accountsType = fields.accountsType + this.length = fields.length + } + + static layout(property?: string) { + return borsh.struct( + [types.AccountsType.layout("accountsType"), borsh.u8("length")], + property + ) + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + static fromDecoded(obj: any) { + return new RemainingAccountsSlice({ + accountsType: types.AccountsType.fromDecoded(obj.accountsType), + length: obj.length, + }) + } + + static toEncodable(fields: RemainingAccountsSliceFields) { + return { + accountsType: fields.accountsType.toEncodable(), + length: fields.length, + } + } + + toJSON(): RemainingAccountsSliceJSON { + return { + accountsType: this.accountsType.toJSON(), + length: this.length, + } + } + + static fromJSON(obj: RemainingAccountsSliceJSON): RemainingAccountsSlice { + return new RemainingAccountsSlice({ + accountsType: types.AccountsType.fromJSON(obj.accountsType), + length: obj.length, + }) + } + + toEncodable() { + return RemainingAccountsSlice.toEncodable(this) + } +} diff --git a/packages/kamino-sdk/src/whirpools-client/types/Tick.ts b/packages/kamino-sdk/src/whirpools-client/types/Tick.ts index d266e0be..1481fe99 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/Tick.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/Tick.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface TickFields { initialized: boolean diff --git a/packages/kamino-sdk/src/whirpools-client/types/TickLabel.ts b/packages/kamino-sdk/src/whirpools-client/types/TickLabel.ts index 2d76a6e3..8acfb392 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/TickLabel.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/TickLabel.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface UpperJSON { kind: "Upper" diff --git a/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolBumps.ts b/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolBumps.ts index 66264849..d6de681a 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolBumps.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolBumps.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface WhirlpoolBumpsFields { whirlpoolBump: number diff --git a/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolRewardInfo.ts b/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolRewardInfo.ts index 3e5b557a..76e2473f 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolRewardInfo.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/WhirlpoolRewardInfo.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars -import * as borsh from "@project-serum/borsh" +import * as borsh from "@coral-xyz/borsh" export interface WhirlpoolRewardInfoFields { mint: PublicKey diff --git a/packages/kamino-sdk/src/whirpools-client/types/index.ts b/packages/kamino-sdk/src/whirpools-client/types/index.ts index ab7b3174..dce336d4 100644 --- a/packages/kamino-sdk/src/whirpools-client/types/index.ts +++ b/packages/kamino-sdk/src/whirpools-client/types/index.ts @@ -1,6 +1,7 @@ import * as CurrIndex from "./CurrIndex" import * as TickLabel from "./TickLabel" import * as Direction from "./Direction" +import * as AccountsType from "./AccountsType" export { OpenPositionBumps } from "./OpenPositionBumps" export type { @@ -26,6 +27,16 @@ export type { } from "./WhirlpoolRewardInfo" export { WhirlpoolBumps } from "./WhirlpoolBumps" export type { WhirlpoolBumpsFields, WhirlpoolBumpsJSON } from "./WhirlpoolBumps" +export { RemainingAccountsSlice } from "./RemainingAccountsSlice" +export type { + RemainingAccountsSliceFields, + RemainingAccountsSliceJSON, +} from "./RemainingAccountsSlice" +export { RemainingAccountsInfo } from "./RemainingAccountsInfo" +export type { + RemainingAccountsInfoFields, + RemainingAccountsInfoJSON, +} from "./RemainingAccountsInfo" export { CurrIndex } export type CurrIndexKind = CurrIndex.Below | CurrIndex.Inside | CurrIndex.Above @@ -43,3 +54,20 @@ export { Direction } export type DirectionKind = Direction.Left | Direction.Right export type DirectionJSON = Direction.LeftJSON | Direction.RightJSON + +export { AccountsType } + +export type AccountsTypeKind = + | AccountsType.TransferHookA + | AccountsType.TransferHookB + | AccountsType.TransferHookReward + | AccountsType.TransferHookInput + | AccountsType.TransferHookIntermediate + | AccountsType.TransferHookOutput +export type AccountsTypeJSON = + | AccountsType.TransferHookAJSON + | AccountsType.TransferHookBJSON + | AccountsType.TransferHookRewardJSON + | AccountsType.TransferHookInputJSON + | AccountsType.TransferHookIntermediateJSON + | AccountsType.TransferHookOutputJSON diff --git a/packages/kamino-sdk/tests/kamino.test.ts b/packages/kamino-sdk/tests/kamino.test.ts index ad7ab5c3..ed09468a 100644 --- a/packages/kamino-sdk/tests/kamino.test.ts +++ b/packages/kamino-sdk/tests/kamino.test.ts @@ -62,9 +62,9 @@ import { import { expect } from 'chai'; import { WHIRLPOOL_PROGRAM_ID } from '../src/whirpools-client/programId'; import * as ed25519 from 'tweetnacl-ts'; -import { Provider } from '@project-serum/anchor'; +import { AnchorProvider } from '@coral-xyz/anchor'; import { createWsolAtaIfMissing } from '../src/utils/transactions'; -import { getMintDecimals } from '@project-serum/serum/lib/market'; +import { getMintDecimals } from '../src/utils'; export const LOCAL_RAYDIUM_PROGRAM_ID = new PublicKey('devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH'); export const USDH_SCOPE_CHAIN_ID = BigInt(12); @@ -1465,7 +1465,7 @@ describe('Kamino SDK Tests', () => { await solAirdrop( connection, - new Provider(connection, getReadOnlyWallet(), { + new AnchorProvider(connection, getReadOnlyWallet(), { commitment: connection.commitment, }), owner.publicKey, diff --git a/packages/kamino-sdk/tests/orca_utils.ts b/packages/kamino-sdk/tests/orca_utils.ts index e5e84fb6..453ba5d5 100644 --- a/packages/kamino-sdk/tests/orca_utils.ts +++ b/packages/kamino-sdk/tests/orca_utils.ts @@ -1,7 +1,7 @@ import { PublicKey, Connection, Transaction, TransactionInstruction, Keypair } from '@solana/web3.js'; import { DeployedPool, range } from './utils'; import * as WhirlpoolInstructions from '../src/whirpools-client/instructions'; -import * as anchor from '@project-serum/anchor'; +import * as anchor from '@coral-xyz/anchor'; import { sendTransactionWithLogs, TOKEN_PROGRAM_ID } from '../src'; import { PROGRAM_ID_CLI as WHIRLPOOL_PROGRAM_ID } from '../src/whirpools-client/programId'; import { orderMints } from './raydium_utils'; @@ -79,18 +79,20 @@ export async function initializeWhirlpool( tickSize ); + const [tokenBadgeA] = getTokenBadge(WHIRLPOOL_PROGRAM_ID, config.publicKey, tokenMintA); + const [tokenBadgeB] = getTokenBadge(WHIRLPOOL_PROGRAM_ID, config.publicKey, tokenMintB); + { let tokenAVault = Keypair.generate(); let tokenBVault = Keypair.generate(); let initialPrice = 1.0; - let initialisePoolArgs: WhirlpoolInstructions.InitializePoolArgs = { + let initialisePoolArgs: WhirlpoolInstructions.InitializePoolV2Args = { tickSpacing: tickSize, - bumps: { whirlpoolBump: whirlpoolBump }, initialSqrtPrice: new anchor.BN(priceToSqrtX64(new Decimal(initialPrice), 6, 6)), }; - let initializePoolAccounts: WhirlpoolInstructions.InitializePoolAccounts = { + let initializePoolAccounts: WhirlpoolInstructions.InitializePoolV2Accounts = { whirlpoolsConfig: config.publicKey, tokenMintA: tokenMintA, tokenMintB: tokenMintB, @@ -99,17 +101,20 @@ export async function initializeWhirlpool( tokenVaultA: tokenAVault.publicKey, tokenVaultB: tokenBVault.publicKey, feeTier: feeTierPk, - tokenProgram: TOKEN_PROGRAM_ID, + tokenBadgeA, + tokenBadgeB, + tokenProgramA: TOKEN_PROGRAM_ID, + tokenProgramB: TOKEN_PROGRAM_ID, systemProgram: anchor.web3.SystemProgram.programId, rent: anchor.web3.SYSVAR_RENT_PUBKEY, }; const tx = new Transaction(); - let initializeIx = WhirlpoolInstructions.initializePool(initialisePoolArgs, initializePoolAccounts); + let initializeIx = WhirlpoolInstructions.initializePoolV2(initialisePoolArgs, initializePoolAccounts); tx.add(initializeIx); let sig = await sendTransactionWithLogs(connection, tx, signer.publicKey, [signer, tokenAVault, tokenBVault]); - console.log('InitializePool:', sig); + console.log('InitializePoolV2:', sig); } { @@ -185,7 +190,7 @@ export async function initTickArrayInstruction( startTick: number, programId: PublicKey ): Promise { - const [tickArrayPda, _tickArrayPdaBump] = await getTickArray(programId, whirlpool, startTick); + const [tickArrayPda, _tickArrayPdaBump] = getTickArray(programId, whirlpool, startTick); let initTickArrayArgs: WhirlpoolInstructions.InitializeTickArrayArgs = { startTickIndex: startTick, @@ -199,17 +204,24 @@ export async function initTickArrayInstruction( return WhirlpoolInstructions.initializeTickArray(initTickArrayArgs, initTickArrayAccounts); } -async function getTickArray( - programId: PublicKey, - whirlpoolAddress: PublicKey, - startTick: number -): Promise<[anchor.web3.PublicKey, number]> { - return anchor.web3.PublicKey.findProgramAddress( +function getTickArray(programId: PublicKey, whirlpoolAddress: PublicKey, startTick: number): [PublicKey, number] { + return anchor.web3.PublicKey.findProgramAddressSync( [Buffer.from('tick_array'), whirlpoolAddress.toBuffer(), Buffer.from(startTick.toString())], programId ); } +function getTokenBadge( + programId: PublicKey, + whirlpoolsConfigAddress: PublicKey, + tokenMintKey: PublicKey +): [PublicKey, number] { + return PublicKey.findProgramAddressSync( + [Buffer.from('token_badge'), whirlpoolsConfigAddress.toBuffer(), tokenMintKey.toBuffer()], + programId + ); +} + export async function getTickArrayPubkeysFromRangeOrca( connection: Connection, whirlpool: PublicKey, diff --git a/packages/kamino-sdk/tests/raydium_utils.ts b/packages/kamino-sdk/tests/raydium_utils.ts index afc6c2ac..0c1f83c0 100644 --- a/packages/kamino-sdk/tests/raydium_utils.ts +++ b/packages/kamino-sdk/tests/raydium_utils.ts @@ -1,10 +1,10 @@ import { PROGRAM_ID as RAYDIUM_PROGRAM_ID } from '../src/raydium_client/programId'; -import * as anchor from '@project-serum/anchor'; +import * as anchor from '@coral-xyz/anchor'; import { PublicKey, Connection, SystemProgram, Transaction, Keypair } from '@solana/web3.js'; import * as RaydiumInstructions from '../src/raydium_client/instructions'; import { sendTransactionWithLogs, TOKEN_PROGRAM_ID } from '../src'; import { accountExist, DeployedPool, getTickArrayPubkeysFromRange } from './utils'; -import { SqrtPriceMath, TickMath } from '@raydium-io/raydium-sdk'; +import { SqrtPriceMath } from '@raydium-io/raydium-sdk'; import Decimal from 'decimal.js'; import { PoolState } from '../src/raydium_client'; import { i32ToBytes, TickUtils } from '@raydium-io/raydium-sdk'; diff --git a/packages/kamino-sdk/tests/stratRebalance.test.ts b/packages/kamino-sdk/tests/stratRebalance.test.ts index 7220f0a7..31e8595e 100644 --- a/packages/kamino-sdk/tests/stratRebalance.test.ts +++ b/packages/kamino-sdk/tests/stratRebalance.test.ts @@ -43,7 +43,7 @@ import { TakeProfitMethod, } from '../src/utils/CreationParameters'; import { priceToTickIndex } from '@orca-so/whirlpool-sdk'; -import { getMintDecimals } from '@project-serum/serum/lib/market'; +import { getMintDecimals } from '../src/utils'; describe('Kamino strategy creation SDK Tests', () => { let connection: Connection; diff --git a/packages/kamino-sdk/tests/utils.ts b/packages/kamino-sdk/tests/utils.ts index d75bc09f..92558ad5 100644 --- a/packages/kamino-sdk/tests/utils.ts +++ b/packages/kamino-sdk/tests/utils.ts @@ -1,10 +1,10 @@ import { Connection, Keypair, LAMPORTS_PER_SOL, PublicKey, sendAndConfirmTransaction } from '@solana/web3.js'; -import * as anchor from '@project-serum/anchor'; +import * as anchor from '@coral-xyz/anchor'; import { StrategyConfigOptionKind, UpdateCollateralInfoModeKind } from '../src/kamino-client/types'; import * as Instructions from '../src/kamino-client/instructions'; import { Transaction, TransactionInstruction } from '@solana/web3.js'; import { Token } from '@solana/spl-token'; -import { getMintDecimals } from '@project-serum/serum/lib/market'; +import { getMintDecimals } from '../src/utils'; import Decimal from 'decimal.js'; import { CollateralInfos, GlobalConfig, WhirlpoolStrategy } from '../src/kamino-client/accounts'; @@ -23,7 +23,6 @@ import { } from '../src'; import { getTickArrayPubkeysFromRangeRaydium } from './raydium_utils'; import { getTickArrayPubkeysFromRangeOrca } from './orca_utils'; -import { TokenInstructions } from '@project-serum/serum'; import { collateralTokenToNumber, CollateralToken } from './token_utils'; import { checkIfAccountExists } from '../src/utils/transactions'; import { FullBPS } from '../src/utils/CreationParameters'; @@ -170,7 +169,7 @@ export async function createUser( user?: Keypair ): Promise { let wallet = new anchor.Wallet(signer); - const provider = new anchor.Provider(connection, wallet, anchor.Provider.defaultOptions()); + const provider = new anchor.AnchorProvider(connection, wallet, anchor.AnchorProvider.defaultOptions()); if (!user) { user = new anchor.web3.Keypair(); } @@ -304,7 +303,7 @@ export async function setupAta( const ix = await createAtaInstruction(user.publicKey, tokenMintAddress, ata); const tx = new Transaction().add(ix); let wallet = new anchor.Wallet(payer); - const provider = new anchor.Provider(connection, wallet, anchor.Provider.defaultOptions()); + const provider = new anchor.AnchorProvider(connection, wallet, anchor.AnchorProvider.defaultOptions()); let res = await provider.connection.sendTransaction(tx, [user]); console.log(`setup ATA=${ata.toString()} for ${tokenMintAddress.toString()} tx hash ${res}`); } @@ -379,11 +378,7 @@ async function createMintInstructions( lamports: await connection.getMinimumBalanceForRentExemption(82), programId: TOKEN_PROGRAM_ID, }), - TokenInstructions.initializeMint({ - mint, - decimals, - mintAuthority: signer.publicKey, - }), + Token.createInitMintInstruction(TOKEN_PROGRAM_ID, mint, decimals, signer.publicKey, null), ]; } diff --git a/packages/scope-sdk/package-lock.json b/packages/scope-sdk/package-lock.json index b301fc0c..4fc6522b 100644 --- a/packages/scope-sdk/package-lock.json +++ b/packages/scope-sdk/package-lock.json @@ -6,551 +6,30 @@ "packages": { "": { "name": "@hubbleprotocol/scope-sdk", - "version": "2.1.0", + "version": "5.0.20", "license": "Apache-2.0", "dependencies": { - "@hubbleprotocol/hubble-config": "^2.1.0", - "@project-serum/anchor": "^0.21.0", - "@project-serum/serum": "^0.13.65", + "@coral-xyz/anchor": "^0.29.0", + "@hubbleprotocol/hubble-config": "^5.0.0", "@solana/buffer-layout": "^4.0.1", - "bn.js": "^5.2.1" - }, - "devDependencies": { - "@types/bn.js": "^5.1.0", - "anchor-client-gen": "^0.28.1" - }, - "peerDependencies": { "@solana/web3.js": "^1.78.4", + "bn.js": "^5.2.1", "decimal.js": "^10.3.1" } }, "../hubble-config": { "name": "@hubbleprotocol/hubble-config", - "version": "2.1.0", - "license": "Apache-2.0", - "peerDependencies": { - "@solana/web3.js": "^1.78.4" - } - }, - "../hubble-config/node_modules/@babel/runtime": { - "version": "7.22.10", - "license": "MIT", - "peer": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../hubble-config/node_modules/@noble/curves": { - "version": "1.2.0", - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../hubble-config/node_modules/@noble/hashes": { - "version": "1.3.2", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../hubble-config/node_modules/@solana/buffer-layout": { - "version": "4.0.1", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer": "~6.0.3" - }, - "engines": { - "node": ">=5.10" - } - }, - "../hubble-config/node_modules/@solana/web3.js": { - "version": "1.78.4", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.22.6", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.1", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.3.0", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.0", - "node-fetch": "^2.6.12", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" - } - }, - "../hubble-config/node_modules/@types/connect": { - "version": "3.4.35", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "../hubble-config/node_modules/@types/node": { - "version": "12.20.55", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/@types/ws": { - "version": "7.4.7", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "../hubble-config/node_modules/agentkeepalive": { - "version": "4.5.0", - "license": "MIT", - "peer": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "../hubble-config/node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "../hubble-config/node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/bigint-buffer": { - "version": "1.1.5", - "hasInstallScript": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "bindings": "^1.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "../hubble-config/node_modules/bindings": { - "version": "1.5.0", - "license": "MIT", - "peer": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "../hubble-config/node_modules/bn.js": { - "version": "5.2.1", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/borsh": { - "version": "0.7.0", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "../hubble-config/node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", - "peer": true, - "dependencies": { - "base-x": "^3.0.2" - } - }, - "../hubble-config/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "../hubble-config/node_modules/bufferutil": { - "version": "4.0.7", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "../hubble-config/node_modules/commander": { - "version": "2.20.3", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/delay": { - "version": "5.0.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../hubble-config/node_modules/es6-promise": { - "version": "4.2.8", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/es6-promisify": { - "version": "5.0.0", - "license": "MIT", - "peer": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "../hubble-config/node_modules/eventemitter3": { - "version": "4.0.7", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/eyes": { - "version": "0.1.8", - "peer": true, - "engines": { - "node": "> 0.1.90" - } - }, - "../hubble-config/node_modules/fast-stable-stringify": { - "version": "1.0.0", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/file-uri-to-path": { - "version": "1.0.0", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/humanize-ms": { - "version": "1.2.1", - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "../hubble-config/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause", - "peer": true - }, - "../hubble-config/node_modules/isomorphic-ws": { - "version": "4.0.1", - "license": "MIT", - "peer": true, - "peerDependencies": { - "ws": "*" - } - }, - "../hubble-config/node_modules/jayson": { - "version": "4.1.0", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "../hubble-config/node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC", - "peer": true - }, - "../hubble-config/node_modules/jsonparse": { - "version": "1.3.1", - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/JSONStream": { - "version": "1.3.5", - "license": "(MIT OR Apache-2.0)", - "peer": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "../hubble-config/node_modules/ms": { - "version": "2.1.3", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "../hubble-config/node_modules/node-gyp-build": { - "version": "4.6.0", - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "../hubble-config/node_modules/regenerator-runtime": { - "version": "0.14.0", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/rpc-websockets": { - "version": "7.6.0", - "license": "LGPL-3.0-only", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" - }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - } - }, - "../hubble-config/node_modules/rpc-websockets/node_modules/ws": { - "version": "8.13.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "../hubble-config/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/superstruct": { - "version": "0.14.2", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/text-encoding-utf-8": { - "version": "1.0.2", - "peer": true - }, - "../hubble-config/node_modules/through": { - "version": "2.3.8", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT", - "peer": true - }, - "../hubble-config/node_modules/utf-8-validate": { - "version": "5.0.10", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "../hubble-config/node_modules/uuid": { - "version": "8.3.2", - "license": "MIT", - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "../hubble-config/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause", - "peer": true - }, - "../hubble-config/node_modules/whatwg-url": { "version": "5.0.0", - "license": "MIT", - "peer": true, + "license": "Apache-2.0", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "../hubble-config/node_modules/ws": { - "version": "7.5.9", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "@solana/web3.js": "^1.78.4" } }, "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -559,155 +38,35 @@ } }, "node_modules/@coral-xyz/anchor": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.28.0.tgz", - "integrity": "sha512-kQ02Hv2ZqxtWP30WN1d4xxT4QqlOXYDxmEd3k/bbneqhV3X5QMO4LAtoUFs7otxyivOgoqam5Il5qx81FuI4vw==", - "dev": true, - "dependencies": { - "@coral-xyz/borsh": "^0.28.0", - "@solana/web3.js": "^1.68.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", - "dev": true - }, - "node_modules/@coral-xyz/borsh": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.28.0.tgz", - "integrity": "sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.68.0" - } - }, - "node_modules/@hubbleprotocol/hubble-config": { - "resolved": "../hubble-config", - "link": true - }, - "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@project-serum/anchor": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.21.0.tgz", - "integrity": "sha512-flRuW/F+iC8mitNokx82LOXyND7Dyk6n5UUPJpQv/+NfySFrNFlzuQZaBZJ4CG5g9s8HS/uaaIz1nVkDR8V/QA==", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.29.0.tgz", + "integrity": "sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==", + "license": "(MIT OR Apache-2.0)", "dependencies": { - "@project-serum/borsh": "^0.2.4", - "@solana/web3.js": "^1.17.0", - "base64-js": "^1.5.1", + "@coral-xyz/borsh": "^0.29.0", + "@noble/hashes": "^1.3.1", + "@solana/web3.js": "^1.68.0", "bn.js": "^5.1.2", "bs58": "^4.0.1", "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", + "camelcase": "^6.3.0", "cross-fetch": "^3.1.5", "crypto-hash": "^1.3.0", "eventemitter3": "^4.0.7", - "find": "^0.3.0", - "js-sha256": "^0.9.0", "pako": "^2.0.3", "snake-case": "^3.0.4", + "superstruct": "^0.15.4", "toml": "^3.0.0" }, "engines": { "node": ">=11" } }, - "node_modules/@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" @@ -716,52 +75,42 @@ "node": ">=10" }, "peerDependencies": { - "@solana/web3.js": "^1.2.0" + "@solana/web3.js": "^1.68.0" } }, - "node_modules/@project-serum/serum": { - "version": "0.13.65", - "resolved": "https://registry.npmjs.org/@project-serum/serum/-/serum-0.13.65.tgz", - "integrity": "sha512-BHRqsTqPSfFB5p+MgI2pjvMBAQtO8ibTK2fYY96boIFkCI3TTwXDt2gUmspeChKO2pqHr5aKevmexzAcXxrSRA==", + "node_modules/@hubbleprotocol/hubble-config": { + "resolved": "../hubble-config", + "link": true + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", "dependencies": { - "@project-serum/anchor": "^0.11.1", - "@solana/spl-token": "^0.1.6", - "@solana/web3.js": "^1.21.0", - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" + "@noble/hashes": "1.4.0" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@project-serum/serum/node_modules/@project-serum/anchor": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.11.1.tgz", - "integrity": "sha512-oIdm4vTJkUy6GmE6JgqDAuQPKI7XM4TPJkjtoIzp69RZe0iAD9JP2XHx7lV1jLdYXeYHqDXfBt3zcq7W91K6PA==", - "dependencies": { - "@project-serum/borsh": "^0.2.2", - "@solana/web3.js": "^1.17.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.0", - "camelcase": "^5.3.1", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "find": "^0.3.0", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "toml": "^3.0.0" - }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { - "node": ">=11" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@solana/buffer-layout": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "license": "MIT", "dependencies": { "buffer": "~6.0.3" }, @@ -769,82 +118,73 @@ "node": ">=5.10" } }, - "node_modules/@solana/spl-token": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz", - "integrity": "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==", - "dependencies": { - "@babel/runtime": "^7.10.5", - "@solana/web3.js": "^1.21.0", - "bn.js": "^5.1.0", - "buffer": "6.0.3", - "buffer-layout": "^1.2.0", - "dotenv": "10.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/@solana/web3.js": { - "version": "1.78.4", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.78.4.tgz", - "integrity": "sha512-up5VG1dK+GPhykmuMIozJZBbVqpm77vbOG6/r5dS7NBGZonwHfTLdBbsYc3rjmaQ4DpCXUa3tUc4RZHRORvZrw==", + "version": "1.95.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.2.tgz", + "integrity": "sha512-SjlHp0G4qhuhkQQc+YXdGkI8EerCqwxvgytMgBpzMUQTafrkNant3e7pgilBGgjy/iM40ICvWBLgASTPMrQU7w==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.22.6", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.1", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.3.0", + "@babel/runtime": "^7.24.8", + "@noble/curves": "^1.4.2", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", "bigint-buffer": "^1.1.5", "bn.js": "^5.2.1", "borsh": "^0.7.0", "bs58": "^4.0.1", "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.0", - "node-fetch": "^2.6.12", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" + "jayson": "^4.1.1", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^2.0.2" } }, - "node_modules/@ts-morph/common": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.19.0.tgz", - "integrity": "sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.12", - "minimatch": "^7.4.3", - "mkdirp": "^2.1.6", - "path-browserify": "^1.0.1" + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", + "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, + "node_modules/@swc/helpers": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", + "license": "Apache-2.0", "dependencies": { - "@types/node": "*" + "tslib": "^2.4.0" } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { - "version": "20.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.4.tgz", - "integrity": "sha512-Y9vbIAoM31djQZrPYjpTLo0XlaSwOIsrlfE3LpulZeRblttsLQRFRlBAppW0LOxyT3ALj2M5vU1ucQQayQH3jA==" + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" }, "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -853,6 +193,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" }, @@ -860,58 +201,11 @@ "node": ">= 8.0.0" } }, - "node_modules/anchor-client-gen": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/anchor-client-gen/-/anchor-client-gen-0.28.1.tgz", - "integrity": "sha512-Gi205FuTSk1+haoYAGBDAA4h0X1xfmY0C++CQIWwtXIMCSy5+71XEaFMPgmjtYdvVJoAL021NqVrDiBHhNJ+fQ==", - "dev": true, - "dependencies": { - "@coral-xyz/anchor": "0.28.0", - "@coral-xyz/borsh": "^0.28.0", - "@solana/web3.js": "^1.77.3", - "bn.js": "^5.2.1", - "camelcase": "^7.0.1", - "commander": "^10.0.1", - "js-sha256": "^0.9.0", - "prettier": "^2.8.8", - "snake-case": "^3.0.4", - "ts-morph": "^18.0.0" - }, - "bin": { - "anchor-client-gen": "dist/main.js" - } - }, - "node_modules/anchor-client-gen/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/anchor-client-gen/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -933,13 +227,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/bigint-buffer": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "bindings": "^1.3.0" }, @@ -951,6 +247,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } @@ -958,43 +255,25 @@ "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" }, "node_modules/borsh": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", "dependencies": { "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } @@ -1017,6 +296,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -1026,15 +306,17 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", + "license": "MIT", "engines": { "node": ">=4.5" } }, "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -1044,28 +326,28 @@ } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/code-block-writer": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", - "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==", - "dev": true - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/cross-fetch": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } @@ -1074,6 +356,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -1085,12 +368,13 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "peer": true + "license": "MIT" }, "node_modules/delay": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -1102,28 +386,23 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "license": "MIT", "dependencies": { "es6-promise": "^4.0.3" } @@ -1131,7 +410,8 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, "node_modules/eyes": { "version": "0.1.8", @@ -1141,77 +421,23 @@ "node": "> 0.1.90" } }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, "node_modules/fast-stable-stringify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", + "license": "MIT" }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/find/-/find-0.3.0.tgz", - "integrity": "sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==", - "dependencies": { - "traverse-chain": "~0.1.0" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { "ms": "^2.0.0" } @@ -1233,50 +459,23 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } + ], + "license": "BSD-3-Clause" }, "node_modules/isomorphic-ws": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "license": "MIT", "peerDependencies": { "ws": "*" } }, "node_modules/jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.1.tgz", + "integrity": "sha512-5ZWm4Q/0DHPyeMfAsrwViwUS2DMVsQgWh8bEEIVTkfb3DzHZ2L3G5WUnF+AKmGjjM9r1uAv73SaqC1/U4RL45w==", + "license": "MIT", "dependencies": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", @@ -1289,7 +488,7 @@ "json-stringify-safe": "^5.0.1", "JSONStream": "^1.3.5", "uuid": "^8.3.2", - "ws": "^7.4.5" + "ws": "^7.5.10" }, "bin": { "jayson": "bin/jayson.js" @@ -1298,20 +497,11 @@ "node": ">=8" } }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/jsonparse": { "version": "1.3.1", @@ -1319,12 +509,14 @@ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -1340,71 +532,22 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -1414,6 +557,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1430,9 +574,10 @@ } }, "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "license": "MIT", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -1443,83 +588,26 @@ "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/rpc-websockets": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.6.0.tgz", - "integrity": "sha512-Jgcs8q6t8Go98dEulww1x7RysgTkzpCMelVxZW4hvuyFtOGpeUz9prpr2KjUa/usqxgFCd9Tu3+yhHEP9GVmiQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.2.tgz", + "integrity": "sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw==", + "license": "LGPL-3.0-only", "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", + "@swc/helpers": "^0.5.11", + "@types/uuid": "^8.3.4", + "@types/ws": "^8.2.2", + "buffer": "^6.0.3", + "eventemitter3": "^5.0.1", "uuid": "^8.3.2", "ws": "^8.5.0" }, @@ -1532,10 +620,26 @@ "utf-8-validate": "^5.0.2" } }, + "node_modules/rpc-websockets/node_modules/@types/ws": { + "version": "8.5.11", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.11.tgz", + "integrity": "sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rpc-websockets/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -1552,29 +656,6 @@ } } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1592,21 +673,24 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", + "license": "MIT" }, "node_modules/text-encoding-utf-8": { "version": "1.0.2", @@ -1616,55 +700,33 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, "node_modules/toml": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/traverse-chain": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz", - "integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==" - }, - "node_modules/ts-morph": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-18.0.0.tgz", - "integrity": "sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==", - "dev": true, - "dependencies": { - "@ts-morph/common": "~0.19.0", - "code-block-writer": "^12.0.0" - } + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" }, "node_modules/utf-8-validate": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -1677,6 +739,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -1684,21 +747,24 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, diff --git a/packages/scope-sdk/package.json b/packages/scope-sdk/package.json index 06286774..39711d1d 100644 --- a/packages/scope-sdk/package.json +++ b/packages/scope-sdk/package.json @@ -29,19 +29,12 @@ "homepage": "https://github.com/hubbleprotocol/hubble-common/blob/master/packages/scope-sdk", "dependencies": { "@hubbleprotocol/hubble-config": "^5.0.0", - "@project-serum/anchor": "^0.21.0", - "@project-serum/serum": "^0.13.65", + "@coral-xyz/anchor": "^0.29.0", "@solana/buffer-layout": "^4.0.1", - "bn.js": "^5.2.1" - }, - "peerDependencies": { "@solana/web3.js": "^1.78.4", + "bn.js": "^5.2.1", "decimal.js": "^10.3.1" }, - "devDependencies": { - "@types/bn.js": "^5.1.0", - "anchor-client-gen": "^0.28.1" - }, "publishConfig": { "access": "public" } diff --git a/packages/scope-sdk/src/Scope.ts b/packages/scope-sdk/src/Scope.ts index 9482d728..4eee80f7 100644 --- a/packages/scope-sdk/src/Scope.ts +++ b/packages/scope-sdk/src/Scope.ts @@ -13,7 +13,7 @@ import { Configuration, OracleMappings, OraclePrices } from './accounts'; import { OracleType, OracleTypeKind, Price } from './types'; import { U16_MAX } from './constants'; import * as ScopeIx from './instructions'; -import { Provider, Wallet } from '@project-serum/anchor'; +import { AnchorProvider, Wallet } from '@coral-xyz/anchor'; import { getConfigurationPda, ORACLE_MAPPINGS_LEN, @@ -285,10 +285,10 @@ export class Scope { }, this._config.scope.programId ); - const provider = new Provider(this._connection, new Wallet(admin), { + const provider = new AnchorProvider(this._connection, new Wallet(admin), { commitment: this._connection.commitment, }); - const sig = await provider.send( + const sig = await provider.sendAndConfirm( new Transaction().add( ...[createOraclePricesIx, createOracleMappingsIx, createOracleTwapsIx, createTokenMetadatasIx, initScopeIx] ), @@ -345,10 +345,10 @@ export class Scope { }, this._config.scope.programId ); - const provider = new Provider(this._connection, new Wallet(admin), { + const provider = new AnchorProvider(this._connection, new Wallet(admin), { commitment: this._connection.commitment, }); - return provider.send(new Transaction().add(updateIx), [admin]); + return provider.sendAndConfirm(new Transaction().add(updateIx), [admin]); } async refreshPriceList(payer: Keypair, feed: FeedParam, tokens: number[]) { @@ -365,7 +365,7 @@ export class Scope { }, this._config.scope.programId ); - const provider = new Provider(this._connection, new Wallet(payer), { + const provider = new AnchorProvider(this._connection, new Wallet(payer), { commitment: this._connection.commitment, }); const mappings = await this.getOracleMappings(feed); @@ -380,7 +380,7 @@ export class Scope { )) ); } - return provider.send(new Transaction().add(refreshIx), [payer]); + return provider.sendAndConfirm(new Transaction().add(refreshIx), [payer]); } async refreshPriceListIx(feed: FeedParam, tokens: number[]) { diff --git a/packages/scope-sdk/src/utils/anchorUtils.ts b/packages/scope-sdk/src/utils/anchorUtils.ts index 5bdee3e4..f96a35ca 100644 --- a/packages/scope-sdk/src/utils/anchorUtils.ts +++ b/packages/scope-sdk/src/utils/anchorUtils.ts @@ -1,5 +1,5 @@ import { Keypair } from '@solana/web3.js'; -import { Wallet } from '@project-serum/anchor'; +import { Wallet } from '@coral-xyz/anchor'; /** * Get a read-only wallet for Anchor provider diff --git a/packages/scope-sdk/tests/runner/env.ts b/packages/scope-sdk/tests/runner/env.ts index 83f01057..2252ef97 100644 --- a/packages/scope-sdk/tests/runner/env.ts +++ b/packages/scope-sdk/tests/runner/env.ts @@ -1,11 +1,11 @@ -import { Idl, Program, Provider, Wallet } from '@project-serum/anchor'; +import { Idl, Program, AnchorProvider, Wallet } from '@coral-xyz/anchor'; import { Connection, ConnectionConfig, Keypair, LAMPORTS_PER_SOL } from '@solana/web3.js'; import { sleep } from './utils'; import idl from '../../../hubble-idl/src/scope.json'; import { PROGRAM_ID } from '../../src/programId'; export type Env = { - provider: Provider; + provider: AnchorProvider; program: Program; admin: Keypair; wallet: Wallet; @@ -28,12 +28,12 @@ export async function initEnv(): Promise { await sleep(2000); const wallet = new Wallet(admin); - const provider = new Provider(connection, wallet, { + const provider = new AnchorProvider(connection, wallet, { preflightCommitment: 'processed', }); return { - provider: new Provider(connection, wallet, { + provider: new AnchorProvider(connection, wallet, { preflightCommitment: 'processed', }), program: new Program(idl as Idl, PROGRAM_ID, provider), diff --git a/tsconfig.json b/tsconfig.json index c56f08b4..d8134ae1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,5 @@ { "compilerOptions": { - // "skipLibCheck": true, /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "ES2022" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, @@ -44,8 +43,10 @@ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": ["mocha"] /* Type declaration files to be included in compilation. */, + "typeRoots": [ + "./node_modules/@types" + ], /* List of folders to include type definitions from. */ + // "types": ["mocha"] /* Type declaration files to be included in compilation. */, // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */

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ℜaYoz{xn=F>B~InZmLv~eFvPWm^;AnZG)tsTpR-X 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%0D-JS^dy17`}?}@B& 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

!p_`*!t7xK*%$)&umo(xxc0uj^mru4)d6o$R1p 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 dWhX2$Q1{{R7xaqIv9 literal 1468168 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�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

Ba3#`Td#z zzBW=m(U*;=!lgbf?abVQ_?pcKZQm#P2Ox)UkZjR8#N4W-?=?P@fajwgJlq>@IW#!V zM!R-?*5;)&&cc2;3*Svnd#=KGn?A$z8Fh?)%qN7Bptl+Po(eWfy1N|X`*P3IlD`9b znvqMt_s$nQ0$aqv~77j@jR z{gy0;Z~l6`e#`lo-ckEw;ImY4v9#~wYnJd_Zok7Ytuu2yw%_6RX+NUbhkp4Z70SQ% zIkJbSyvT{ZC&=;pD4|pBH;!MhL0P2iUT(od)F(@f{0 z#;FY(7gBGcaY66Prt_1)yJs)lzJb0c>UTQNC;trSRYeG7Tck|y_{QAALJyi z5BkF9^<V;ubBR?=6)8&l&>Zcn!jVI^+Dy2*d945c6us6 zLy_NPiS=JsQqNy$Js%Q)eZHy0cW+Ga-Fr`v@BW_N#VyBo_rFYhH&TJ`K79@I-9E_g z@DbP#QzM9vs$G$s52;*-^_Z`iUni`G-4*XYfqmwp`Orv-Jg}YQ)c$Aw82CfB^A`X| zaUP-0KXX;=#b!MSJAlVG9_ie{R)N>{fzv(Sl8@~Ye?H`De<%_}>yhB++JDu!@^|e& zYFzohmS;~aPbwceKQsBJb#Q?%lD}xbH^v#d??k_s&I1RQDKA2w!hrP86^B3<+kbgp ztZy06Q1@rJymY^0pFt_#_bK0F99^#b`0~MaIMeMPNRO7*e~;Gx^8(Ov>o@tf`qEXM zT2C7F6#IY=(;G|pNqu~C@ZKo(Bj0Xn6E8zjFg?mV%6sUAxOZ;skyd0_i@KH=B8kLDfRF880|vV7GE`@g$F zzL7+}yDQ}DNaTC3m#>DAR^c4QY@*!d%PcpUDEC^goSj2Wo}2dhx0>uM#>>9X5dV&2 zoty5hP>5Uy?c?zGjn@zzBY)R!%0xdd&-#wb{~DLaG>PsDhCU5-|6$m#{=9z7 z7iT7=c)pUC{Y{;>4R=Aqn9R@?a*y3i|J4SUeuQ3yvBZ(cp0=lU&-~3X-(dWuceG_3E8#znzRV|v&vNG${_HlKTkzZW{Q&## zqxIG@=k!=US#O-|Ilb#VePH*-(EX{9Z=3&Quup^Nt>bkQ^eMIbB#o(^nK8`|JjC~k zs~lxo^}FIL(;k&4l+$@VtkW=_e~%J6Guh}n<`vL8+|R}H3g{ua-$(NM^jt{TbEd~W za5dZ40pOWh5V>{sF3n}a7SaBh@Iu7h0q8B;XBIw<^rsNey!H_2--LvjOAy+-q&{3n zm=7Mpcjm8;evb6&LEw$ym-Mg) z<8+uudj@a0cLCVWjk|?jwGI|`aaSNfWzhW+~6)Opj>l41eobmX&jqR zj7QtI#^bK*)N^rn;9Oi-KaGAgPfEBPf8CKp{qOMV-=OQztjDtiqUlSa!+M@SwooeV zC*DgA2KxEmpY*=xs$ke8@A0wv>3v3lm*=xtt_RaX8Fz-gddju)nD;$b1;>xmagghy z{~|k<^)1ue&ZpaZ2scnB?m_Rl4{~<;{v(0M_M^C4;g3n5c8EU*?n()Qo*v{Ul*u|} zyw0*oGSGbHNBl?Fwhv+RfQ0e87Kaeuru$0To8~#c+tMf@&AajamO4$hb8kah5B8ss zKO6BL5!1l!{sC7*_vnpDy4{PA3f?Q}JU(zonR~XpQMxSghDY!>f9Ic@0DNiNhob3Q zwR~>n2PL2RGp*ih>Js%7QO`B&G#%_h>t{$`UyJma%~D+u*AGJ^9PU8>3W|>&><^=J zU)t~IrC^xpmiUaqxr4$ieR)7bUq2jW`vKJlGks{+&b2Uq|F0X!FR1rHr>njx8Az_7 z2aEF(hL=!A`i191Z?Hb*p4j^gso*c=`=WMVz_{t(1J3O|M?7nGLf93Eo{jdA3|C8> z*5$=t>)U+`RG)8OE&PPy%KzoY&3}0p#!bI{!vn+dxjj5?f*vV7&q(%#I0nh@h$0**JSrEK){TDNy zGoS0ZyCSy zez(!ByWYWhrZTrZV*Ecdz$v5`w*ilw&Ogro$uIsN(JdS&|D4ntXp;IB>vp-s_4^6%=6#1SNd82#YBuoVxgfC7;zdd-0`~UG%)&C0mZ6*4z z`t7iU$?+@PCFqFm9SDb^S6pEy@K(V18ur&oJnU*jIJ!;3eBryIcRMpbk^1w6Z)to1 z?H+_Z;wE(*Jpldf-$y3nR}paVeiOMDe=p*!&%R4M&-(fU_maQM(?e^1Omu&uG~WZ1 zkH?FjrT=qm5Ymt1WH!>hF{l5S}U7Kaj{2q+_v_)pFg~g_R)~PhatCpx~3l(A6ZK0eBY&h zrh{J;0DQaz71pU5-VD6hI@h)q!l#aJe)*aT<-bl7EXHGUoc=69aH4X|_3)4O@ql0Y zp;vr3rYrFEWHXK12M>XM2c{A3#RP)R5lMY+FCj?k2fw+!I?q!(!QQ8`_WgDle?C3F zNc8Z(k1<>mQhmVpp$Q%DK-@p){w0R9Fb4RFlM<$a7Rl(Qz!&bI@ssjd0sIqoWrc72 zcBP$%(2g4)0-sGlzL+0=_ibbsME0w#<6kNT@(2G#@X~Vta_HAPLj7^YeNvzB-`9xF z%73l^Ik)#P<9nY*q(ABEONE2nfqm%b80xWg!?doqu)mmpDZN)>1L2K-PV?oNES`ksiaqmv>wayYM%_O%| zec;$^bF=ZZqVqZ^SA=yGAxmvG5RoFt|YqH{=P_$ z6>OfQdaPjcDCHyF&r?p1b(GUnHvfGRaB#bqaeoUP=wETCgy9nBMoHd|=lVZIZ4&=#{X-I_g5Q;L;pprSxqN;w%K_nC`B}&HnMWl#cz5mNlHX0X zg5MRduGk^*XKInp6@(A$q!p?%s{DCt(->ZSX%rQUeFoCJJP zIfXZhA4+^jKV2aUI7{?MAnA5~-G`UQn{fLvz;!d=bmLl&+I9Z@Td%r>=x6#($Dv%+ z{VN%j;pkDRC%ppaX)Ea~wr?gWKl9C-?txz6IMau_$mv^Xe6n|`llGBQxcqwFK=q`8 z*HCHZL-5;Hs*LNibGVFOj*~w+!e6r8Ys<82eB-zGYtkO{gpW_Qa|u7dXD>s8{>Xdr zMb#H7&$+6b1aHg1)A@?0rQokG1HZ5T4ex8HKEtDX^3?*Td*U1kXKEz~Zh~1s{=#WE~dcc`Vm^xm$7?4LUGjW5WU#u>uVNhzP-i+XoZC$jYCmo#Mja{hbQ zK_F)^Ow+FReJj5I#nTqqWx}t`)4;FFJ@d;|1gkr!`g6?mChX4GfBQk`7nMslF%5Yc zZ$bZ7k4e3@4wnkhzzo63Kl5w4{b;{oBR-H`mGZ`~rmq^Z`h5!DXH z&PO}pDD;ut8$^C|DQEZFx+%m>-jn#8Q90g0=*&`;U()d2b%Ua>OwLRm8U_HT=^wkt z+W3AwodxHg@rB7%uIj60>vQ`7e*-UO(=V#`Dvg88!TKi`*K2sQ`dtxvF;{hwSY%7m zgU%@MuOdD4+&8_;B=~&E^q?~+(%wna1LaeJD~rd5YJ89Ir*w$uawWc((&f3b^+j|s z|0RkC4N8ZoUZs=OTbV9dp^Gc@2|n{@-6r@5+pw-de&Bgd2*zk{iBYU?xXCfd z!!XuGXkLTw8LZ2=0>)jtcO$81ZQm=Ms{=i!RBk>ZV8}Q!PFt2-WKS(f{ccSC)~n|s z?~3PC&@Ba%^5G_+zpfcsOb<7%`eQ%%l-^@S{Zr`YHTyKb@w>(iug2%ODzxkO&+Ksj zK6ch~mtKSM((Z}B?M*bl-+}%f&kj%4^FQewYvwBk&G*M&Pid#j4!>XFDj+TX$} zalNQ0?@<$C|{Q#2lr zfqt&or1dsRmtncFF#umh^Y9vp`}WXp^1TL;9rV3bjL&?up0p3;Ct(ld zs$MM)qWn1K>G{E|030@>-u0KB#>J^Vj1MF~Qa&X+<30PisBl~;#e04CHc6W zU%&SF^UxuB_$(cKS8N5k=U3pUB!3MjD1Qw}`P1{jrSf-3^d-$pe#$+w`I#$XUKX#j zu9l9^>_h+8)FHg)QJll7VPsXyEvrXG; zLTLD*ckShSG|me4*uF)%+=}yre#e8W<@&{Nz14$@=B;R7;j!~NtT%)&nzjAQI2Mod zhbz9kmyHtQ9nimAF;n#_m$KN+K680hr!MGZMk+0`%O<8 z{v9U>|IP&b)js?Mv#X(3(^YU#MSP(CSjJEH)|j9Cb=)!Uo)KGb=JNa_{Vwal<@_70 zhj~9*t5+}Um4CcBmLFTcU(UXp_C!Db*{^5f5cr*R7XNIWfaiS-YIGkz#rbFaxSxJn=J0JJknV35vevA1G z<(9)=`x5Q{s^7la*KP`S_f0xKr+Z>B&L`%p>8cyRcf;7H7t1g9#YN*%z4E2$HKlWG z&o8alWS{6b_?-RoqNgV`PNTKy=_hMXjBo1_2(06xXfGrIww z`Ez6c4ID#mVo36nzgfbY;I<;W4f91?FOKYf_3OIv4)FCj`a|zMAwIcQ`?pCNcH@1h ze_~ofTc4u)F(n_3R}$L()>LqTl#BbIDkLkcHP5w<; zXPg;8IfE-#RfHed{96Usfu^?%KddLj?@DsR9MAB*e+|w5_8*gW!eP+E=5gt2Ugamb z0C}i=(9!Tq^LZ&Zqw-d1UBJ$HgsWSGKC~YU?bQR$Tov|LrvkVxXI=5>6@Z|c9U;h8> z5PV()`JM$OAbNw%}pKKfaG{tra^Lw(~{YCw0;quDQ zTyFm}ByWWlE!T>0nfnu5UaBuSCz=Z0@RMY_^CZ_y$DgAQ-0r`g%!@{rh-rE{4Oi_F#l_EoQ(G6w3*(8{Snbg z{Rng(3gg>;^fSLj+`lBhsNd{DTc>+~pv_X(*RLaHqhIG6G{5abG`sAVejwl778zE8 zUAO#<6xfxci(TkP?^Dl9X!ng|O6>#LkGWr}A$aN{`d{!Sra#t4+=SX;`>Vl!W9YBh zfhoEDg5E~d^_6HnME6bD_?wnnMmXOJ(bIR=D4f;W4_)63VSWYA+^lfv{?uo5UTSu! z-Mee!M!4m9DG=_(`4KxOv0;R6EuBy;1Gg`*2=u$$pQO@Ap=+ z+n7SRRc{e`gjb?IIJ=P`n%em-77;OY;4pME@`M z+rJY1b-nKf-mg$Pn}6VeyCmJtV?9guJts8Kohd>meSW#r4#APT=DVr$6SJ+|N5p_kB66` zKjF=A^h9=y-lt{v>PCK8vk!Fr*VUqYw2rIaQ^DuNp7Q5EW>5S31Z>@r$CnFePYAbT z`wng-JNsnz9sJQ3%Fm}Rp}Jq{d@8c9??=D={vEAwe&}N)%WnJ_#<${83H@?&RL)JP zz4j>TWqkbPw|PD_r{#`Fmz@*@3Z9pVSHC_kx32<50iA9KK~mOCP0D!8g5UVVNIn_Gkq zT+efgSL4?o5&zEYRK8F>>%(L7f4@Gi=iUl=+7gWISb%Nh&#Z!Q= z0Ka;)U#8#oQ2{UI?iZYAx!AAmtN)Gro%i^7-@f!N;HRxsN}e9-|3* z{P9WBMxy_jd1-DJwQ*U$AydN zF{174laTh=FN+>CO`s>&w=+SHCz&2Q@cnrH5}&?Y&lwfy@e8Mt9%b}-wgMf#bvf(v zI>k>G;R);`Te}GVpda`1KSVFB)p~0rOa%w94pIQ##7xw4bv~YaykC{T`<*9=_rIZg z_<1}gmAh#F-s@jxyw6s^`=7}<=H<>*Im07`*UslP39Y|fM1ri zmufGv{5*Uf*Hh|$Z>->#%`tupjp~>Thl=)Fjk8qZT`0ESxc*A-LRBZ;h3ZbsU;fr>?|5)- zOO$I~X1S3>|1Mu)vN9|R+$Dh_WVRz|!a) zM}9wXf6YTQhvjjL{-b>vS;2dJ4`UtZ&|f2=e-C2^?{h9nGjgwA4af6{m%C4@NIpi^ z-+ucucOXB*y@y=u>EK35NCl9~a_}ep6n{k|b?HBn(_!o|9zecrR zlSt?L>&o_P5Z}x7>v8Ru50}x4`?ZPSDR;kQ6XA>TakBUFERaKx>u0$nJ52l;v_Ber zQ^1BJT5r{OHRzZL7Pu#!{W~S3^ulfhqqDgFj3;O`6>HwLu-LkMlW)A!j!Y=fkA0_ay) z8{?C@9KDl3?-2^WypsBEklOe4KvLhWCViI+?ohb00{E%c!zRzm(Z36Kvb+PKsoS?SF&hj_#8bxHi)G(nuxT zWm_($9C7<0p$>S5(Z~Nak-yGrH&UvS+ zuufVD55~ughx;07oGfa4q=WqN+qWlvL-@HyGWz|Naq@AL_v^j?z105$O8?0u{kd0s zpU(plx+3_E_6JEn-(8!MbiW;=?;rm$+mnm)yK(Ssv_1#3GHAH$8^GH|QXRGTb;JvZ zGv0XoohbuwKf&GhKdE@urBtL4@-x7Ye{(`~i{WswY!7qsd)8SYr zjc@rFE&?lhCxH2mYcRf}bvA_yd}#9P4jz_zX(s$6xS% zzJp4)g3_(nA?>ACsJ&iPdwsX^Yqb71B>8G6*}o^2_ALuM=@rCa^yBaTJ(zUg58%~# zitS%=6O)pD)3s78dJozBp0;l8#!H@$Z# z{RlJd5;A?RY$iMwbiR~noadUt)wq9`>`27BvIvJU|D}1Fz;AvrpPzaBGXK4w-p+I{ zv#(0{)bppvy@eC#58off@)7y>i@+zt{k`uqU$#m=+|*)zPFLByR_U2ndhSKNmF`7O z1#d%rg#`bZKDT-XQBNwk9{I;Le>3csRPb@h;FhQ-6PrB+?r5?KPAN;BJH8EZrzeIFe4f?u4;EmH8DBb2AZZIq5 zIlW%;gP)!5v*h%Rlf@WeMr6hrRCWW#N~4^}BSLe+7P*cw8!7_vv7JP}hA- zKZokivHc^V-cK?E@fLmbsb6A#?+`mN-k0}jfs^*f2|ieVW+{dH@pJ1)e^s@}_lCW= zr^gi(Z)Y`0dO3T6`^Dw=%06P94=4OHxs|^q(z^`AxeP)%YUXMV$U)stE; z^ogC<3~N=d49aI3haZ$b{QeG*-sAJQ|2^TCct6<@e!hJb@{N7YU$>eTeZg`uOm&hU zK8j;rit(*zP=ejFUYZ>ltDw`Y~UPNxF`ko<8|F+rKcc17H7)O8znM=ZWf@6Oe}%PaaI) z(EeR%m+r-u(9XqhKQ0zM(<1oERlQc^lg`CRK3~6l_$*Jqig!HV9r{G5vA^ z`n%D?r!zn9L_EIVb}Q?bM!{dY>b@6=1!?}?B=J;$JI-mm)A-LwKkZ(dQ~*bqGrrV& zBxAof_|W!;Mehg~>$E=By4+rk#N&D-ISAFSVD#ki?FfBhJaf%V|B&v;vGJtb_Xp%V z`djXMuY3o8mHYmF`ko5b|0hG_%k3QF^*m0c^oI~KJg*`<&(Akc`JC>v=I{UebqueL z`xX7Xbqic$?B|7_EPkgBel&aEJNC1wJeSl<4bv~IZ_#>HpVl{NTt3tHM#RsmLHyb~k#eQYOQ%S$Cuh4H=bKxJC<6qQoO)u^Dw@c{Aa>w?7?@wns{T;27 zGe4Q1|8&}#ZtFHaA5|}uFaN>M`gQ{3lI!~pwRNKY>zJ?SME`YmK@NO4j{b15eZYE$ z`>~Za)VT3uLLXWmLzv*du+7$0VfT|gF8RvM59hcYwe#Hs_>$Y%F~xS<5p8Eq!c@>8 zbn)S=gzw);;QOzyI5B*;SHSo4FB854*6T&-o~%b1zAq7cS7V&A`?pNr8QxW%?VOX_ zulU}s^R6=U@_7&MjPI)i-wTTGd4x8;UI@5seK}rNHhHd*48A;fd-5D+AkSn^O1%y1 zFadIf#pxSrwH?hLkK4$%LFY~MUaHi?d`#pZJvl4!=sjeuH`Mh>v*-PF0aCXwTK-h9 zLge^(dge$%&z$Dz8QZ@=_x!>C+}x*r=mCWF-LR840#B|_L-h;L`#$oW`*Vc)!}`kX zjC%;Fc5XO#1}3`Y^0l|ddN1DB(2jPaeGJ<)ZhX-pakC?M9+0K>efetTaf$TdG^I12 zbmd9@ADg2X;eAj7^6%9N{>+~cW*Rk41?WfjW@sG!rt|X>_xZh!+A+T{x5q7Td$&=0 z;b^PC8Sc_{@6U3zqED0f`oHYG3w&KibuYYS=fsMEN^x==N5$1q632?Di0r%+5hrp& zQegsCNKUL6f~6>~6$2l#9b%0)7ow_QwsZ$*FmwA~)AF7B_{i>$vr1TZ~Oe|t{7zt?kr+oivcTYnq5-g0zr zEZg5t34ZV4Vk}QG^m8G)Uj8!ovw{2BTHMcpmWus+McID-y7cn_?I+n!F>X$UpKHuKGW~DyPS?Q{a(Av^=bYoE#EKU`M@&4XZx-yW}MDCc~nC?f_{H1n3mIHaNp80mlvkyZawBbJK36(FCB6qUOT6O(B&GkZl zvRoiJ0!UHrkIx3aXDYt`eSSY%@%^Xyz2LE2{mfP^H#1h{eJl*^n3gy^n2ta z^c(W%7xoE%hXaC7v3e365_D`{394Xzk-NRi(evH}J-^la^3d~@N>9IipPpYO`(!$3 zQ276t`6u?n>CiZvt%>hCHD1kOSl7iN=A%c+7SUTbtM7#m!@6#b3%`F1b&RIiawpaB7)Gu~V(I3E{#r`-gTn~Mxi9;X%`yn?x{)b!v9~bBVn41{pap)%Z zb7%qkW5RlUVc%< ze1CI`FW=_19|JNTUP3?I(F*Iy-JrkT-{kB&ISD`9RB#^kn8wP}+^xVp(^av5M~m>V zn)9WCuS)-RWjOA33*&^BN$Bj}5&f>Hv;FwXRIk|0#e(oM4KI{>pyxDFlC2X!SB`6b ztQ!C+==_)4h(0+fk9=&Ods5#o`PxVn=Xp#QI{iqqzasocd`wKb2 z{S^E6+#>sT{?@pE*{YB5ecaZsdhL(9hY&%Jk1re7zxLnb{WF)?-%QKrUdSFK>%=dV#wWKE`)yy&?U6ps>FKjSBJoLuXP3Zp#{CD^ zb2F@u=g<%Qp$Fp%d}95^_{&f_`u}a>PpAIh>EO4Ky{Me&yS_g)${o4K*N;SBi1l5W z=jr=jJT6Q8#PZw>!wGx(Li+CUTNn1{{^WM(M`F)D6@Tvfb;WkxP2|67c3#XQ^pEr@ z?N_zH8y?Vp9ngMFYClNcvD`}bOYKJG^!Pu~e);xie_!G;g6F01=f2*zKb@jqve}={ zgg-YtXncD(MuhLr{dm#$lSN*H2Sji2`Fgm*{JHn%iLb{-M9$=gCHzpSANL@YH$O1& zb;l&+=%AJpKj!~Pe%ue74&KW6araliTPN^V;#Z(@IqAoJxKHHk6FLrT+{m;WeYe%U zjB;;?K=JvblHBX`wfdg23I+}`EWH6 zTv_##qwnl8-JxgW+0!KBlD-Sa@PE2grD2iZffQCYY7fep6dEqbBlTyJEiRUCA@Z1W0q)h*wV*Rz9 z^T+<$eQYoE;Rb$y=Wk3A+~((8(O;X4JM>U}3@_uKbP1GSPx$x!W2xE~!V3h>SU+j! za>h4FyprCm@JhbekGq@8xd((V-R@SdxLiN#v97RwRP@)@`N7tQD+JC|K#OX6R;7~u z+9E$9e{FhS?5{23(2ebv{wclO_%O#y{I#!=_F{i+t$&gJ+Tm6iKe6Ao!N=f7_m!3N z+aA0U^c!KgXkTI;kW}*9Ha{e?4@*A1SHj0T<}0(m`{`%KZ(HyR{<`|x7*`#_A9>~L zF|psJm+HE?!g|r?OJKgwcI5jE{)l%un6EbFK1*_H!lwnC4f%?P#5v&^J=@ z8A`%;h5C1?oNW+(NCgZ=;Pyxy-(z5SuaUUjdm1)Pi@rB8%>~j+{){ukeldT-ai1P0 zpE^DXJRXtq%J*1DaytqK?H@_KRo~!x+(b9WT~CJNpvP{yFCtt%tm(4gNBX-teN@w1 zqWtgVbm3cD-y;8goUY@ir#s637^O#kn>}4o`ol=4eF!{up4;}XP~RZECwg%I{QmPi zK>fsne9v#eIOt}6itRH`aSpR%*nVrcv!DB8>pqmRVzm@S<^EhYc{ivBUj5mz0)4|)!8N%C7 z$gk*3;;o7B=B9MqKibZSa}RcK=<98~UQzi7`u)oc;X&_13(Ze@r`X|XoyK%1=daaC zcrbr0+h>pcd*gXv=*<{Uojg9WRdc%kDRKq+P=+7`9N(mST+D87`fYQAj1}|ywDS@^ zf1*Dq-vhrTv;XDP{-^h2WS9N{;{kjI#@w?`&tEifa(sWg%2zkl$NjeNHMqQtXVb&U z&xPNcUhP)4b46~&$?-kw<6F;Jg%Q5@SH!pPm+sWBGuFpMt^*Ih-3ffRGrrSR9~XS< zcR=a$^abY8XXyQ6=Fy+KGoIhFRe#1ekS}Kb`~cT~^7(Vwmbm_So}MF0Qu<+; zCy6dhPg;KpeRMrf{$RrYx^8Y>@g*r2=`-z&51VJ*l+M5RoP6BfhH-aL#%;|AS3~-U z?mtH79s6|rnf$9f9$S3*caPNP##F!3bD!Xgzk3t#(Zc=AR$Z;~Pw4K;zc&`iKf%MP z$iLsmda$DW6MkI0{FC-$`6u&nEdL~aI`S{Gp!};m-();|$MR3d&$x^`;Cn?U@SS0N z<9m!G8pvMK$njL5`zH1sH(P%s)&X{&Ges5!Ja!(X(z?OsN$5p`lplD8!~s0l&=SP% zV~_B)B13PBkSH&9q{Ymm^{`JL zKE~zUgwCVUeMk6u3Gh2DmZjNi++EcbpX)8}fI_x|^qpjR0G7j%4sp7|?^={8UKTwdsc z_y4U?_I)6@T)u_zWaqarpW$(NfyZ4mC-I9o2;9Xo&xCD_Cph25R3SZKoA~)Vn^%Sfa5;@cawf% zdMN1d)vpko$#XYqH;ncTbKDKq|5j0X@CQ1I@_%y;@m=!Vjc3QSe4nbKd_9VXdv*Uh zqI-rL06!zY)$b~vyXoNmHj@tx9+bo5#wGpa=Wb}SL4LIt#rB0z(^Y<)o8h=W|Afn_ zA64y~9{J6vpZ`z~9BMkNsUL_Wx$>C*d8B^|QI;{Eha%;`y7u zE71=zF3X+2c_;b3U>w@{n`d52_G+?;;_>;Z()pX8dDho=Wn7{@8uq8W-)Qo{?n$%z ztb925TuffzgWU&m3HbdwHR#5UGQYU|oP-HJEIofCcr3S`oAu6t_~&o_Esy!=h_*A! z;i;UzxjupK`%V$x$39UW-=yZhB>3j@FlF%l9OL_h;$dDw8}EkqlJhr;?*-1^@cF7k zLSNAJbByof+RiZvZQi_C@|k~4Dmb4LBE3S-P5R?H@W!>Br)zEygQdlj=V|maJtRj4 z6^;Q8WBpIk!M_-~EUgOClTYsF%_U04kf>yu8?e!)4SMw6LH<)Oz%4=_-d7-)^ws(TRyXl)U z2*C$01syU8IKTB0x7V6z@2g&W3*n_RQEtN`%grasUG0^N?#*2(T{cZ2k^|9Io{dws){EAg>6;w|FT?c+dbe)%tQ!@5 z;4oLq``xtcEV37kBCc|&od49C4)F`~+xPdQ|E(K-VQaVn^8>YhZ5R+mv0Q)ra~0^% zH}8IV`tu6ykKexEpTFV$(Bg(3U+$g&9SGT{d%x#sytJ zACl}rxM_+PZeiOjhXoOjbPvT0$K9opVC#SA-?LQKrz6gjV0|-9>1co1R-*fke&!h0 zGfJu88|C+&DUBOhVyiv*2l(f-{%_xf{kJ*6i$f~4cMk_#4&%k|Kk7mGE=mV{U#IeJM}`Zy z9uBB~?LvfTvBCy`e;YCf|R|>wk3a zuyz&Ig7vYsS1avD=N)SWKH5JKc;s~u_Gh?UxcrFVk*O>D5R8umUVVK0G4PRBeloxF zx}#iAy6OW&**L*SYm;PIPX zCifNDc?UNk?^8i9YfON*h1yw5_6LOK7lCyW--k+bAD(OUJ^AG^zodeH;QD>|+R@Lv z;065GP2~XRdx-xqe$X|4{NSeHw89Z~8{Z3jA(g{ZpmKNs50d=-HneB$*uE6n+X4Bp zbA<5_KG4tQv(+d6-rq=Ko$wX1fuTNPzZXnTf&4uNxu4@|87|NT`CbXT^`z2cLg6fFFRFQUys@oVOIkoQo+?sN29wB7xP`di`(_(!A*o8 zKcCP|_#gS`^XuI2>y>UtDelwlH7xgpFsY!O`5^39x!O&c=~;+wfXm?V>DEH+(S97m z+q<%l>j`%bbKJ%W_yF*g;{$_xE!6{h12GG&fBF*i{(mdbyB+i|L!SoFNAKG;{5z$4 zkNOj4NdSOOE+_o}9vPnm954pHSxOjmlhSYU|3da6`Uo9GZW-QCZh2Wcirn+*n5sa> z@6ZgB`c({-U@W= zuRzD+WyWnh&XzF!o+V;|#~1Bq3SA?8P~Zt8eNomSVQq$5q4iIHBZqXarO*q^Ne|@X&r?`V zJ{r6a5xnW@_b3YNFOZ9h$zXqOE&?e)oP2^&@Gb8lt;n#F8;41zRHpx0Az9&%Y z)%%w0JVty^pu+or)C2wO_vxpPFTiQ@4aR4N-hyH@xIIfK!)ocw7f&a`$e({??T3@5S2R;R^k&E$Q#dpHhF9 zaet35y1(!=E2VEr`#VsfzttuEJ+bAdL*H*uyW!4bi|+4VlegyslSynvu}0r-4IHn32$} zhqj8igig<^gc(i_Y+eeNA7wiD`afnWyRQ=KC&VEax+ui>{5bXJS(09ZNT>H`0qMU^ z5SH@gp9|dM(;OCVq|EeKy=$p(3*r<)AG7aL*!tCN%+Oov?@ij@tF^y3Nk7A@C3H6d z3hM9G61tl>N^uQWX84EA6PR}!DaG&C)1cFs%Gq@zoZqb`N4)e`}jTRME@X<=g|Sg@!0nnZ2!jPW~Kfz_dP=YEs@){kMlvP&+O9R zgX?MEHL{P@Nxg1D?RmQX0^bZ!QQ#jGL%A-3z~ux#cz-nU{tkXG_$v3lliv&e%Dump z-wQs=y~m1;_QeHn)c#Qe~VZ`_snt$+!kQ zgUILM10H7Nk5sYzdVW7p@%?N0{V>0${c#RSZ`HW8o30jyNb%^U_DR12{IpLZ`SU`* z<_610A3dPQ*AtJCo`QWhf1e2Se46eLiTO|T66E$+{7^sQ^8*_-U_OR7uBQm z|J}rWWq(ZmFX;FGB%3AboxhCM)ub=uDd7vsgC{(wcsrN(bFsK`M}aW*Z-i>EGc*|GxM#_ixKd`gbn(PwmNLibs+!CqOTv%jxdV z9=Rd5v!3cW>fLwd#?L0|(kYLhgQerArOf;Wey!s1(<*v(zD2@lpD82byoWN+@*_{TP>e zacs`k@2^Hb^!`XUnbH2pJdonsLLu*uiF~p9cuyh^&mp2{Ca?*-@?RG{bIqd&Q7>BnRsq3VmK=R?1yVg7>Mr&Tyl z_`=R7K>p$}JAxaNc_7+%GCe``|u1EBra_yYM@Aq^0(CisHZf)P+>_;e{)LW~l zd@A@hk00Qb-%~zN8gk?xuZ!g+c3hKw;%ZuYQ z{{y~lThD;j!;? z0j{^w(VJZgSGsDoz?Dn1^AINo(K-57iQB#{>ET*V#tWUFW;(mPj2rUjl(_0iVVm%Y z8y9^k+$4NO`|FGkx<^L%q|M$7-u!;dB=j-E((=Mw1>VZ@zK8)xxHNIMfdm%oSPKhHifrI;jJr$_eceJzwt$kKfw>3BbWBn zei-gM&T+rr$4TB`e1OG4zfaM9W-c%IOD`eCgC5(j#`v^+AO3f0XNX_3-4p5dU3b(+ z|7d)DS=t-Zd{o}_m`eV=$J=8+Qr!13ofsz{^T)|GQm>5@XZKA$*}*UTe$G%o(Z4Ts z0zWehSC*E2fRnz{%J|=vo8|O$)x+pc;GS$pP_%BcbEGr0fkNkDieSjWBhl`-Bxrwo-xf1jsL zrh|)6T}eOu_0~U7eeOvah~@Bh7xmZjyNM&x-zmXYjL&9n2YP=)nfAga(aTJq_u>3H z!RdOqcx*>k`R692Tw1>awHW+-4*gO89%~Qyn5xIRk}hj310UWWrSG%by};=zm7~#j z$LFNqdC?QYCdGq(*OmOs?S^$nId1cr z-Lr50o;1%$y?Necz{1Jmhm;(@81%)W9ufQkIoao`q+9a#(zffB>hR^2XgI*S1;iI z1rL5VA>+u6h`dL=gVYx20nSGLKll;xjoL4=dM`=2d=syW@#2OuRGRwzpzwXTR^`Bh zR3Sa#S_$2QI(}dfr^h|W0lnAof(-wFJZz+2#+PQtHn{{j*hTLF@Bg@?*pC5pxBF9! z|B>&aH-j$1SJ|qo^nAbYU!jki4Qd4Jh+ejiYm< z_U>Ow@~5huV$}Zwwahoos~+Zfxp~9n);BRvs=tn#QhF)>+WIb@AGb3n;!dZKljj9d3ar`9)Dp%`=?<@{D&ybh=n73@4KM8$nVovdOgu_(uO~G4E^HaS?3IFK# z{fU16V2#+FKd*M@hPCDF&N8m;e!g(0jC=A!6*xWqVLtQV93ebL`ZCGe%=Phn1$vHe zl>G=FE|brA|8{~W9mx7O6%cah@#$p!8cg)-okUOIll~EYPXd2(oFw7baZ}E2{!0qK z-@eTo3_tDbl)DG|1o(@9J6*f-k3BmHtvi|CHqVoNQsWt>57`$q-Wc)gGajFjy@u1H z?}_CEUv}SHd=98RDo?Cb#Q)tCKUMw@cb4iOU62zV{*BMCVm|NYez>VF3GJML*^!3` z2zp|>z^UP-cb|;AGl7r)MsS=7d<;~;$9cfV3-ZjXb|}2mIIg7dHF_84mQ6knuf<=I%R5i} zki&f$X}77GL&)uR`fuwyw9`sCk zQkwtH=IXuqL+pUyUp(OfwGSQ;`)HA#l^CzsH@5Xhx%uOdsH32k50^iGypQ0C_v24+ z`?T&CyJ}sh;=5JjT^euKcsIv;cOKDnftT+0(zx`C?v2y9**yn14*X)g?x`D$;?Qe) z>pD12dMJm0|96Y@8{vcSfbv0(!DhQdC!JsR<-75b%aEKJ>k_`pcXH^{ubs+8_j!wX zgV#qFf0+31aEFu|Yv+)@XG##!I*N1}{4o5RKQPvP;4jes$8RBePbhpucfeEVk+{nX zUn1ZCQ&0I+4={V2Z%2FI?F9c}88_*mohz{XkdqloN%q?>{{WRw>v!z@a;Ryca_{DH zpi10NwAYPz9;t)}A|m?bx7WwzUc>MG_68|sp>jQ3?vj#nqbDi1mCLOzDK~qPa<_9i zQS5y0cVxag?B^)#uZ-nc#q)jw;PR()4zJJlVLrjK0@Q@JB0N`^=dLBc2Jo59bNAA`_j1m2Unf79h32^&!IKU;nI7g}MD}pzr^WPdb)tVA z3-vGZpVIm6pw8n{+&tSsc)WV_;CXyV-j|!lzfi7!4@!Q}@e%G{sejS%i(Cg@=jn|< zO}$_pb=C9&@R`^@gzqcr2M0^XL8ihucn`+GSfh-Ce1=1xFKVfr8&`gLPmK3l4njXz zrQ@eo!kp;Kq1~?t;OU9ijXyp8>RN*1l<`*=F< z%9U^XP2c`E$oz!*uBRqXm2N19hwLs~kLl??9CH=ucpm6Daa8CrIVW`Vl$Qz7p(`P^MlMN%&FCqR*2N!b&vU@Z9-adfFBRjdqb^V>wdZ{nTd4>C9`vkfV z?8aAddGzN)REGAOSf9W;npm3j%NqrbNzprs;6^`sq&*)m-GrC)vUgK$#BcjVPSSp+ z=v5aA!m{U(@tq#X>q>Tu(Zs&ypI=*ky^V2*@l*T#*zS$~JVysLeR|qBOXmBhkCq>2 zfbdkunXN-H-kxT==aCZr?XED+CNN$O_c1-(ST~2M;4+|z@$^1#-3xog)kr6PY)s(k zH+?*fadGy;viZM~eJkmg)1IjJy0#eqWKR>lvq||}<%(}lgIoZ8E47!jr*$RTd#&G| znB$A+$#O^K0O-96`;cQI-+HD-81LEYTIOSSSm1Pd)$bb=F9aX`3&Ir=ce#M^4*a&$ z3!6v4-^hn{e((cI@74VIYN1zy#IYX6y2a{C1urn3=ssMAhxP+Gzt5M+a{}#{S3q2P z&@Oh^(C+uiq~({pHDUkxH7bYv@6`O?ru@AJI<$S0BWj1)DSBx7oN5~B)E~to%Ok{d z^oJhw2Y5#N-}*>7{FSuCasZu|WCi-~^;nSBp$$tJh_cNpITR)XQcd9%) z=R3>?*uU+jekJ>7{YO8q^ZPm3C45APAeJC`DBsC4`na6R`?}-WzRm;Ymlv(;P9*Rn za@U6ghX6tecQJa-bOrhQgVoS;W@J1c zo|aJOU*M&a@aAYd;4wYQRhizR@}-J0@_XS6r~YNOKKJQxOHqBI=fw31-?^wh)sv$7 z`by@NQS@t^o9FNQuzXa##pD(G@hYBYrlfykqa3D!w-Gd$|EEP>oGbO1e{t9(ay9n9 z(EhH_{;J)<>Akg4e{%{C;f>*e@2W@zh3>mkdPL_`lpfK!2Iap5 zJ)Et3%${%SQq#MiF#c73d!krx_vtZMhTp(nzmI+#-Y@Wv4RV+YYMH-)=RxX%@4waZ z+r$UN4|vEAjq``9Cx-V~y2{V|yzuFm$lG4m$Qijwp4lm4by2&}rW90r)WRHcs z1>c!`J%{+tO=Se`$A-DQdvHYRsbIH9e+$Gv;ZD=XMc*~Qm2jW#n;k6G&-;PDF|MBV zGuGF=@ym7~)7KxAd@P4H5}pnZD1Q4nOw%@m%uoLyXa#Pa{k->3RdqSqk5 zw#WNF3+eIu6MEfUt+5`tP`Um@xwm-b3Tp));ifL(hr0y7u2bo7r{LWU2xGb3BG70( z$@y15cmr49cB9v{pSgYmhvD)Le&77i-*epUYT(f96ZL712Cn}?{$cZt*}+|2;AzfC zy=D)u-!A3q&yw(23XmhpPqqO(NXKLKHDghxafGWiUg$=Qc<)gO>s4Q*@8vQ4^j!rF z2Q?hv5Ol+1_WHu@5)a!(%D=zK-VbX%QyPv+eqsVZNcU`N`VkFhHJs+qmm6~lJ*OY> zF=+?qMOY8=#=$hb2j8DZQ!Sm_=KAbB%tHLLYE!ZQ&vK7{HguCBNY6s$=Mwz4#4CSy z_ZBYi_p2N7gz#|*y#c%*%>v$ThS%=Lc4M7_7yJH)9D^af@`GF-`O`@LL&Ar#zwUAE zH%1-mo#%MG-~Db$pExSzb6p&U7YLt*&ouCRqj&v79F6va05|A}eNTkg+rg9E2hE-( z>4mHKbr5dtmv$=fTX<0TiuPM2U)!+eFXp3{gMYq2B#-&$MqU~9?VF&!?moZY(K~LmA}V`NY>-GTl=eI z@5t-9*(tmCO6rg0?lx(ssgc{MR9`{FJI@POkjhHuCpmw%N@n~mw2uyggAZs544Qj{ zPO0Fp_{Um$f0)t@zM6ZuS@yR`+O2^P%=5?(y!_UiX?;%R@q{~Dguiw+YM9Y*6^B0j z4GB9n{Fza2hU!7R&2#~~J1qE32RAUBF88m3?};CBxLV~{D#)YxBL5fE=i57&?me81 z>)(;7;{DMEl+$$UzYoW&2@djG;`V*`TXno7?G@XpUf|jGWriDKdj--_k=@^eIG*VK z9@QWHeW;m4KROZDbym6k+w-oI{b?UATL%NLe?su2ga5(prUHB&2lG}n^Kaxgn-3)3 zBy@Dqy+=Y%Iw#BcCx1JkuiisV=VT?l&E5+i`gohc_!Dw5f7$r@8jVA;`*L|YpT=Rf z`fV&XLgjyVSjXu|hT(V7`clVXw4PkW<$>Qp$_e>{DGB}W_#V+)`89hsDI|DbCg0Cr z<;}-K8Dxvk^IWR(#m@6wN)_{anfUBGqS1MtOZheV^=J5p@f+5SG+dbv5&HbsMRCA; zBaJWj!4@v()=B+N*9pr~s#nol5Hg*@U+NG4C3v4gtrV`8gzz>AvxHUTME%50EZ-2i ztF#}Tk`G!8@?jr}>*v1`M-KXKl+b%$t%L**o-CcGL;h6oUFHwiV^FheQM|QgC`SE# zii2R+wF2j^YcAu2T~{=5xTkFe^WmO-=Sp}`; zxsh$e8?k(<=JL-H-SC75Yo)$}JdG5cFHXuQFqGLL%gLwrzfR68*`KYa(I3=<$IfT?{n}rlUl*WX zxnYKj@FH*?-p`@$R|q`#^TH9-*CXu#KfAE+J|yxZqT>*~V0eV?Zb;-~#1}(S-p+sc z@D8AUwGX>79Vd!kw09-LJt*)_4RDwWeueSso}S~1ox&I2CoB9BpZ{x={L%TpjKoD< zE{jLT!<4{{bDtZbCp{=}UoSa_=7qF=4~g#G6@2EjTow756F$rNecVQP1RYI3d2i{<-&k%bJd^;Bqfs4pKKySq?5FH##cF zjo~`TjZPhZ9XkH%nVt*DwYQ#O`1&fq_g=s^)-Uko`y|Y%eADsmqI;oKE=2n$Di@;t zmGW}I4Ke$ZoKSj~$TwmPdT2jPg z9StYS-Q<-kKCtF6AS*TQxqTaJFdN;BMsjefm8a-%o+@GsLeWe-!ZZE2+Jn zT>_We-7V$!Xg}_k`oc|f+@8B%+6y-w)wsYDZaSv%b}k=oI?nNT?0jCrwx4hqHqCR` zTX%v(9}gp-pU(4u>sv>#ewdPSdXCynj!Jyr{*v0V&|mIZGeT21A*(4a$u+n4?fuS?QP*Hetr6bDXcYs+-@_z4{!cmtM|#ZhGmp zJpR*5Zw^S*71{HKG0v&IAmPtf*zD^M!cVdPrSjVWp@)A?ZWeUQbMtJ^m_mG)#LMXs ze|xRyKYsiExc&HBphw`ASb}>@>cPI%Jl1W5#M3=z-Ra4h9fXt&RlQe3@D1?Zd?R+T zW#8)i{~r50;{67s6CBlVEZ+C}4LWxNexq)`P?@fKm9E{WKB!Drr*swi+xZFmo_%`h zd%3*3h=U*sFV=YU9a92`9(R$*xp0k!DM=4+2Dg%&y^4c~FXMI|;1^N-*51k5X=vwi zVU@~-jV%&i*T`XtM*-?rp7RB7F5S)VU9G~gJi~Ip)hay8S7}_}3YXVP{M>df7jA9g_&b`eAMhKoI`h@Pu7w<%<@^iD zu|NCQSdN+f&F;}KIY#SHg`<|k_i%Oaj~lhT^e3{L+I;GL zN0hokc7%4$kNWB<-mCY*A`S}CJ%jun<2&PxJ3B{C=X6EC$x&u{U^hGlzq`D~sS(5X zWtcznvQD6VCN5|9TA}_fuYTZpBUOQMeKet$w0Pqh<<>u6ULIr;@&M=XOdg=zyA$Q! zrtP&R%3YKwS4n@GO~CoHi!3*lD0hCM+=ml*F*xTFg%L@26D{0c^Fy2**!g_huMgKte)G$V?28Rr{ywS5Mc*gYanrM(GuVAz;Ojw3 z0e=Al=y0#ydS|(!Q?qatgSFE8$Zj zBJ=5k+)R<*{!ca$pIX1pn-w@tb)P7&c)3*hRoB-szncDjSnzzR`$T&GdMTfNMCwcI z3!Q2H3^$#GFAoO{2ifcAfxvKQWxnk2_|i=XUzr^+=1&=y;Lk^xKRcB_J0w*8bd!Sj z?2;RpPu=~(hi=b)rlUWOTG6hK1JwJ;uVDUY*Lqty%r3cF>e+=+PvhcT4!nEsgl}W} z^r)1N?9(F>*K(n)J9kZKeRCQn>pi0N5McD!J(jUQ_e`SRX^HQe=KSv5WWAgmI5_3e zWk4Y{z&$P1pbri z7mYk2FJ8Zp{O;lmms`AkA^Bel{o+l8&&B8$>*#)Jj2|M~3qMW$;uj#d|4YA+adklC zLHHj~zxWd}e7uzU#Sgyi^X-2;{o*@s_%Hn;JPCjPH1!L|{Mo5;zC*$@pkMsfm;Xz@ zcq#OYH-7HL=@-AUW^ww(yGX7;FIiB(SS$L5+4tQpS-+UxwyQzbhv_P{+vikYA~AK0 z=1-|Hyo`*5Y|v+DO)qR%Sa5#Kdb;=9${ppPfB zb6&xGCw9@8?|zQ+1McStk51QhF+?3q2Wp*ZaSkI5IkbLFt1D>XO zeSSX&_1bqE4o`D`=-eY$(3Ah3^lwc2IUXp#S93_;hmmlTq=&kX(Ay;Cdg~T%U+xFL zPpN(Ru-KQ~Zs|vQiP-g=u0OGF2h$Yr3p@ZnU;Y>3n@5#Do|baPALaOWIKjUUd;AOh zqNXkM2OZpA{VHxJU40=}jPE+2-BfTn$K7thSE%>2y4?y#lj2SLLHo3fPk+1{-|eLR zfK-st`d6}iMLX0*O26ogwKG$P`b1!y3AndWRVn@c$(g9{O*CYad>#tg1Ne;+>8ZUx z5WYJ&CHTxSdRTs7y}b&V68o?}bF0WN&@HT+=JK&0s>u8B;1s9(`}>feKD~G!c1YTT z98BKV{aW&?!v2KczQ6w-Y%cH51wKHz)7^*th`;{)53nBv5$*3s-N1MkIe~tD!P~!y z_M;A#%8R)Q`%zy?LtY#e`E+2TjMe(&BO z=V7ft&{qq?`b#f=l0D1Ce-`2!+j$H zXD;qXcY+V0C;0pLgA|7x{I}20_))(Z`mT)hC)cm-%xSz&<3}{!t?^k24{ARS2tJbi z@aHMC>yMAw1YCdxzt{DRb1c#nje zACWMf+Rs1SB@!>;7xnY8@1oIo5IhN+1?~#vueSX{pQb?x)s7nKeu+;PrbAxZgB`M5 z|3R0J6TcK5l6=`^qM%qD`XTzCtri6a_yr2AJ&fZi?>jh#ccd4e7aV1HWBN=f{L&8} z?m=n~^1H*U7jV9n&dDJJJm%Meej)A-&2oK(+oT_MKGo^>z|6i~qxi%*7W5-JH%zuw zJa%rlnPdyc`7iP9n2eh(6vvzJ-~hLm<=L6^1mYj07jBjUsX+8Uz=!l_Nm)T?e2zFC zD_5iC>^|0-yX1XA_e<>jjh$B;D_Y-(F;9(2)9aq&7aP`e-_pWUxWvA zysCVU<^H_zp~~kZANulR7JN6x=wN@*V-yEJ{&1$UTytZ>Cr0;*^6fmT2zb=<^^ttr zBkh?UYvap@3vl>w4I;i#%0aFTCgj?ONr8#Rk;yAtH_5V`=-I`1F@BzcqGpZo&+@2}?&q^}6W(7O6ize<$sjK1km|G&-!z>^$AdVY`iCXNxlwBV z1^Yg9_8d{1j4zsLJ&VWaf_c!-U*9YBY#0>9a6`|zlAns9noP_ht}2@VJRNu4fCyku#ejK}wJ5A9fE$ ziJoEfQGMFzW94d;UWM&kU0`|#*1>3}`A&rk#yWc3#8HMLTTKIzo-LZMa0f?&!mxxU zFD$)A`624>&Bgt-dTO+M^j$!mhfHsYz6U7Xr~7{zxxpS#}kkc}rBY8|n z0-nOO)N6W#;jKpbEuvFbf=-I(nieUa4&*!0so<9x?r^8Ve-im)en*h!(+PQg=cK2P zbV)mre?q^+w^#qH$cg(Uj&nwk8LREjs^Y={pd3Qtb6d__ujo&y|||O9hjh@1=q#d-nVb zfFx`i{s|hQ@5D-2H_D-}PwXdrV%_!EiSNWszCq+Q*Q4LHGd?yuTBzTTTj+j?QL5k0 zdzG`BefA2moB8dVT^sY)hsk~ypWhb6)y9K;N6_pG<}aG`!v@@g7r-th`V5_K7Cx@a z$asv-#WZSsTHm*Di1LIY^1E)0;?RV8)z2F5A%V=Eg>~?{AJayMKK5PT7=L2#_UXX) zo_ga6=TgyscOKch#?&sJSG!lv=qY|>)PJR~oQnz%l=?sNeYS@Lpn{Gk)PLZYX&pUw zgv-0U*wa$_y@^xdpW_Ms+4eH=&-;~s{PunRxsCaUHe=}V^`jHud!p0n+Fj>g8|w$B z!;kMj!~6(Qe7_B8R0v-H!}Jjs_|nfA5Oupt9x{jn*0E=(^Z*mq!xw((ie6HM>l7f1}ym)L+@%CjD!E zf*6S&JFjHl4Q!^f6P$h%2Z7lKoA1~3neKIiHt!O8*nC|-BK@jYeW0GkE}rnf2`R7k{uhfc^zWN=uKHB)bS#0V zKP^z9sn?haZnSN;a3+n`Lu2b>5Mflux$^2q=rse_VTL~imZ&tmmfJu{{ z)sJaDS>6Rvc}v&w&30d-=~?#ve5uFw?LbEqG5yVr3f(u@`p5Laekm8hIVkZBWJAPb z{IFW%=0DJE?LH>?O~14J*|TxmN!-4{xZ@xz33fF3l+d9%^#ZP<-Wkb$v zRXx{l;}+{8Jm!CF?U}tOY!m)%zOlI7`ejls;#akI)?Xs&q57+w3BG-*h;Ogt1~9)? zI(JojYq6isJ3YR&eiu~UHJd&95rMnVAYrr7ZAjC#U$)M+^+5B3f)`t#NAy;HjN*4l zJ!Yr3^<)XYw<^9bk$UkSPa!2?1n*TEH#l1)Uf-!9jdwiZa*-qTH)_1;%*bEJlb#~F z2%z+RB9(U{H_3lQ;(3*qPbwVhXJzui#z&!B-W$Iav|q;0&9oPer?5`)tyaD)7@oQ% zy;<>R<(qr8+|`M4I&LES0QrpIv2kJZb5x(sqY-?H*TTJ0?`GA1(`Wq>Clr)#>NUMy z*f(%pD*rlF{$*AEsoXTXmF=^bpH_IFU*?77eH@xSCOj}8=?A(c+$8v?@8oIvoQ66- z+5B=q_<_FnC-2oB?vL9+%)j3J+>N+5KhGjQF8#+k`WVH*A9wP+JjnHCtFGq^3ys_M z#JK(b&&Tuff2Mx_EsqQ7ce+XpcBWT^bwVezpNCCC&uIQ^6S}(b{X&mTN>AN)5A}RV z*rxQ|r1agV^wa$lI)|(Dmhrz3J(+$UJ&k@-zej6CJztWo5&>lE;cS&m9JU^Iqt;)n zR$-?QMKSKTz+w4qU)t)k`NrC_{fY3vi1uSxLcLES+$rt({o;Oje2RYfd^)In`3jmI z%s(-{w|I{0&(ghjc+5{ST~*m$Tzs#szz6<*vHR4?eaT0?ao|RU-X=HE-rb%(0DgFv z68x}-G$zK=2fTU~8i!qpau0juOioAgPvxoIXB){$U0)P*9%?3EB0P~irnMf&lX83) zCkK&S@0PgjFGcm=Byp>p-kV!4`4{TyeA?uFNTYwFiaIg|I1{f^ij5H`zo zs=VKhob@uCNng_O*(Q8Qb};6jdhKtxT=~`332mdoznf+xwDD{5xow)$eSS{*@%AV9 zc^Gj|?oKOzZzlPZ3dA4v{}26roaL>JUr|gK;_vZykP4^Hm9b&m4ay6C<^ZdS4 zE=WGKTPzo(KBO1R1*ymMJKHx1bv>En1K3fMa$%_t_vlfE%j802?^b)W$y0Zmo*Okk zuG`eEr|mlZUc?S+FGKwPSq+_jSHkSAJE%YWUc+}a$UrhZt@J%*q{rq3zkkQU$M^7S zUWb30Ofhc!1oy{{37*V9KU*b&#pR{H+n2mCpyK@98q{F>Vz%F9c5~CaZU5{s>KC4O zHRL!nxOI6(c5RU(kf(UUCc~4+l~k~i(@XmCBqwt}#?g;S?T7i->p27ShcbIT*kb$SbO*W#Ju{Y*Tn0$7gO(OqTc`I*K2xaqx9e1 zCHP98vlVPl_Y*eCc(DCA(+h3h)9(Oet5jb)DC5iU63@#r57|1!?)A0%EW>^6($0Za z!DCL~Sw>KdVt&hOoaECn#K$yF{Dk`wK(DT6Y5c4GIb9_V4sLvg>vM;uCDi>yH!A(g zR>^t`^AtMVoREWN4+`}jEjxD>F1nx6ezY&UZ%X?)TGCJSW1)Tm59sIXxSxWjxE~)8 zd7kf(dYO7OE*k_-F5k)NHJ3^}($fil$m;Z7kmh@&py~6?wHnuPZr=g0{gf?=x9k$! z#!CJuTA%sJrh>O~y5ZNx;cCM(<;Ro6yZHrA(tJbRe!=`A!mX>gAEu`eDg^$q7EW)b zJDczz9Z&r&5?X(=ON#qr`w@}9jrE`WYVd4(O2QiLzpcM)UbJ%NmmAr^6%S@NH+Mb}FvKUd#%ay>kFQ?Z@)S^C5S_yhPdJ&e9%%Xp#vVh-th^cvsKp}}R} z?Fwx@)^6%RBjfz4BGKQ~1y2g-&6Uj%(eY_vdf$v(N8?h>uCV z<@T*?oPU?TcW2{#G5b}=6Y}p#4^MVaD(#nYKjQNb!a=Fv5Ceq!mB2a1M``sZK^%|q zeT~^C^?oAbPvh4l{cT-dbCcB5Om|}8G5$4wBhyp15uf16rsRgfNbjo?_%Yv1d4Bq- z;0ey}#)S@%yjb#!oE~nf<$l|^bcb3vez*CZ>G%Zv;43#S@0;%xIPLpgZd~fgrgT5w z%26xGdAHgxtY7p!1#ZXiX7$@RGJCzjn@)8yycj1a2zW{K(D%jO#Od)mV}$Emmim~>4b*IBuvalVUzH6*wo4I7vke%2|hNyz4Uh=XGf)c1A`sZ z2zjD)m(ihlh2R%)JZ^kS%H1e&_&p+r@t66t8-DFR;cdjXc--W)l<${#O}B*RKiZ6m zmL9W*n|@c&{M#Ot{B$l=>QMn$vqREt9}jfI6P4F|+wPQf+po)>-Ngw;|A_9|zi^+l z6D}9H&7Uc3Qat3OK7gH^H22K_j%YY6q1j`*SiZs)wj>y#h${Lw;u)}7!p?)SLj zh2+vP?f08bQC`j@KO8G(P9-6+quM|$eQH~Gx zdw8~UM=^c`&T!wX;zi(()+IXb&cyl3zTbwtk$#(Baf}~v3`zxGVK_{$u<>Q{fcYIa z-zM@Ynh(@(r1?orS3P94#tSzI{bKo=5qglELWyL3roYweenh>1NAULxo`$5put)4o zHg2NxC^?}|jh2h_eQFHtx$yz6C+UAtqwUqKl=_?RLvEUfi0|;Mep=$@SCFmxXZD|6 zXxz0V#_Js(KP*(PBT?>6Ub%wKUxf~VD{O1z{@DJu>HYTo27@2;!Vt%JY2JwM4^~UL zL9J(B3&&lL*+<(oF5}(4FXZ~f-sJ9SnMX<2lacUVu}8aKY~*-&U=^1qdo}y%nSN*A zMG2SBOL~*|t7gx>fdR2~Q7ZU#jyt_?ko8l z@Srb3`_9G=if1UtUJd9deT+PxE~9R>)FJ({&PC(gL`&*JJ$XMrC{$U!<$DTz||5 zIv$9Nz(|oj+w_YH{O_h#aXZOzVDtbykNrE=wMw@tN}#8?8?C@@EDE^seR`Qp2yQ$h z^={;Bw7wAevAIFw>8jhg0$S%(;P;PkM!N?!?x*rQ(H|8Uza_`LProkE?~uWva!u_G zb{+%$+=cI4-K+T~y9EDJ-4a^=lYBd*`6mRAAM260?Gv~K#tCwo|G&{Uy@W3PpeGfG z0VeMEi<5V@?lgWffA@l}56tfkcz8n*y_52;m+=wFsY#XFI*vodkI_FBJi`4c=?4)H z^g9`!8r(^EBffo@tLJg^^&+^9Pd}>gDxZxhyz8W#!E4`{kKvXD;$r)Gvi^megl~-x z?VMA|xVuH*a^o@&fgTr7zaqXotm9C}O?Zy<)8$0IZc)72`q=tq``*cPr{CjBR}FB( z<@$jaMyHZ~fQaZPel5i@^dBrGx^~1GG6Q)h4s&uYrUs4j`lD)f|7BRNRP*n-8)#? z57e~iekeWcI|~>;Ps3gkjepS-!*fJF+qqcNOWmPB=_mO%tRTjr$NWyi%T%uGcSt{W z0ly~wMdvYj9c&gcNb4lg+tX@~%cfRv0n^iLKVt{!Z5evASHn=x0VcoqlRYaf`kjq? zy??`>x2M3rd4UV-eduBEf9p(~UwF-^=wI~u1zV5N{yOUw^(yB#tY6C&Eu@bfP3U8z zYh!)PhpU6yv30xC@0^s=JA*cy!|Px=m>)`w!UHq{Ug)<#L9_bJ*?K1O>ruO4ji8(S zRgQCgq59>AFG64a%15EEs-CI)48~t(w@tA%oA~y^4CBw%*9+lsK7q%*9v)F{I^oxN z3Dpd`4kya>C(3;>QLbLgO(n|Rmnc`Mz3xQ0dlKa;wKtF`_g1f5bPndS0mheW?3ZwD zpM(wF9EQ3t;u^X%J}cw3p;O~WG%gE!^B;2!?fU+xzHim|F^#uqT=>LYid8<*xgmpq z{2n1IQ47ER-MoJ zvuBILd+gtJuGS-PW~)q2NPT%|x7Yl5E*!=zD^@WtTxZNWV*Wbu++r3T(*XFd;YvpX; zCw&$Te0t*Y!&3eZ$#4DKEa>#sIh{fuy%!*zO4cLqV>pD5O5y0{dP?Dtbi1Fy=urws zpOi0YU()0Dg}$Zj_g83N(&P4pUy|+HJy$XQTDZQr-QyfDZFitTyOM70n!Mhu^DyQ) zFpl}BM|jtLrEu$Dar+bV(*Aa#r3oy zYR}ejn-!jCsTwYC`-{5IT}to$MeV!M69TskBaiR8I6Z=cM-k+Sq#J*`(P7DVmSiyc zWc6NFw#!i61?B54^cy*|XH9a)!?q4CZ+7Q!)3n5?U&t5TC!_sz6OH_Si_!;p8>D=u z&t}h-@v(#Q1LcL==?^_tkDZIP@5#AC{al~zhZj`;*+ON|KKe6Dp*t-6lI2vYSLbz` z@7+|N)T8fh-_VVB3cT8H)*Gl!H!AcDmrEG6FJhGLR}nsO`W=w0$`6w>c7K^0?=G&N z>Tak1c5hEqufm(v`Q44paydJHvW2DtD#rWSgMe>b;nI6~qI-L)1-~YzZJxq@IG3kC zv-IEePQz1H<%S!Z({_(?=nl0A{8k?PPEFW%X`^}+FWIPlDQ|ky7Md=s{dOv!JqNLv zPT6x5Zu7frJ1*@m^ZJc)%e0)e2St<~o7c>)9`PS#pG7(K!-)E;eCWnnwZHSyp3eu= z*N8sWUPNcfZ}%FxiTzUE_@3%%M|o>k<%pZ=;Cz<%?bIi-({C!>q`xni8pqCPu^sq>)e=Xo++B>v&Xqu4y@DR3AvE~6>9~S@8vWR&_Hpxf zE2tii_vnwMW52M59@K|$TLXTPUQFp#^x!wb%QYSNgXU-Rn^XV6cie_ni9hu|`gdr4 z)7xYHPxL*P;p~B(vkcor&TKY$c8TbRHr~Tc!cUuTl5*x}6mB}fd=bm-<3(}vgSY(A z_j|9Bdd%cX5V8+xH69pJDUWoE+Wr9q9)|Cp>O#BZr0U90Z|$ zM``nWByRpDY4e{F^iVm`r=#}v^>e>AKcMAQ&P45rno8wB9U4bbdxKKW+EY0bwMTJ0 z;XWCcZf!fq<93IO+tu>nzN4HT&C4|I@Yp$Ix3+`hF&rYtqkc#A9FuxfPR06(q`S49 zQqP?n5S-Ix;fe4N^=E+dxwTyhIA*2%N%65?%XcT*KeEX7N3?ujqW!r=wm+ri`xEWY zEUNvq;WMI(j0<FJ6uHWKzpAq7Cw%EKu@_&%xrVm7Vj?&4> zh0EKyKFeqOk2apS=y=2UoJD=Q?-=P((fP>^uE)mf7L|`YKBJ;vHIJ!WiF%IP`9NRL5(QO@)U>!<3krdON&$n;NNPY$S# zNT0BFc~&HOoYXg!@1YN~9;1HPHt$6GV(y6cb58JT;{g3cd%Et3^e)q%B0Y14%h~xG z<6q-jr*^QD=`TPh^aj%(w&}e7pI?udXZ*x^#0iNv@NkaKZ$;-2b>209G4pS*^)vAF zir4+{g&h=TsEWNBLa({tf$wnLsJVH?(+C3a?F*EeUiKA^hX-5Oj=Pr9ucH+6L)$^~ zY=+{W)zHo_+P*97YU^V7ZG-i;pHt0rv-3Ymd$qxR!!F8C&*d7{uatQ9>_6ro z;l4(O%eM=6;=B*Ffyeylz|WBMfM@nPf~SXH2ZoQ&5g$#FA2WSZLyTkk zN9*kl&bNc=%}{)=hCUqVpl>(tAh^)}qrXSvZb;@~mlyeFd>b~c;(FasH`Pk{^4(0E z_6pd^kg(~f#HRvo&y810sQyKEPKoTRoG;SfbAs>K zpGD|n>tEW(VSL(m9l|z|m*G~GpXO({e1_W#4^B&{`!!_m)%HdOo}ADpT7TvQ?wG#A znos(-P3=43ru~{Oc-SW7Cx5d+PA^Odo^Xx2JPV)IY5?iiDC#`1vLb2%Bum)rc77kSgW{*_$uo*RX37=IYrq00GGa1+1x z;lX`(kZb!B_Zq(b23fyQ6*PW@zOjB?%Xlz9xWXh?8!RJv$NkG|9F3#DDvz-KOny)1 zUh)gX{NuOp%fqX0B)J;sIfyZ>m+ArDQSNl_HT=s<;(ao*izwgq$#~AqYrJ3Mx^G!G zz;WR90UCSsy)%6;MR350=Q#TUDF(viZbw}|Qij$p^=_;s+B=3SnTpOm=ypBA71(u48(#cOH2>iW)2O1rinpAGKkd}e=r zOwbqG2}k&KVE5^QPw?!Zd>INqtD&9uTMH&2QEYy%j{))Y?4U41;b%2`*JA?ke`|aK zuW6k%C-~TOghTWHFn=TTwBfXh4hOPG%jdf5qx>$1MLG}?stg}QwkU11L=m>a`0UZ_`H5Vj+$Q->dTUU z4(Lz+g8Ov89sARW8(-Wv_D>9t`H3@~sGiH87C6#NZs+`k2PB>fZsQ+Gyg(nz(3|a5 znc#bWbapf@vS$fHEi`UtZz~?RBNxYVv1HsRKiK#(dO!}K-5YeCF+1etA7pR?vok)1 z&eM~mQ<~P>C~xZ$%WwQ=^W_d|Cqw1;YM6v$b;B=3a_VtUUIM;%QaQ+})`Xne=l6G# zGSP#1jOo8i;^pZ7gEpdnCBF0c2z+OJ1cv4Z}#alhSrEql9DGdmLX(e1XUlKnV@*{v z^LOEKso(58Ca)hOc=4bg!OXiqjo(*1_xuZ{r%uwmg;!QT@Qfnqsy<{b;)`R%7ps8h z_6^tI-R|8#jQq=ikD_$K2Oh|)p{uHb%kPu8=|cuzjndQjtC@5*Jc#4TR^7?)*?ZF$ z(I5Z(EZy@F(Y^ToA<>VlzOYW#S+s5td7YDXjPIeZc6jID0RML{^5mA6e;E8h`R5b* z?ePr+KgoG?!M;-+ojW;b>x(Id*B_^|m>2R257o>5UMeTb>9^J79}hhE?fc{Q%kAa$ z+ZX%2MCb8!e6OA0+0IcJo?TAXOLjg6ba1TS+B!(^5bZas|5aGm!uWA|e!%t>QJzpk z`fWSEN4$aJ{`V3w)O>#Uz9$FFzdS7Sy~J7gyLgmKoFOMx7*z3pP4Iy*H8E0Z7YJe^)%s~sSIzX zJiHl$ckm<4;D=jo`M1MG@cQW89!Avn=GRFc^xx8> z`lMK}TCT~9{L;2i5tPbS!TLn?uH%6BlaX%inE#l4-+3>+q-i_ylk?L7V!8YvS-Esj zwp@C~OSgOBR*~JS$e-{w%0v&~0leFGaWtq`e1jfE{)BhPd)r6bOZ>2l=7> zft>hpE6%4KRXHL1AgSPuT!CNC>^{Ggu=^Z-o!|kGn;f%qaiQIlrT66c`@D>wyui7P zh{AHLN8;t|KA&47b|1fevty$lzj{5*&t>*CAulnmPIq6kts%C9osQk-eHXw^bLQ+m zLxiGJw)^ZWwfoJ|eu_Vj08hZ>ZtRBZn+x8JAj4=%d>POiT@YJXRv{dRuesqJ@F zZ2!aDeuuU{u;}(%xc>I2{hmbo8GhfQ?YCBJ|8Z`=QQPldbo;ejejKBN1ebK|ozkbo}L;rSp@&Cd2 zTbF1b_GXu#)Am)*F4O*9+`ibI={(q?+n?t8#cqxE8xrl0^80CRe}=SEPvZMU#GU;Rk8gG(f&k-yubJ4?YD5f z?UKJYZvXER?PoY&i?-idvHf$<{#2v9fB59>*K)lX$*=1?^#6Y++7CEit+v0aV*5X& zJ89kFYI*p1w~A+bfr0)G zy1dNCwx8<8WPaScRMrWJ{O#r^x%pzL!{uc@gWm!D3ljM=R`2HZntx2@AJk9(lKE>( z>zDZg^`BLmzq+)3k?*LVROV#;XO-43@)-3)l~2IGBw7Dn$^#9mINxBfjp&1i&TBFq zAYW+7n8+7Y+4{xqO{`HoK1*}~X`*|@l}`5kOuMHX_7A+Ga}?Z;-B*WnJa!+28yC3+ zIAHRD9v(mK!8VnHC2$ZPir@fI>9KQdblx@UAHIBm{p0w_1lx@NZj{s{-1c3lB)oeG zS@2{mhO;)GB{~W;CVIy=UyTvJU)xzs}8nZ%Gsm)jY{CVRO?IN6MkUu zq9}&%tY8}!+4R_VVoKm^tpFbp1s1Pj_?86QF5~Kg$X=!6#^@gT7btwoh{@URqV^Lv zemtTN4j&f7TXj;p)4j{WS7ckolf-Lb1t&*-Mm1|B9{F_;Tp3E*EZf95XUz4PUtff8 zsva%4!_(3p`9$KuIKWe*>uq1(pTj!mc6krGQ|*_k#t>UeJ~vn|y8xg6*U$Z6i-_l5^LM<(>RN&6)MiloZ(fH9^NecVfWY=JZ3M6>Q_B7yjl3`S(1lnr;s@qTV6Io~Jsji~;cq+EEF@U!Vb*(K+4JBCj?KZ0>t?9V3rhxB59HlYj3dSf{JD4>n;a?Fyncby8`pnA@T>PE+4-7iyyYc7?3Nf$CWj&4GxQ4M z>r&zY_`~5z2iO09Ow1soh1ajIOXwwFA z(iEB(ByD}iKgK`Sp4yT?V4U`RcYTO|&$Z@r%rV9s^R4LXA2IHQqPX6T!__bxzUO(a ze;lrMh;S1nTt2Y|J@(%?g#U5sAFDbgAJiwvSMw15U$6eH;g0=x4B`JK^XBlVL_RrgW z@FjARZZW-s@pu>|>H1|R&mESpwC<3#5_a*j#wrE=PJlzg^^~#oqgQIbjd=&g1qTb`0Y8 zb%oxq@Ox)m?;*Z=$^V!qEnGGav1*Z(yVc&OTb7#pS##${H|mej?Cr4WAvyP4-^;!u z^&gr^59*!J%=mckv!BC|u0O8+)AdJ*hb+B_F1kLw%fh3+&`!sC;5VckAg8>31=Gs~ z@!FJpQ{zFos>GciU8fPa+xae+*tu#h7qGLHexzp&?eVO<k4=6Mcf7H{=6(s9d4quUnJaSQ3VYQatyi+%s1YGMrYNZ-@{Uq z*;#A!z0)ytlYeGtux#CF%=f5Y@Z%ePRqEBei9Jj{>LOig?Sr@HZVzBy13Aj)B*XIb z%~jA-bG07XZq*21;PLy%kPbK$_5~zS&Mh`NK6c)4m6b1@b6VZLuf*?n%JzrW8U4YR zh|lk-*ejU=KcaozAdh@f`~b`0_H0ZCo!9GvPsx{r1D}H~_x_rUS7qy-XK8-2efN?M zx^l8FR`pJO?F$l8_PNOa(1@@PPD?y^C-BQ|XQXwTOb;?Yv0mNzRnTLRhS7Fj;=p&5 z5BYgfzRURy7T&~Mze5sypJsma*EAmphxbAk(~Dh}f2Sw*Q6PUpPmAw%@hlJC7X)QK zYruQZC7shV;Qe`hzg6FZew}dFb*kI-o87hreQ;Fsm-60*bjxXrj|PwTKl`+YYxN<~ zz2fTz^CNynsA6;mpM_m4S0mmEpVb=rIb0)!PSSmR#m6yLNcogMA25Gezn$gw`ESsB zgve!PZ}DEX)m7CR(CsOgH$Q(Q?6GqDeH@-|-*@Qwak{wOI(eNe-j~PY9VxB?+>hg} z)GzageEpM*VT4`tluw{1P>-%RmM7l>xnA*hZ!h)pnE4iu`}6&dx#T7N;OT&Wm98bL zXQwClN&Y3ipQX}H$d9I-^Sq^##WPg>Y-fI?el)*NG29jE2j%}uDZjTHpcBgP`3L`j zkf0Zy)i<0oxh1{o=l>y!A^l3q?HfO%ZXd^~Vg6C?THZV1TiWc}EsE|hD__a@-syz# zIiz1~Q}0P}yy>;}ndWY3@&k&D~yW?qZuM?&A3G^Sim*Yt3D3 zGreCN{{wzEcYCe5i*2T$isLWxySdwI&0TDR_DA}c_}$#?wdO9i!5YK&AM(4o+iT5T zY{RH3zW<2d&D~yW?qZwmi!YA<7k)Q)d#$;PZDwZ|$Nww8o4dW%+{HFqw^tnhZ~SiV z_F8in+su9`jyE0OKGWRowdO9iLHiwTuV+iS@eZDy|(x&Nkprn%dBes8hO`ccL4toNDbZm%U@ zw3(hQj%U5kGN(rn%c|$ro)u z$?vT9ndWY=;ijd7q-&!}arTxA-5_ z*GbI_hIiiJ`;bf@3`l>EwY%QV`M9W;+x4^SWtnf*^2Y7ht!T$+r+Ry~JoyI5^h&yA zuKG`Rp4D=e?e&xTKI;cmAE(>&OE%uxY~^r!FB^|EHcqnf%3Cd5@bS!BO-{4%&RdOd zK}SedeZy@UG3s-!{2DNh$#mm#UXpdYUe4u-Y>1Qx{U8uN?6Gp@bXG^=Yt`trUsXW- zj4!hXy7*lJA3{8mDfmOXh;`DQj@L)ui{^j1%t9gEjE=XO9?s}^tF=p6f9h8DGnjsQ ztJ&k=t15}ozVCz=yAI2w)*Wc zJ5kPWHGbGTUEjZdg6S>iH9x|zDg3GVkMpbPZ?x~eKQMjX=#|JE^FPXi0-!>zl z+ns(chWAJPybnLOseYX4U8hS;yXC|6iPIDGyBYk;`!NFVPjh+%-v5x+vK*XW30)VJ z4k^o--Rn}CsQIq3W>L={0G++x6H2$}cc1rz-3SUGA8(d?_;`h!zi0gB{MlL1aCgdl z6Y4dWEVu8xhY9rry$k&c^m_Jr&sbicL^_f#p4A**_j5I!KK|b0Sv}%&mha6LE|>hj z<|bdG^@W`KIjP{k!T8J1(a%>EG$QAJ_dljXUngO_$$cQ*?`yDj81zBbk$=^TkH6FS z(aem*=M!B|fG)DEBs;$V_Os^e8B53KTf@WV_WsFzcbLLPdPoQ3{|HzA#M>>sI~e|6 zhHEiIKM(%KJZ0{1kLerFPyK^$)$loO9VK3&6XLILHv7ZRA;ma_=6f;Yb$T*hpKo>g z1j=hY?X)-^?T0d+krI#mOX_bmyASEZ?elXOKREdgvo(;i&(q<3|9JoHGWGs)yefBZDv#58zdNg+r!C$wq_gvf_ouV+KVbgCL#9`J9ym0ZyT16Z zmcP2G%CG4v)4zVsM*S464msz>f9eC**Y0n1v*kn1WmEcO zbl7uT-I@KC>62fw`r-NZVGqmEOnNY%ar^iP%E9jg^6&mvROG*#`ERg&!hO^1yXW8a zzn@e8iH4b)uYu*5rSH8Q9^T{2C8m(V?G}GJo9S@hQ#zaNpr02oo9*CjYzKM&kkf69 zb#pTNER>dN`u9z^T@msr&j$Tp{`2)yYvngI=NL;asejfy=8`vSxJvsXZYTB&ec{IA z^}1ZN1@yejz4O=V8~)bfYcv0HAE&zEPefnFFh98HvhmcoJf8-?kRSZMs^wz;qCBtKJ{9#XS;*q|`l;V`o$S;e z%2Th&z4x>7qi1P>olY*-8C|ckzZBD}DD+yM{4>ZS{UWB%^Rrz4__$R@zv`1(@0or7 zW9}!VbtV_}wI?(mSJPjDK3Sf8UdxN|Q}C_pp-$<OYiL>id`;zoPWor{(hggQpY5nga9m;&4w(xKCN~+4?T5H=A2w zZ!DC3QYZ&1*y%QyzqiExwpqkJ{tEvWf2O}3^Um0RqxpAw59YrR`FFXkpAV{`4s4vr z5OSs@4~MaGrlayE2MW^(nCJs&g*H#s3#k54tp5C zd{;YfuZ2gy1O7vg#qatgf0LzqxpwzYnBHmOQ*Y<;Nvp&*ymaS^zc^hXT{4_>e{axq zZCr0SHe&Q9$tAjh`+eJsE6T{_fvzW`wj^`ymULoU!1P6z_8MN zcF=U|CG_ypJtY3(bcNN1mG0U>)BQ;aJ-l>Ji@!KsaPn~IymHWVZM=Fod#b}Y$=9*^dJ-S^_4Opaj@8$bcz*Go>f{7shM z%hBte%g{^C>C^JU&PF~mx{*HR{8efG{5*xSU1R$G%6833O~>2k!R(qJO}Bmt+PSPA zZZ|r)y;INmB0mQqZWp&#w2ND>-`+~P$$@QkF}*UWUJ-J2_fi0zQ}FH3$n z-dt(FxZUFIO&sn+63*?HEAe5!{*R;|_Og9JrO1=j3;8);^_TtV>HRgNUl9K&*LOir z36Cf$!=t{@4!JydyOvM>RO8JhmVP!b&+!e!w?Ryq*gp7qDW~6e?e|a)=C5Hw*-r5B z%aKCwMv2q!B|^9-G{0tFI=`fKi!@&-AJRwp-ox^l|26u(ynb)4xmSuudAwh^g6(;J z6ts=JFDdj}w}<$$b?;Bvcck~e7sS5gc#!N9wD@`7iI4j_KV<9etlOWhFYtN&bj~ad zpRMO>DW`Lfl*{{>-fwohDBUto!}+*wepI6d%;uMT{h8|_U&rTq$k*|?9`bd3w9DLn zOIIDWbXFa*d`5J-(mKA~l7HAYu*aRRvUPkyf2m?Q$EHs6jdH=At>0_b*O}h+@%(K4 z-mBHOwBI~``BBE$uaf@_Ee>m9q>6PgCaiL>V@;6Fz}NBRpOf(*7(a;jD%bJ(dZcVU-$NG93ZcLDM+@ez zSz|cnV}=L^`y*S==l4DPdcK>jz50)^o^Q^lv7XQLQtInyef_MjoAr8V4O&rYYmwMW zY$kRPHxsuJcMwa&UgCb@LE>TJG2#j0DdHvK1>!m48R8_-#KOO=V~KV#Q`%}5V5P0I z`M!ZTjc5}SY3rkO+eLh7>wLN!iGf%owi26(JBZten~5F7gT(#BUSf%Oig>yKXEj%ia49tK%7Rj1u{~8x)&4Y6B~(vSR}R*n~6J!+lZTq9mIpg z{ls2kiFk^5f_RL0n0SeJfq0I1hByh`I@CXLG_i^}o7g~{MzjS$QhvG@6Xz2fiGf%o zwi26(JBZten~5F7gT(#BUSf%Oig#L>hm;%s6AaT?JUs7d+hUQC=%Y$OI^k=ROXChj0^BW@;k z5Dyaf6MKmz;wj<@;xXc3;w9n*;yL0O;v^lwlKLmgg<(pMDxytnrL7Hg+r=+wt1ZBj z^7H*-;(THwF%ZoVOe}+5$re}+5$=`Ki!Lo^NEebKr9kliOs|v z#BIdQ#17&?;(lT;u|zyYJV880JWRYqyg)ohJVTtM3q7U$#L>hm;%s6AaT?JUh)VhC zUQC=%Y$OI^k=ROXChj0^BW@;k5Dyaf6MKmz;wj<@;xXc3;w9n*;yL0O;v}7*kn$5p z6RU``i4DYQL|XtW<)?cwaXzt;7>Gq;E3uilgSd^jnb<)*NZe2CC6zIHm_yl z&%R$WtP?`XBm0-MAHPCcCD32iU)uOfvwkj*i+tMLJ}&J0f+la*=1k~k@sHtnvX7%6 zUj+$@dRZg&iSb>y^NE@PlBUgnmB%w|9MH!fWL>T1Cx6on<)>WoEp@}c{FCvIq5Qu^ z{a5-MYFsoMmv5Fx(K0H^Vc!`=aT;Me4x)`_;_-8T;9s>^!NI}`hUoEHZCvqizizz-N1E6 z4dkx|>wT_?kDyV zOT<&e6U1Z0!^BI(3&eB8GsH<+v+0bn#L>hm;%s6AaT>9f_$YBPaXzt;7>Gq;E3uil zgSd^jnb<)*NZe2CC6YBi;44zjl@7K5?hJQ z#2v(K#LdJG;z8nmVlS~oJViV~JVrcByhOY}JV!i3oMip<8Doi~iB-heL~G#E8Pn*l zB|b`AOq@?_BnD!U*h*|B?jUX>ZYFjR4-)qidx<6DDdGv@G2&t3CE^9*IpP`OB`i!x}(Znj^Y+?g(8nKr6C~+}yKCzJ)h(%&6 zv6;AoxQ)1(*g-r<+)wN!mWZc_Cy2+0hl!Vn7l`MGXNZ%mpFU$OaWt`tIGfl&oJOoA zK1y6noKI{d24a!eN^B+jDP zOB_wCBF-i@5T_AqiH{N&6Xz2fiGf%owi26(JBZten~5F7gT(#BUSdfR{hlY#FWJR@ z+=JHt$i^!k&}MGX@rt7r;}yRbollsp>*2l-9dCF`c^?eo*Z#bukB$VsUpj&Q(NXR9 z3_ZSJ{W#>?!~L^_^YuJ^wmd)E@8jbPAy|LQ#|5xI>K9*MURNCV|29ZIoAlHd**9OD zrUc1X%~bSp5#+Z|_VVQ=7dyUye%}9W-%AR*Zbk2n=Kc)$e?|N^^FDf#b`=PBkAJO84&>s$7| zn{?P^`_jVh#QNut5wrbj=C7sB!nKfIae20*JYCF>)RUKIik7F7`Pj~U{JqJ8-=DS7HnDsMSiW5nQ(*o1xJBsM%5-d>M9Ot!x#TNWU&3$ef9G>=Lnlgs>>OSTK&gFnIl;LnQ{{MiukC+?iZa;7_HDaQ4%N!CF@5Bz?`Ju(Yr3nR+)XObZJ zY`ui^bMVUJWIakJxHX;Z-mFf2-`8vJF^+dY(uwok2{-ElbSqTsZ}?Xc3dlvAFCRxk zeqNURHX|r+cDe%a#rFXZ7lOIPhHBq3(wU|3ie^t7mC=xPMmMEo@idt`)bp zD=1&4hR~NEz6iYy?Jd}QK+*L9_}~lD#>VmVARgKyzOOku z=T=5DpvMsILc6RV>)B`V?(I>`CHIm(n-smh`*G5>S;~2}bWPU}r02RJ==o02bMHDU zcggf-agw#Cs2>dYHa6p2gCB3k5 zS%trq1N`k2f9ZCBKeaFP*qdF_f&l=|oG%>6lJjN`ICgm!tNHbM<{LS*G~! zsSh5P99%8m`a0FY_;=+H{QIpR2)(=4C|`uGm4>^FFG6F5z1w(;(#7>sXdFfNc?;L5 zPSH;$Kk0hYqv?9HXVdkjH`Db6)d#VjS&IA(Vz0hl_0=+qfA3PoT=Eu8Xt;du>-h)c z`wtAk_dh56Rp$FLe^<)K^s(jn)GNz_@nKmWj1SB5uuRJp%fo$=kFar#zAyV*H^AR4 z@t1Dr`%E4-sJ~1u)-6+aSq@BoTppZ%+Sge=Lzmfqp;m)w|4gDzQrgqGgnG}bC=C?_|N;=e=mGS%i3pt*b?fUA2JfAC<*n)G{ z+wD^<{>pOSS+y?thUD4HmCd&^zv+bgG+;VGyD&-m>3VZNbf;p=NGsP{CNH{|^a=>oIM(gmmWJ?JI>U{7Ukr0Dbeu^y`IcN|B*qucU_W*PI_v7W;D zu4q5o&tU!h0gXRjwMYZ3kUl~|eyt_O>1>y9q3fvSN8-iP_esO}UXy*Y?<)?6^LXWc z#4CpDm2jcdY5s)YQGUOt1AKxfbZ^)1Vb?yzzD9eW-6zERBwQcWi>-_YZafQT7&eU< zsqw>3O}<~YLy*o-$t(2N<}NIc8-ZSsJ)jil6}i{Q(tpb0TO$5lPVpvx!wBVD>=Qu} zzCX;*TbA}q!~3~Pp5ILF-o<=d^umwp%)fP$k}>u<@%xi;?<&%tA_(~(v%~^s^6^lA z`3NQQ+XRynw;Ng})M~&F-bHzNyXimhBdQ?1)#Ck>L8g~Luc;OEx+kKS>o54brNZA^ zBY&5xkEIpieiXH1F~9AT`awP2^g8g9@kvvaF;M6{sdV)GXX`X5XFe|Jau!O)x8?nN zCNI8kuTsvC|Do=ESrg?S_aSeM+{kYl(V=pDGjO~sY&OC--Dv&F^wWp*MY`gsVt7g- zk|%7OsF+SUZ8-C!VtA@xxN)kzpK{S~=6S_ja?0G*bCpgpUG-dO>a+Mg^o`%!66+b% zLnv-yd`mUHP~1TGGP;k`Jv!>PHC?X8BQP{I3GWGR^Nv<@@@NRb8nV{%M+e4{`PW&UCtNelQ*h2Ie(1#d#|~@ zo-=*xeDXZ=DQ-MN@(KAY{FB znyPpuKIwZ}y(RyDpwN_6xeZh0- ze7x5Cce;PSBA&U7XCLC>xx0bqo5kUpE5c1@xLyedc|rcNebj!h%+7tL@3!h?2KbEG`eLxZ6`p+Mp&))Z+Z#4Z0|NZAD zPiOx7&u5<0_i;TeLwngJnU)9i#r#p+{+<*!+7C1pXouI!8sK7Sna0ypB^@VuLMf;_ zJ9oEKq+0^$_g1>Cy$Ypfy7hB5&t2sE_G(!7!Y`3sAlbO=J%cABeuTYwF>)i{^|Afz z{e=a`Re;htCl&qPLGS0MTh8ix^lP3G8pm{-eo5%G(ee-a{7AkdozYXv>+jQ5cE57E z%I-~0SJ{2Ya(<}H=Jb!R74b#&fcusaZ$bPa-c1s(oKtlk;nM1TnlCvQobCg3Po?`b z-37Xj(mj#xLv-8thV;AD?d?WBxedwaIl{nnJBjT5(6>H68|Sl^`T1S(A4(;Y%j$WGp=*b^>*kufdz-m=o=DiW z+1v}Lzc{{_PLT}Alg>1GPajfezj^Lc$p1Ebk9>PRO4lVHvozv#%5=k-W*4Oo71SNm zZ6n6D2g%3Q>ynS9%*P_;W1itda}|AFFZ7!H`8-}M_s}Q#WPAn)MYqJOeBNyC!PX&sOUB61 zUdHMBJ}Ttnvm*a_J?&D;+0A%`KcSBi?po)u-yhjWGVf(_Q@u#rfsok)OX)UwORJZu z8~WqF3JbJUALaK&48M|Y_P?sv&`o+(ugk&icAnb_;a;)OVprM^TR^hP~9AMWZY9;WGIN{*xqCZ;coJ$|dF@bXhy5 zcAt2NpAB4Usrx_(D0c&J+97va-GtfuS!28(Z<`m^~0)Egc@uLt|X3gXV+bYIdbUc8>X|10NVYWi_G zJ}mKhePF#I9$%j(>oe59c+qyj>FD!2GR~>r({Xz=pp5I&{Tp;2r~ALqeUk2H)t!!e z(cX7kzJl*t8~0^<@B7!r{RQ1@$Hx5`-I`q)!~87cIi&FiV;;y?=zmG74iIAMLahtsmgQkE`RkVN+5Ik**R+-8 z->liq?Dg0lSp@wk>2+4<^|7MYV}C1$@b|z*v0tRLC_t>IWIO9s>nX&8C#^Pp1^3oS zf5!Q_WeENCuit_Gnn?Y1i{jD`MSWWq;!Izla^u zX8s{3-kbv4dyPLvvNIU;p;mjLV5Z)ew@y^ zpx^6ftkw7TO|%89UeCG2-07T7^_SN5SbS0bj*Gn@{p$hm_v!ns1Ky+mD)-6id!OG; zcak1ENspbR$Ih##$5)gdmch_%^r)X@<<2F)q2&xt7b9De(Z$D0_mD1kZPkG3oRyki zIX}(vZPDQzGrFS9|GEvzhhfhpb%*XMvkSV6UX|mw>6~>I zZjOy}q^mkDe3#L^(!aDj=D+%=`72qy4R-Dv_$lVE4N^a`UDXNqF3UgGK_3z~+V$V~ zn#`w^tbX!UXhB6DO9}I3^|_Gr%**}fc)(X6ov(j^9kVRDr`*@&;eG#mNG#s6-Wa9n z$h_A8c|m!g=PK_%4{s><)5319x9KuI3*ABK@9Pi7)M|G1J{aT|dKg$ae-Ju5ES%^A zJYzUN@AuEwPe&*Tk3lDSCd<8Nc>KI?pD$_}@kyB(k$GPHH`M&^qW<&0tE2MNcPROl zzQ{^@^=YgBtI#ulas@r}A(gA2kl3Z3yS8Y#@7rkeexdZd(P2nEvs1s<&tN_U@GHx= zIFN6b!}hw(>c3py)DK*@nXQi+r2aox!OxZY@{xY!xJUV?T#lbMej2hI59;^fmt%&- zw+B>{@jJ1@v>hp$+wH5kJ^2GUk3H;VdqjU|2f!MG`F~0LJDu9CnUQvGKD?Lt;41X% zmH6PNlzwZp0HK$Bu=&I0c0Sms&a6JO`My2mgS)Jqy#D&MOZg^r|CZtZLHhK&e-rD| z_iOzPrB9niywCLP06lh_@f+>j;p?$F3kM;T=UVmH5|LwMylDjQ`Kh-2q;o9(u;+KJ zUP^2SdH$^PZ+6do7u&l!ws)KdcRlR$nAfvCo7Rv1KU6wo`=h$8-Iw)0RxfNfu6~|K z2D#-)tDO#JAEecki%HOm)=uJA{ZnPP>c^)vxXATuryrqD{)!R$7uQGe-XO&Mw_alZw$~Wz(|3LQAx_U~+oZ^8G(7+;x-hZ)$vLwdE(BWATSQzhL<;vEGK1Z`RL`QNDlsuVelCpGkk( zf!)TZO;yj>`)ihOo6$|HoenPFl#46M_YakR?bT*CP~lBzoM^4$)Mxdu=nHsf%XSF?E7Hj zxA)4rG1#$jzI;9d`T4fwXRz^Gwc91!wT|EJ{)x!G_w|In&-4oWl3LcUqkgmU`##a~ zKBNM_lTMrm2R)&o+pBH78182IYpJ$+gS$rQZF~m0^dGk!x}SR-;|*P`2T26<0sX#q zLG17Dlh$wSI<6S=#UTkN>rw6fatn`eFMSC7e~96Z8g`qVnfm>7?7upnv~!%m*D0jc z)=x_3SidLi8T}u&J-<7W_ogZnfXnr-rdIT?4!=I;C)X2ely3Q|u}WB{Q{10j^BVPM z=SA_NK7TXL-&N|X;jA~lrGg%DdTF)SyYX3CZQ~`f|3&FjKMqn6+c6(jy#{)j9kW{9 zzAxc&^|G`gAO9sPci%&rOyc|Pv-lgz_5D}TJPGW_J0uA7)|!fVpNit0BHw$(-F~&gR=fW^%dxWC#^o9ZrA(qymO^~$NG35M;%PRuM-n?fPR18(g9!27(&0F z$GD8-=UVmqxrlyO+W#oyUo5ZdZKF?1w!Vk`iflcT>vhxPz7HXd_Lrib+PMxHbnTMA zmTDV^g4^_bqUoZX{q=mgJ+S&PeG=C<^n0xDK`+p=p!%NUR9yqdyN)B=(?);4*BIe0 zd{FegpSw^xuKeNma#yaK&+a$5)#7QL`gi)n=jAZ|@VcMA^vVjsf_zy^g#9t$$$!=| zBS8H)iy%KLg)^BV(-Q9x^msh{5r&WLf`6*T`4`hQ9Owypdp>bbL_yp~h#p@Y{znpi zh4_I#)hB}bNJL|V9(az(UqSv--p`ipyD7>`c`Ea_yy_>D@BZmcNz*7vSRTZ?DB33q zeKHB}MPD3R+<$!TlC1YfJ%~8HlF^|%$=Z~6e z*ff-!TS|Syb$NYz#gjakR~b~_kp6?|n{UdzJm?;$@8tn~|9INq_T;P8H^1;I^bP3p zq>RN~Pkpmb;=EdYlWrNlo_XOs#_vtP$b9Z)^@Ym8zu8zY>J|JuTM+ekvO*5FM{>~j zZuk~`FpD^a2qBUObi+_N;sc_7Z#ag1+;9#4{jBT_cR6cW24BLDH*czF54T!*sy8Uc zdUgZ!C;1QYJRoIgN}kntVmVNMZTdRtYcYiXr6O-KuA%XUE{nfugk6*(`%5G?$j2eG zlZ%_^K0xHC98+>cXNl% zHT-V%_L7tnPv}|4_s1|UgpPB6Z8dZiPLZ{*%G4KMp8j895Nf7vfV_d0$z{z<18zstT( zd;bvm{nN(hq1VcpK6gOFrz4HO1L>GfF#dMBrxT37L&@qTov@wh?z3|FJowD5_MUtt z<+ty7D|fnN6T=;{_q3DJ6&v)uoVTnV<=k)m9@`5;^$(6$^bfvsb6JnY>*tn1Kaqc9 zd*_Sa7J1onQqvnSUPC#E+sP`d$1PcTMplU(gLpTZ8*=o=GUN@te)^xwdfoRGN|!~k*?|7Q{F{&6A$fKW2}xL%9n zJtXu-zau`U3h{sAJ7ypF`B~#6y*?{OWT&1rejRQ3l6B(hPIsPGjO7S?6Sq63;qI_- z6NN67=VyINHbH}5<9x;PwNUai*tjS77vZk8UyOalD8FP6<9k+~>Q1Xyo@*%me!7qI z`#yEIteU89KX+fo3Fy!0Bz6nkq*L`#bwl2d$zMyg$r0Q&LK@juqu)`U{{3Id(@x_{ z_y>QtS07jZasAGPUW()k^g;RV|0m&>(meGq_b3|Q?3rufd#zq@?wRU?ZRU>U>@Lxl zas3ve`i%ADFJiq}iSbE3r&s9738E*<`tGRG59RHzH?1CI-7xcel60OblF zWSPI_^1Jb0OveJ~_&DpO+v?BHYe4cb!Ep-;IWe_{{mLd4|N5XfZ zdm_tqi()RZ^A+zLkxQmXpBVf!RSpR|HM3VnOmkIf@e7An|@AMn)!vsZQ`X)&K zVGA0%%??5MD)|e|_P(rlM=?K%qK~uWlK-yt*Ei4n_r0A+x{KX^5pR%RX#)E7)82FB z^8K`XMwQFa{OO#;AmbQP=7OM)>$I%FThSvouglVbN9h-+Th@yx#`$tH^@)K_n?d`wZ3R{kLj)Qv(fzfJ;1)6 z3*r9w>t%hMubQR$PV8Exuk72m{M}BzrX89~-lY*1n=RfYQWp6q=Z*-WuTubzIME8^KcN1%B;T!gmc$5dZMtpZ~fUCcpXuWmWd+>qM zL3jaATz~h<)%D(dfSBt+)#khmU{U z-(eB@xM7WqVd2R`amaHyx+)!?S8q}dlRH1>FzhyYM14a=N&igwAN7Uu<+z`xxny#W z_ee3Px6Fg?A6Ng$5g&FvNA zn{U0t^c<4N=2J+&bo~L1CtcrT@tOIn>-#GCOXpLXEkA?VjqiDb*^P1f-cEvEg(-vE zji5L5!L{0reUY4&=To*CowIW~x6|Ee<>kIK(0zxFZ*u<-$5X@(p#OdJzmIOxtNMVt z5gzr_UTym_;Qo&M$#`k@y+-M7dLQNNZ%)K%Q%4L zr)#BRE_sjT^RZd#?wfDneEuWu#}8Nk{V;0h(m8WA-n4GIVf9qQE%OvJz4&QMx3WES zxs2ucYd>B&Kha@EApXoJdAv7jM|B^ zK3lEnH}A3bqR4)jw@DRhy)sQ>UDPYd;9 zHs3Ww{lxWhM+H4pu7;pT*lqQWdihnYmnT>+CU0IZ;_ksGmN8hLGI~8L- zScH1&LaxN#kT@Z?;H&#pe=k!1ZU^L)DLaqO;pqtz-XA z^V64C&~xoDfpKRpr}M79{$z?Iqx0R5nm^aexul>kVmp4g?aB10J?RrV;1QF+(vf~3 zo)v-x!L>xlG3J9Yo~QH5Ja4Mcx))jdaW}))Jc3w6r?UO?eD}T0-dDz-&!P5{WUs`J zcEiKn-D>{(mK)YEJo>B1N0@2_2x$1^3AdTQ>^!pdHg1uxvhOPdkdmi=MB*vHE$tof z2vPQru^qQ@5KiS`}-@|ST|A|FHKzY!9NfC7& zq%5m@UP4+szb{m|!-4>PEnq)zepy_U^E zode3{{n}U$eQmPzmqz~s$bRK^zuDrwn^=>z`(M+1OYyY+a>-w-+xI7y%jNmBb4B}> zS$r-R**QWp>^nuQzT z68(C!jrZh7EHw9=l{P-IV5#BGWtLw1O8p+fGR0Vboy9oJ^ZHusqIK%u`;~pq*n9B9 z(UaouadU?~7tP;OboZRMba-z|Q`KWy5$Vn~_P*ER6}wB_Y27@NLYRmh} z&9IU7NcnNN=iNh(Zh68Q^4G_f!I}8Do{WpB zzlF%GJoyoyRh0dy`aa!4epqGvkXG<*`k3)g-%<@G>61UHw?pSvjVBbPag#^Rw^ery z$EU)_*64d5uR!~P3`>2fzj_&~#N+!NYaUc*_Pvku&VHU@b}pu$i<>k5FAG?_mVUPH z(mqRk_I@($;JzpvyfoSHV&dmpi(Fg1np&6eMu*HF^C{!J>Mz}C@*sN4+&m`{e1^x@ zQ^xhIa^Gd&p$8#%{p>`zck#Q>4RQoNc<+}nPIy-7C+(i5;OCTjee|)uYiR$4k8aS2 z+%wl6yU=CjYjV1I)77n+&s$< z?}dUK;>pXtV$GM=bGOkwJ0G>y{Dm&l3(}ug`uq9Q`4JXTy2A8M`rI-N;Om*vDI4fE zIZvmU9uPZR<7t`lCH>yA~q*#Tg8jF zC*a@d;)a|&EaM)2?uDG2Z}EThkfPhQV`!MTJk(dnLDLOaK4*Jk1^o|2^iP*qdZGQO zrF*YJGKPB1<+1)j%8`MN-{U9R!J+CssYrK!obE%Go{wk7{O#@gu8Q{k#o8ZF`~HVA z|BQ0Q>BsH+raRESzgr3A_U~Z%Us;j=|NLXh|8Fq=ar$xo*J%D_5rjOkK9_FktLpcU zkui1fHRSeM?45Pj+1~jXDc|+5cTNsr?>zLsVegz)c@I4&4NIMhY4a$hZ`z@d&F@|d zT{^BaU0_jP54sF>pVS?oOZOq8N7n(xSU!4$o^DThI}5(~ix%OVJ^L(NPmf|Q`73P? zFQ;ebRp^;JVm-59lg^X-yl+~!)!Y-UUi`j|u*CaOqt4@t_fs)VG}t(1+@|#B>sYgm?Hi#&H_4|eG}GM*+4^Rwu~aZLl?^H z*w7vz9Q==$c0}xGO+TM}M&3&POA0y;tM^nrZf^LWR0I2Vozl11W&B!RpCy+>$m8v# z%;%|lsC+N4D%dy(*DEd&-zaZv7Yuh?=pV(#MgE{arbs+G?ljKwUD^Le`E?xVcKhDP zcI$4oTTcJygl>3Ni2YX(TuaQ~$o&Np57Kl0cQd`p@~)NqAbe#$CXf4q@@Gu%SrQ-W zD_-A^a(z}J@b*;Z{WV;9zv?=5r#n|#e0wD^d0;;rLjJnwmUvgfeVP90*JRx#>mCmt*uQ zuiGKLxSk8)VJfz8y%yZk4VQk6*>@<{-AQ>Jim%H~cbXjdy+ZBlj}FjR+p+F1qCeyb z_4(X4AxGO)?m}0mV*9$OT2bj#>VMZWdrc3?dAj=D@8umS^(kb3C9T!ha?XTQxIBJ8 zX!*N^YvMg=u#*eo4|0Gn$j=Y|M8Xy2hdkFK{;3jA9RIfwKijqI5r3f~{=e1uU%UK& z8S(Ei{r_5)WF5cB%{Zf< zjGxhM@uz;CF2nggz*uiht*~>T$G}(Pzh`<&RHw+3$!{DEdPB}jQ@MfM;bt3`FUZ}U z{p8N%P0k}#|GvI5l%~>c@|vz%qvh;-5v5F$zn1P)L9k`jb}bj;?Z3`&L-xM^Iz!VF z@ZW!(q3IL6@4wEF`nQBsC5(Kp)W6!E?&5bL3iL7LMEid{~z-O{=L(@k-r!$`)esje< zy81Ic8vAP%e=`1Mbh=fGCHILL-v{=~eO}+kg)qK=$L-K;+`6EzleEFG>Bg56_ym0= zd6fsC?~n5F>d?Ja>n)u#&+3!ojOm<3>Td2XDYnd+MfWbc?fjY0y+Pe_&x&F?&oUzG z1n4$754?vlohKQRr+w;F#dH?sob63B*Xg!QoTlHKdCpDCM2z}^KWQ)8F@17A*K6NC z-37h)8n#c>s&`rMwByQpRg3+q+SfM>ORo>V{YK4!kC9{W*9gS_V`!hgcUaPCHvSp9 z9slo2u%X+hFX;DN^5^Dn59P0t%fc^jn-SpWj0M?v-`h<@uZcW^#Fz_G}C9 zH@y}+cCKXoYVFvFPMTl1h4eE2b5z~2zMWXn&Z9j+x$DmfU+gVdd3z_a+}3`T+i7dR z+^&}PL;ZPsU*1<`?R=c>cBK2b)eF*l!`c4r)hK+A+EwJs>&4e2Bizp+pQTZjzph&p zAxB!?S&%BsL;qL%&U0V_`-eF16D;NP0C|q@`#3~;^CE3W(g!sfop*u%TynqiUwDFg zczHoR6qi|g#TC=c{kR-HEKhsgH`Rap`g4XipEdq{jP3dY+6Qxv+xzTXQ>I^S_JHt@ zwac{I%J$wq4Hq(duZM1E6Ok9rCj^G``(onyxLDDzfgK0>{?&It-;0)RS7LPRHv6Du z&H+sa^afqhIs5c`JdW5W@uYKl2E0F@@3-rFgjYLpjVC6#X8jqx>Gp$1hDrIFqA+<22~q%6IP1uH^s9{%0=v zi1~jF`)_rJB|leeSFXK%{7H%5*J=3vx&h^;{p01&C5yD&&E0NqeNg$PY>%xpx#7N< zl=4`%=S)t0-Z-6O^4re)2A%$u=QlQU{Gz4W9$mVOVcZs?0vpU1Wuj-e9)z@ zb-ft)5^`DiXRI4HegGe#sJTQIYsw@0g;h?xy}onAWL?`1IeVqD|oZem|`RV$&rJLEWo6NnNa{Cx@fxVY;QvKdiXW?3^ z2euO@E94DwfqZ`GEb?Ldo_rr%F0nCDv0qt!B}Wo&H_YE~m;Q+9dz9rnAX6ZS_ng=x zq22s@KSBCyEbmdpbf$eDz;B{s@T3z#<^J{P_4e+y(qDKDr=Y-$Vx@Ah& zcwFtczGpv__WOYLZ@dY3I>-1b_&Md=&ldc=a`IWZ{WCs8e*iTV^TPq~8}&8T^{F0y zf#uz0j7!edRoNA=KJ;x!1(_vDWw^t)54>M1*kFi_FdQ7Mg2? zfbz6dTYs>b@w8OWQh!CR%M0B{tsc2AHkZuS@33bV4fFhxMEbs&+)vkJRafXdhd2xJ zx0X0j#$EcY)4s`c$P#IEbzb8}TNuzX1EGXIk0>M=zdXY7&oGqv7WI(MFbt2dK4%zW zTvPrfDa-Hr-q*dXkZ%R~J3?HZoPP!L0G^+w8^3M*3wjLmT%)ha8V9Gx)zI-PQMhc~ zAjcn?+mOrte0E;=8|mC5@5R2ddh9x{*fip1EjP-Kd5`iv^stgd&YUi$&h)}*u7^f9wr`^>z}&ZTR9z96X$UOt(w zlyf~;zP&8p$k$oGo1^zTqEpN|QY1L$G+13jlz%lsGb zZ%&^?tYtgF!mZ}7Z;1Fpua(2|vqJc?AVJm=C)eJt5%d`w_S3VzFYR>2x`3To-4v3^c+Vl@3+fH550`8t zM~Ke9K8}m}pCyG@A%4^!v3&lU32J%&+bwJ_to<*a1KX+ZeLX4igSPB?p6>-#iqH2# zk45@dnl9?0|9sp|1igEjV8sh+65?CIz->47JVZt|re%)u)f4I^)f>eA6w|1G> zV>~}l>_`jG^$KalJ`2~Ez8|9L1{*(ByGQcl=h}@Kuh~n&y>ssDgmQL0&!@X}Fga8jc)KxNCKvOJFZ{gC zCGuI@%WF7a^0!4Mz+Y0$uejZj)>-|@dUTVM&6Zx)ZnC`}PP@5nLey^3j(<-03eO6` zg5X->wYHnS-(cwW)5_!a)B9^5K=MhAnHSkU_9Nmh$a`Ps;rk{*pLJ3W8BbDrG*#Jx z7X+8A3qQYJ{x7%3caHe!PL7a%%d4hny1B&c@hkavx~;yopb@z}(FdlJXUdJV3qNUYAHT(TE^-We z(8_Ow#Czxq$T|4Q^Eal!!h3yteplyhpmeBuyHoBv106%7FgWlbg=8U&U3u~&FKB(N zklzLQTT2`>U4F=eTxmX#NqMFSq8`Rn+PN?4XYE%*{$!lX^b-5S>Eo8Z%U^8Q_Egxl zABp72%RN%kMLyziTPwn?jKX=pM)px^J^~hxB42Igb`V9vI%eQ~wtP(8@OPijv*M#X zlOM1jZr3akC*H*C#fDl>JnP~9<5yFne1^p~Zd+s7OR%mA@q({_*}YZb#uFa4@!zo2 z#*1s7u=h2>FL=_K7E$_;l{2*41cLM3eGQ0J;+OFPJmI6T;-$PSpRenhOnUe}?yelllk5E#as;?M^(`Av{2038P7+yzMbjS7}=8aAuEUXmuePU2Ga>v zu9q#FV%PR>r~KSNKW{LmVr2?Z2q#`FA>2 z?klQyd2~9GZwJ!xD=Oa}Uu8JwpLB|)@BCG!2lI0c^!ODCb2)mv+>ajr+vw2o9n!-D zH?)7~I@9A1hDi@ge;_?9KcV<~tFJE8pMI}lDBh^=Q|fis=Y13ObrKeH|7W$$H-tsp z|9P|VSy*iP%k84Dl^~~oMvoAjJKGPH6a}Ye! zr<;}h*?qi$`;6-s@x4Lf?z}Ud`|npDV#lgG z(;MV(*ZV&Hbl*zmN7@5C9xl@-kJ@|Zdmoppzm?$_Z`f<;^{q4iHB$}U4hvnD|M;E= z`0#w!ETw<8=dOnX&(X;C!ROaD~MSCjX2tln#y&7D@;_a$uSnnv3^$mQCT4HbIu z{zwmosYdTmYxMW{z1?#A&FK(klh39bpREvfE=bmn5Sxdvv%Fnd-Dvd9B{p9k-p=&z zwe;N%%k0#Zq{AL7cVDZy$ILhMbzNSM^)L3XzcHl0f0zBqO5gg{{{Cv7V>&&o?`N5g zspD+@cD?hJ1y5?0Fx+mFpU`9VSpO{J7rNl7$;!d{q`j9emj+ax^cjUD{n$kP;rDfn zp`MWY+l()2&0kF;{pZC1lgIT)Mh{6IISAydq2#mvQTP)1W^^jD5Krd> z8Gqkm^lRRvpObXG(WiMW-F}`$c0R4uOS<#4(#zM&4#&>?14(a%n9l`?+WX0s?OWwI z>L;G<(u}NL@iwhV*RP?+@|jQGs^2{y;f=Ic$Cdcr$`{7J)7)c!PSN#AW`9-Kv6XgZ z*6y%fSt5uGHRbM5%7zUVKlUTweb(O2)ohpB+h;8O`aAjFx)aG{x?K*+?JQ2S5j)G& zL{c*ku5$dIUj2>zHe}s zcSZX->>-~vTRh;Czm=btvm4h4pJes=1nua@X-Bi&4ddUd5r(n9sCfPA^P5_-u)*SY z`VL*6mj3YT^D7$vYgeDv9$mRUt)24v^m-a@z54tX>hntdfVXRXTFl{b_5+?^KfvoV z|Af`&_zziqO1vOcCZ7)~*|L6SMsItaOy+mDKbA0jQx$G2k#=;0#Xq1v3yjyt7dkBc zdfGYgk7qL71LgDAH3H`kkKfOW@$fYTjV5t>Y|O*vuCGYn?Sh)3efRO7G0o=ADYcVi z^@=(x7wt{2$9#4Um&siiU!f15rXK7VrXH;9&&!>Pcn0=EKW_QiO?}&B>3F*|hIZBf zIep0DLp|fE`KY1Ov%a0*SwB9{J7%W&tN$p!Q!i)hEbg)L$vq9)PNl*8`?#d*#WBVf zNk(^zE*Vp6{>S*Z!6Z|_!<7%0r&vy|r1wrp-zBTRmI}T1H1%D_F!kNA>+M}y;*iyw zrStDsZ&to?y_r6{_Ijh9V>>k5`itxBO8RZ5*4vwmj!#g(wNSr3V+V%uefdJB|HC?ynl4m%JT#qv?$>Tsv*p zd@h><!{z5|(MR_yU$fpS^-)$|)Jwy)!-id7 z2U%bLPWtEt>Y=Q@UZozI_}c5C(OO?yjBb^B$m`4Ptg$Aq*H0fkW$AAHchWG286WSiY36&5bIDaH`s9*jikaTpV|pv>H9N}J7x}nf7)w3%1og>-7LTuM zfLtPKr*FOUJ@s<^zjhi zXE92i8&RQEtAL@lCD8E-tAG3dkrVsmr%PFTBeJbRZ`z^0bACu2(q0g1< zgBO)P6RbXc9dLv3Yk1r+8z*cq`3cJ@M~_&2W_)!c`HK8iZ^I(Co?E z5xu?kc?jpv6;d4J^av5-Td$YoL)<0hF0#XiUQJV@ks zuCRj3uisOQd2&4ImVMTr*wU%^YR;ovHp135#_7lF1!ueo>$QGH)0O)I6fs_@>$gWk zG9^Dechu)MD#y=!{?gZdqI~1WV;{LOR<<6eL!(b(f47Oh<#Im+)*U=Yd(g-4){46z zLA)OB-)7&*7MF+U(dI*p5uJQ_53%IpM0`g%avoj zT+4Y=*ZbVjf2zW|wnX_HbVAb-pF7%r9jLAUOt;wjw76cjSF8iY`IM-KFP}mGrPJ26 z@f^*Z-gb`qwfc|a8LEC~SJdwls9)hvJj1Tv9`ip^-Rx@aW&`8y(CS>fc(D(dgw2i|Dn#EE6E0$!Ok7JD0D%&ul3xa zxsjf~7Jk3p=gy&pydM0%X$XE_cLw~<{ZBlnHkbUY^2ODbzh(UfmCNgKzA!9>t1kD> zfpUIwh;l!Qa(DasRa>_m%k@zS=k`e8xv-F%gOA~Sk>k`4M-|KKem7Y=%zN*zv<|ps z%k`tz_pTGY4h%uBdz4;>tlUGK!{_Z|*u75ufnF~tz4nn_J&KjZht{9p)2F-NRNo405{w3BgECWH!6R}_3i8Azf{pqkL{=Lto<$9T?eebufsj= z4b*pW`f+=F!w~xJ)$S+his*PHeyx;i(0i@W=X&n*_!o)uwOqIU)zc#PyG&2``t|hP z)`0o?bmvFstC&yF-h;0{Bj-}0{NOKNmxFd^@Ov(|QZI1+qvU$xxV}fY{^w6!%-;7u zf9ibpzW@11XS4VH&qq3~@8kS$udpKy!M#hxA;CK5)8a;d1#*OPuDBrdDjDCWw{pD5 z&x^lRJjj#r1@{NaId+=v0D8_>?*s3*=Xw~oXV8ln&N-R&8^p zu=FbXV^hT6JLD6}_w-owJKkgdOXeTx>pr24=Js_%@c$?B%K4^z{zA8UOnKg)tS3=D z*Y~W2_w@w6KMZ>5e);6(eW}*`dB3zX(S=dwG$c4U&JiD@TfbDb@GN5t)}N zh*$6@p4H9vBbQi5!qa_@-z(Ge`?KP7K7e$ZExvs6EBeFxT}LF{g1iabf0ol7W##f! z#=pGE&iV9xm`fxdy3ZrJ$8os(ZP)y$+zw2Ucu=ptKf&99wL)*?4}ATap7YruiOA#S zT`T!1z|HhMACt%ZuF1zB=Rf?-hwQvh)2mmy&mxrAZb$c7 z2x;Veqq$lypz|zo$L-MD#2xQ9d~d&V2)W;Ir}Z~ueS5sZp7Q;Mqfd*x?B#wz?jLNb zdXw2N(i{~eJ>R#9{NP#LVe$(%b}!Ty?L#iPUB7$1g8xJXU>;8OkdMEi{tNOxr(dP- zJn}X@@nSgPIz@I|{zppu!jdXaa|OYl8)XjO_ltXeeg9Y3Ywd0NBti)t*-pTp{LA)* zdAp1Fg>0|*`sG~Gru7289LhdCS+VcrAAeZZ3tm2qdxLJ^`&%BtFME*x@e%(G=Ko@a z{rMBI|Ctt#+Y3un56iwBLFj9g6MCn*zamE03w|$0UoX>tEJyy95*!r${6y|y3j?=#}Byx&(2Q#)E6t<;OiU!4EF$Up5Rw|8BBp?~g|e5TdYHJvNj z@xJeN3Y40(3!u+;WwN(V^fR6*qJPwWB^}*A{M~Si-0y;L@`wBZeScw-oI#1l=PleG zcez|mJHfw)?EFcyBYk|t&%O737k!Nyt?pxnJ+W5OEeO`nu=H}t8`T5s4P+^nbMTeh z9idje>A5(^-kf>4)KsTs% zv~yD{_~wlf-war{J`J%;xkN`RmJFfSR!aF$FL$cktkirrRar$Y5n^e7M$T2ib2WVY zKW2at;;UmanvW8Qp8>f1YA2?`t4Ws1$i(x$1^o1$)0j$X1Y_t`}UcT<)$Y zSC3mfv0QD2T(Lc$BK4ti)nWd;ACCIlF8&6{lU*}bmM7-V%dz@-VE}nto}5qpJXx2g zY`k#>S_QFNC_gSoF`X*)kn`6)nuW8) za=w>-4|@;j`%tp_!<-JD6;e--^D)!Znd$#*Js;=c!>*GSe)nm^&a;Ml&MT&&pb?BD z-E!JnDCg(S5pUIg$7`Pt^jf6fEBU~$u-Ewcr8do;xF>3UUut)E!Q8Yr!``Xpru`B2 zPB-@&_dm&9(5g>P*sTJugHibXooQ z`I9O2(5K9M(#LS%OYhgLsnBohB7HKL|D_fF+hYISme5F{-9?dO)nn&vZy>%P-JcSi zDC+y{+;V?vVlGMMR>b>PalA_`-oAN68QZ|KMB;(o^mb>8u&v7NB>VoH)FYlIC}4T| z_`c~zbhM~vBRe1YgBR%iLlynQX;FU0%+}xo@0T@k8X&h=FRtTAFplN%`vUK#f4}!H z>#s=q1^6?z$j)=fOCyeW_DXz0-d8-F-#fEH=z(zF9i9w*I@LD`x|INinN!SyWXMl z+H#lCWr?sMIPpsMhx7Gt_;l2J%5sEy`_jd-J&-=OQq!07E)A=f8ZKC)=<)zC(}E zFSEZHU+f?G!+LeKyMgj#dWdd0UsTf{kUxH}%vZX_^nX*;do;d*{A~3Mex55nzz=!! z14z%+&9+qYrBPe*xc!Y zsTS@5b7Oo!!{r!G+<5%_n9$kTKi!+Hy;ICUoB7`3gFMRb0EJR5&L-gO%tkKkr1dCU=8`> za`xA+A@$=UfKFIv`ZZi75KzC`Yy8WKBj30L!e=K~2{`OdXFJ%70 zUaPl-?fl+j^|A0Nb7%E-gH@QK#X3Gs8_f% zxscy@d>!e+N6nqdf$y8W!QQ*P^nKFYq1)r|6te>#Q=q(=43#<7+r>>U!PR<@)~BJoy4{JWD7qXm2)%yAMQ^ zr-|~3^Lii$eP9@1hoQ%luDZqKhW^8DbEl6Pzi09w@f?z%8Q*`*;%T};3M^0PHvg{2 zT&`c1a)aTrd(E9csVBlNlUr~1!)}x3CFE1I|8rx$WW6@!JYCa!=^T@rA?4yh&8En~ z+HZ(fuhT96cP}FS zINmg-;O?bL&lc+Uy+SUOe~BO{*G{|fQ|7(jIms8r-_?vabXJTv9Qi@H-!$0#dmTO!ZtJX zhQ3Ej1X>=ymt&-`Ip~@4UVtXKM*$D|9|b|brx9_gV( zgQZuD(nJ3Vl9?a*T~vS8uS0$}z)gC_`E5n`cKF8l!#`@cbipj8o7mxobLJ}gIc6y5 z=l@>HH;VM^u<#=#G$KHHK&;=w12>)^bi(7~Y)vCZs6WI9Iy;6NNw-Gxf2DZSIcqGR zZ#4f+($7K4x#YVlAL)X1_I=ee1krk|BC)n@kZMhn=V+S@f2^g z1|(gul5W(JlyAW@OXtP{-Am2Q{YZiNOsD8)(Qn45(C?P-ztMb$Jn8VT`2#=V`%w8y z?=*kqc)n!izj>bJ??uaBc!BY5welCov0Qa_?@@6a%T;$?R_n|7%s7^-j`vKBD`-M# zU1H@LYXhfVj&yxN-=_;E8a{T5Vf83Q?+5xkLDPueQoc=Boz(Qwn>!8XoK_57#*d-E zdb`Q;9Uj+g=(?-R(IuEzCw{L&nLhiB&Lc^WVe*03TREP+M(6c*?@qCb^sGK$^s6F0 zs}IpldRE(gHKB_1tmZv7RYp&lZ&G^6xSS&7W8+svj;dIG>P57BT7GG-fqCz5i5pK4 z`vgz-$=%j**)H0GW92Rz1=I6uCjdjc|x#Xk$x_D#^Sw^e32_? z#6{Q7Ba9wJu5W?;ixQUHm=Ki%i61N zV|*sR?bWq(oBXzC^O7dNKF;L#^!d0{DBWW8$@W`NuDL%flqT}~MMdx5`+9A;|69|Q zb1(Hf?2XRIE*NY*%V7IxLibb+5B`7rGs4e3Th$%*Y%=71TKOt#V7$GH+qqx;JqcGb z{o?CaL-$;UH$9Ud@e@^Os=}^LrE7RV*;e(7+5vZ%8~4B92@jYYW_H3I=587Rt6$pH zMup5?i1V{v^JD2|`Jla)#aC_-&h+L( zhII$5+%Hhi%sEbXK?9_7PO7_o)oI1%7ffDT=A5DXE$Xjj&ezqAav>z@=La(M<@;0m zHmf%ocNSwo9$6Qm{=?Yg=JxgM!`0)K-9hyD4=mm{QjbOTCM-8}d->Qp4VT$FUcXs8 z{4M=nZXZpa%k87dbGdz_{?6J*N9y&w+co0GlRjp8OXi!59=F?j^c#_nT=IqgkGppPjH{~l#?KUohWa3Y z10kQv6nTUwlJX2uF%`j3UO@=NUX_G2ke1RWnHF+#{4^~-V%2L<=Ey_l)#HSKD=ehK=X@%z$u2Ogxm+-sLL_1%)*w5w}Z{(kMF&v$PKF)AY z_VbJ{Q~e8u+q0i#xTE@UhHX7<`-ZSCgQUam2VbFe!t?4_LEPsa!zK2oy8iq|YUk%i zxF7$vVJWjyQabjK{qJ%{zgOP{fB)yYbqxDa#!Wx&@cNn)wKcJ80K;wXxgzV4ow+LUN z`vTi{DlG4c`A8Ego3F`M!3+L2Vcy;?u#MYaDR79_@(YRo5;|AL`hBtW`!l}p#(yH|hOY+MOr;TE55jNBUR9^Iu|z?fm&v;%(fJzQe3`u8vDLZ}Snz(es2(cYMU! zh4VJ6#4iNKhkcg6X%l)^jYt{dxA@};u|Mt8JU(CfToiX45Q{qq#;+%->+#jCjK3$T z^0>NLVayK6EZF*(Kor65+>l zC4{W01Gh3ElkL(^DZesK^^@NJ=6e1SN>^`07wdN!{ubx6G=GyDl6gB?@c8<@y~%oo zPf`4e7tf2(PdxwBbGYi?x}7W+J%_7YuA5d^<#OE&!~WrEMjWi06*!d3T>>wcekq=1 zIMkcd<$APkSub|u80E)GxgYvDrF(K%u7`e(xk&Q6Y=ZFz{mO?Ck^5lPoLo0M6|TSD zCVIMD$6Gzb^?H`;c&mpM*6~)4Fzhc+GXb>DQCRIw^*F+we^)X6 zIltSG(J?WbyVcK8`BxXJohi>K%*pTybwRpxhH`!Y-WnBjj`J&yiod7QL<7rUhS<)FGx?2_YOU|L-~(~4&$ z+5ErGkl+?mB*Q> zZs6;Fwprmb6|PrU@(#4Gmtoug?PnVmmOKQ#Z=|s0BSb%=d_gUj59R!jg{&)=3_Mo_FZ=S*^EI`~8u^(+dAk;TeTz z6rR=g(+clWSl8>Cr?T&I(|2^W-h|d0SGbbLpQ-+o!c_|2u5eo6yuvlguMvg&6dqQ1 zP~jnk2NWJuxLe@?g?B0}c@}#PWZ##AoX|g#uX*M_=@Yke<$jputh?y?IO&7C-?$s^ z$Bou;f6&{r?jpU-seUbIu?_vFf7=At^T)=8KDFoe9BFsYPu8$KnrA+nU9|5ynLjgo zm0I%3=gdxCvIskAbha!xlI>wRdl}Vxae>`*{q5P*pVdq1iR-@F!Jwg8=f6wmzlq_X zR^l?h$KtwHsn?U{39>v$W?L6uZ|{+Kv7>se!uq_WdcCyM{3GZB2F&};Wq9r)c7e_Z z(*A{x$u91Op2P6;QT}L}FYM|52Ve6@#p{JXNX&qsbL^e(W@C|X~vQ+pZDtAy)` z?+IRAhx>=5W!~($S%=WE5FdhD)jsMvrssHFpY)ILczTZ4^-2G*!iW~&Z^du;$EOv} z^L_t#mE(T#3pj%mzo2OS^;Mz&ND@%``5)oJTaeyj;EnZVI5CHo6vt)nh^yJeFBH;%K?Vtb{P6~?`3%ZDKGwVY{dMi*zejo zZkI}Ym+|h;b=Mc}KwKvNsC-mhBAxH(S$hnPP@B6sTF!uVVDcweknwsJpeZ_D*_yU4}ftXnp7KcWZw zV!qR{`CiNT#b4|T{PFpCE8`bGv@h_->A!^Wi+$J^_~Z1S!}!II?+g5K`p;zi8aI@Y zqn0J?_II=YL-vOxy+6|I7OtNxUv%><>D{x=`)fR7`L1w(rSd(g_Wd&Mp3gZ<(4Wvx zl(t?;**-FkuE<|Bw256mN7_Ztr~bh9v}cLh_1adh*Q5K!g4$+qBVeBuRBQR6J)ho=R=kBzW>w47=^yW9@Mu8Tj^UY9Frix6P=Z6+HG`OIklOUfXBpXN6wd z-+=Yio~`qTxF44d zKw()2`q^%UyS07=m-d}g+~4q@U`I zT)#bgy7W_hEyEU9O+vZphxiQ^8hU*O^(j9oKEzvNAoV^S9pGV^tm$m9hvW*G~*4bRgZ6w_`>9n@&jBiXyj_nKEWRfoyQ74 z==~-BK|e5#@VTkIFQfF+^GCtATJ_)d+k|-se2tp)Dtz8JAasY%8wVAJ7LvS}KU$s! zNboS<_m^v&R4w+z;v4Agg+C>}9-wlwf}63vG2JAWD8syl*_B(>P8}rmgTthZ;=8+q zAA9_sPoMB(RkxHy@#wz_Kf?Df#12IJOhs>d62^~K8Gj<0+GpCu_e~GMk5_;n zwocV?EtJpjjW5c-D1UJa(;L2Lb!)whYg?nxW&3zf75*(G&vxFIpP!TVxp~2NwzQAl z&v>u$U*$I`;}74@SSku1zMnz#Ljr=@Ic^vEk9nnkm*C4yaetXw-M^~mPG)L#|Ehl1 zAyYf6^=E{>+8M!f>$F~1eXrdq*SAgS^<7$jg5k_Ec|Ro6FYkq9){RU3)p;pbjY!!r zET!&GjrOGu@^$kUnd+?yi=1Stw*wh0~8eR^Ny#LiEk_)YJ3>HR*1+Z3)> zxK-f+hNJgJ1{JpVMurq_*80QRzDeN`g&P$fSGZo`35Dwvo>jO;;k?3Wg&P&FV%Uv~ zD=02-GcV=F9foE zvG=a!w&!aeFzAvCW&KjM^zWapcDG&e6Vd|wW_Jz$74kkQtwWf8+jkfAi~RXls9$Ok z{~G4U2rKZ0eo5`TpOW!W9#iN)s5 zr`K?cVBJok_w=;F(*mEO_FdoW@YQYw4I(H0sL&N$Djnne0vX4nLa%*?Af9hl`osM` zcxXz$Fb^E=$N!e#IeVJ#`*k|si}cgw|w7x_P;AAAb^U+A~H1>ccUKeG3qW_&#>EbeIH zdOa(29M#PV>o}@g8TMDC8Byq;R+zu;;`?^)9Q5!VkL*kT^iihQ{FA?j{wV0LXZq+I zCK*Rre>5n3j=wLsRQO;MOLtH<@R&-cn){@&>l=4&!b3BCTW9Zcc8M zdhT=U-;r-m@hO*uc}d2TQ@j*^)+ygQ|HJdz_4_`syBJ~86Z`4shnXJxzJ-67&YR{1 z+&BjKLEmF-&pgwv-_vPHTq661!|zwTUGV8SV?pgEfk*RP1`WEubo+?FtJX-V?@0x< zLQl{zr1uB8bm_qND%^O==(-PfJS%eStKIbVdul-}o+`IbGRdcN()yBwk61|iLR1fx zAGnTRpn2z{cNoL%xeqX%cCMVA6X);Hajv%U7LKo@R@&M3s@!p=As5bk+BnB}oN4J# z&zCGa&f7%p={-`Zuj7dF3&dfHD;=ua*AUosv& zw;TL5`}!T?pM7uB*YoN^`*W4>33}f@Me`tOKyR(?m&(4((zx$LG{K)GNg76&vNsXKR?P9Odew_OEvmTExl{ktU`nOjwTuxtu z534=f67@sfJY(mn>`%SePJCTRFMQR{mL;P+j&l2~T9*6^-%olU=Mwucy+4*X_n78& zI(9zL%YGC2(eS+}^V9aehvtPA^wZZ1AA^-r?lV8VP3^4tX8EKewPyg!5|CxUJI}bxI{@?f0pXYI=MX&z{_~}CzVUPCa z`OATX-}1htp1&-i`+MT2fBLq?_-T1ivpYZi!TsH_!OB<2R2G zf9D^Y=0E()G_FuT7(SPxMFU)OnBT%8f_@9W|9dF~IP~*1zqTO0Rl1&S5Ibsl;^=vi zzW;lO zuf~gZ-c!)u%-4hdCM_jC4f;jiU3qRII&nT9g){}{Fm~ZO@fFttJ%a;fJZUC1}%m#^OupnXunmr<#Y=eQUb`dzX{&N+6^Ee3t=xyPX2J#W~)>ucXv z2>L4of4ktnf%tGH{b}!2owQP}NAGRfdb^R^Ssp8V4{W4KuZumh@3Y|hJ99*L^jtR0 z^@4Ttk~h_J`R!b{D{21mJ6P$`G$G~FYZSk%yYCRO4BzjE{dwkZe`B0f{O#c7f@h4_ zOx-_orPjxM56};HQQGxX#Yx;?^1WPm;1k-JzK#Ju@bt=kd#(Y#(Le9XOXRxgo87;1 zg1LX&K^yS0aozG^gh&Y!i%5HdpZ3!yAbDt z*_-%yuOPgbH~S7iP%HK@wd8l=uQl#yS@K(kU4O{&owe8Ru0p?q_4J%)huH1OH!;~> zD90mhEbo)(lzujzMa!|`v+v~XFFA&vbN$|xD}~;p;&QEdXggPFA^FBU7s$WL`{aP& zw{tn3t^7kTT>pHM`3d4T+x6wrkLg`GxhSs(az5H#>w)nzt_Q^T0zJ@rp&sb`o7|Ms zgR*`u#*d_Tv&eb2RqU{?3sQ+%;u!4kpj^)la0!2L-NrQ=aId|0;~Ia5##5K#3VrWN zsba{nU& zL(d<$n&K}SCvIf)y>2%?MI3DLHRzzKyl%Uf+SzyG{2elG`;N%LreBvxKd_sp(4Y9O z1fuDSm2Y>*;~j6(sfS2wvRT?)L&YJePjuqvZvw3JIoT=j4bXS`bFxif(8c3WI_-NasF$XD*ASmj z+V_Vhb-cJ=hx^124C!JW_Z>Y1&@ZG9iwwYWiC+rAH`~J!p!H^gGZpgv7Nxy?*{oT?_e4?es^fU3&~f==X0bT3yB3$gukid3KGuU{wZ7T~`+oBs z%I7;ym-}WXV4u=-DV#TLcgML>FYb@c9-pj6&ZWVm-xEOI$LA*u%;b-eit6w(0qItwr+d9YQdvD_dPRDZc(K^qZ!y@SokZwlF{8Z?BVix~-ARxZJ?cf+Z>4uX1G{0ra!Hf_-l+ z=}BDR@3VC;2^{?vTK6Ws&obS}!-38g+h0sDe!k^fbA4PdwL}c7pB<2P1fm`I^2ITC z|BmFRgF_h&@9ROmjPBpD?^vbue0uvX66^@(X(^Sk69=pPUP?lOkUgc}4>CPFO8p<= z6s(&;$9AIQ3LDST26+!_Kjw>Xq5jI}i$N9cOKI!PU^nNc)lhwRJlhEWM;QyrjoPzd z)iB4ubbht0?~a!Ww$C8G-UDA=`#90DR`!9nXT@I8_a(S}OX3*bpGMCK81}D`edT_; zoa0LG3&{0$*-vig0MYxcEC=@81bV+!VabEoJXs#mp4)?-Q)g&ABT-X`W~i? zt5@!${sFU8kLDG>U|k#EPaQ~uqTjK^Sjd;j@rl=53y{ulQ2whNLXNl|$qP!$6M^6O z`9o3$%cX2Npp)w*y`S@i_MGgS>#+ATN8cjj4ZkyZnZTcuPa9n$F{#`xfeZlWV z$wZZZJ}3;oi{>LP@2>>@QIT(dMe+OGOtiTRcL0*Bv|r0Z$oldD%p74$<4rQg1I z53?rL&!N;$i+)!!Njv_yAKlMw=Rxm_e$%mj55V}gEHtjOg&wubasHWpB)zk^Ua9%| z<88>>HVB@7(*9I$LwzHoUZ8I<^7ISOXA0jFL?lRbZ`b+P@0QT}zhZyDT>2qS0Y1>f zc`g@L(aoM>^;16|8@54>8{Q-<$VDGEdPKbS4)hhk28fMtn?|jku+zJaH zgW5rbg^!t9eGg5)dzI1e5&5}B#+R}8wi_gVh~7JsafjbW$O-?#_voYZ9k@T&9#+7P zh5Pr#FIl`z=PJrL^n5`3zE`GS-oFdZSd*yuhnv9D(j5 zHhUXv6Tj!uHC4h+)A^f>5BB=*X_BL{oecZ8O>v3uYhp^0-g&}Tv)hO9G%a}kl)WDv zeJ|@(9Kj`dS8btRh2Nn4x!f=8U>$V=6?iILiA}og*XLr7wVVAg(^S(&0O7! z_CJ()Z{VZU0sZ_-r2ay9Y5zXcN8h8Da<$F}7J2lG^iJLz=($Pty1J6<_uQmWo&2)|YhNU8j?croJJHwAzAURJB{Wkp)(sh0B#dRB-%p}3CY z=jgq!T>{q&-(7xzKNRONK9_IcqszCmh$C1Rv0bX3V|v2(p2F{f>3dIE=|59FD|Bat zK6ZL1C+p0}&eik%(4TCZXPC}4 z;L;t>2-zn;r}LBH>Bjf9nGSzPGncRjFZeF(R9>#%Ho|4!9P(9}pd7&VdT`N!JhIcLOz#gYRGi zbJDv`_;;Y{Q#*H8q@Sk8Azt&7nqQ0br$g|4RP}w4cFiA_erewVkFTdf?bfzBh1G7U z|LLhv{j>KGE7FW0*w)1Lef>UXuuSE>$Ua^qbPnmbh0R6dE*kIZG~*AXnPYF?Aoy&* z(efA{DcyiBLVS{bpmmz)iLd#$V4d2NTXg*E)ZW~p<6q|qKW@?Sud9&p-lF4QCwk}) ztKHUhU36Z+NkZoe9k=oY`8UvK@|m*tmsNh~JxaD~LI13jtHjRv+eID&o##ldj+TB- z(>UyOp|9r*p}VJE#?y0(j1%W(Kw{`Ter}g(koP?8{mx9k*f;vFDBllOPfMxiLtFet z`?rNY$9@r7+RvbRUoCoX_6*On3cq7$_DuL5*)!pLWY2`}kv$W>+j-KyexK0nS+LCP zn95Ih{(#7PWXD9_Gu6GqKmE>Lrn*PrMxO6Xb+^JI?_r#nRe9Haj?s4=TeZH-Tl5_* zollJyU3)lPGG3GUhW+{8G|3B18sx?wn-Mv@ZJJB6hkup0?NGUH->E$nv$61bF7zD~ zZdd$0(jV~ko_`X#=~2Dt84|hjKbmIz{>>_P`kt^o*R}OVAk{&B!bp;C_PDeNvYBek$$9W4i3SZLT~a&ROib#N?{fI%2$}TsCvRkjvY? z19_Za*uQO@%a#N0VRSXyghliG$g$y7%8h_iew~ z9DC{4Ev&*X=t9{7UmsE02ZAkN3Uq`Z|}!PQ&rqs8;I z_0IPd(C#q07GEEj{iO5!#ZG9RV3Kle_+g*u6ybB%KY74Cav#r!;`^0P`4#OiCi>j| z-Ek&q%2M9*8NuYJ;KB0|pweX-l&e&Fyu^?JT<^O4c-P5>sB6TXV@K19o&8(^Hxi5JP>`TD%b<+eF4 z-T92?%fTni=TAsp{M;_lL*3UN94Go{`};qtJxro=`h{}cC;ryt4D#}p7ew^9@`f+* zws7N<<>yW*^_&2UCr><8 z0$9}lH`G5w@LLIaoBDXmw{dmFQ(J0Zx?&|)aQQVr^ACD1{VuiF=X&-YH^xP%z0B#b zb~GO`ekHwDzV6~1Cw!o1lIQ{6Cg2?veev~t0)LC}GhD}Op4!&&mKP7tP2IxXkUR*# zAP)z1JjmlZDSdI;zE^?kOFulg7PT*Y!~Oqd=aAyM?{DE%?*W@OR=D3E{X*>sJxTGr z@BZcZT8pFI@r=-TCdszqxAb|U-x$~Zkf*HZg|FwWCs~SVUUT=!e2wb7ZP$6+F~iqw zKUtvr!RWi!e7&Pq+I8qST{>W=T)P5!0v$Iq9YfMzZkWr3=FQ~XH-EI)e51;5ly5AP z_p|T*EjAuLTlgET`6DFK0Af&K#)ndbzX<&Q*ES z^R?{xYjB+O>#KZ)&u67N>En->j!8im*@O2=h0v~(yqB{F>)0NUGSJWD+V;)Dj+1Cc z=PJ_o6!3$7<7e@B#P1rek9nu*=lMtJ%1K=RW~K>GT>pBMAC^bcxFOU(^Y`|BBK2SY zll1TM68g80+$VXr5b@(iVj%eYtmX4NBA@R{GoGGzi-7bDs9X-JJibTE1Lb<=a+S+- zrCo6S?&Z?-bZ_LZn&t21LgyBtBb9g~!>-)Gp4h%($k!*oSIR$0JMfwP(^$+u>2t); zKOLj~iRu^lrx$bg9`;oi_@~P*D57fsbe$~qLDxGV&oMt094GT>dL71X7MH60+Vcl{ zzcA??Thw1%f4b4%|AYGTn+L(iLjSc8A47S}%6x#I-84V&_g^Cuhxu8>^V2Q*q5FoC z-jfVJmwxecJibD|nDpfP;KwdWde2ad2RXq81jI>g&ikqu$G7LA_&B(pF3=C-#LxT& z#$N$g_w&$qk;PxA+`0NSOMC*}qgk(Jxn2vMe*+5;>C>F>P4_w5I_=r(ljyxm2kW_` zPcNQ^97tSc`>7X_1K-gn8rCzBK8a$t=YB5Z7~Li1b{*G_d4_}4T53Mj_PKY|O1lny z-s93eP5rp>kMVO8&-1kOlhgQW0efI_TuKi5Vsh|-XC(*n9=NR^?7OO|M4D!sVq-^t zY#hIR1ol?sB3chD=lc6kKEyw{^u*<38u_NZkPoO>Bp-4flG~rzTeBbca)0AGpA%e0 zarJX2S10Uaxf+Ve)yjP!SM4GmUMH=Mp?RH&qj{fXXQG4mQFbQY%kg3=aS*0~^TCKj zVfVNsdxjgZOF@q0aw%%j`W1$aeo60mX-EIvczx%Zjw7T((z}T*VQ1oH-pi<7XQGo& zaO+IGkKgo6B|eZy(RJiYkO4z~Tsr+-SF*nj?hos=H+6P&Qd4g&^&1>MYF~dm)#diI;n@teuH%UYg2O;{SL@0T1EBQVQec(!qCe0X{}U{QV`>miia2 z-LR>{8Ry3Jm$&2I=JlH{bjNv4pYWx7Q}f1XoW0bO&~pftsl>IEVME!G;BoC{oUbWK z*BsC>zt{F`UW>oitli|hbey;0dZusf`ZX6sbhIlS@At5@N+llfj^VOBfkb$|FuVuq|8&H4krnT)6eHSWy@AeRx zrV=M5l2q9{%32rnArO-{H??QU9;i{@?4t5~dQL;Wt##|B(bk zZn&gc7&!E@qGbQ|j0g3h44ETj9RWVI`zt%>lGm|u^M*jbua4_om#yXN*RJgCb?Lll z^f5XPj*F<#IF#c5Hmy$P4jPQ97yW`Un*;4jn45)=qo7Qf`-y6;;?Emcb8#B1x z*}O3m^^Xi2`13Kg8>z(aB~Btfv0b6@a7nf3Pv+C(CHoiqh4F7Bg#ylYQmEjF7vfK* zYXcb){M}3yT)x=+tzWz5yofG3AeDZp#0R|>aCtMouLHgS#(Z$;&^29>F8=H&*Y9jS z{nU;l2m$>lpGFvff5=1x~n>A-eHAh z+?zL*mXl6WG}Kvh-iGd^*T;BLi8=33x|T}(N$eWY13QE9a_P|X`D`gUxCtn^K9o4) z$mQCN8!p4WjT3R?TOZ=evpK$Wah_`?z>D|xuQi%`qNdl=vFUR|sk8Uu5yZt3psjK=>(rDv`861ta4baSQ|^dK7z{9HQYAIO#( z|1Chx{S?|&S+Ar2b2qPFk2+*l9s9Y1`$vDoBJPh%r@!8U{_X*auwK&3hwV8YAc#w+ z{knqoU*q;kuZ>IeTh70B6tufX>Jxs{PkJAtzlaWM54#IKaq0B?4_TK_(y!H{cqeRM zE`GYSp#8n*j{8CVr1!qCJ^N#VxODnIzo7jTno~P=ElfAB6R91SPP;dhXa~AcFX{Eu zUovhiNpYP^r~PXR+6&!D@AYWL{g!KYT0y&i=lV&0TV2}W z?&SFRf_B#5Yr}Ts^f6tc9q2;+q<1;}CG$rwugO0doG>! zl?Cl-Q9-|?_bM(i-g0_yP(izINqxeP`bqC~^q0_GPM#74?H>x;qkhsmBWz!8exDj~ z^?@I?@c2+a>75j|FE`J>D`@{6Y9;(Z{cv4D<1c5o{(Hpj{}D9j{!u^a9ToOpj_;3+ zxa}WC^KgFX+}*JKi}gB}&b<9_#BKk7(46`e`-pif*Y4qhcG0|{e$tZ{70^CSFyw_x zr{4!h+)96I`m@*GJrT_foB>UebF?VCuJA{PdL(xBU;LKGBEzN$+=I`{U>@ z^v|V3_ZLRo_CmMSOM3q;?Wx`Q^jGExYDhoazu;oeyB0!CzoaMq!vD0d@g=Tq$&mj$ znD68IwVfMQ0$AVMNq&h2L_b`IpTgh0Yc6xvMUmX~uH8uM*9cD-=QMZrCcS?^Q>KT) zW?F{{LBP9tQ#Z#?n^s;&c%ePgAB9J9{o>w>T{>tTdMWB$*S_9aherP7g7%JUZ5<8# zD?2(iqCR!&tfMAysW3imUrX!YXuQotdPU zMiuU_d!x{Ub#`!s=rQmQ!4&E4IO+zfI%$mb38*Pg^{7i_%2iPzp4;t{!mR~C9` z8P<-!X}L!HaptEt!+b;h=kn88kDMFvGXoSXx1D|9PlPAr!+9GDD7J^0m6Nm-SoZ4mDusUc)8i3sJs1Z{6MP z%>T}_yGV|r@j;K!sPoeGL@zfdJg0E^3&^YZrfo0FV{5jqR=Igvc} zUb?v(^}E;mWQQU-+SIk0`P94d+yZ`|yRnz?uU+$cM{kw`h44F0&&oBduR;&Jw$hWy z@O*CE&`In6h@QxvpF{Q`qUZX~7N(QLv4B4$FFbGE-MtPyk^EkLweW9kC+6pcVgLSl z8(4`pQw5jb7Z9URX)PtbB7P^iox5(lJGO3wUqs&KF><+qevc)1kI)~yhnt7*b7TIG zq)SQqAAW#ez%W)-0%N_O0!emwREc9ZUQ*g2=`0G5* z$5Z2Y`@zfI_CF2Vznt5j>7}VmCDw)cv3UFXg8qM??a$=(Un%->&@%A+Z z{eMT>*K2-zo#wYU@J@nAZ{)cr{OOGI+$ZVLWYVuQafarf*R$rAY**0lRM-xA3yjy+ zU2%E`3pZkI}|)jaNXVcsU*ZoZ(u&uhE&yxv5f36{AOo%w?PKCSIGYJM~$`BCaD z-d}4$f7`WPFX!D-iR&frS)yGmC2p?SNllD8|-uC;*9E!?gY-|GwX^X+Bp?JB@`L)m)6 z1@v;LUvj>i3h;5rQ@UOOzOJ(U))&;{5T_)*`GR?PTUmU&3hGHbS&DzV3i`dQEWY7_ z@m^fEURA+-tSVctqM+V6W$W!M=(n+Ky@`T)uP$4!uVB2Vm#x=TP;W)qdNl?8zOrn+ zs)BmQm#jEd7tBQX>Z>Z4C6@zsq}N> z$ktfg`1QBadjwbO_hv`iG+vSSZSejqg@okmgdZ-R=BMdB1{(eY6_KC6i^5^V!H5Sx z_#{Eb{`!qFYZU&|fhK7PRoRZ^ZQ^icktVYlD5 zCuBe2-OrctH+~cI-p1qcb6s5G`5b=1nSw9ry@}!YywLm6T;I+uM!Ny33BI1V$oZ+$ z`FS)pKPI1NVt%sqJTLTKpwOAEW4I;p8s?KbzBpf(74Ws9EMJ#0UuAwv@%>l-DdWO? z`@501w2tTLGUGXl$5W%@Y0~ke8BWnT@tDf^eA0PtTrW65<~2}zk@R?J?-kFB)GswJ zfBusz&muo|9w640EYCG6&zMa5P0I4w!+YK=&#iL3Wr^e&T>cNltT^8y{aw$$IoXjxzi>pX*N^CiG$dKbg^If_lMg=g4E6ZB)hH<89IJ8N1^c zkB#HU7{};@j$@q5mLoL*f|Pr(jtnIH=H1A58T@-!S+!TE+8C=cRDjLhD>2h5U1x>2~qO?clph&fjs` zzG}ht=eL!bfAf>eFsy?4pZkl<|8cSLV00MIJ9s?ve?dDscY({u@4f_=XrI+#(6IlaS>Dv^sQt0oZ|jz-!_*??+cQb%QAVK z?}LH?&k?b4+Pt;%I4gACJT6m-?>>WhE3$u~-O#m#YlRdL$u%dCMKNDZf85*e6}j^=P4eRU zG2~G(j{fgpywfZnl;=~rXB6J0u;{ISNV*JtvTxlFzo(@8+4X%IJFm^gW$$6R^i9R+ zLp~PtUCs1ODLu17PktxEW^c;VH6?rv>6%bj?M3alz%ZKhqr5P~E?wg>y7DBCpzBhi zE7&ISBz59%36~2Y%j%J0gbPfp5H}Y!tIeI~H7hm_Y6FN?LZ=KGoS9p-`BW{BJ z(09@pcIn(n4$Ylk*eBRY)c3bHvK)i%10ThF+qohmGXC&9lwpOZ|0?_#Qh2ArgADiN z^n96YGvf_vWqg_CXhn7^FD2fiXFIt?VE4W76(^srSeOG_KLS$VG01OSk?I)rTF~7W0>|tmtQ^5&m*m`7Pt3JiEfe zzr~E}a2glAm&AOc^JR2ig|9)i%p>8|`zAlaSCb!??g66P&q@FOsL(a}F5w&KzVJTu zH=yGl{ZO+r<5M)XIGOqw5(C8sxknfBPDNSIK<)JKiGjYMJj2mCInYUSFm4 z8w5{Bt>Aa*osH=W<{xw(!F0|lox7CIKX8BKpICqFxfJUE^4laIJ<&MNC78}XAPpe- zUnctI_6zx^{J-FFnG>d|)^1kYCK-<8J-mdCd)!5z2%Zt4f}SV3!V z(4QndJC?G>Aowo&KT3a8=svNIhe2`5sdTjvkBnow_=Z+Wa9=F9l#=Y$T7zl~6%{@ea2&piwCHxoRMuuu4reP`IE zZztg;KhOOGUmev0zRL)o={-Fk;`>J}XEf};f%3#Hg4p~y+T(}341SY`alv_4Sav&i zA)=>(^?~wAMRawue#v};p3l%D4*HHN%V$fXgEu<6j}gD0 zxPKosInHkizD#1_ciN)d0f<^u_dVfaC(>`ri*>Tx~oq%BzVSWV;krxzPAL z%mW;fX2zP|j^dHM_xH^)I?dmAF`dmy*ObtiZ)Mp0J)Kj;erJFB{l*x5=Jzin`dohJ z+3r-ZTm{?Yd^39AjOnKNm-)&He@Si>7XH)u5e!FuUF>jid?5B1^^hvCbDCT_#BMaQ zoTDBzgU*!|x=O?g&Tmv$&RO&Gb3C5RwtSJib+KNHKDc`Q!#@=A zX_)JYp1JkDNA*Cj=TKD`1V|MXC z?n>$N25=Gf6JKA9{x&h)roR=+XVYI#Vbx!auQJt@Mg5l3-}Xi7 z?^~Xw{?7fG^ed= z*GP;m%Y(c*W*1;*$$!f_ZQC@Lv_4nAzEff0C&jx8i`}JtW(-4*X~{``O!5rHemx)7 zE9ck6?}*){e6I3sR{I-Kct&CM)79cfB0Dn2_sgwcE$)W@Y$JMMzaM*2{4x}+R6Gwm zPvb1|%M#~{KDd7V2Z~SpyvOqr`T6qk`4Hx7D-l6Ie^m6D&y%2amcJvi7vE-kF~t0E z{5`jG0d!U@$C;29Oe^ibe?2gL*Fe>Sk^W4y*Y(lbTc~9^-_QTbGcRU}Q0$+unQ65qF8RZd$pV52@KTG8i z=bj>dgmzT(h?~F#;mdvZpuag*Op3F(OnO_yZ)Bw&;^jWF3wYo7X(xXTzCKCz7jl@S zzX2ab{Ih(O%eSF2?Qgl5_)qN#HGS7L&+-U(DZw53{Vu?-B-qWPxBdwnm!HXhhn}m6 z`uLgryL8OP^vmqk#(ThrU4`?OomIF@9@vpP#F3WI0v|R^70Ma-=i2Y)*!^ju%im4D z_d`tIG}GhfX1Gjx7l?hy4J#}>A$j6;K$3SUL!QN-xqKKP2&C@i&;M0%q2YtIFualeQ(yc$O&%4XfIm>iT zYx@~4X}^HdDe+i%4*jUuXFIpDefz&ky&YnggVj=Ytdi>;`dlceRXh#S-leZQCQoLs z>v_Jqm4AI)7V#^#@5IGxa+!|B0p^EaO4sRpp(6ga5k0VHk1BufVE%R~9c^5?{WLEi z2X``mo3(u_mr3uhJpX@>=M0T8ejA^bF~1v?&L*XE7t`sFiN7$v0J-~5+UH>VH30tv zu*PG6&mh>IH>AAJ!8{c_--`Rmxc>iUlIoA471=VH3(#r!U3>o>)Y~HU%s#k&>nW1x zl)lI6Tl{fonj5(DXmW8J*;9XPmi=qFxF6#?As>y`{Da%?|D}HKqM&^T^^~HOI65rV z-?ykg_xe2S;8rG&_51PfQac3y^gC9+3kJMEXwOeitU9p>Kh}+5zS{BkuZ;CK#Pwud z@8;){;DbKTv3M)WV^2vu62)l>3!y>nxWHllD=+-a@-XCMcYv=SqPW~2 z8xen+&r7NEws3xZ@AGm)F}ko`16^+?y4-o1W4_7yG1#Vdv0v;Q{HMf~Vh@Ys%4q#6 z>)iSx{>b{Zj;{kBCYbWAY_H5;yY$o%|IA<0^H}B^&A-^^?2y8?{<2~ z&;v=H-TsD2AKmqD9nl9qB_Q`iEF^*Y591Ncd^|6`JAJfu#GMyGA7_NlJg|^GAmnU6 zwg`-V?;=}a_QCYW)yKX9eSALHSuh^!Z*@#Rnq%_7cId{a-^ACUht162mc(%h7&@0v zz*|ZWze3}3>&bi<>*389|9;fN#@P5w4`0T5*eLp!Z<5mN=OJlkK(Sred;P16(PR4e zf|&k^yw9_K1lz=32mLdlzKH%!GhD2HvW|kBivBfoJ$F7JU-Y~v#0P<~@0^v=zor8H zt5YLRBK;GyOzYnn*2iF*J{NNQEApVG zKlGgz(iYL@$7#vu_M48)59>pQ#ewzz5Y~q@k2jS#m7fFqxf+I(-oHp3kd^woTNhn& zpNu0(y3O{N)=8!EE#=llPh7YU*G2tvF*_!CFPATK^M(Eld;#6xqWHwm&d+1S^nD`c zD?JxvxG27H{2|9fPCWIk*gW*H{f*Y~pN-w01wC7Z&*AyU3un@ z9H8RoDpY=tlL?4Fa5j0MQgO(^_RrLR@t|4{lwU+wvV+n?FhZ~iOns@UOF;tIj5c7gUGiN4#u zt#F^R#I^03KTjoEnD6v`cd6eX?fg-Ze|mp{ulu9Y&g{tU52N>G%#Ug1$Bd5m z<18=jxo_#Xb>6qD9PH3}S#9%EI3FFg(ypVrcwPo#blAMSkm(puItICfp5qthp<;Oz zJ4b~0pz~GSpWz?od6D~gUmZWnPf5El-!1%%z9%U5q+R76@8?%hyY}4oxLwd7 z%J!ff-;&-x%Kb&^lRG}d_l6hq^(vN^LE-P{5SMO!=rg^45X#G!SYAx8z@py@B}xX2{ujzoT^=tv@9XI)Uy=_Vk+OPT0ZO=9z+Qf7h;DVqOn+nJC zn|bE{U9{eT-=gn4i(kwO|Kso3m_LR5wow&~^P0KR>!e1Oj|sLnE}gP|61f4MI>qxg z!V~3X7TCw*&+zS;mX;Tzn7g?f~pc=B}TIs2=F6A$)GVd8SYJ;`aM;su#^`9m{R7tzOHT zB027k>6677M`bZD-8?VRKCF7C+oc2b-TXoI>k!9Hu^dM2&f|8zt%G%+mWziz&9vKn z7%y#ro%3kd2mDI~mr3txrq9I#dR%*J{^NPyaPvb)KkNL^7LGe4{%c9h==ye$$NOC5 zhvx8JZjRZ>=iAwQt+^ZXH79bOo98m=Jtln54KkmS-T`cH{9GTy!TYNCe$rdQ*Y`)h zV!DicUBvWGGaa=5flJ6Se&yGFRZJ)3dxq-qds^Z9qlu)2O9SQzLuWLTmN(phuRy#Th30Q-MX0FfxR<(g8T0y zynC`Qke}D~GWk5tCcNijd?B6259=C}n-|664AYnA)AeXy;ESn6q5ZM;XMZ=+t7zZi zOS!(~UFrL~5_g1ok9vhIFVd*6*xTZ`L7ulo?>9`d9kcI}E#|%CbW9ErPl3OWkX`V{ z(jtfX8Y%VsgYx^TC7y`rk+>qFN7ub!TqWx-*G^T&=)t^$o_mO%XTLA7is`2~j_nb> zx1n%faa;iZ6|*DI52&E;yl3ox8+Jw38}yt>=SkNy)vXHax}~~VVOf{i^Q!Xu0^#jR zuEw}1v9F?z^$2{~{uQd{(A(trU(lT<6sY%Y((9D>e;J|6Z;$xx?h8DZRNNn}konGe zT)Oq={v`hB(`EJro_{9%(fps#k@Fmd;l+$+8;ytbgZUNh3lx4v`vQfZ(R|AKvDCi6 zS)$kMMycm3_k5M-k?EuSFqcV>F4E86jbAoBKj~9wZ~2)MwVlXSl;6}iFVu61_oDpf zE6U_IrCpTYly-~BZ%)PZ$mre5C`A()ea@kNE8NC;2$xEA(Q?r-{A=^KnsrWm{9JeB4Pw&w}~5 z;{3|JH$#48UiT!w@)fjGKU44}zmTss9Swv&xY+dWPv_BmFCyRg zXNpN|yyk!1e!oKfM)}6_`z}98>q=K1v7gBBVIJM-h{%E;8@JQ%OS)q#6$d+lKkaq+!${g_BoFYNxYIDmQv&Lh0hJx`+Z*n zF}jdn16>zlo#)8QJBi*f&$!q7F1wk3E`InKdQXC{W8F*tDBhI3VX1vzT}+R}X?}K) z`4;6R2NaIyCEr=pFY-|Kd_vzRU9Z zXzR3hvp&i?&|ObMUrp~p-{1oJcwT`%mfv^zikLn&#^eEhaq>nP5Bh!hZj#q*BlCCR zeV36QejuiYGT*{aH_zX>pY^aVHa^qC-;(_%yD$2eua|Pc_3_^8UphvQ>ED0Azc~6Q z@;=Y7VSwHvOwneVb$Y{A^m`T?$M7HlzAoFs?HC zcg-U8@2XPz7v`O3g#HEhT~>wb?>oO-$oIq8}vH`;eu#c3x~y!<9##UxzN}1;%wG?TfX28+)_w@|HLLefM3?m6Or?i_3?_ zHJ|%B^hffgd$aHIRjfZV>{tFC`!2m0f6P7{!u;`+KR9&{>-Eb}P(CBC@Q*n%r1QHK z{-MB&$V+~LbTG>8p*=O3X#^a>t`#RqDv%Kt&eV5%a zI&5D4lj-PII{LUo{ElDw=WoaG{l)CNT+8z!a$SDkrN+78xuue?TzKE5vFPP_@;{6ej8wfD^PktEkE%O-Vc?FL0c*XhQzuiRb%I0~W zyM34AG5IjP?PK{ESNWJ&oP3nce-`uYKQaE0Z!ctfVE!)7x1{$DxnH#Jva~+A@*?{# zr5@(%8R%(lP~~rkOSeAkg}d+ay(}-L*L%P3asc}1ZlZS4zRU7? z7aPar6jv-J5Bla2ig$W=`aD~2V7}6H3366VabuJRo#2XbIYYgtsXzBRzgJme-{qkX zBCjmtb?dXd?q=WRjWPW3IDB>NKJ0g?eV3zQzjqkgB9f;A>ruooM6FqLd zJm*Vhp2o;%T_NRu+jlw0<9G6#3di%Cd7h8G*>_q0OCC?ry10?$L)KF+AIj~!Jc;l` zdC_OP?=s5EY`LqD|J?=aebJ9n`!3U8g}>=$el5K3GV1Sp=aPO>jDcVAe${9_`#Y)^ zo oIg9PPd=U7uijSiH_`b{gai4q?emHjn`d!M-)X{y|j{}Im`*PpqQ?!-DrEi|| zEpuVqWBoo!^`d#LWBu9PzRR|lK3SYG_i@Zi8_!F$f3ktc@6v(#ZrCs!{hPl-uX>n^Q55jZXp*tE<$FcrRpJwQKv@eq%2Nu{T zlgmnaUTk^UXkX?*3G@{0%M`!phx@h0C2k4dSJmgaW#b%)r=z$+@=sBmBkOV7&q?Rl zGJe-?RL11c#yN7Y*zwulzfhP%|F!cK{cM%!O?X~wrNXig2y&R_`mzpo`{Q}e2}*w6 zO!I2%3U}Y*>Yd<|?N8O`Ss|aAC4LIey_EMuEDvSxh4ke5I9{OhSXl0&@2il&)6ey5 zuKdyY6kH#2_UJ8!zlT$ao{w(QD$$gK+Uw7Z*@psd>Mk|C!t( z^xAr()bouT#YeR7jOn9&k6iA_zQ@WPOfS!4Dsdu)P5iTYHTlpuE0hmecSZTdeZTK< zJf=6M_Z>Xmah=}@F5~_uZokXtT}~|8_t-{$(B1d=ABZDIyVU=+ap}%aGu6kws&etg z&rU&n(X8!T)qf7|5ue@uBp)X80eO8K^S59=EZX;Y?b)UBVb6Zw! zuOsxD9Rl5-K)W7h1Mf>BwRhe_t`fWQ9PE2+j>#GL3;GUcIcruqYh9F_x$|W5`ZtQ} z-0Nol|3cTF%YBa{v2hxGPkjmVH=^UrFKV27vhVTA0{K|{zQtkd@OT>d@xJ*Lad(|upUJf)S+8ZH;Kdm0ax+V}WM=I>Ab z%=Ugv{IU66$p6q3`DN8lz`vX%f4EHiVaod%E3WGgIZk!rj`;K8+!qO-6W4M)utoIW zjR$T-J?+>0o*M^z=D!gKe30Wjcb@aKZpJukC>963pZW&jsSy0d=QzqZPQ*f*eo60S zF85?ShsX3<@@!FD^XoSh>OJg=J;!#Rci$hY2fon$H(q~RJdW|V5rr7n0W|*N_5TFh zOXPp>EC0MZvcq*$5BQ$iMSKe9LHP1qJnx>SxW=BZgN{q(IWxyEEs2}uTt8?1f_$9G zg)1*p;GZK`{Qhn@p2{%J{8)_7@%K=TA3p#;vdl*IOT$<cZ&Q`efmdu=Xf1dYX8_2{CxO5r=2|CcK#7PH&$5JS>g9!PH; z>Hk-Goj=a_qCC@UKwiPR1oV`WtIaXF0{pNusc=7HJ|<5iW#p-=Xq`S3;|t`;{m#$NS)PVe zo?0b8mm6j{DQWHkyAk(CGqkVT{HJTLz!z7~*>7%vl!|>mFD74cKa<9N$4(Z?b0nuv zQQYs&M}ePl>|2}mdwNV>k?(i?k=el&yOq~G&v%qR8Bw?b!}EgLVS%yu23$SFuuErK zY+hjB;V=583guPopgb3e?4aaFitV7hw-edHuA+X$U$^n~$PUUxhjuS^jvnfX{hQ|e zG1*a;g-Ppfo;*0rD%M0LpGq8W|_hz19xouXtweNI) zjQQ=-#q#dtWj37*{H;uX^u3vX;&xGfP2z=~Lr&o9sl=$@b>xxdTjM!DFZIozVjgdU zTsm>)KYtB+qTerY@PIz6=eGanm|U}+?qxDKzPX$573VQODdQ-S$AsSc`dtIi_jbGw zK|IAT&M(}5eM~g|h&~wyVbtiozHDUbwSMG=MN0P@qBrUM&M|2+e zv&&2R3qD7cd{3mW@;oBSceb%SMEOpU4|iN~dxm*)R7riEcelUeslSvrBKNaga9lU5d7l5Gxy3x-{VK|1Xr5-5 z=4meF@w(&dqw$p5$Gw*JLqPwNgbVm?CVZvjrrbX6=aU?x{SqSax!A`&5VNb`FX;X` z$s@g2qjpI2)z1$wTr?j}d>UWx{ha0{&Nnx1zdv@r8}z6jGJ7_;N#+Z5CBF!|x|t3- z--FAfca+Fuu2o@?Cpzzv;lLNUNb=WisJ%WXbm?lOevuz2mk(aIg6u)IQTuJuek!%! z8HOQm_=Woli=K16s7Q_mVtK}9$lvIo%HIH&E}h+)XDml&3)9)H?fbY)dVk?Khxj4> zC_K+k_br6y`R)C8Me1VmWb2jB+=+RsQ~uQ}|86OYztYqm>vzlRyo&izqwUgMy8NhI zVBSt)epG7vD(zSH*|~T|V)Jkm_nTKfj&SMLAJTbvAol#=1vLMV(_^^bA#Fd*Wzu`F zXuO_|_Yt)}mE3QI((4tCcTW3#v`oJ#?src6o#!%=|F4Q1nEhYSzDD~YE?L072ETxP z6$k0^X6=l$j1}>vOa0K{RN~v<%s#n4 zDs%^Db}KCBX$5C?DJ=FZIJ1r6;DlDWuJ4xwCp0Tu{{;RBPH0kC_K^iAG%76qIXIzS z;a!}s2~MbEI9OXF<&kN*pREvlM^-63FZGWkfuSFr`=s|P6rSPxN$;ohHeaC~or=lp z1K{iEPUY(qm+m}_tK2*mlN*E-kk^OmVBf~I{e;fTCYhHrm>h3XhT}~hF0j8<#_9Hh zbqDY*twsDa#c^|L$qQwjG+LZz7^nKMyXC%<^cALSg7Nsbj|;wo4q$x2;liij7NO^( zQh5H>CjQH%YlQll%t!^$_mNkCK3RvPmMl~HWS!!+!#V@>mHTem7}KZgm)m9C(sIzR zo`L`Nw>B5iF%Y9;E7LKcd@?!)8FuODRyxW(U%G|q=u#Je1X1W?@brcH-mAh-v*u=??${mBXlGV z*ZnZN7^e72%0mUOe~8Ru=sz2z9_53$9-RluCFp<6Eyw&At=b3P|1rv=@^zO_Oh-=e z;<@)U(FMHd0d)QJ^PoS?72M}egxU*^;L8+;-pP2|b3fsd_R~taUFqL3$8fM(%T-Em zgVgJ&m3AG~Lbpp_8~EhV2YNx*1H@N9*T#5LOSa3rjdn5Ywr{5TyNgp=AP2c-#q)8& zqtBryWqCp48y5PP%?o~6u6av|PjuYEGvIUcT(lnn{`eKd8uZ)vnn-@CXd82z17jR- z{EqOM&^$9)&Td@d&4JUvODMe)4<$tOyMp>9v;RygaR6U`Bf+?jydC^%(mM{-IPX38 z+K3MHd*%a9oUQ9f;6q3@sd5H+pzt=_2XW%dWkHon5CYWeYa!3I3L6m`@+1 z+k}Gm=V5&Qjau(yk>Au3^hWcj{rjf~UeNc<`w72Z$GG7ET)F%U?q|6v48M$16+psa=Q4F;5eZpQ2QL(!#7vV0dxCG!B6kmbNlv{;4aC1b+^Lc zGT=6a6<@XZIhQ^U`Kn&7&h)LI^IQDU3W+ar9+xdkUMhCFVUVA%`#plMh2|5#r1x?z zeZ?~=Aj@GL-3d&74&!Qk9efYYP`YY|7;ox;S968nR`Kic`3{bk`u--tGkKokBRj|a z{FA^fORD(~cbpSC4|hLb=HVw3G{4yi<`4NdE|cCvqDSuh(f8b;FTp{PoZ@?%kaW!F z>`CC)fbb}?lWGO3@f10*uj31L{ z%ebNUZS<${J6I)gPHKr5L@dvtm%$Oj$4QkVTpvO^sYYX4&In!p4HMn$KVy7=N`eoQ z;6rvq$1$wqc&Ch`TE^kx8;tScQ#>Do+J1;j$|DrbM;FZp^vULNl=;^!{LgiX94$GB z`*r(k)p>kkN#Q&a=}i9^&tsd;V=I>}iOo6>!wkFl;(Bv5;-n(IS;Os3Us4INQ?6XI z9++HrGuypMF{9p6D(mP{aD`lNS@OU550{QAjUSC4TbLhdjsL2+Y*Bs$4I?~`q*tsT zJ7e?F$MdmM=VMyuV_ngFRA@Z1q>zUEv z%*znk>AVEB(mwS(;cKuu&G>_cIxgdS7c8sc>vj$i?oR=q>YqD~xSajuj8bxT438tp zU#TtR!!Fg^Q_9GF6VJ~a(?k2sxNKQcq4Oi-a_O0g@%0pzlNoJ4%Vp9#mgS_#uUVWg z?w{<;F-7v!qE%$CGiCJ6ErmPI9;cwIE#|C`nhNj;nIP_UGYzYmF;tU#!FzVH~ka=&1G>Pf%OI zrJt?jdh{In_ozVMw^n$bVV4i_dANhl#gE%%TPM2h=Jh+Y$Hn9URt@s-_^W`&Q~u5W z8FWO?q0a?Kc0}?9F5WmjUnoIO%aYTSe=`e?=ba_nH)wm=XOi?JAaLoZQTg~#YG*0?K0dWuy|VZ;>7~hn722H&?XTQA_siU0rS?~${oS?5{+4ln<@7zGOZShf zUoPN>`mGt~d*X=e5J_XccYwZZjrxl^E|Vgb1%76i%FTF;uUK^f&nI}Cb1W~kzeMHc z-rbHf>HRm@SjdZn=t+A2#{C5S6ES@q*ZDSmo={lq06kw7c&th6h_18H&%{@V9}avN z!S+67%KKr_xMoTIXy1Y8Q;u(Q{4hw@f$zcbLjGbr_THqs9{M!Z^Rt47)(MOcel1NX zf#=bmBVT%ck^GNSKakHiX}yQzzV9zWqxvEw@~jluPekOd?_A(8+C>H zub}ZG&rtZCyf(Jac>aZ-od@UA*G>GUea<02>!=>^Ehl_7&-Olf(f+j_L2UYOaYoA$ zxjuOqck8_0mXFahuKr_$OP8)Z>6v>zLH`#qKY7-pmPAw0KDI83QzLpKe*YrI$6>^? z)v{lY;w&CF#yb_OS4n&^`NO!3FMoTyP#zkYe}d1g_Y~Cw-x2xHxyv$cmAjySK*rtQ zt)=LB@%)KCyL=fYzPNG+xj?@r-xYU)Ps1^LBj>8Sctq|@o+5tT6XS!(dojOmjnxCc zY`$DR%q)^$kCfoo9`k8T|fTp1`YT8SbbSxe8Y6^;KHGLGX0c3Vv5!CQ9%L{CvshAa4^g zj@%TNn1B3&GI=zLBiSCpZp=_U)W-;c?_KW$K8b%z-5=ol61SJS|8~AF>w;4E`{;hs zdk^yi_wloJitYO$zhAUYiTja*$d8!cbNRH8f9Q|v4fzMNGZ_CRxbMg@^fZ#=$X?aP z@GRsXu8HX(?7sEu>g!bndboRgZT_U#ZnZIg-EqL~M&pR|ar}-#eQYH;Gdp76NyPpu z*tf~eJY6g&7qecrs@~Z8=^b3boe!~dX1}6-m&Evtd5h?a?BP*VuXuc-KapP*`|b8y z&VQU9n}>4#V@1I{sQ(E4_<-nhwfK+l{ZvV7dC`8RahBs~-%(y+u_r<8h``z|sFvp# z?!2*I%?aO;_i^VD^7<>92Y1{}CG3RR1KW3k_#QvBKZ>3;QvM(|kFx%B@j|}cIBE+$ zmv7J3Fdw4z-}#I;zRq;<)a!cV)L8ru7J!~3V3)J?PXdvjYveNNbr#u!G|^LPztSVb z56DH5Z~@=nC~mQMvw)5=?KhuA{+!ywG-dR=7=RHHQLs-&~u*2XX^?4$W|I zz2u*gWbyH%=XhFA7(#I`!zQ1hztZPD_WUR5oxuHo?*oJfe#89L!`P>&ah=N#=1&iL z75_FsCC2fkpV2(@i+%BX({z>gV=O;`%T(eW7T9OyDTY%f?xt94Q z(ku3}{-Nn2JT84`*9JU}T(IBiJ`nqLvJ^=1ARxw@Qu)QcRlp7*!^j~ANkK}+;`#>SDws&L$A^ak^3u1?u-3s zn&k$1gn;BXyE6Y2`j7mG z53pdKd3?@%yn+2sSIqzPal765pF#CM=fwQai>W2%<&Cez{0*|-p>+nAN$+ip*Oj|g z!UH>G-;p^5>*LWjZP&`BTfb=mzgN%wHfj52?f2rMe*3iFhsoxF-eb7m0d3b;)Nj`U z{hq-6c4_-=?YEKpr92PMYxq9HsJy>I&(GK%w{O3b@B2H%{sgO~>{un&JF3NA(f3^h zPlL2~`BESAf3SNP*B0_m6bG<>pg5qkpNQ=baPgX5V*BjqpV_smNq>^w@kRWtA$l;c zwqJApPRwha(ow^u+fNnM$2zlIJo8uVhssuI`!tu)d$`a2I*YG`x_aR8;@pJ92YxmGU z+ChH4{22Vat~-jp6ZkQ~GsXq)e~J6`4X>sCG=2cSt0$;m?ceg0;dwOixXg*eI)TTL zKlba69eWqyE%xg-GhwCt`cA}oj{Q7)Dx%Bn$L94Q_z9tir~Reuw*p-kP<~WlSr_=Z zZjS$cLiD7GG>V@ECVYTx-%>}l?2CgxB~wDz>zNMn$5Pe`o(_Gl%pEt&tut=S8}tBp zCf`N>p&#V;hDr1<`6@b(N9RZKRYCQL!ji9|b*RFUud?sl_2fL+pB$cxBk@#bx%5*$ z9;xARgN__+1#;(Ui0r-T8R$+cz2AHc&lBFxh~4oH(>%l8e4lg?_};+wd4&1y=Z3j- z>km?W*ylIL{QV)?&v~%VV?)wDKPc_X=(F#xjp{U|K*MR{O_Wgh+P zkisHoE}eal->p1cuhjZ$>a*ytPscgHWzs8-5Aw0NB+dL8e-fDeT>k&#?n~e!E2_P3 z273sDU}hjQZ3Ju_2buvjDncAZ8x>x}r$l{&tq(N=E)kb6GlQ5rSF{;KB5rX3T2$!n zj59s10eu)1ohbTV^oa)C+UG*>x#an|MBE}OeCPbnslL^9yV9N6I`(Vz~uP+52bBf12LY5!?)#s7UcxAWS z=r>nC8~u0z>Fs9rK~3e)*av_3B;h(ft8~;5+VxDU{Q2`3Fe*{|dEpQ+!)>n^tbcq;VAlab!$2e-%W$HS*F{Ae~Kr zaY6Low^je`fc%vfxE#`d2<`NvlzuV&w;TR?W14?d!W}|acxIZ5rSVAS=i!;u5X5zS zJCo7j_cBg~XCg{*9Um_N25>ec8pLv_Uw@I*e}k=<*|^< zg3>>NFcn-2+-$jeB;g;er~>be!7vJHD4)h5=J#FnhWYjPFU0BXbgUm}ycE8PxHRmi zzvhWVXIbeaDrEmTmhZEi_hOF}QC`FRpVIl)l?$+wV|!^t~VT+5X{nS0`C+=M>L*3CG25xo|^T${kmGWJ68L9hZ98?>1mNYQsGG^&aba4bNxs zocjs0ko<%Yr~3dB>C;F*gXd{V-(Y`j5c`kI;gv=5Lrc)X_FuH256|fwbg4(bTQ`0T zTYCb$=kG&UV4~|5kS<==m=wCKc>>Fwu~%rF6MSPj1}Q(|w|MM1$s|9 zmVfJLp`J6ueky`%?5FY=q_gR3+8(8s>G+=~EUqV}ocECDo}`|5pOX&blF?7^23eSw z57M7p?|1KPwhlPx$X8N+eRBGBD$n3e_9f(afBC5_Cg*vQJJbKTT_@bg@|=f!ZS44p z_@`KQJoi7du58Q8dmQ{^9w_aw_3^7HonIe|eu?$*(&w-Jj@@PEuYaO(D=hbG{~3^Q z$@(~hd0SE+cj0-gkJE@p8#)u|MIX!jFR71Zo*3(6Ss%3P!??MjsQTEj=WAwxpn(N z#$Q`bs2CczlkzHdMf>tPjdI$R*9_>g=@5BM<9VchKIC_;`&HA>b6b1lJ31bx>AzTB zY1D+guJ_9;`csqrV4u7`^v?F=wTIHhc7w?6V)B}H_z3&va^XAp33*LB^7;^NZbSd! ze70VF#$#Du&Z6J2ob!+F4}(1wE@Dqi>UxCFo;d0xE_YJbBc^mc;*nyfl~E1)^Yns@ z=l@N8mfLY3j}PNBV$W8l5!(HBlF~0WPkI2?yK74FS0^R3=69cAKLe}&DwXH1=hW>m z*$xL?cb>@YnNYf_2w7k7FJ8ycxPCW6=Y?Rt%=XG0z2fvNZ`{tWzlm|~O5l+p{xtKK z_}GNVON#Px{u<$A>>j&4eV+X1ZXleAy=*8R41bBvCi2R3XUXmhcXf%rsdgf?^(o}K zA~>=ijq5LQ(nlKk$9UQDe7N&|p$UI&e~ELLp7Mh7H2^)SAbC!QYj-~K^ThWRGT$Av@238+ z_4|`_yj;cFiR4_!{kEcYv`pPKeweX~8T$-F$dFC*&$WT&Iwne!HD9Z2J1 zm)rHZdV%@N`jqvVy?=7}F9W3hURXk)JjO-(1OHJdE!Z zkbb!Jcv1MaJcBNkU;A9JZ67AOEPT>r=NLI>x-&#K%g6YSd7fLK7^S!5DoyzExMB8B z;6FT`Q9YGLXs7R_^gJ$J$tp8NH#F3Df*l>FAb3+;Fp$e{JfOnseq6Saf*1YFE| zAMr`!x*k{-9L+u$;jixnN1M)tKNAkyrJiQ{Cq>fVq>um1Dd@X9(3uLJhYWO1h3e-H zjb{)~jKhij>b2l!10AY2jbF(81l2b#=N^TXg@oRmYoRy)2>W18_2#_l&79IH@_Zou zGlrc0Xy&EQ1fD~}_sTHB1YT|IzdX*P-yTEHQ^8LXc1&L7*NjVF2EKzzM;@WgkA9V3 zpFR0i;M=eH2N3=v_h0%Pyp0}zDDdu6I&%nH;Z5J40l#pU^gE*`SU>#sQ=}I}+@UXi z&2ekI?5DW-KD&M{y49~)FWY*^wWsc*wC(7#Sx%?=!HkQx9$NuDb{iNk8v74BaAFN1r=#2D7ef_5mKjiRstuT=b^xvGCaXcxrDM*)hM6b^TbMo#VWh zdAaUeS>HLWb<#0^>)+>Xk@C6ygY+l2Yw$;ltk>1oBYf+1Qa_j1tL2?X< zI95UN*jF<8_O)!kT6ET^-L%h!^|7QKr0a3SMq)j!OO!Bf+WA@D&G!cJdVyK5(Dg16 z1Ik|jKh623biR(n={+Z*{XfuQ_5tmBib5yS(|Q2-9rdW4SgvW@tgEO!)MUMB+QEhU z4a=qJ{||;ghTO{?ud799fvty_9;4@Mxw?bp#gZ$=y_sBngwvIkKU6x_Ypi~2U z*vK!RT>X^NwU(=WU$2{V@T(CH+)vg!az&4qAXhUUxsr9hcI9d*@`QCgv%jqOvB&Zx z_dCbybVi$B=U&s3IJf|FP-(us;dmMS?{hnre@EvW*YXNc*uP={i z+{^=qCB9PdZni%?;_!#{JoDw-Y^PYb*C4ODPt5(X!B0>3iRroM!CXRKWt{HA^H^SG zeo20Eje5@+-#9(}NBXY@JB!+Z^frCO2Eu(%^MYcMd}~8wTb>4B0S9a z8IEUV{g38ltpDtN-SZ*0Ln^oCySy5Jw&`Mdu=QUN=ij8!j_!`{Aw9P*L;tfKVAdC3 z@+6WAv#w-~Q|LcxFR@AFc1>kB)ZgZvWfmuM1PU_J*QiNbe%}YTwWI(iMI1Ubw8tW zul6HZpCNl+9#aiR4f(3=V-INE?yhUB2xzR8?#T0s>POkbLaWXSPrdz#CX}`%1=qA?f0Wh$9BNn)X#Y>_%bT= zRK}DqKN0>{hBYqzg}!e@Jl;1D-4HIazu2kgtNYe7uVgtcoAb)$ob^<2ht@xj`pkT| zzCV{(7kumATsg|>x#(tH@YU#V=KOd$58lQp-Ga_7pi|C&C%pg2^`(M5fIS#~*?C8v zjDG(b`f(mO(Yk7LyxLe7yovgUjfWX8KS9sQ{zg0P_x(f<>oc=1cqZ^2P&)b%+Uff! z{bK9dX9M3p&7VWq>|DWqhp&&3dclvd(vPsAUgfLr9M#jMUd^9Vz8;%s?~qgPTGTtN z`Gykp=Cxkmxu03oo7en>!yp zEY%L0$9Puv*DlX#+}J^bus32mNaj7Ze70)`{dyAPr`kaiYWEmBsH$;e2bDB#?4Tmz zNjr!~LmDp@v4g6P9rPF;UneYT5H1ykJz{jwhgFJ^TXAqC)Hzzi{XaBwoJ%Jp&h2-T>ye6FGoFn`F8T_6w z;oqUGRLGt&_ap8R@kBXi*nY;_ksNv`Lw|BTzyB|mw{>{Y&>oey9}^9n?p2ttR~7#W z#s9?#{HGoKUkdzZ6u;>N{*#KoPfjla{*#)2O7R~^)H~yOm zMZGo6KdbegiF)aKZx27yz|p+7`E_UmKf93Met$@t{5+%uKR*M0u1@f?=6<^0b~-!5I}ugJJS`vDj~x;u^r z0X!b^FIp}9j`ZBM=mdFAZgUCw%sMzO1CG6lV>W?fn$olW_MH!WC~!<`{tUuY@N2A# zvESHbM2g)`)(`eLb1}(@xi5j`kcOlB{qNnugU}E=|ESV$?o0Y5`;Co{Y5k)K`bS#O z|J${!S4T8|LFxYv=r`xSCFNi}=ra6__p|oD9NfI99Ebp)@%Cv$58Kp=Ic+?+t;Grn^13` z=Fe%pMdkA-`W2mDBH?&Z!W|_EKU9^lGFf7?!!mkM5k z(0dO|ll!CQssFS7`>*3zAI?LrGOTh{9@2It@KSHjPH*UzS(q4ICNZh4C5sBuQ{Kb z*54C!l#~wNyz*I~L+2s8OG<~{AJya@t1*WT_?cJ6kT0e~>};FsqIPjv=LEQ0e%L(lHFVx62!F z=r|PeG2qaVPtcK5I(+uuLqJEr(ved-s!E6G37d{yhmJoT%XsuUbo3?Y$S55?duave z$SNHfrQ=$qqmaO(%c0|Eprgy7Bb}flP&$0}#$O&r?J0LE9f8vEW~E~^LC5^Pjs5o9 zM2ETGjPwiifA_LCNdEDK#5god`B}gC#i)Y2^FFK(zJcg7`!7UCnn<$OrQXNy*_fdp z+l6y?%euqMD9-x#Bk=E&@s;?9@rU#CufERgtb<)GuY)jgAJ#PT$M<2$__*oJ2TFN8 zGR|+Rf4?u|yiFhGy<4OLrth0)kX$(H>IeTmEb(XC%N;`DCg6S9+zYp4v13mliKCDT|$NsnvtCQ%)e9G|;XBM&Cyb$_L z?8LAlcGSjY{`;^Nv|pHeoch5JvBzkiPVKPP_hFq0{D#HO-G}?I&H^6?rJQme;Zp9y znqqq<(Qgj?eORN8Ji&i>d`#tfROLzT2V3kutUjll)!>J&)98KjsUUeD)`-f5Z@;() za#2uvMwFfde;?M6)1JTacL@4DD&4=UbR4Mru*T5u2ycWu4v>3S{T{k#MG?=9UpBv= zqJGrQeOTLYj*G6#)bA_w--ne~{`l4he||j4ZFx}nlUH2)_hI!rxZaNMJNh;M0Kx-# zAJz=hJ3gTOv>)MtxDV@A)RWVC`cxm7`>-a2f7Uqfj-zKa<DLzo?(;| ztsg-cf3G&Eagl%W!)saJGijpY>SZ&}v+baTdt`j`-G_A<@Cy{bg?pIL*#G#&ir+v> zdY;{co{h^MrTFEMKNTeB@mX4Ds9))%HNw{*Ymy?|IGah(P^C$UyXqF zQC~tDs8OCewLahc;l-%0OY7^@`u4P0-?LC(Yr39^bcTO6zly5YeD_&BgXt?5RWFqg zx^{LdI6cwsIh6z7{Z=`YI}iRxJ;JZ}o-5Oz9tU7;dR_hS(G$2&ay00l zQTnAGI>*WBZ{qK`7{2#3#n;fEU6lT?V)`M(rU9o(rT^C+JNR!Imb)pXU+OXUw#51( z>Hq2C|2~|5VDwx+=rwwC6BVxDN^LG!6K1J30UGWV7#;YmoQ&zQYOCFS0Kc^-OA9_ABE1(H|i@`ChNd2sL2dOGffBAP8`OXcf z5TBa(*YkG@G_ORxTwbr17gBkK&*UG6_lfV^4&eQ1Bivsq!f$Th9V8>PFNc1yvE%uP z@7-+wU0ZIR?BJ;W(FwfMPCDOrN#`*x7JqZVPw=tvdp4!x{aCgL_UHX+LxhX%ufuY| z^*%@WHn@{@6?o=#oV)_#1Nmhl zo(kk%P>9h_XQJI8tbcK9FTE`$ARy7#)0E74ov7cpyQO@AK2Y-a#MSd{3W$s zQE*ARWZX|-)tBVcv0uYV7WvJ+G3NeL@+-%4PR}C=^OxnC@%(wj@;2&y{}a5gdf)#T z?W7wgX|_|I|v(fP%Q(|5TV4k1kHg+V;G+hO}R8he!a`R8&YU0Lp@I{t*? zs^6)!|^^IefI(+brVUm?wp9B8c<+6O+{bZW~g9) z&-VE#yy&4+Pq~VT67AAsrA>u}eA=-FyNLi;;&=7(($jdK67{DH3_g6;M) zUN-+mocDc9$96`E@@>`dy%I7#pJsZTdv)kMf05@(FX&4J%aMWn4iJyOuOSaS`jI`Y z=?GxN3y2%}tdAdJKG6D-^b@KV{fozs0_EfM{D$fJ<2I&C#{XvTe@E|$F3`z*MSd#B zj`pM?~i0R<>Pj$vaZYMv_(ewB_)$357U608>a&xo!`?%0oKW}XMulyih zzn#&znZMT%xBJ0^$zRUwi!eQFIPTy?{_ldb+OM4MwGN(QSEP~7?RT91W+y$*f9>yl z-|oEk-2-GF=lu-qoIL2~{Lkn2q$~NCTz`;uazEqm zWH|jbB=^a2I0Lzf$HigLcF*6jQ;X&JVyPOWBd~PDb6>71dEMd3p#%J{Mg=n9P@AC_goN- ze}CYx**$R6y6;ouFSKriFfq zTm8@IwGUDMX?D-c0?8+jL*{$J(}8cGbSywl?Rw@YJUgVuj9gA+ynP9Iv2wp*FQx2+NS=ntmUqn0YM47&a&fna5Cf#q#dO*A82Rsa#t|d`XVLR`T$gdWS^i7^t=YIvgE0N# zb@>tK`*>V0XxxnJqZ%*WjeIMS-TLliTHe>^S)zC1bIHZNG4r!#_rQ%fa&7d;5stke z>!`glzqa_o>#*iKx_DfZc`1*ZjpxhA{FT<1AlLDCmm?aN{RxtLwD*UkPcp!3TH;h5 z$IZDst?z-8a`xpOxSMZeel5Vh+V^|lrqGUPz1SJ8?|~~KJ@?DIZXkKJ^v@Xg2dn=w zE}U)!*%!_3fg4i&Y|b&goYyhNhk-l!@gTJ2IIsHI=che-ERFZOcAH zA%r$Qoq7(b&mMXS<5TX`{9OnS<~?weo_>7`@R(FQrVzFouk3ak{pjjvqaVwpx0~4q zRh2(uA3PTLPADB!gmyhel|LW8eZaS<`AZ1@k@mr;gSWxy9l(23=^R7Y3U4z`vVGvL zzyFC$_4ppRSU>zLkF%s7`N#e2`4o>>juWJdXOOrMI{obKkq6m+_cWy65iT{wj2HJ3d7^C3z2=w8Qj!&Y#iz7lHnJ zfP^hid@e8JY3_mh?+-!$El@VH*X3MZJ3XJ9%l4^H|IHmk?H_MEM>pIdblsosf#dUh zo81F}z{PU)YQjHS5kPL*xd-lvG+vtYHlDJMu<$#^+m;7jzhgds z?2$xgncvDfj_jkybiB!VFZReh%Cq+=Ur6cv>(T{Tx2xMr@?B7DFAdB4l|l#2&k?uj znq)jJd1m{E>Hh`wH?r$ho~9%m7rQ0C2Ttvg4K*oO%*Wt=&pmKy$U*(yAsXkoqb>a& zIFSSHw}X_Q@p}dJ`=#FlC;aDfdbONEDkru>tI$vF+yhr-zHXsH=ogNQyw~p^xk8>Z zo#zqH$bJET<9pyH5MRnYaD6(y`Si>AtY6A~I&S0;l0T!!4b83j$Lm+zuWWh5diZ8} z&-8xkdg^b~hxxadU3N96(|l&0W$V>FgljwZz}+%I<>-7fc@Lc68vENk26WlShqaNY;44rTKJ1)W26E!Ct#-$$BPw$rcZ29b__9xc?2Oas6bv0XG z@O~$)U!Z>vZ_Y{gM02UDPjFPH&|; zX+8x$#_QI1qNCdSqeyr+n|Hq6kyp_RNqOD4sJzaDKk+%ea~kK>d}{CdS&6Sil-4P9 zoVV~=;Bm&XA6TBaeRqRJ!tLqWHx*n0d2d+r%;(3y}2kuEbNG``qDwjosHV&hdezAGdQ@P$T;9q?|{REBI&!rIio7>0p zO-|1}m-%)0>v&$>h4oaMo(%D|nZL!as1LKeq$n@vUqd(W$1{$lsQ_3JvK zS?BuhIQO3c?RWhM8|0%!zx@H^Jg52lwBMS0;JPqQ#Qr8?xVr6M$~|zeWjrh^3Y%2O64Z^Z{CLVVH3X$_a3-&h~ITSS@p2IGTmLy zc+YkeKR<$=$NM+$M}0P(CjVJCHQT?TPEJ3vLtyvQIbJd@mu26A{Q5O+_HX383$x#M zAn$=&pz~R6yTY{h+f{p9ll`FNzKopvAC?33xA-2o1$=ly--jghqN^9!o??B<`piE6 z`yG7V>3+KhZVK}xx}P3l>wDnFkdFEOnGXAT#&qvBaI(|aTAY_V$o+cPEb@ibn&kJ+)8lrOs2$;cya#TY#xLYiz;{^n-cUks z=3D5^Q=vEWntxFBW)2NK82%Z3&UkC)rEdeCeLBA7n&Z`mf5yd*el`7lGd*v14_ub$ zVY|nSOZdKOyjSVSBDCcpFpNTJvWR{v-EaIvu=?9)A(=?o>Lv5GLf)!8^VO zPWqkE6RaN|$>U*%^cRkw!f|W7ypr~{%((=6a}V5;SWi)z{7d?$#d_eOoKDAEvuqr+k>6pLf z`#8J(gVYY@%MIULWWDZCZY}X?n{T~N>SsKADIJ%0HI--ZHuh~|z3u?q12;+f*?gD4 zbo{o&`gjuhxb;17G0x{Re%AQH>veH^2I}MF;~boQ-xF+QJgo6CNBpqYjSX(Ep>(b7 zpM75ktnxT!jqgU^ev132MQ4rIN&eT}12+MF$M<$sH9oI?z-kXQS#K&jxNyH=xis)AAE9^ZBwq+wk22lzFs%#;K%aA{qPlz zT+!nt$khzy2{s;B=k1YozIYvKPW_H#J&K?6&)hG#_xHe!Ir22>k*DN6a3c;LEKl~j zR{`=gqVi1&OLA!eV3?mckthurq5+?w^; z8v2{vPgx%5`_KA#`8}Mokp_;7-2*qy{-kPm*m8{iW6whgbJj0clDtIQq+NS+58M-3 zj@3To@=hgx7h~tqd`|4EHtvCYtkWN$-?so3(D@uHH@S}UT_k9>juUXddv~0FCH40@ zF4j2BxG>${bLuzqoNv?fcpc|w2|gLWk~^=n?=SgnBAvMh?!Ow+VOmT5wFI2vdlJk& zaPr*v)yC(4@4FqdK<8N7@?q?l_tU(B`x%KY^~WsMpKQ5geP;XNu0T3jr{ezI{2sVK z`;n|yg?hhN)T4g5-_-+xj}=mA$RGvC<0V7+0l13i=ciK%=Y&s5Lt^*wO14zxG- zz`dLJY~u?%*zSKsH_Kg_`d_nq;O6vPa}B+^n+#BmUtYr`t=C4hxS3hm-zmZ5siz#c32+PxX2Bi7oqV?LXM_c z{i4m zmvW55u3_|_usVd$wl7@1x%(z(vK*4^@Q>HWGtRiO)_I?2I<`xCvoB`zXx!Ct#Bf8$^J1_g+*N_~SM|8cdpzCes9=Ivg z$9jQ(_5Hck8rSugRFJ#}uIQ`_ezZjNkC(KbB0?L-(H3;x2s%eK|CrL52O$SzT`=p& zlhN;ofqz-$UvG1~oOLR@-9|2dNBzToZpO>s(DP>Zz@>>EdtI;qd^1W%8lhcYC#C0g zL7yC40em|(e;2}L_rOg$eBF$Cr<5;~2<>{S%2(e#aF?Los^*_SmgPQ4eP z-dW98OVm59_4@9CdpYWz*8DSC?~#dm7o2*Zi+Y1UazgUQO4K{2_4>~1&!gTst#=+_ zqJKH^V(dQVcZO5}r#JiGCvWBbZ~r}TH^0xeqb@}IjD2(x(#@%QxlI9uZT> zRYZOsM&8VP(3ZPLL+;jr9=ly5#240I=03O&GoFe2n_h%|W9RF0_%IGWK)X4`9!__TCeXukoTe9e$79i_2y77`K5dK`e5K_ z-rIaV%jT<|`(@rodhY@AHP2EhpOFN?_xWD9d$C?+_m853 ziV7>ISmC~+wT}ang>g&2{ zS1kE{z*r7`&-8iapaTRfxp0EImN3lfp=E%_ML-$Z#R!? zS* zG1ktPR(}4F)~K1TJ-{`i{75JG*{S^WooD%F#&x_)^LI*E7QA9RTh{O6^+vOQAnTT7 zhky^}zD#rfrCH~s^TPisxR`Y3Jyd6*-7*v>NYa4FH-lmKQW$)%PPBm-#@nd|2bt`hE!UM|^+5M9Kw49Wq=V-?FOioHZ?>&>l^1go0W6+Q6L5+86d<5}Sa5=)gxo7h2 zU8JY>!#$HHuzZ*2#7^9g_e|dVAf`|J16lE=QBpd5>sB40L)SU>;-1NWXTQV!aL?rY(af(=<(JH#Hy+mh zJ(B@{pSvIKnYJm|Zfv8|J>)CZ_X*X-0e*N_<)X^{RlU9h<{MDA&r&K7@vz=n^6T^*jloy}pX}==v+$;{{5=^q%uIvh%OY3V#;i%QMh^>7S-P zZhwu+vD@Fv?HBe08xLCrI!wA$kU`w#tKI&rw%<37Je}LWyI0$v)%MH%$I&&?{z$*K z<9hjL&XuQo@9-pni>?ncF5Di**{cNEb_b|C7FPNN6(^SAq4l&~1?X~o^Q zuhzr3movbd_W3~m=5=EH^8*!xodg8IYF8HAhb z>vI>#^TfK0%s1ojxn;f?p9fPFdNd!MKQHl$;(vS|<0_C_VGRr{8X4 zK8(xv$6=)=<&*^{T5phc)aT{%8W)^sy+Y%H6Rl@xT-qCdFDH1!-^&SJv<@KSZCUW7 zbppig_D-`r?Es9yq0|nRPnLtHT+8!=X>Iom!c;&`!t}HAcQVfJk^GE<@1DAkG7h`D zl>SbH-5npmJsd{QrGhV`pit!@I)MnGpI;CBJKo#$~5N; zXg~tdkkSJcslqJ8u{9sk$7U2#E1ryo&y`o7B3!uwgC3X1CpLOcCX3wiqcDjt7^HUE%=_3=P)FH5^(d6IU; z@+9qw$Db0~8IM0zjT?EI(72JONsTAvDesY|Es&?Y(mjZ<)p$U5wCa~Wggg$wJ|#Pt zImY^Bl1w_|@5%3L^ql*-dH*SXzZq=7JfPsbpP=`oGVpWdC-!UZ(f6@l+x|M@V@D3p z*$!g^HWfTv(>2OrU5{7sI&k$j`QM{`+@8)h_4lJ8Z^`}ttjgQZRNg+!@>b3&?!5?8 z!A!z#C_3ZYIOMb>_*aSuZ8;s)@y)0Asw}7FQO!SwFco|;QE$J}YxX7Ii+Tr?-hPC3 zy?rhE$NNxkpXSeLdv6lE$*ZsST`#0r?kmb)l0()L%+KkP%&S-)&H2d5?@6Tph2;$B zrTZt*zv6QNr2pACK>u0wm8d?Jd#XAJcjSOK*T0?o;%OeJ{k5p&&TD*37g@ z>iYsh@~0B~Dl!k>D$}|ktV+KOFXI+bJ^O1MaOYQ6I}6&*4AsZ&o0(=i<`GiwNXU?Xa*act%$# zo>jp+x=QtIRrnEIrFyn1{EDs;J!|ZRXod3c1>(Y)?@GOx7ZFf9>d??Z<`Ck)xs_*O1Xk75|j<;157wbuj|E|6F z`u8^So%>xgd+)7~6XWNT7dlk$Mki!ZVRTJK+EJgci2WQ^M4#8kt4oCbRPc+098EfU z^d9zu8=q3VClT6wsiz$VdS^9XEm7}ui+bl# z?~LZ3)_OlH^@@2O>^V{RWY$f?ErN?p*BGrEaX)?95!8mXa#=WnCz9FS=5TV&eGIj{p*GqD1{1`&jr|kE`ij?&@huyTE%s-CvFBEu#=y-{5 zJY*Ttad|`*aON;PMA{oZM$*;GrTKhAxfJJLv{u564={F&+?Nqu)FiK^W zLc*s=zIyp2dky7NoPV2_uSXbNltFo$m!G8Ztj4n%@0I!v%OD;u*LnvKrE?=x4~m%; z@b_(8Un;m0`ReN<&(Zd)e6qhUr~5Sh5Bhkbs&NjD{b=-Xw1uDYx~M7tTSC`>((}9w z-fzwe-J72;?b*Ch+PU=wUqkw>*GWI!deyYhw{1$o6_XOKpOEmJDnhaY^?6C-g4fpd z_h?-3+PeNP8W+5_u3wORJ@XP?G$-MPSxwg^@%1%{>pnr$GlRI@F9t|{Y&)jJ@o_X4 z^R5|+v%Eco!_95(E_71EAh2!}|`8mqZ>odM_b`$rXN>0nULdq%kOF05F z@q4?(pD%P-`#68)CwtcD^Rk4@ZrDrPCC>D}k$qzF6yH zzWtnjZpZE+8E49a2sd{8Q_J<^$B>@fr0u2ilab!+Pw=?RJ&);M^Jzw$e$c>Pk=Lr*t2eN4(t;M6DW zA^P~oI5C~f=U>v2Xnh~$S}7-5!%{%$G<~GtfvcKtJuH zDF1u4J*Hp08}-}ey8ILTMK5)C#QTgHqS?m(3&39nB5sfSew-j<97t_6=p~V_-UM!( zpVQw8+=Q>L9NBbd6c3+1`X=zmDjrf_sQXOu{>wXB;&D<_d493jEgRA;<@xxg`8R9+ z&X)Oe4{p|6Ub@Yf9Gz zic8Qk|FKQ;8#%$rVz$*@>*@z!ae+lEr)LZc|Pl}#6F_zKhpjM z+GW<;S>Ai8Xquyr${jXvpycX?y|C7myub(jm;&vU#g?WmLx+VqYo z4!&_@2>oVE^UJz-JYM`WQPWs|m-a*7cReoxu4(kcu-v8ks0jU<3Uppq5q)Lq@$1R+ z6ZOw)dwl*s&qDnR(w_1>!tM@J|6z&p0&S1)`r>zSWeek19?<-GgsI>#X}97S?}ssWnNHCg`%SJk zp;-7;<>=35{U$@t8K>L7!g6&S#TxC1oXVB4W6l9C{fcJ}p^Zy#3%NQMxb$lNKIO;H z(ckQH3JyP>fOG8>!|lMq?2pMlUn&?^lH?hg-Nl+R>9&@UByN%XARVc|i* z`J_d0J`Qv>v`hDwj9$F~IP3mlMfREO^fQXHZ~n6bIGgb+X()%-PtbpDR=HzUti&Y=ApHZ`_nu|)oaN*U_{T^&doGaY_PqV~U*_>n3_H8MQ_2@}-ovXHpR(C+ zH2Zd430wosXY7ZUO27FV*G%`VA++n6S6qGb$9uIexgwK_t@_P(ncgHFS zvKhys6J=aT1xMh$EnhhYx1)etzqUJTT8%>`rQhhszp~toSGE39g8s1<^ar4SO!F6&{%e)*(jSt1m+|Oe@cloS zJ}=)1F#4qe*?(cY%PsJJ-lBLPhw^NG6&$>81Ky*GS0RD-u;T4ox4nb?6UxJye?;+q zMWTNXYQ08pegX9kX}-Zky#p=ky%qHiX#Tv``vTM(U71I_&3aX|WC?E_Bhi{(jfYUE+JB`1*Hs;daSy^KqU!7VD9pEoZ$l4?8ISPE+=e?DVsgezAG%`+%qHe~0>= z@y5eeVm~0lS2JKvPj;hVpWf{tmi>-2l#mVPSR zGXT!6XTqWHYW~h?3Evs}<}nw8zN*q!LTLO{!tKI1n~pJujw=skI>wMM=2sDMJ6}O@ z^4Z%Lf{sz8qo8#B0PD=*_TB^@!wwynfR15@j*$c%gGz_bE_@E?7*aY0l@9a0v-Bgo zT>}mskLYAP1{^x_2|990htG~W6Lj<|9XX}LeD9n~;L+>QaSZ6_b?E3z(2-F(e0E1K z=*TJ^8KuK~?<{)9#-q!j<8aW?<__sa2A;HTsrIJv zPm$+lU(D~HBI)dX(i*Xb@&DYHlJ=p^pL1F7IDQtff6A!vnT;O$vHi$$W#>PM?geSb zKjk{$xbOZcH#2T6{ZnoSz3%!9-Pa`T5wotrKjj+2seS*HO(?;|&F+7_+W&mx>IcF9 zKIOmAMc-{G|INPr&C-sR_%EQJF6N(d5%4F4K)+`GDd+AMc_B5H*yo8>j3sb0{weiV*8{2M@jnbY~!EW+52;{(7m+A!RbuG^c^^=8Foux0+QHqGyE*Oa!) zH-0@1?V8qhO*!ov({|-s(v@QUmEhMKv|R%&^B>hT|2s8*U(5VoYKqIHn!mqg{?9he z@5i;ExcbiTS^-=~71x4;>-CCj4s?Z89d|CnV~h_O`jf|6Td)F}Gd%+Fibn@iL?ruF*HTf7GK7Pa0nt#_N&o8*5< z%lox+UJtKmazA|=%ByO5B`t5LO?)2?`oqg+5Jo+{qOYom#@{`uexP|J-gCWQemk$f zNP6>KnXxPF{eoYAk@dr=DA4B50JV$#2F&-NFJt}S_#3p6$FMAVjLRud4YvQ(*)L~% zQ0%2ve57?Gw5wS;XHYq0=hxq}U2fO&c)XYKlk>apABXqD-u#co`-1oVBk+E#{@(S! zItlMZUvd3&4t?wJUi5r3`i`gfvH#U5>WTM_rN1ZruWF)imij$inTVqw&qH#=f7`yF zB0a})wUzxn%Q=zfO233Vr2R?%t4Yw&%>U{ZDzBOU75jNb=g9nh-~F#{LH+yge^mnR z-2P*4;PzKhZu}jr>}$|{f`WUwsP9KKF8dsG&miJS|0|J?(Dg%FrFu^N&<>>k)vKTf zWI@)}1HGyTjQ`co-b3vl?^FKwBDB+IR3G~0Wxrg(<9k-~XC!pneYD7-_xsp`=zrD4 z{a}aCW1o}rLUQFN`$XH3Mwkj-DC;>^KbpFy(f{i6z;7DzMEB$%wDFsu^oy-qe~Ixc zPiX#0g!S)j6~}l#Is?M#`+7;Q{+981+6y9|bv-e!@lNE6*3U^?^Oa9s4F-~Vbq^X1Wixh?;z-%K_4i<{Mb zE5nzU3qFeLEW!qSlrO&hgI5VYn!l!e5xKL=2^{~8yvPIgm&nfmp`CtS`Qoehg(45i zmj&g^|A;)7M-Y$uNt1a$$#GbbbgcI$*p6%459>#$$EG*qwC{;%pX`@~71@Wg(|4&K zg>Rm8CfcX|66#Nu3T~73RaCAXCh~9~{jfenauiznfY-Mc^TV2Q^!Qh4->{jd%m&LfNBd>rVq<)`G}{F`^P zK5Fe};G4(({xBYQ#uVqG;`~P7Y}cD}e~Nl#-VIc6+AbA@1TS4CxP#f;yakYcR=y= zt#?cU-vP~^SA3s_ddbhB1-|m$;K#VVgmGIgIGA~vd2i;gobJV(t}5vcC4OMv!{A8s zB>o{C_ zk0j<1Q;wV-j(Vq6&ZZJ_I-zpv+b8Kly%U;$Qswjm%IAL7pBc12*`I5o2kP^$8I8*T z4y&sTnA68!8^e)`s7f5v_x<7v&`CE-4wUnuy*=NAe- z=6k&OJ38@4iPw3W_@fa0&DI58@HQUD1EsqYVJZ+mJ+mI_zxQTu<)ODO4;LR~d06L> zhk5O1Mjoz*JS=EGnNReyS?y=OeY0`M!<^=ymGFKf4>Lr6GkHiu9%hv88bbO`PxV6% ze2dl$qd%E-?r6=B#{2aBpvDI@p4WI@;{zHOdm{Gt6#Fdp_bh1oK21NQ@m`I~d^h&@ z9Mkt1eP7hLtV^18rP$xIs_#{QU5jiqUpi6ruq-bIOY!&I)j@h-Klpq8E6a~_ugp^X zJu~dbydV5M&jB6N_c1c&{+RvY@A*9Tuip>;o~MDns?t|NxDu z$SED|`+NQvbo4rO^d;zM_k8yCU7({= z=?IjL_WeC?Av*S_zvnlZo~8PGo+kP+TA#(Z;60B_*A;la_UngHJ;eie9@)*@j)cGG zsqmMv`wiyn7G0%7+Vl6k;=*SBp3ejjuAh)y-vHU6EDt{alN%rpdDy%0c~k?4$LEpt z0cW#soeFwTuWj#gyXd|W;fLDQZ2#6MCF6hT=V?8nEPUg24Ht*CCvg8*5c$^cnwt3o zz63bPLWg-z-xqr5=}pjM`~zP}^tA6+`2@6RF`RRXvu|B}3vljNoP{p3YZYhX7j>(& zV-cKw#p8OyFYG~(Gw*p$mc0G@I>vcQaTY!@j&oEqulukC!u&cNILGITx$lpmy**CH z>((}3jen`{9E4{x4&!}jckEX>*WlNY3MM`L%p~~9bTJ)|20xELJ{KRGzKrt8w=Z=D z_>@&XNqu3$-?Jk0EyAaD4gER={xHtmA8edg0OzAnUMhH#=w*k$HvPsA%%|Vif&R48 zp9WsBKiC672c3h7=cYgV{lI3Vozh&n&lUY#^4orMrk@8b`uY3W-g4TvaoI&Gzn#M0 zMR0vpQ~5XjC%GRrulwr0eUSU$SG(|cZfICPcgmD^G1^bx;ln<+`QYlW=QpM6LT%Sv z%lsovaWQlx+cl%@I?6d`l2`D#Kl~K!s%g7s5XSzs^5I0ZA!v#BOPkVlp0;bgWxGDg z`X<3|f4e5MT|WP|ucBR(+O7$wT`yC9&4Mm-K95-kH|yz)&n0|*Qyb^G^?sh$ZO%ry zHvidwjr+0L@7?`QDsLaobNe{At2`#{suU5L{+SBoJU2tHdG7DGn-cT}s`q^Ban}Ra zPSwlC-}3DZdf8v!KcPOeAKRL~rzhx}RlfW7v#tVtbAnI(Jj3_4N#COq^-XDgr+E6$ z>rvmd);EQ)yQAD@ea8wOn?!%o{an&dcH(hjUySTuyl1)m)F|sANniIryg>5V>xn<1oL69b(o0aJ(0Lir=$+$2fIT%NWlL-uHRwJBHrZ{RF+|{u~dS z!kt|xCzS4Go!hn`{iePiJ+E=5g4U0H{y>k$>$dz(ZUDbC$YATCVMh<8p@&99ZY#qG z?ev2x_dYxISm>ca%|C=NmY2`LKC#Oi(Dh35y>=(+&kIhK0fct?oUT{;>OTVY=QMvm z!nppAp#II9MDDvgwgQhZ!H*e-AJYy$rX;>n@Hh8?*mMpMPWJr9oTIm)i9c`n|NS|7 zGS7xx0YBC%@Y`oU&a~hk?v(!hkM!ewEc(~u6a6cv{mb}qe)JtY&i8Bo$R+w$ul6tB z{NlzG=0BRhSHexRsJFh)bwBds%y2(w;>Y>$x3J#NXgjh9<9>QtLQf1kdg5~6IHLW0 zIH4y7RZsZlk)w=bc~J8YIeOv*nMWzEvA>$?aXmM*j`zO$3#9lF9AM*=I?a)vn;`%F^50rqW+@dJBHA% zzo7i_$@#ya{(|NoMHtJ+-J*ZXX?bt_km~oP9%w%f8OK?l_3(J(_2ZCvdD4&L2cX}^ zW5U7jMBq26?Vmtsr!OgfzIps9z^|nFs|aKKzJ~hS@#iRhj{2!3pS)fZ`xz1d^t0)j z*ZpWChex6v3xDHuw4a2~PCu*r(Y|&Zg?7wp{yBtkJ8o1t=#+LQ6}lrb5`5wTR-|V+BvKF z=bUzKly<6|9gK4adp@_c{yyQz-5BtgRJoZ*$X!Y0&WFdtw6etj_T{?%s}!#e|cwA(f2;C%t`E-GGQ3A_u6w{KnK z<-oh3`9~eRQwjO+()!JO?K!AFt@*nW^#?8Le;(=&G=Ha4{~yKvaL>_OY36UdT1ogd zIoEO7D@Z>s$7^~oc7nZrckd9rugd$y{9x~WE2Y!%ubCh0r-*;uflNefJ`F2Q#t-%p zjFWSIS**`$3Hz+q!Fe5U?o*t46F6rSXWx46df=SV{8v#V1<3x|e{zNjKwSRtGM#hyj8Ldz3mS~O0 zE$yS}d$H%}ej$x_B7J;*Tt(z`FZ_w_X1~`Z_!IfocWwv1b22~Mi}T|i`1gB>jv3_d z*88f+PD;#YrpV4+?0di|&@rua=zeIcdk(h?{1f}d=n~K|?9efSxQ*kW^2=vWUIjXa zl#W5AqkVs(4?=DR96Is|I&w;f&%OykN59gMQ##uBCwd#`=ymAmOVE)~I(*~)5a`G% z9T}ygeSe~-f-hYT9q9xefzsg{m!1bYI+cz<>1f}d=rKgc-uM&w^!Hgz&tCfz<)Fv+ z=(?mWpKOns@08dcz3@1y=h~(F6Xm&__dqQNte<@M8=k`L*gdHBviRq0>}c&zwEDh# z+d4n)uP@p=f1-Y(e=&ceZpgy`=#F{@fG7FqA|Cq_$@3^HzsQG7H?Ysd`%NqlcM&~xf1;waD@x1w%jNPf zQn^Y6*Wrn~FK)M|PjU8*qjT&JsQyEAkEG%(el_tv|8G#QU9OAM1+0$}`}4-1C@bwP zqnM^RKM^=ji5}_bLBeMKL>~jr5Awc$_YHz0shb9WqO9WJTL=CR#$mh{@6i-)u_PJJjzcXqo>vY_BK!wZC1{+AiNX{{pmYM%yLx&A44}(srd= z()EL;bX}(H>TH?+VXSYK(5|Ys%jZw@WVCBS+f{Y=Rnm4X{DuFp`@O42*EOZfoVPcN z{NW}U54t-dl*{85>pOF=dUzoo2YW2PfL?lJ*6X7ULy+^u==jg3_!>X7`IhatwP}98 z+~gHs-}gsH0blheDCZq~#q)yhu@QWB4ha7@2@du;#MH}ZUSE-Mj@RFFl*HB-8H%&s z-bVVOJ9rJn8u`^vbh3Yl+1L2}RlH6xAbi*Jm~348v|T>G>4gp+fBQ7Q>;tEQEvVPf z*;*e;`|Wxcv|isl=zqB0aq-V0`$qB9bMbV%^Xp%cJ30>lIJc(n(gcn*rO!7n`3~rt z6W>UOL(-i%UtEO(zjT;y{HphI!%iaWf?RJkS9cMZIX%8fdS;^Xp?l>L?J8<{zVr63M|mYJuc+k>wTa`yQC}GQyNRCJiN{U+-9(>qJHC54udCLi z|F0AS+03)-ee?T1&Heh+M7y$zukm*qVSLM3X-B0OVJkVO@7qv6^Qk~J*#2Yr7qVSX z6E*rpE##Nh0lnp%OXY-R8Q-{`np4j+@LtBxX7B$A@5P>J_Wr4OFLqS3_fN)q>G%Ae z?OeN^Pr!T8ul(NiqdOh%ML#zy|FQHw_M?+>yyrLV%tHT!s^|ClTrF$79He%+_N6UH zH$#q&qg0LKLt5p?j1P}OKh6A|(~-YCLc4!h;lk0rCR-{KGTe#N)uUwqpiiDoCEUH|pqx4+6h2?bo9SZTv=5FZk9;DvY0= z-xgL1su%RUJ;gEJkIx9MW!2N_C%eyjTJ;Uv^*O4+))PFRvh{R_M^8_xTp2yR4Y*7x zo|6b|T&gYP>W#pqs`)3BAAdnVZ79d#$173qgz}@B;73vU;gjcK)LYd2CFRF2Mc>xX zAD#gp4&uFYpo8_*={$~j{h`#)W{48fFUrdJkP5z?z-`*W?PztIe`FJ*nwrl;u0+bN*Gr1DZs$lIvOn~(lS zgZ@#?Kc@2b5#@VE+LiEwTMq*3dTw9+Rm;*|?uX(BC;goHzQFW(`A!+=x0LgZMi<5V zIFx7OJ>uYf?YZ0Pn?q>RSyMUn z)%yq9hpB(Zqu=+Wg4ZaYyHH-NZ&xI6V0}n_Oi0Ik`6u+pdClLr-dVrTSo>otxFFHK zPRH-kP4n7^i@Qj4u=2L6Bm`QWPi>(@^uq% z7*zSlC*-SN<;#b|r-4Ji<{wb`dbIK>aQH0!*v47-Ea{lfD;DLm>3{Y6j0OLPL3|GA zz0nU^6zAg-^4sU&dz)YhdioS!-@d}Rz*qd0!b(o{$X8{4sOu$uf3{BGW${z^-Tu|J!Pr{+C< zhl%wWPWLBHw@Yw4l=#8@u#TgJ@1NdG={708GHsT9UwXvleAI()r-Sc0;M=MAb}7Ce zP2fA^;CmeK9aemY68Pp7U*G!ZTHu@4{DX?`2c=$1zNWbS6~%+vKg4luH@7potPwA^ z8w_6j{@0f-j?$|@%g2JY_lLv-E+;^H1I1|}(cU?2uWwy6#qAxR*Y=7(HjTs3 z6H(8C>SbBih8;X-6KuK>95lpHW<<5!&)I zsq)}kufLW3oW`d#|D=TXBYCKLEDwoZtB71g*%6V8itI;3*m`!0_sH_&lFmoW^Y5lpFgI zPbT&;O0yuXN;;j`sbT z?}q&LI&}0U=*TD?zIoO+Ku1>T$S57{`!nwb9$gL{=>#2t(&3wrd>(XkDjk8+(Y`-( zk?7c;{>&d?dfN48K27vuv-1$M)NV6BWIOvm)1?1)3*Ts7EbUz8_w%W-y>Iy~N6x){ zDXN;wy_)IWJuBmpj;k9xo(cahdz^OZIs6!+r(6Ub-5uh0$$q3GR4(r~v*zdWU-EpK zXUH%RZ0w{L{9en%d2J?e5Ma zk(U4YG&Po2?6{oQaeJ#WpP+pmv^(~Tdo}VzSCwR(DkBO%TDSeb<9<|aq+{c<)h%($ z|AqZR#}qfizvEHSV(qGGyPoa%m$2t3x9fcLg9)A26xGglzCTJo>UxX#sB0=B8Yyz^QUON8uX=tE|LUFcdevP1yABA z#pk}8 z7RRTf0Ux1@`?1TXpXZrR$DsaZ@Bj0C(r#kceNhWJNd+@4@f}rsM;v@vvKimMuwQO{ zJz!Mv9d+=P=k4QrqX%Cp$M$nH^7pM4_`ZhiTSu>LTxRZXE(qVssJ5v-x`FjkBEQiu z$^8mmFJe7;m!l_n>zHx71OCjzz=`Z0#mkhp9fU+1Mq1KUc}TN%ZH8Raec>(hKb+gO z)77(vj->wTXZ=NUVg7OZ)&eU-Xi zwMyqb>*u9>%@_5|A)e4f0w-{P1N4E|V|0EX#tFJ#LdJ_jM6sm;nLveW9}K#p4Pt+V zYo(%SgV<5w+QamHmz47`$ses(dr7v1p+C_dk4N$bJvqmCT6(sV659Lz%Sf+w2j?TB z-L5{$$NJl>6Gm6?xSbO`Dt$>DR33ffb^-F(tNF7MmIZ%WhnM!11%LW(L*s%!-N&SH z!9VH|Jjve+&*^&{eJ?oCcTgG^9HXAR#s%l7XAp6_y=lg2hv3KlBRsxvKlV9op#kE8K~?q5JZZ1%nf?`2$T_I@?q zi(Sy{{VIBI*3J3-2+_~-&75KW9ZB!6=0?$P^JOO??ACi_$o>Ug;i?&Vf4q7BaKvp~ zVW0F2A$_!dQ1Vqo|8YI9d;_;rpQ~SOSdsL0e|s;DBi%tZQGO@!jp;XjwMTG&D|ZT? zDqRT8_(u09CggWg_dm=z6Djo9DW!7~q1~P;rDy%>vkzCWoRq7Ye*$4#|K}6+*PQzQ z_$H#?@gKA6pVs<)_V7J_<@%?!{u!tKkD-3D3*>!*f60E)ihqx7lYi%ff9VAO7979m z?{NF|dx5YLIQ+Xhf!~6I-)+E8{WdELXs3AIT{nSY1 zJNA>{*-6r_B>k!74kKjwKOFcCX?cQASdnzL{GaNL%^@KKe5m5{4nrq^e2w%m-~~A-ZT59`-0zp(|#V=X)W=4pa;L2gWnavPxg~( zJ;TB8tOS02n&04eDe%iF{(T5-`Qz^ZSbzA&x9z|$tNHc2fD=hj=$8r}r}8&~_Qvw| z47{gxcf|ow>)cnd7xt&U)(<_W_J-G9>kxX^ejfzI_S)?l7dsjJWJAI@R^jZbO*NeS;q_F9$bZ)UIUfgYMr zx~m9N!B?SwZM^b|my!2}0dpT{SA zz3_FGTpGPX{wpGfx_;QbO!Tv{GvfM^?HzI2+ky5Ll-`j$e$98%nprqr()JV+c#O8d7M`$15s z=UT<*6N$cy&nGHC|3zzhHNA|})_rICKBMo88kcd`tjn1Bud(0bbBR7E{b4Wm@mBnS z+PQ>%JfD5}1>iL&^1K)4620$_OveoJw{tF$&(8c9=$KYIrlh?6a4yjmpl?FyTOsR! z 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

9DtW`QTs6G1;)9JUtPkiS%$!=W3c+Bef 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 z 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

>nwco2s&PfhxIb{$2pEh@&zMJ-V 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