diff --git a/packages/bdd/.eslintrc.cjs b/packages/bdd/.eslintrc.cjs new file mode 100644 index 000000000..84761c633 --- /dev/null +++ b/packages/bdd/.eslintrc.cjs @@ -0,0 +1,9 @@ +require("@swim-io/eslint-config/patch/modern-module-resolution.cjs"); + +module.exports = { + extends: ["@swim-io/eslint-config"], + parserOptions: { + // Make sure correct `tsconfig.json` is found in monorepo + tsconfigRootDir: __dirname, + }, +}; diff --git a/packages/bdd/.gitignore b/packages/bdd/.gitignore new file mode 100644 index 000000000..c337896c0 --- /dev/null +++ b/packages/bdd/.gitignore @@ -0,0 +1,2 @@ +build/ +types/ diff --git a/packages/bdd/README.md b/packages/bdd/README.md new file mode 100644 index 000000000..728bc9362 --- /dev/null +++ b/packages/bdd/README.md @@ -0,0 +1,3 @@ +# BDD + +Swim multi-loop BDD features and step definitions. diff --git a/packages/bdd/cucumber.json b/packages/bdd/cucumber.json new file mode 100644 index 000000000..32a59eacd --- /dev/null +++ b/packages/bdd/cucumber.json @@ -0,0 +1,14 @@ +{ + "sdk": { + "publishQuiet": true, + "requireModule": ["ts-node/register"], + "require": ["step_definitions/sdk/*.ts"], + "tags": "@sdk" + }, + "ui": { + "publishQuiet": true, + "requireModule": ["ts-node/register"], + "require": ["step_definitions/ui/*.ts"], + "tags": "@ui" + } +} diff --git a/packages/bdd/features/swap.feature b/packages/bdd/features/swap.feature new file mode 100644 index 000000000..e7fdb6249 --- /dev/null +++ b/packages/bdd/features/swap.feature @@ -0,0 +1,35 @@ +@sdk +@ui +Feature: Swap + + As a crypto enthusiast + Patrick Swapze wants to swap between different tokens which live on various blockchains + So that he can trade on whichever platform with whichever tokens are most profitable at any time + + + Background: + + Given there is a Solana blockchain + And Patrick has a Solana wallet with address "6sbzC1eH4FTujJXWj51eQe25cYvr4xfXbJ1vAj7j2k5J" + And Patrick has 5 SOL in his Solana wallet + And Patrick has a USDC token account with address "TP19UrkLUihiEg3y98VjM8Gmh7GjWayucsbpyo195wC" + And Patrick has a USDT token account with address "TP2gzosaKJNf5UjM8eWKKnN7Yni1uLbYJr88rvEvgPA" + + + Example: Solana USDC -> Solana USDT + + Given there is a Solana-only pool with USDC and USDT tokens, an amp factor of 1000, an LP fee of 0.03%, and a governance fee of 0.01% + And 1000 USDC has been deposited into the pool + And 1000 USDT has been deposited into the pool + And Patrick has 100 USDC tokens in his Solana wallet + And Patrick has 100 USDT tokens in his Solana wallet + + When Patrick swaps an exact input of 10 USDC for USDT with a slippage setting of 0.5% + + Then Patrick's USDC balance should be 90 + And Patrick's USDT balance should be at least 109.945 + + + Example: Solana USDC -> Ethereum USDC + + Given somebody has written the example diff --git a/packages/bdd/jest.config.js b/packages/bdd/jest.config.js new file mode 100644 index 000000000..21a1e973a --- /dev/null +++ b/packages/bdd/jest.config.js @@ -0,0 +1,5 @@ +/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", +}; diff --git a/packages/bdd/package.json b/packages/bdd/package.json new file mode 100644 index 000000000..f34ac42a4 --- /dev/null +++ b/packages/bdd/package.json @@ -0,0 +1,57 @@ +{ + "name": "@swim-io/bdd", + "private": true, + "version": "0.0.0", + "description": "Swim multi-loop BDD features and step definitions.", + "main": "build", + "types": "types", + "files": [ + "build/", + "types/", + "*.md", + "!*.test.*", + "!**/fixtures/" + ], + "repository": { + "type": "git", + "url": "https://github.com/swim-io/swim/tree/master/packages/bdd" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org" + }, + "scripts": { + "typecheck": "tsc", + "format": "prettier --write \"./step_definitions/**/*.ts\"", + "format:check": "prettier --check \"./step_definitions/**/*.ts\"", + "lint": "eslint \"./step_definitions/**/*.ts\"", + "lint:fix": "eslint --fix \"./step_definitions/**/*.ts\"", + "test:sdk": "cucumber-js --profile sdk", + "test:ui": "cucumber-js --profile ui", + "test": "yarn test:sdk && yarn test:ui", + "verify": "yarn typecheck && yarn format:check && yarn lint && yarn test --watchAll=false", + "build": "rm -rf ./build/ ./types/ ./tsconfig.tsbuildinfo && tsc", + "prepare": "yarn verify && yarn build" + }, + "devDependencies": { + "@cucumber/cucumber": "^8.5.1", + "@solana/web3.js": "^1.44.3", + "@swim-io/eslint-config": "workspace:^", + "@swim-io/solana-usdc-usdt-swap": "workspace:^", + "@swim-io/tsconfig": "workspace:^", + "@typescript-eslint/eslint-plugin": "^5.29.0", + "@typescript-eslint/parser": "^5.29.0", + "decimal.js": "^10.3.1", + "eslint": "^8.18.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-deprecation": "^1.3.2", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^4.2.1", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^25.7.0", + "eslint-plugin-prettier": "^4.0.0", + "prettier": "^2.7.1", + "ts-node": "^10.9.1", + "typescript": "^4.7.4" + } +} diff --git a/packages/bdd/step_definitions/sdk/solana.ts b/packages/bdd/step_definitions/sdk/solana.ts new file mode 100644 index 000000000..c00b458c9 --- /dev/null +++ b/packages/bdd/step_definitions/sdk/solana.ts @@ -0,0 +1,73 @@ +/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access */ +import assert from "assert"; + +import { Given, Then } from "@cucumber/cucumber"; +import { Connection, Keypair, PublicKey } from "@solana/web3.js"; +import Decimal from "decimal.js"; + +async function getUserBalance(this: any, token: string): Promise { + const userTokenKey = this.userTokenKeys[token] as PublicKey; + const solanaConnection = this.solanaConnection as Connection; + const { value } = await solanaConnection.getTokenAccountBalance(userTokenKey); + return new Decimal(value.amount).div(value.decimals); +} + +Given("there is a Solana blockchain", function () { + // TODO: Set up a development chain + this.solanaConnection = new Connection("http://127.0.0.1"); +}); + +Given( + "{word} has a Solana wallet with address {string}", + function (user: string, address: string) { + // TODO: Use a look-up table to match addresses to secret keys + this.solanaWallet = Keypair.fromSecretKey( + Uint8Array.from([ + 14, 173, 153, 4, 176, 224, 201, 111, 32, 237, 183, 185, 159, 247, 22, + 161, 89, 84, 215, 209, 212, 137, 10, 92, 157, 49, 29, 192, 101, 164, + 152, 70, 87, 65, 8, 174, 214, 157, 175, 126, 98, 90, 54, 24, 100, 177, + 247, 77, 19, 112, 47, 44, 165, 109, 233, 102, 14, 86, 109, 29, 134, 145, + 132, 141, + ]), + ); + }, +); + +Given( + "{word} has {float} SOL in his Solana wallet", + function (user: string, amount: number) { + // TODO: Seed wallet with SOL + }, +); + +Given( + "{word} has a {word} token account with address {string}", + function (user: string, token: string, address: string) { + // TODO: Create token account + this.userTokenKeys = this.userTokenKeys ?? {}; + this.userTokenKeys[token] = new PublicKey(address); + }, +); + +Given( + "{word} has {float} {word} tokens in his Solana wallet", + function (user: string, amount: number, token: string) { + // TODO: Seed wallet with tokens + }, +); + +Then( + "{word}'s {word} balance should be {float}", + async function (user: string, token: string, amount: number) { + const balance = await getUserBalance.call(this, token); + assert(balance.equals(amount)); + }, +); + +Then( + "{word}'s {word} balance should be at least {float}", + async function (user: string, token: string, amount: number) { + const balance = await getUserBalance.call(this, token); + assert(balance.greaterThanOrEqualTo(amount)); + }, +); diff --git a/packages/bdd/step_definitions/sdk/swim.ts b/packages/bdd/step_definitions/sdk/swim.ts new file mode 100644 index 000000000..17878499c --- /dev/null +++ b/packages/bdd/step_definitions/sdk/swim.ts @@ -0,0 +1,82 @@ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +import { Given, When } from "@cucumber/cucumber"; +import type { Connection, PublicKey } from "@solana/web3.js"; +import { Keypair, Transaction } from "@solana/web3.js"; +import { + SwapDirection, + createApproveAndSwapIxs, + createPoolMath, + fetchSwimPool, +} from "@swim-io/solana-usdc-usdt-swap"; +import Decimal from "decimal.js"; + +Given( + "there is a Solana-only pool with {word} and {word} tokens, an amp factor of {float}, an LP fee of {float}%, and a governance fee of {float}%", + function ( + token1: string, + token2: string, + ampFactor: number, + lpFee: number, + governanceFee: number, + ) { + // TODO: Set up pool + this.poolTokens = [token1, token2]; + }, +); + +Given( + "{float} {word} has been deposited into the pool", + function (amount: number, token: string) { + // TODO: Deposit to pool + }, +); + +When( + "{word} swaps an exact input of {float} {word} for {word} with a slippage setting of {float}%", + async function ( + user: string, + amount: number, + fromToken: string, + toToken: string, + slippage: number, + ) { + const solanaConnection = this.solanaConnection as Connection; + const pool = await fetchSwimPool(solanaConnection); + const poolMath = createPoolMath(pool); + const inputAmount = new Decimal(amount); + // TODO: Handle token direction generically + const inputAmounts = [inputAmount, new Decimal(0)]; + const outputIndex = 1; + const outputAmount = poolMath.swapExactInput( + inputAmounts, + outputIndex, + ).stableOutputAmount; + const minimumOutputAmount = outputAmount.mul(1 - slippage / 100); + const userWallet = this.solanaWallet as Keypair; + const userDelegate = Keypair.generate(); + const userTokenKeys = [ + this.userTokenKeys[this.poolTokens[0]], + this.userTokenKeys[this.poolTokens[1]], + ] as readonly [PublicKey, PublicKey]; + const ixs = createApproveAndSwapIxs( + SwapDirection.UsdcToUsdt, + inputAmount, + minimumOutputAmount, + userTokenKeys, + userDelegate.publicKey, + userWallet.publicKey, + ); + const { blockhash, lastValidBlockHeight } = + await solanaConnection.getLatestBlockhash(); + const tx = new Transaction({ + feePayer: userWallet.publicKey, + blockhash, + lastValidBlockHeight, + }).add(...ixs); + const signers = [userWallet, userDelegate]; + this.txId = await solanaConnection.sendTransaction(tx, signers); + + // TODO: Use the step description to design the SDK interface + // this.txId = await sdk.swap(userWallet, inputAmount, fromToken, toToken, slippage); + }, +); diff --git a/packages/bdd/step_definitions/ui/solana.ts b/packages/bdd/step_definitions/ui/solana.ts new file mode 100644 index 000000000..11f833c58 --- /dev/null +++ b/packages/bdd/step_definitions/ui/solana.ts @@ -0,0 +1,65 @@ +/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access */ +import assert from "assert"; + +import { Given, Then } from "@cucumber/cucumber"; +import { PublicKey } from "@solana/web3.js"; +import Decimal from "decimal.js"; + +async function getUserBalance(this: any, token: string): Promise { + const userTokenKey = this.userTokenKeys[token] as PublicKey; + const balance: string = await this.wallet.getTokenAccountBalance( + userTokenKey, + ); + return new Decimal(balance); +} + +Given("there is a Solana blockchain", function () { + // TODO: Set up a development chain +}); + +Given( + "{word} has a Solana wallet with address {string}", + function (user: string, address: string) { + // TODO: Set up Phantom + this.wallet = (window as any).phantom.solana; + }, +); + +Given( + "{word} has {float} SOL in his Solana wallet", + function (user: string, amount: number) { + // TODO: Seed wallet with SOL + }, +); + +Given( + "{word} has a {word} token account with address {string}", + function (user: string, token: string, address: string) { + this.userTokenKeys = this.userTokenKeys ?? {}; + this.userTokenKeys[token] = new PublicKey(address); + // TODO: Seed wallet with tokens + }, +); + +Given( + "{word} has {float} {word} tokens in his Solana wallet", + function (user: string, amount: number, token: string) { + // TODO: Seed wallet with tokens + }, +); + +Then( + "{word}'s {word} balance should be {float}", + async function (user: string, token: string, amount: number) { + const balance = await getUserBalance.call(this, token); + assert(balance.equals(amount)); + }, +); + +Then( + "{word}'s {word} balance should be at least {float}", + async function (user: string, token: string, amount: number) { + const balance = await getUserBalance.call(this, token); + assert(balance.greaterThanOrEqualTo(amount)); + }, +); diff --git a/packages/bdd/step_definitions/ui/swim.ts b/packages/bdd/step_definitions/ui/swim.ts new file mode 100644 index 000000000..d39cf64da --- /dev/null +++ b/packages/bdd/step_definitions/ui/swim.ts @@ -0,0 +1,74 @@ +import { Given, When } from "@cucumber/cucumber"; + +class PageObject { + public visit(): Promise { + throw new Error("not implemented"); + } +} + +class SwapPage extends PageObject { + public setFromToken(token: string): Promise { + // TODO: Select token from dropdown list + throw new Error("not implemented"); + } + + public setToToken(token: string): Promise { + // TODO: Select token from dropdown list + throw new Error("not implemented"); + } + + public setSlippage(slippage: number): Promise { + // TODO: Click on settings button and type in number in slippage field + throw new Error("not implemented"); + } + + public setInputAmount(inputAmount: number): Promise { + // TODO: Type in number in input amount field + throw new Error("not implemented"); + } + + public submitForm(): Promise { + // TODO: Click swap button + throw new Error("not implemented"); + } +} + +Given( + "there is a Solana-only pool with {word} and {word} tokens, an amp factor of {float}, an LP fee of {float}%, and a governance fee of {float}%", + function ( + token1: string, + token2: string, + ampFactor: number, + lpFee: number, + governanceFee: number, + ) { + // TODO: Set up pool + this.poolTokens = [token1, token2]; + }, +); + +Given( + "{float} {word} has been deposited into the pool", + function (amount: number, token: string) { + // TODO: Deposit to pool + }, +); + +When( + "{word} swaps an exact input of {float} {word} for {word} with a slippage setting of {float}%", + async function ( + user: string, + amount: number, + fromToken: string, + toToken: string, + slippage: number, + ) { + const swapPage = new SwapPage(); + await swapPage.visit(); + await swapPage.setFromToken(fromToken); + await swapPage.setToToken(toToken); + await swapPage.setSlippage(slippage); + await swapPage.setInputAmount(amount); + await swapPage.submitForm(); + }, +); diff --git a/packages/bdd/tsconfig.json b/packages/bdd/tsconfig.json new file mode 100644 index 000000000..421be52f6 --- /dev/null +++ b/packages/bdd/tsconfig.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@swim-io/tsconfig/tsconfig-base.json", + "compilerOptions": { + "lib": ["dom"], + "noEmit": true, + "rootDir": "step_definitions/" + }, + "include": ["step_definitions/"] +} diff --git a/yarn.lock b/yarn.lock index 897c34a01..63a3a1ee6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1963,6 +1963,145 @@ __metadata: languageName: node linkType: hard +"@cucumber/ci-environment@npm:9.0.4": + version: 9.0.4 + resolution: "@cucumber/ci-environment@npm:9.0.4" + checksum: 6ac4ec128eca4f144a167e90d61588168113d958fe5bad78817189418b15d5654af0271cd1f9e1e4c8651d593a6a45e4c56614508ecc4674e0154df90eb6219d + languageName: node + linkType: hard + +"@cucumber/cucumber-expressions@npm:16.0.0": + version: 16.0.0 + resolution: "@cucumber/cucumber-expressions@npm:16.0.0" + dependencies: + regexp-match-indices: 1.0.2 + checksum: 2325725e047b52c2cf3aa9958b0c5e258514da14ec12006b759367cf829e57501edcae7a13df9d32b1809e68cc0986e0fcac48148ea4eecfad6e841179eacda3 + languageName: node + linkType: hard + +"@cucumber/cucumber@npm:^8.5.1": + version: 8.5.1 + resolution: "@cucumber/cucumber@npm:8.5.1" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@cucumber/ci-environment": 9.0.4 + "@cucumber/cucumber-expressions": 16.0.0 + "@cucumber/gherkin": 24.0.0 + "@cucumber/gherkin-streams": 5.0.1 + "@cucumber/gherkin-utils": 8.0.0 + "@cucumber/html-formatter": 19.2.0 + "@cucumber/message-streams": 4.0.1 + "@cucumber/messages": 19.1.2 + "@cucumber/tag-expressions": 4.1.0 + assertion-error-formatter: ^3.0.0 + capital-case: ^1.0.4 + chalk: ^4.1.2 + cli-table3: 0.6.2 + commander: ^9.0.0 + duration: ^0.2.2 + durations: ^3.4.2 + figures: ^3.2.0 + glob: ^7.1.6 + has-ansi: ^4.0.1 + indent-string: ^4.0.0 + is-installed-globally: ^0.4.0 + is-stream: ^2.0.0 + knuth-shuffle-seeded: ^1.0.6 + lodash.merge: ^4.6.2 + lodash.mergewith: ^4.6.2 + mz: ^2.7.0 + progress: ^2.0.3 + resolve-pkg: ^2.0.0 + semver: 7.3.7 + stack-chain: ^2.0.0 + string-argv: ^0.3.1 + strip-ansi: 6.0.1 + supports-color: ^8.1.1 + tmp: ^0.2.1 + util-arity: ^1.1.0 + verror: ^1.10.0 + yup: ^0.32.11 + bin: + cucumber-js: bin/cucumber.js + checksum: 0024a82a60ab6819c5723caab92d1e3da71c4306b7bbbba00b12245c76a5459190c5d596bc1e88ab81e483d62dad3d5a5c43abf7defcf4ee8e3055ac0e3d4f86 + languageName: node + linkType: hard + +"@cucumber/gherkin-streams@npm:5.0.1": + version: 5.0.1 + resolution: "@cucumber/gherkin-streams@npm:5.0.1" + dependencies: + commander: 9.1.0 + source-map-support: 0.5.21 + peerDependencies: + "@cucumber/gherkin": ">=22.0.0" + "@cucumber/message-streams": ">=4.0.0" + "@cucumber/messages": ">=17.1.1" + bin: + gherkin-javascript: bin/gherkin + checksum: b8e85b60c0b6773f61adafa107bbf745ba2fc786a200913a6302a472d62d55c30355b0ce8b462fee281bccb02ede4422e95c017d95e6e90aac60e9342b114a34 + languageName: node + linkType: hard + +"@cucumber/gherkin-utils@npm:8.0.0": + version: 8.0.0 + resolution: "@cucumber/gherkin-utils@npm:8.0.0" + dependencies: + "@cucumber/messages": ^19.0.0 + "@teppeis/multimaps": 2.0.0 + commander: 9.3.0 + bin: + gherkin-utils: bin/gherkin-utils + checksum: 0a040d32e175c7c0519e9a74fecedd4ed19eca65787bde19fe6daab12e198cce01723429b6d3f6e3473117085595a3d722dcb7dda63c678e049fc599f8737a15 + languageName: node + linkType: hard + +"@cucumber/gherkin@npm:24.0.0": + version: 24.0.0 + resolution: "@cucumber/gherkin@npm:24.0.0" + dependencies: + "@cucumber/messages": ^19.0.0 + checksum: aa2f56cfa67ce83a718aaf257ff9a5a7f044fb9683ad27887572b64a54fac05a8d98a733b1c894ecba04254966fe71134fdf2ef5cb0f2f47ccb6190fd81ffd0c + languageName: node + linkType: hard + +"@cucumber/html-formatter@npm:19.2.0": + version: 19.2.0 + resolution: "@cucumber/html-formatter@npm:19.2.0" + peerDependencies: + "@cucumber/messages": ">=18" + checksum: 08aa06ad5502b0326cc9466e32ed911e0004533f6c4cc670793f756cb1661575aacf52cd2720581158ae63561dc60bb485039826814ce5d5fdaf3ac79275e53b + languageName: node + linkType: hard + +"@cucumber/message-streams@npm:4.0.1": + version: 4.0.1 + resolution: "@cucumber/message-streams@npm:4.0.1" + peerDependencies: + "@cucumber/messages": ">=17.1.1" + checksum: 1ebb05ccf90501c00e3b55237746bae438a621e9f88152ec19407d76c7632a250d09b0ab9168b4179918362c79da948d45aae68a02689a7b36a57fcc5befc883 + languageName: node + linkType: hard + +"@cucumber/messages@npm:19.1.2, @cucumber/messages@npm:^19.0.0": + version: 19.1.2 + resolution: "@cucumber/messages@npm:19.1.2" + dependencies: + "@types/uuid": 8.3.4 + class-transformer: 0.5.1 + reflect-metadata: 0.1.13 + uuid: 8.3.2 + checksum: 942aef2fa5a8db4969b1d0c280d556c6384dd56c82071263613cf5a0ed1c6723b2fd6fd8aa9b8c2b49bc7fd05b312c764cc00a7203779fe381bfcaf2896c6acf + languageName: node + linkType: hard + +"@cucumber/tag-expressions@npm:4.1.0": + version: 4.1.0 + resolution: "@cucumber/tag-expressions@npm:4.1.0" + checksum: e1546a3fc9cfc9b6fb16aaef1b40cbd88614ddc9517583356b72400c9c43a01610d41d4eb94f31f4e23906b960ba44211ea9a5cbec1efb74d4c69a4676f982ac + languageName: node + linkType: hard + "@design-systems/utils@npm:2.12.0": version: 2.12.0 resolution: "@design-systems/utils@npm:2.12.0" @@ -5794,6 +5933,32 @@ __metadata: languageName: node linkType: hard +"@swim-io/bdd@workspace:packages/bdd": + version: 0.0.0-use.local + resolution: "@swim-io/bdd@workspace:packages/bdd" + dependencies: + "@cucumber/cucumber": ^8.5.1 + "@solana/web3.js": ^1.44.3 + "@swim-io/eslint-config": "workspace:^" + "@swim-io/solana-usdc-usdt-swap": "workspace:^" + "@swim-io/tsconfig": "workspace:^" + "@typescript-eslint/eslint-plugin": ^5.29.0 + "@typescript-eslint/parser": ^5.29.0 + decimal.js: ^10.3.1 + eslint: ^8.18.0 + eslint-config-prettier: ^8.5.0 + eslint-plugin-deprecation: ^1.3.2 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-functional: ^4.2.1 + eslint-plugin-import: ^2.26.0 + eslint-plugin-jest: ^25.7.0 + eslint-plugin-prettier: ^4.0.0 + prettier: ^2.7.1 + ts-node: ^10.9.1 + typescript: ^4.7.4 + languageName: unknown + linkType: soft + "@swim-io/core@npm:^0.7.0": version: 0.7.0 resolution: "@swim-io/core@npm:0.7.0" @@ -6015,7 +6180,7 @@ __metadata: languageName: unknown linkType: soft -"@swim-io/solana-usdc-usdt-swap@workspace:packages/solana-usdc-usdt-swap": +"@swim-io/solana-usdc-usdt-swap@workspace:^, @swim-io/solana-usdc-usdt-swap@workspace:packages/solana-usdc-usdt-swap": version: 0.0.0-use.local resolution: "@swim-io/solana-usdc-usdt-swap@workspace:packages/solana-usdc-usdt-swap" dependencies: @@ -6222,6 +6387,13 @@ __metadata: languageName: unknown linkType: soft +"@teppeis/multimaps@npm:2.0.0": + version: 2.0.0 + resolution: "@teppeis/multimaps@npm:2.0.0" + checksum: eb0d3bf2903d74ad0918691b28d1f0ae88bad8f7350247a0b7d06dcbdaed0f7b1505ec6a8e633c997f93f367136dec1d8f13f986d81319d6f1b34d3722eaabd3 + languageName: node + linkType: hard + "@terra-money/legacy.proto@npm:@terra-money/terra.proto@^0.1.7": version: 0.1.7 resolution: "@terra-money/terra.proto@npm:0.1.7" @@ -6660,7 +6832,7 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.14.159, @types/lodash@npm:^4.14.160, @types/lodash@npm:^4.14.167": +"@types/lodash@npm:^4.14.159, @types/lodash@npm:^4.14.160, @types/lodash@npm:^4.14.167, @types/lodash@npm:^4.14.175": version: 4.14.182 resolution: "@types/lodash@npm:4.14.182" checksum: 7dd137aa9dbabd632408bd37009d984655164fa1ecc3f2b6eb94afe35bf0a5852cbab6183148d883e9c73a958b7fec9a9bcf7c8e45d41195add6a18c34958209 @@ -7015,6 +7187,13 @@ __metadata: languageName: node linkType: hard +"@types/uuid@npm:8.3.4": + version: 8.3.4 + resolution: "@types/uuid@npm:8.3.4" + checksum: 6f11f3ff70f30210edaa8071422d405e9c1d4e53abbe50fdce365150d3c698fe7bbff65c1e71ae080cbfb8fded860dbb5e174da96fdbbdfcaa3fb3daa474d20f + languageName: node + linkType: hard + "@types/vfile-message@npm:^2.0.0": version: 2.0.0 resolution: "@types/vfile-message@npm:2.0.0" @@ -8201,6 +8380,13 @@ __metadata: languageName: node linkType: hard +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de + languageName: node + linkType: hard + "anymatch@npm:^2.0.0": version: 2.0.0 resolution: "anymatch@npm:2.0.0" @@ -8547,6 +8733,17 @@ __metadata: languageName: node linkType: hard +"assertion-error-formatter@npm:^3.0.0": + version: 3.0.0 + resolution: "assertion-error-formatter@npm:3.0.0" + dependencies: + diff: ^4.0.1 + pad-right: ^0.2.2 + repeat-string: ^1.6.1 + checksum: 82d7349bc0238c7b1ff514b8d3ccf833ade114cad6daeaf4df8a985528c3d92f7c7cdbcfea372e4a8fcd2b3ed9b9e898f6faae6b5608d14558e6cc354fe9ee86 + languageName: node + linkType: hard + "assign-symbols@npm:^1.0.0": version: 1.0.0 resolution: "assign-symbols@npm:1.0.0" @@ -9967,6 +10164,17 @@ __metadata: languageName: node linkType: hard +"capital-case@npm:^1.0.4": + version: 1.0.4 + resolution: "capital-case@npm:1.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 41fa8fa87f6d24d0835a2b4a9341a3eaecb64ac29cd7c5391f35d6175a0fa98ab044e7f2602e1ec3afc886231462ed71b5b80c590b8b41af903ec2c15e5c5931 + languageName: node + linkType: hard + "capture-exit@npm:^2.0.0": version: 2.0.0 resolution: "capture-exit@npm:2.0.0" @@ -10229,6 +10437,13 @@ __metadata: languageName: node linkType: hard +"class-transformer@npm:0.5.1": + version: 0.5.1 + resolution: "class-transformer@npm:0.5.1" + checksum: f191c8b4cc4239990f5efdd790cabdd852c243ed66248e39f6616a349c910c6eed2d9fd1fbf7ee6ea89f69b4f1d0b493b27347fe0cd0ae26b47c3745a805b6d3 + languageName: node + linkType: hard + "class-utils@npm:^0.3.5": version: 0.3.6 resolution: "class-utils@npm:0.3.6" @@ -10287,7 +10502,7 @@ __metadata: languageName: node linkType: hard -"cli-table3@npm:^0.6.1": +"cli-table3@npm:0.6.2, cli-table3@npm:^0.6.1": version: 0.6.2 resolution: "cli-table3@npm:0.6.2" dependencies: @@ -10511,7 +10726,21 @@ __metadata: languageName: node linkType: hard -"commander@npm:9.4.0": +"commander@npm:9.1.0": + version: 9.1.0 + resolution: "commander@npm:9.1.0" + checksum: 1428319b6b90600a813c28fe1e413996d1be99bf01afe9ebc4a9fc6f8077ff3e75f11809b2d2f85bd9b13d7cb592154278e9bbfdb16dc5843cef97bcba6a9cfd + languageName: node + linkType: hard + +"commander@npm:9.3.0": + version: 9.3.0 + resolution: "commander@npm:9.3.0" + checksum: d421ce66fee25792a1470c69aa8d1b86434bf873a96483aa92c8267f81a6f20c6f7c426f5e82f88ac50a8ec4855d3f2787aebcdef8aa559e1080a2337a95a217 + languageName: node + linkType: hard + +"commander@npm:9.4.0, commander@npm:^9.0.0": version: 9.4.0 resolution: "commander@npm:9.4.0" checksum: a322de584a6ccd1ea83c24f6a660e52d16ffbe2613fcfbb8d2cc68bc9dec637492456d754fe8bb5b039ad843ed8e04fb0b107e581a75f62cde9e1a0ab1546e09 @@ -12102,6 +12331,23 @@ __metadata: languageName: node linkType: hard +"duration@npm:^0.2.2": + version: 0.2.2 + resolution: "duration@npm:0.2.2" + dependencies: + d: 1 + es5-ext: ~0.10.46 + checksum: 907f4fdb2d5304744b419466846b41076bb0b2f5cde4ca02e78dd8d679b3ae14c29350d3f3a852006f5b6df0c6848efb7b38a6e4ae1b5dbadab5c46a2af22f91 + languageName: node + linkType: hard + +"durations@npm:^3.4.2": + version: 3.4.2 + resolution: "durations@npm:3.4.2" + checksum: 40904f7e7621a3f6302648fd003dfedab6bf700e7b54bc79821c47c321e7f212fdecf01e8021ba07fe99e7b1ff862042c21c0b583de2303800fa959e3df56699 + languageName: node + linkType: hard + "ecc-jsbn@npm:~0.1.1": version: 0.1.2 resolution: "ecc-jsbn@npm:0.1.2" @@ -12401,7 +12647,7 @@ __metadata: languageName: node linkType: hard -"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50": +"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50, es5-ext@npm:~0.10.46": version: 0.10.61 resolution: "es5-ext@npm:0.10.61" dependencies: @@ -14519,6 +14765,15 @@ __metadata: languageName: node linkType: hard +"global-dirs@npm:^3.0.0": + version: 3.0.0 + resolution: "global-dirs@npm:3.0.0" + dependencies: + ini: 2.0.0 + checksum: 953c17cf14bf6ee0e2100ae82a0d779934eed8a3ec5c94a7a4f37c5b3b592c31ea015fb9a15cf32484de13c79f4a814f3015152f3e1d65976cfbe47c1bfe4a88 + languageName: node + linkType: hard + "global-modules@npm:2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -14765,6 +15020,15 @@ __metadata: languageName: node linkType: hard +"has-ansi@npm:^4.0.1": + version: 4.0.1 + resolution: "has-ansi@npm:4.0.1" + dependencies: + ansi-regex: ^4.1.0 + checksum: 44c4eb4b17d7c6121fb7529e59aa2fa1f07e9beec783e14fc30c6e55e5200b82a2a66a5ee4d6e6b0d433ca1bce3388d92b08dae4964253203b6f68e7bd8be648 + languageName: node + linkType: hard + "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -15605,6 +15869,13 @@ __metadata: languageName: node linkType: hard +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e + languageName: node + linkType: hard + "ini@npm:^1.3.4, ini@npm:^1.3.5": version: 1.3.8 resolution: "ini@npm:1.3.8" @@ -16046,6 +16317,16 @@ __metadata: languageName: node linkType: hard +"is-installed-globally@npm:^0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: ^3.0.0 + is-path-inside: ^3.0.2 + checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -16152,6 +16433,13 @@ __metadata: languageName: node linkType: hard +"is-path-inside@npm:^3.0.2": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + "is-plain-obj@npm:^1.0.0, is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -17864,6 +18152,15 @@ __metadata: languageName: node linkType: hard +"knuth-shuffle-seeded@npm:^1.0.6": + version: 1.0.6 + resolution: "knuth-shuffle-seeded@npm:1.0.6" + dependencies: + seed-random: ~2.2.0 + checksum: 3f30993233570e461626e20349cde7e56ce713d7f2af8b0e2762ee5d1b37d1fc3cbf018c71b4122a2cd2eb24dc18621b32ae7e4310840d775b4aec7a29ba270d + languageName: node + linkType: hard + "language-subtag-registry@npm:~0.3.2": version: 0.3.21 resolution: "language-subtag-registry@npm:0.3.21" @@ -18053,6 +18350,13 @@ __metadata: languageName: node linkType: hard +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 + languageName: node + linkType: hard + "lodash._reinterpolate@npm:^3.0.0": version: 3.0.0 resolution: "lodash._reinterpolate@npm:3.0.0" @@ -18109,6 +18413,13 @@ __metadata: languageName: node linkType: hard +"lodash.mergewith@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.mergewith@npm:4.6.2" + checksum: a6db2a9339752411f21b956908c404ec1e088e783a65c8b29e30ae5b3b6384f82517662d6f425cc97c2070b546cc2c7daaa8d33f78db7b6e9be06cd834abdeb8 + languageName: node + linkType: hard + "lodash.sortby@npm:^4.7.0": version: 4.7.0 resolution: "lodash.sortby@npm:4.7.0" @@ -19035,6 +19346,17 @@ __metadata: languageName: node linkType: hard +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: ^1.0.0 + object-assign: ^4.0.1 + thenify-all: ^1.0.0 + checksum: 8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + languageName: node + linkType: hard + "nan@npm:^2.12.1, nan@npm:^2.13.2": version: 2.16.0 resolution: "nan@npm:2.16.0" @@ -19053,6 +19375,13 @@ __metadata: languageName: node linkType: hard +"nanoclone@npm:^0.2.1": + version: 0.2.1 + resolution: "nanoclone@npm:0.2.1" + checksum: 96b2954e22f70561f41e20d69856266c65583c2a441dae108f1dc71b716785d2c8038dac5f1d5e92b117aed3825f526b53139e2e5d6e6db8a77cfa35b3b8bf40 + languageName: node + linkType: hard + "nanoid@npm:^3.3.1, nanoid@npm:^3.3.4": version: 3.3.4 resolution: "nanoid@npm:3.3.4" @@ -20033,6 +20362,15 @@ __metadata: languageName: node linkType: hard +"pad-right@npm:^0.2.2": + version: 0.2.2 + resolution: "pad-right@npm:0.2.2" + dependencies: + repeat-string: ^1.5.2 + checksum: 090fe065f979e04b251e4b33706caf5817c973f1106e445ffaee3a742e1495b0892db858ee25383f97dd048262ba969559d43f31beb385d780c9a0a24f3063d0 + languageName: node + linkType: hard + "pako@npm:^2.0.3": version: 2.0.4 resolution: "pako@npm:2.0.4" @@ -21507,6 +21845,13 @@ __metadata: languageName: node linkType: hard +"property-expr@npm:^2.0.4": + version: 2.0.5 + resolution: "property-expr@npm:2.0.5" + checksum: 4ebe82ce45aaf1527e96e2ab84d75d25217167ec3ff6378cf83a84fb4abc746e7c65768a79d275881602ae82f168f9a6dfaa7f5e331d0fcc83d692770bcce5f1 + languageName: node + linkType: hard + "property-information@npm:^5.0.0, property-information@npm:^5.3.0": version: 5.6.0 resolution: "property-information@npm:5.6.0" @@ -22512,6 +22857,13 @@ __metadata: languageName: node linkType: hard +"reflect-metadata@npm:0.1.13": + version: 0.1.13 + resolution: "reflect-metadata@npm:0.1.13" + checksum: 798d379a7b6f6455501145419505c97dd11cbc23857a386add2b9ef15963ccf15a48d9d15507afe01d4cd74116df8a213247200bac00320bd7c11ddeaa5e8fb4 + languageName: node + linkType: hard + "refractor@npm:^3.4.0, refractor@npm:^3.6.0": version: 3.6.0 resolution: "refractor@npm:3.6.0" @@ -22579,7 +22931,16 @@ __metadata: languageName: node linkType: hard -"regexp-tree@npm:~0.1.1": +"regexp-match-indices@npm:1.0.2": + version: 1.0.2 + resolution: "regexp-match-indices@npm:1.0.2" + dependencies: + regexp-tree: ^0.1.11 + checksum: 8cc779f6cf8f404ead828d09970a7d4bd66bd78d43ab9eb2b5e65f2ef2ba1ed53536f5b5fa839fb90b350365fb44b6a851c7f16289afc3f37789c113ab2a7916 + languageName: node + linkType: hard + +"regexp-tree@npm:^0.1.11, regexp-tree@npm:~0.1.1": version: 0.1.24 resolution: "regexp-tree@npm:0.1.24" bin: @@ -22807,7 +23168,7 @@ __metadata: languageName: node linkType: hard -"repeat-string@npm:^1.5.4, repeat-string@npm:^1.6.1": +"repeat-string@npm:^1.5.2, repeat-string@npm:^1.5.4, repeat-string@npm:^1.6.1": version: 1.6.1 resolution: "repeat-string@npm:1.6.1" checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 @@ -22927,6 +23288,15 @@ __metadata: languageName: node linkType: hard +"resolve-pkg@npm:^2.0.0": + version: 2.0.0 + resolution: "resolve-pkg@npm:2.0.0" + dependencies: + resolve-from: ^5.0.0 + checksum: 4a14cc38effed20ff362c8f377719af9a45ebe27ee07d79d4802b4568858cd96033f4edc3a2add7fd27e361d24101a042047297a9ef9476696ba16b72e0a05fc + languageName: node + linkType: hard + "resolve-url-loader@npm:^3.1.2": version: 3.1.4 resolution: "resolve-url-loader@npm:3.1.4" @@ -23455,6 +23825,13 @@ __metadata: languageName: node linkType: hard +"seed-random@npm:~2.2.0": + version: 2.2.0 + resolution: "seed-random@npm:2.2.0" + checksum: 74ddfb956021ce08726e127da5f30f2b3a133e0e8dab995a69893e5441bd17472856abd8242125a12d7b1773360dda7c80b6f54d39a2fc3de99734e079c646dc + languageName: node + linkType: hard + "select-hose@npm:^2.0.0": version: 2.0.0 resolution: "select-hose@npm:2.0.0" @@ -23946,7 +24323,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": +"source-map-support@npm:0.5.21, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -24166,6 +24543,13 @@ __metadata: languageName: node linkType: hard +"stack-chain@npm:^2.0.0": + version: 2.0.0 + resolution: "stack-chain@npm:2.0.0" + checksum: 36e4ea70023d713c0f97be43862ba09293a439bbc5b6283a2b691f51cad3823d6b61c0b93761ba26ee2c1d8af3ab66bb92d8fb278b2898090802cbff3ed63274 + languageName: node + linkType: hard + "stack-utils@npm:^2.0.2, stack-utils@npm:^2.0.3": version: 2.0.5 resolution: "stack-utils@npm:2.0.5" @@ -24304,6 +24688,13 @@ __metadata: languageName: node linkType: hard +"string-argv@npm:^0.3.1": + version: 0.3.1 + resolution: "string-argv@npm:0.3.1" + checksum: efbd0289b599bee808ce80820dfe49c9635610715429c6b7cc50750f0437e3c2f697c81e5c390208c13b5d5d12d904a1546172a88579f6ee5cbaaaa4dc9ec5cf + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -24463,6 +24854,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + "strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": version: 3.0.1 resolution: "strip-ansi@npm:3.0.1" @@ -24481,15 +24881,6 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - "strip-bom@npm:^2.0.0": version: 2.0.0 resolution: "strip-bom@npm:2.0.0" @@ -24656,7 +25047,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0": +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -25015,6 +25406,24 @@ __metadata: languageName: node linkType: hard +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: ">= 3.1.0 < 4" + checksum: dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: ^1.0.0 + checksum: 84e1b804bfec49f3531215f17b4a6e50fd4397b5f7c1bccc427b9c656e1ecfb13ea79d899930184f78bc2f57285c54d9a50a590c8868f4f0cef5c1d9f898b05e + languageName: node + linkType: hard + "throat@npm:^5.0.0": version: 5.0.0 resolution: "throat@npm:5.0.0" @@ -25192,6 +25601,13 @@ __metadata: languageName: node linkType: hard +"toposort@npm:^2.0.2": + version: 2.0.2 + resolution: "toposort@npm:2.0.2" + checksum: d64c74b570391c9432873f48e231b439ee56bc49f7cb9780b505cfdf5cb832f808d0bae072515d93834dd6bceca5bb34448b5b4b408335e4d4716eaf68195dcb + languageName: node + linkType: hard + "tough-cookie@npm:^4.0.0": version: 4.0.0 resolution: "tough-cookie@npm:4.0.0" @@ -25380,6 +25796,44 @@ __metadata: languageName: node linkType: hard +"ts-node@npm:^10.9.1": + version: 10.9.1 + resolution: "ts-node@npm:10.9.1" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 + languageName: node + linkType: hard + "ts-pnp@npm:1.2.0, ts-pnp@npm:^1.1.6": version: 1.2.0 resolution: "ts-pnp@npm:1.2.0" @@ -25955,6 +26409,15 @@ __metadata: languageName: node linkType: hard +"upper-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 4487db4701effe3b54ced4b3e4aa4d9ab06c548f97244d04aafb642eedf96a76d5a03cf5f38f10f415531d5792d1ac6e1b50f2a76984dc6964ad530f12876409 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -26074,6 +26537,13 @@ __metadata: languageName: node linkType: hard +"util-arity@npm:^1.1.0": + version: 1.1.0 + resolution: "util-arity@npm:1.1.0" + checksum: ac30ab442dfc132a70639261f2125b0785d334634e8051acb2da5014cfaa6c0f27de325b8d1bc7e71eccca06881007609077e3b6a9bef07aa669c1f36f7510f1 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -26142,6 +26612,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:8.3.2, uuid@npm:^8.3.0, uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + "uuid@npm:^3.3.2": version: 3.4.0 resolution: "uuid@npm:3.4.0" @@ -26151,15 +26630,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^8.3.0, uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df - languageName: node - linkType: hard - "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -26231,6 +26701,17 @@ __metadata: languageName: node linkType: hard +"verror@npm:^1.10.0": + version: 1.10.1 + resolution: "verror@npm:1.10.1" + dependencies: + assert-plus: ^1.0.0 + core-util-is: 1.0.2 + extsprintf: ^1.2.0 + checksum: 690a8d6ad5a4001672290e9719e3107c86269bc45fe19f844758eecf502e59f8aa9631b19b839f6d3dea562334884d22d1eb95ae7c863032075a9212c889e116 + languageName: node + linkType: hard + "vfile-location@npm:^3.0.0, vfile-location@npm:^3.2.0": version: 3.2.0 resolution: "vfile-location@npm:3.2.0" @@ -27400,6 +27881,21 @@ __metadata: languageName: node linkType: hard +"yup@npm:^0.32.11": + version: 0.32.11 + resolution: "yup@npm:0.32.11" + dependencies: + "@babel/runtime": ^7.15.4 + "@types/lodash": ^4.14.175 + lodash: ^4.17.21 + lodash-es: ^4.17.21 + nanoclone: ^0.2.1 + property-expr: ^2.0.4 + toposort: ^2.0.2 + checksum: 43a16786b47cc910fed4891cebdd89df6d6e31702e9462e8f969c73eac88551ce750732608012201ea6b93802c8847cb0aa27b5d57370640f4ecf30f9f97d4b0 + languageName: node + linkType: hard + "zustand@npm:^4.0.0-rc.1": version: 4.0.0-rc.1 resolution: "zustand@npm:4.0.0-rc.1"