diff --git a/.dockerignore b/.dockerignore index cd85fc7d..0fa88c7f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,12 +1,6 @@ -# Exclude all: -* - -# Include what is actually used: -!package.json -!yarn.lock -!tsconfig.json -!env.*.config.json -!src - -/src/**/*.e2e.ts -/src/**/*.spec.ts +.github +.env +/node_modules +/build +/client +/data diff --git a/.github/workflows/E2E.yml b/.github/workflows/E2E.yml index 9de3eed6..9fcff9ed 100644 --- a/.github/workflows/E2E.yml +++ b/.github/workflows/E2E.yml @@ -15,7 +15,7 @@ jobs: - name: Setup Node.js for use with actions uses: actions/setup-node@v3.5.1 with: - node-version: "18.16" + node-version: 20 - run: yarn install --frozen-lockfile - name: Download Polkadot and parachain binaries run: | @@ -36,8 +36,8 @@ jobs: source wait_until.sh 'curl -s "127.0.0.1:9933"' source wait_until.sh 'curl -s "127.0.0.1:9934"' working-directory: e2e - - name: Build e2e types - run: yarn generate:papi:e2e + - name: Generate PAPI types + run: yarn generate:papi - name: Build faucet run: yarn build:docker - name: Run the E2E tests diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a9fdfd73..85cd5770 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: ${{ runner.os }}-yarn- - name: Install deps in root run: yarn install --frozen-lockfile - - run: yarn generate:papi:e2e + - run: yarn generate:papi - name: Install deps in client run: yarn install --frozen-lockfile working-directory: client @@ -60,4 +60,5 @@ jobs: ${{ runner.os }}-yarn- - name: Install deps in root run: yarn install --frozen-lockfile + - run: yarn generate:papi - run: yarn test diff --git a/.gitignore b/.gitignore index 2876bf81..4240ecf7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,11 +5,11 @@ storage.db sqlite.db build e2e/containter_logs -e2e/zombienet_logs +e2e/zombienet # Autogenerated env.*.config.json.d.ts !.env.example /data -/src/test/codegen +/src/codegen diff --git a/Dockerfile b/Dockerfile index 9e5e663a..ec6ce60b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -FROM docker.io/library/node:18.16.0-alpine +FROM docker.io/library/node:20.11.1-alpine # uncomment to fix build on MacOS Apple Silicon chip -# RUN apk add --no-cache python3 make g++ -RUN apk add git +RUN apk add --no-cache python3 make g++ +# RUN apk add git ARG VCS_REF=master ARG BUILD_DATE="" @@ -20,7 +20,7 @@ LABEL io.parity.image.authors="cicd-team@parity.io" \ WORKDIR /faucet -COPY ./package.json ./yarn.lock ./ +COPY ./package.json ./yarn.lock ./polkadot-api.json ./ RUN yarn --frozen-lockfile COPY . . diff --git a/client/.env b/client/.env index 794cd553..1396a8cf 100644 --- a/client/.env +++ b/client/.env @@ -3,7 +3,7 @@ PUBLIC_CAPTCHA_KEY=6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI PUBLIC_FAUCET_URL= # uncomment to direct requests to local instance -# PUBLIC_FAUCET_URL=http://localhost:5555/drip/web/ + PUBLIC_FAUCET_URL=http://localhost:5555/drip/web/ PUBLIC_ISSUE_LINK=https://github.com/paritytech/polkadot-testnet-faucet/issues/new/choose PUBLIC_FORUM="https://forum.polkadot.network/t/experiencing-trouble-accessing-our-rococo-faucet-please-post-here/2952" diff --git a/e2e/README.md b/e2e/README.md index a7ff3dec..740ca9fb 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -81,7 +81,7 @@ command -v polkadot-parachain || echo "No polkadot-parachain in PATH" Next, in the root of this repository, start the Zombienet: ```bash -npx --yes @zombienet/cli@1.3.93 --provider native --dir e2e/zombienet_logs spawn e2e/zombienet.native.toml +yarn e2e:zombienet ``` Verify that it's working correctly by opening the [relaychain](https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9933#/explorer) and [parachain](https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9934#/explorer) explorers, @@ -103,12 +103,7 @@ curl localhost:9934 yarn build:docker ``` -4. Generate PAPI types for e2e tests - -```bash -yarn generate:papi:e2e -``` - +# TODO: UPDATE DOCS These types are generated based on `.scale` files in `e2e/` directory. To regenerate these files using live zombienet nodes, use `papi update --config e2e/polkadot-api-e2e.json` command. 5. Run the tests diff --git a/e2e/polkadot-api-e2e.json b/e2e/polkadot-api-e2e.json deleted file mode 100644 index d5ef39ee..00000000 --- a/e2e/polkadot-api-e2e.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "relaychain": { - "outputFolder": "src/test/codegen", - "wsUrl": "ws://127.0.0.1:9933", - "metadata": "e2e/relaychain.scale" - }, - "parachain": { - "outputFolder": "src/test/codegen", - "wsUrl": "ws://127.0.0.1:9934", - "metadata": "e2e/parachain.scale" - } -} diff --git a/jest.e2e.config.js b/jest.e2e.config.js index a440e561..0bbab059 100644 --- a/jest.e2e.config.js +++ b/jest.e2e.config.js @@ -1,4 +1,8 @@ const commonConfig = require("./jest.config"); /** @type {import("ts-jest/dist/types").InitialOptionsTsJest} */ -module.exports = { ...commonConfig, testMatch: ["**/?(*.)+(e2e).[jt]s?(x)"], testTimeout: 60_000 }; +module.exports = { + ...commonConfig, + testRegex: ["\\w+\\.(e2e).ts"], + testTimeout: 60_000, +}; diff --git a/package.json b/package.json index c90e55fd..43db5263 100644 --- a/package.json +++ b/package.json @@ -11,16 +11,17 @@ "fix": "yarn lint:fix && yarn format:fix", "format": "prettier ./src ./client/src ./client/tests --check", "format:fix": "prettier ./src ./client/src ./client/tests --write", + "generate:papi": "papi generate", "generate:types": "echo \"declare const schema: $(cat env.faucet.config.json); export default schema;\" > env.faucet.config.json.d.ts", - "generate:papi:e2e": "papi generate --config e2e/polkadot-api-e2e.json", "lint": "eslint ./src/ ./client/src ./client/tests --ext .js,.ts,.svelte", "lint:fix": "eslint ./src/ ./client/src ./client/tests --ext .js,.ts,.svelte --fix", "migrations:generate": "typeorm-ts-node-commonjs migration:generate -d src/db/dataSource.ts", "migrations:run": "typeorm-ts-node-commonjs migration:run -d src/db/dataSource.ts", "postinstall": "yarn generate:types", - "prebuild": "yarn generate:types", + "prebuild": "yarn generate:types && yarn generate:papi", "prepare": "ts-patch install -s", "start": "node ./build/src/start.js", + "e2e:zombienet": "rm -rf e2e/zombienet && npx --yes @zombienet/cli@1.3.99 --provider native --dir e2e/zombienet spawn e2e/zombienet.native.toml", "test": "jest", "test:e2e": "NODE_OPTIONS='--experimental-vm-modules --es-module-specifier-resolution=node' jest -c jest.e2e.config.js --runInBand --forceExit", "typecheck": "tsc --noEmit" @@ -50,19 +51,12 @@ }, "dependencies": { "@eng-automation/js": "^1.0.3", - "@polkadot-api/cli": "^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0", - "@polkadot-api/client": "^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0", - "@polkadot-api/node-polkadot-provider": "^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0", - "@polkadot-api/ws-provider": "^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0", - "@polkadot/api": "^10.10.1", - "@polkadot/keyring": "^12.5.1", - "@polkadot/util": "^12.5.1", - "@polkadot/util-crypto": "^12.5.1", - "@polkadot/wasm-crypto": "^7.2.2", - "@polkadot/x-randomvalues": "^12.5.1", + "@polkadot-labs/hdkd": "^0.0.6", + "@polkadot-labs/hdkd-helpers": "^0.0.6", "@types/cors": "^2.8.13", "axios": "^1.6.0", "bigfloat.js": "^3.0.1", + "blake2": "^5.0.0", "body-parser": "^1.20.0", "bs58": "^5.0.0", "confmgr": "^1.0.8", @@ -70,6 +64,7 @@ "express": "4.19.2", "matrix-js-sdk": "^26.1.0", "pg": "^8.11.2", + "polkadot-api": "^0.7.0", "prom-client": "^14.2.0", "reflect-metadata": "^0.1.13", "request": "^2.88.2", @@ -91,11 +86,11 @@ "rxjs": "^7.8.1", "simple-git-hooks": "^2.7.0", "supertest": "^6.3.3", - "testcontainers": "^9.9.1", + "testcontainers": "v10.8.1", "ts-jest": "^29.0.5", "ts-node": "^10.9.1", - "ts-patch": "^2.1.0", - "typescript": "^4.9.3", - "typescript-transform-paths": "^3.4.6" + "ts-patch": "^3.1.2", + "typescript": "^5.3.2", + "typescript-transform-paths": "^3.4.7" } } diff --git a/polkadot-api.json b/polkadot-api.json new file mode 100644 index 00000000..96245697 --- /dev/null +++ b/polkadot-api.json @@ -0,0 +1,30 @@ +{ + "rococo": { + "chain": "rococo_v2_2", + "metadata": "src/papi/chains/data/rococo.scale" + }, + "westend": { + "chain": "westend2", + "metadata": "src/papi/chains/data/westend.scale" + }, + "e2e_relaychain": { + "wsUrl": "ws://127.0.0.1:9933", + "metadata": "src/papi/chains/data/e2e_relaychain.scale" + }, + "e2e_parachain": { + "wsUrl": "ws://127.0.0.1:9934", + "metadata": "src/papi/chains/data/e2e_parachain.scale" + }, + "versi": { + "wsUrl": "wss://versi-rpc-node-0.parity-versi.parity.io", + "metadata": "src/papi/chains/data/versi.scale" + }, + "paseo": { + "wsUrl": "wss://paseo.rpc.amforc.com/", + "metadata": "src/papi/chains/data/paseo.scale" + }, + "trappist": { + "wsUrl": "wss://rococo-trappist-rpc.polkadot.io/", + "metadata": "src/papi/chains/data/trappist.scale" + } +} diff --git a/src/bot/index.ts b/src/bot/index.ts index 3ab6418d..0d8a14ad 100644 --- a/src/bot/index.ts +++ b/src/bot/index.ts @@ -1,14 +1,14 @@ -import { decodeAddress } from "@polkadot/keyring"; import * as mSDK from "matrix-js-sdk"; +import { AccountId } from "polkadot-api"; -import { config } from "../config"; -import { getDripRequestHandlerInstance } from "../dripper/DripRequestHandler"; -import polkadotActions from "../dripper/polkadot/PolkadotActions"; -import { convertAmountToBn, convertBnAmountToNumber, formatAmount } from "../dripper/polkadot/utils"; -import { isDripSuccessResponse } from "../guards"; -import { logger } from "../logger"; -import { getNetworkData } from "../networkData"; -import { isAccountPrivileged } from "../utils"; +import { config } from "src/config"; +import { getDripRequestHandlerInstance } from "src/dripper/DripRequestHandler"; +import polkadotActions from "src/dripper/polkadot/PolkadotActions"; +import { convertAmountToBn, convertBnAmountToNumber, formatAmount } from "src/dripper/polkadot/utils"; +import { isDripSuccessResponse } from "src/guards"; +import { logger } from "src/logger"; +import { getNetworkData } from "src/papi"; +import { isAccountPrivileged } from "src/utils"; const dripRequestHandler = getDripRequestHandlerInstance(polkadotActions); @@ -55,7 +55,7 @@ const printHelpMessage = (roomId: string, message = "") => `${message ? `${message} - ` : ""}The following commands are supported: !balance - Get the faucet's balance. !drip
[:ParachainId] - Send ${ - networkData.currency + networkData.data.currency }s to
, if the optional suffix \`:SomeParachainId\` is given a teleport will be issued. !help - Print this message`, ); @@ -99,17 +99,17 @@ bot.on(mSDK.RoomEvent.Timeline, (event: mSDK.MatrixEvent) => { logger.debug(`Processing request from ${sender}`); - let dripAmount: bigint = convertAmountToBn(networkData.dripAmount); + let dripAmount: bigint = convertAmountToBn(networkData.data.dripAmount); const [action, arg0, arg1] = body.split(" "); if (action === "!version") { sendMessage(roomId, `Current version: ${deployedRef}`); } else if (action === "!balance") { (async () => { - const balance = BigInt(await polkadotActions.getBalance()); + const balance = await polkadotActions.getFaucetBalance(); const displayBalance = formatAmount(balance); - sendMessage(roomId, `The faucet has ${displayBalance} ${networkData.currency}s remaining.`); + sendMessage(roomId, `The faucet has ${displayBalance} ${networkData.data.currency}s remaining.`); })().catch((e) => { sendMessage(roomId, "An error occurred, please check the server logs."); logger.error("⭕ An error occurred when checking the balance", e); @@ -126,7 +126,8 @@ bot.on(mSDK.RoomEvent.Timeline, (event: mSDK.MatrixEvent) => { logger.debug(`Processed receiver to address ${address} and parachain id ${parachain_id}`); try { - decodeAddress(address); + // TODO: check this + AccountId().enc(address); } catch (e) { sendMessage(roomId, `${sender} provided an incompatible address.`); return; @@ -140,16 +141,16 @@ bot.on(mSDK.RoomEvent.Timeline, (event: mSDK.MatrixEvent) => { // who have access to loki logs if (Number.isNaN(dripAmount)) { logger.error( - `⭕ Failed to convert drip amount: "${arg1}" to number, defaulting to ${networkData.dripAmount} ${networkData.currency}s`, + `⭕ Failed to convert drip amount: "${arg1}" to number, defaulting to ${networkData.data.dripAmount} ${networkData.data.currency}s`, ); - dripAmount = convertAmountToBn(networkData.dripAmount); + dripAmount = convertAmountToBn(networkData.data.dripAmount); } if (dripAmount <= 0) { logger.error( - `⭕ Drip amount can't be less than 0, got ${dripAmount}, defaulting to ${networkData.dripAmount} ${networkData.currency}s`, + `⭕ Drip amount can't be less than 0, got ${dripAmount}, defaulting to ${networkData.data.dripAmount} ${networkData.data.currency}s`, ); - dripAmount = convertAmountToBn(networkData.dripAmount); + dripAmount = convertAmountToBn(networkData.data.dripAmount); } } @@ -210,11 +211,12 @@ function formattedSuccessfulDripResponse( formatted: string; } { const numberDripAmount = convertBnAmountToNumber(dripAmount); - const extrinsicLink = networkData.explorer !== null ? `${networkData.explorer}/extrinsic/${extrinsicHash}` : null; + const extrinsicLink = + networkData.data.explorer !== null ? `${networkData.data.explorer}/extrinsic/${extrinsicHash}` : null; - const messagePlain = `Sent ${sender} ${numberDripAmount} ${networkData.currency}s. + const messagePlain = `Sent ${sender} ${numberDripAmount} ${networkData.data.currency}s. Extrinsic hash: ${extrinsicHash}`; - let messageHtml = `Sent ${sender} ${numberDripAmount} ${networkData.currency}s.`; + let messageHtml = `Sent ${sender} ${numberDripAmount} ${networkData.data.currency}s.`; if (extrinsicLink !== null) { messageHtml += `
Extrinsic hash: ${extrinsicHash}`; } else { diff --git a/src/dripper/DripRequestHandler.ts b/src/dripper/DripRequestHandler.ts index cb262898..2ddd5327 100644 --- a/src/dripper/DripRequestHandler.ts +++ b/src/dripper/DripRequestHandler.ts @@ -8,16 +8,15 @@ import { hasDrippedToday, saveDrip } from "./dripperStorage"; import type { PolkadotActions } from "./polkadot/PolkadotActions"; import { Recaptcha } from "./Recaptcha"; -const isParachainValid = (parachain: string): boolean => { - if (!parachain) { - return true; - } - +const validateParachainId = (parachain: string): number | null => { const id = Number.parseInt(parachain); if (isNaN(id)) { - return false; + return null; + } + if (id < 999 || id > 10_000) { + return null; } - return id > 999 && id < 10_000; + return id; }; export class DripRequestHandler { @@ -36,8 +35,11 @@ export class DripRequestHandler { if (external && !(await this.recaptcha.validate(opts.recaptcha))) return { error: "Captcha validation was unsuccessful" }; - if (!isParachainValid(parachain_id)) + + const validatedParachainId = parachain_id ? validateParachainId(parachain_id) : null; + if (parachain_id && validatedParachainId === null) { return { error: "Parachain invalid. Be sure to set a value between 1000 and 9999" }; + } const isAllowed = !(await hasDrippedToday(external ? { addr } : { username: opts.sender, addr })); const isPrivileged = !external && isAccountPrivileged(opts.sender); @@ -49,7 +51,7 @@ export class DripRequestHandler { } else if (isAllowed && isAccountOverBalanceCap && !isPrivileged) { return { error: `Requester's balance is over the faucet's balance cap` }; } else { - const sendTokensResult = await this.actions.sendTokens(addr, parachain_id, amount); + const sendTokensResult = await this.actions.sendTokens(addr, validatedParachainId, amount); // hash is null if something wrong happened if (isDripSuccessResponse(sendTokensResult)) { diff --git a/src/dripper/polkadot/PolkadotActions.ts b/src/dripper/polkadot/PolkadotActions.ts index a138fd7b..3a883dc3 100644 --- a/src/dripper/polkadot/PolkadotActions.ts +++ b/src/dripper/polkadot/PolkadotActions.ts @@ -1,223 +1,165 @@ -import { Keyring } from "@polkadot/keyring"; -import { KeyringPair } from "@polkadot/keyring/types"; -import { waitReady } from "@polkadot/wasm-crypto"; -import BN from "bn.js"; - -import { config } from "../../config"; -import { isDripSuccessResponse } from "../../guards"; -import { logger } from "../../logger"; -import { getNetworkData } from "../../networkData"; -import { DripResponse } from "../../types"; -import polkadotApi from "./polkadotApi"; -import { formatAmount } from "./utils"; +import { ss58Address } from "@polkadot-labs/hdkd-helpers"; +import { AccountId, Binary } from "polkadot-api"; +import { filter, firstValueFrom } from "rxjs"; + +import { config } from "src/config"; +import { logger } from "src/logger"; +import { client, getNetworkData } from "src/papi"; +import { signer } from "src/papi/signer"; +import { DripResponse } from "src/types"; -const mnemonic = config.Get("FAUCET_ACCOUNT_MNEMONIC"); -const balancePollIntervalMs = 60000; // 1 minute +import { formatAmount } from "./utils"; const networkName = config.Get("NETWORK"); const networkData = getNetworkData(networkName); const rpcTimeout = (service: string) => { - const timeout = 10000; + const timeout = 100_000; return setTimeout(() => { // log an error in console and in prometheus if the timeout is reached logger.error(`⭕ Oops, ${service} took more than ${timeout}ms to answer`); }, timeout); }; +const encodeAccount = AccountId().enc; + export class PolkadotActions { - account: KeyringPair | undefined; + address: string; #faucetBalance: bigint | undefined; isReady: Promise; + #nonce: number; constructor() { logger.info("🚰 Plip plop - Creating the faucets's account"); - let makeReady: () => void; - this.isReady = new Promise((resolve) => { - makeReady = resolve; - }); + this.address = ss58Address(signer.publicKey); + logger.info(`Faucet address is ${this.address}`); - try { - const keyring = new Keyring({ type: "sr25519" }); - - waitReady().then(() => { - this.account = keyring.addFromMnemonic(mnemonic); - - // We do want the following to just start and run - // TODO: Adding a subscription would be better but the server supports on http for now - const updateFaucetBalance = (log = false) => - this.updateFaucetBalance().then(() => { - if (log) logger.info("Fetched faucet balance 💰"); - setTimeout(updateFaucetBalance, balancePollIntervalMs); - }); - updateFaucetBalance(true).then(makeReady); - }); - } catch (error) { - logger.error(error); - } - } + this.#nonce = 1; // default value; fetching actual nonce below - /** - * This function checks the current balance and updates the `faucetBalance` property. - */ - private async updateFaucetBalance() { - if (!this.account?.address) { - logger.warn("Account address wasn't initialized yet"); - return; - } + this.isReady = (async () => { + this.#faucetBalance = await networkData.api.getBalance(this.address, client); + this.#nonce = await networkData.api.getNonce(this.address, client); + logger.info(`Faucet balance fetched, it's now ${formatAmount(this.#faucetBalance)} ${networkData.data.currency}`); + })(); - try { - await polkadotApi.isReady; - const { data: balances } = await polkadotApi.query.system.account(this.account.address); - this.#faucetBalance = balances.free.toBigInt(); - } catch (e) { - logger.error(e); - } + networkData.api.watchBalance(this.address, client, (value) => { + if (value != this.#faucetBalance) { + this.#faucetBalance = value; + logger.info( + `Faucet balance update. It's now ${formatAmount(this.#faucetBalance)} ${networkData.data.currency}`, + ); + } + }); } - public getFaucetBalance(): bigint | undefined { + public async getFaucetBalance(): Promise { + // This should mean that #faucetBalance is initialized + await this.isReady; + if (this.#faucetBalance === undefined) { + // So this shouldn't be possible + throw new Error("#faucetBalance: uninitialized"); + } return this.#faucetBalance; } public async getAccountBalance(address: string): Promise { - const { data } = await polkadotApi.query.system.account(address); + const balance = await networkData.api.getBalance(address, client); - const { free: balanceFree } = data; - - return balanceFree - .toBn() - .div(new BN(10).pow(new BN(networkData.decimals))) - .toNumber(); + return Number(balance / 10n ** BigInt(networkData.data.decimals)); } public async isAccountOverBalanceCap(address: string): Promise { - return (await this.getAccountBalance(address)) > networkData.balanceCap; + return (await this.getAccountBalance(address)) > networkData.data.balanceCap; } - async teleportTokens(dripAmount: bigint, address: string, parachain_id: string): Promise { - logger.info("💸 teleporting tokens"); - - const dest = { - V3: { - interior: { - X1: { - Parachain: parachain_id, - }, - }, - parents: 0, - }, - }; - - const addressHex = polkadotApi.registry.createType("AccountId", address).toHex(); - const beneficiary = { - V3: { - interior: { - X1: { - AccountId32: { id: addressHex, network: null }, - }, - }, - parents: 0, - }, - }; - - const assets = { - V3: [ - { - fun: { Fungible: dripAmount }, - id: { - Concrete: { - interior: "Here", - parents: 0, - }, - }, - }, - ], - }; - - const weightLimit = { Unlimited: null }; - - const feeAssetItem = 0; - - const transfer = polkadotApi.tx.xcmPallet.limitedTeleportAssets( - dest, - beneficiary, - assets, - feeAssetItem, - weightLimit, - ); - - if (!this.account) throw new Error("account not ready"); - const hash = await transfer.signAndSend(this.account, { nonce: -1 }); - - const result: DripResponse = { hash: hash.toHex() }; - return result; + async teleportTokens(dripAmount: bigint, address: string, parachain_id: number): Promise { + logger.info(`💸 teleporting tokens to ${address}, parachain ${parachain_id}`); + + const addressBinary = Binary.fromBytes(encodeAccount(address)); + + const tx = await networkData.api.getTeleportTx({ + dripAmount, + address: addressBinary, + parachain_id, + client, + nonce: this.#nonce++, + }); + + logger.debug(`Teleporting to ${address}: ${parachain_id}. Transaction ${tx}`); + + // client.submit(tx) waits for the finalized value, which might be important for real money, + // but for the faucet drips, early respond is better UX + const submit$ = client.submitAndWatch(tx); + + const hash = (await firstValueFrom(submit$.pipe(filter((value) => value.type === "broadcasted")))).txHash; + + await firstValueFrom(submit$.pipe(filter((value) => value.type === "txBestBlocksState" && value.found))); + + logger.info(`💸 teleporting tokens to ${address}, parachain ${parachain_id}: done: ${hash}`); + return { hash }; } - async sendTokens(address: string, parachain_id: string, amount: bigint): Promise { + async transferTokens(dripAmount: bigint, address: string): Promise { + logger.info(`💸 sending tokens to ${address}`); + const tx = await networkData.api.getTransferTokensTx({ + dripAmount, + address, + client, + nonce: this.#nonce++, + }); + logger.debug(`Dripping to ${address}. Transaction ${tx}`); + // client.submit(tx) waits for the finalized value, which might be important for real money, + // but for the faucet drips, early respond is better UX + + const submit$ = client.submitAndWatch(tx); + submit$.forEach((data) => { + logger.info(`submit$ ${address}`, data.type); + }); + + const hash = (await firstValueFrom(submit$.pipe(filter((value) => value.type === "broadcasted")))).txHash; + + await firstValueFrom(submit$.pipe(filter((value) => value.type === "txBestBlocksState" && value.found))); + + logger.info(`💸 sending tokens to ${address}: done: ${hash}`); + return { hash }; + } + + async sendTokens(address: string, parachain_id: number | null, amount: bigint): Promise { let dripTimeout: ReturnType | null = null; let result: DripResponse; - const faucetBalance = this.getFaucetBalance(); try { - if (!this.account) throw new Error("account not ready"); - - if (typeof faucetBalance !== "undefined" && amount >= faucetBalance) { + if (typeof this.#faucetBalance !== "undefined" && amount >= this.#faucetBalance) { const formattedAmount = formatAmount(amount); - const formattedBalance = formatAmount(faucetBalance); + const formattedBalance = formatAmount(this.#faucetBalance); throw new Error( - `Can't send ${formattedAmount} ${networkData.currency}s, as balance is only ${formattedBalance} ${networkData.currency}s.`, + `Can't send ${formattedAmount} ${networkData.data.currency}s, as balance is only ${formattedBalance} ${networkData.data.currency}s.`, ); } // start a counter and log a timeout error if we didn't get an answer in time dripTimeout = rpcTimeout("drip"); - if (parachain_id != "") { + if (parachain_id !== null) { result = await this.teleportTokens(amount, address, parachain_id); } else { - logger.info("💸 sending tokens"); - const transfer = polkadotApi.tx.balances.transferKeepAlive(address, amount); - const hash = await transfer.signAndSend(this.account, { nonce: -1 }); - result = { hash: hash.toHex() }; + result = await this.transferTokens(amount, address); } } catch (e) { - result = { error: (e as Error).message || "An error occured when sending tokens" }; logger.error("⭕ An error occured when sending tokens", e); + let message = "An error occured when sending tokens"; + if (e instanceof Error) { + message = e.message; + } + result = { error: message }; } // we got and answer reset the timeout if (dripTimeout) clearTimeout(dripTimeout); - if (isDripSuccessResponse(result)) { - await this.updateFaucetBalance().then(() => logger.info("Refreshed the faucet balance 💰")); - } - return result; } - - async getBalance(): Promise { - try { - if (!this.account) { - throw new Error("account not ready"); - } - - logger.info("💰 checking faucet balance"); - - // start a counter and log a timeout error if we didn't get an answer in time - const balanceTimeout = rpcTimeout("balance"); - - const { data: balances } = await polkadotApi.query.system.account(this.account.address); - - // we got and answer reset the timeout - clearTimeout(balanceTimeout); - - return balances.free.toString(); - } catch (e) { - logger.error("⭕ An error occured when querying the balance", e); - return "0"; - } - } } export default new PolkadotActions(); diff --git a/src/dripper/polkadot/polkadotApi.ts b/src/dripper/polkadot/polkadotApi.ts deleted file mode 100644 index 2a922e57..00000000 --- a/src/dripper/polkadot/polkadotApi.ts +++ /dev/null @@ -1,14 +0,0 @@ -import "@polkadot/api-augment"; -import { ApiPromise } from "@polkadot/api"; -import { WsProvider } from "@polkadot/rpc-provider"; - -import { config } from "../../config"; -import { getNetworkData } from "../../networkData"; - -const networkName = config.Get("NETWORK"); -const networkData = getNetworkData(networkName); - -const provider = new WsProvider(networkData.rpcEndpoint); -const polkadotApi = new ApiPromise({ provider }); - -export default polkadotApi; diff --git a/src/dripper/polkadot/utils.ts b/src/dripper/polkadot/utils.ts index 25b47d15..ea9edb65 100644 --- a/src/dripper/polkadot/utils.ts +++ b/src/dripper/polkadot/utils.ts @@ -1,7 +1,7 @@ import { BigFloat } from "bigfloat.js"; -import { config } from "../../config"; -import { getNetworkData } from "../../networkData"; +import { config } from "src/config"; +import { getNetworkData } from "src/papi"; const networkName = config.Get("NETWORK"); const networkData = getNetworkData(networkName); @@ -9,14 +9,14 @@ const networkData = getNetworkData(networkName); export function convertAmountToBn(amount: string): bigint { const parsedAmount = new BigFloat(amount); - return BigInt(parsedAmount.mul(new BigFloat(10).pow(new BigFloat(networkData.decimals))).toString()); + return BigInt(parsedAmount.mul(new BigFloat(10).pow(new BigFloat(networkData.data.decimals))).toString()); } export function convertBnAmountToNumber(amount: bigint): number { - return Number(amount) / 10 ** networkData.decimals; + return Number(amount / 10n ** BigInt(networkData.data.decimals)); } export function formatAmount(amount: bigint): string { - const numberAmount = Number(amount) / 10 ** networkData.decimals; + const numberAmount = Number(amount / 10n ** BigInt(networkData.data.decimals)); return String(Math.floor(numberAmount)); } diff --git a/src/faucet.e2e.ts b/src/faucet.e2e.ts index 372ec81d..b75f5759 100644 --- a/src/faucet.e2e.ts +++ b/src/faucet.e2e.ts @@ -1,15 +1,13 @@ import { until, validatedFetch } from "@eng-automation/js"; -import { AccountId, createClient } from "@polkadot-api/client"; -import { getChain } from "@polkadot-api/node-polkadot-provider"; -import { WebSocketProvider } from "@polkadot-api/ws-provider/node"; +import { e2e_parachain, e2e_relaychain } from "@polkadot-api/descriptors"; import crypto from "crypto"; import Joi from "joi"; -import { filter, firstValueFrom, mergeMap, pairwise, race, skipWhile, throwError } from "rxjs"; +import { AccountId, createClient } from "polkadot-api"; +import { WebSocketProvider } from "polkadot-api/ws-provider/node"; +import { filter, firstValueFrom, mergeMap, pairwise, race, skip, throwError } from "rxjs"; import { Repository } from "typeorm"; import { Drip } from "src/db/entity/Drip"; -import parachainDescriptors from "src/test/codegen/parachain"; -import relaychainDescriptors from "src/test/codegen/relaychain"; import { drip } from "src/test/webhookHelpers"; import { getLatestMessage, postMessage } from "./test/matrixHelpers"; @@ -27,38 +25,28 @@ describe("Faucet E2E", () => { let e2eSetup: E2ESetup; let dripRepository: Repository; - const relaychainClient = createClient( - getChain({ - provider: WebSocketProvider("ws://127.0.0.1:9933"), - keyring: [], - }), - ); - const relayChainApi = relaychainClient.getTypedApi(relaychainDescriptors); + const relaychainClient = createClient(WebSocketProvider("ws://127.0.0.1:9933")); + const relayChainApi = relaychainClient.getTypedApi(e2e_relaychain); - const parachainClient = createClient( - getChain({ - provider: WebSocketProvider("ws://127.0.0.1:9934"), - keyring: [], - }), - ); - - const parachainApi = parachainClient.getTypedApi(parachainDescriptors); + const parachainClient = createClient(WebSocketProvider("ws://127.0.0.1:9934")); + const parachainApi = parachainClient.getTypedApi(e2e_parachain); type SomeApi = typeof relayChainApi | typeof parachainApi; - const expectBalanceIncrease = async (useraddress: string, api: SomeApi, blocksNum: number) => { - const startBlock = await api.query.System.Number.getValue({ at: "best" }); - return await firstValueFrom( + const expectBalanceIncrease = async (useraddress: string, api: SomeApi, blocksNum: number) => + await firstValueFrom( race([ api.query.System.Account.watchValue(useraddress, "best") .pipe(pairwise()) .pipe(filter(([oldValue, newValue]) => newValue.data.free > oldValue.data.free)), - api.query.System.Number.watchValue("best") - .pipe(skipWhile((blockNumber) => blockNumber - startBlock < blocksNum)) - .pipe(mergeMap(() => throwError(() => new Error(`Balance did not increase in ${blocksNum} blocks`)))), + api.query.System.Number.watchValue("best").pipe( + skip(blocksNum), + mergeMap(() => + throwError(() => new Error(`Balance of ${useraddress} did not increase in ${blocksNum} blocks`)), + ), + ), ]), ); - }; beforeAll(async () => { e2eSetup = await setup(); @@ -106,16 +94,16 @@ describe("Faucet E2E", () => { await postMessage(matrixUrl, { roomId, accessToken: userAccessToken, body: `!drip ${userAddress}` }); + await expectBalanceIncrease(userAddress, relayChainApi, 7); await until( async () => (await getLatestMessage(matrixUrl, { roomId, accessToken: userAccessToken })).sender === "@bot:parity.io", 500, - 10, + 20, "Bot did not reply.", ); const botMessage = await getLatestMessage(matrixUrl, { roomId, accessToken: userAccessToken }); expect(botMessage.body).toContain("Sent @user:parity.io 10 UNITs."); - await expectBalanceIncrease(userAddress, relayChainApi, 3); }); test("The bot teleports to a given address", async () => { @@ -127,17 +115,18 @@ describe("Faucet E2E", () => { body: `!drip ${userAddress}:${PARACHAIN_ID}`, }); + await expectBalanceIncrease(userAddress, parachainApi, 12); + await until( async () => (await getLatestMessage(matrixUrl, { roomId, accessToken: userAccessToken })).sender === "@bot:parity.io", 500, - 10, + 200, "Bot did not reply.", ); const botMessage = await getLatestMessage(matrixUrl, { roomId, accessToken: userAccessToken }); expect(botMessage.body).toContain("Sent @user:parity.io 10 UNITs."); - await expectBalanceIncrease(userAddress, parachainApi, 3); - }); + }, 100_000); test("The bot fails on invalid chain id", async () => { const userAddress = randomAddress(); @@ -183,10 +172,11 @@ describe("Faucet E2E", () => { test("The web endpoint drips to a given address", async () => { const userAddress = randomAddress(); - const result = await drip(webEndpoint, userAddress); + const dripPromise = drip(webEndpoint, userAddress); + await expectBalanceIncrease(userAddress, relayChainApi, 7); + const result = await dripPromise; expect(result.hash).toBeTruthy(); - await expectBalanceIncrease(userAddress, relayChainApi, 3); }); test("The web endpoint teleports to a given address", async () => { @@ -196,7 +186,7 @@ describe("Faucet E2E", () => { expect(result.hash).toBeTruthy(); - await expectBalanceIncrease(userAddress, parachainApi, 3); + await expectBalanceIncrease(userAddress, parachainApi, 7); }); test("The web endpoint fails on wrong parachain", async () => { diff --git a/src/papi/chains/common.ts b/src/papi/chains/common.ts new file mode 100644 index 00000000..b018978f --- /dev/null +++ b/src/papi/chains/common.ts @@ -0,0 +1 @@ +export const parityWhitelist = [/^.*:parity.io$/, /^.*:web3.foundation$/]; diff --git a/e2e/parachain.scale b/src/papi/chains/data/e2e_parachain.scale similarity index 100% rename from e2e/parachain.scale rename to src/papi/chains/data/e2e_parachain.scale diff --git a/e2e/relaychain.scale b/src/papi/chains/data/e2e_relaychain.scale similarity index 100% rename from e2e/relaychain.scale rename to src/papi/chains/data/e2e_relaychain.scale diff --git a/src/papi/chains/data/paseo.scale b/src/papi/chains/data/paseo.scale new file mode 100644 index 00000000..51de01cf Binary files /dev/null and b/src/papi/chains/data/paseo.scale differ diff --git a/src/papi/chains/data/rococo.scale b/src/papi/chains/data/rococo.scale new file mode 100644 index 00000000..b28e71f7 Binary files /dev/null and b/src/papi/chains/data/rococo.scale differ diff --git a/src/papi/chains/data/trappist.scale b/src/papi/chains/data/trappist.scale new file mode 100644 index 00000000..8837aa2b Binary files /dev/null and b/src/papi/chains/data/trappist.scale differ diff --git a/src/papi/chains/data/versi.scale b/src/papi/chains/data/versi.scale new file mode 100644 index 00000000..982f2328 Binary files /dev/null and b/src/papi/chains/data/versi.scale differ diff --git a/src/papi/chains/data/westend.scale b/src/papi/chains/data/westend.scale new file mode 100644 index 00000000..21370e96 Binary files /dev/null and b/src/papi/chains/data/westend.scale differ diff --git a/src/papi/chains/e2e.ts b/src/papi/chains/e2e.ts new file mode 100644 index 00000000..7af02e8a --- /dev/null +++ b/src/papi/chains/e2e.ts @@ -0,0 +1,94 @@ +import { + e2e_relaychain, + MultiAddress, + XcmV3Junction, + XcmV3Junctions, + XcmV3MultiassetAssetId, + XcmV3MultiassetFungibility, + XcmV3WeightLimit, + XcmVersionedAssets, + XcmVersionedLocation, +} from "@polkadot-api/descriptors"; +import { blake2b256 } from "@polkadot-labs/hdkd-helpers"; +import { PolkadotClient } from "polkadot-api"; + +import { parityWhitelist } from "src/papi/chains/common"; +import { NetworkApi, NetworkData } from "src/papi/chains/index"; +import { signer } from "src/papi/signer"; + +export const networkData: NetworkData = { + balanceCap: 100, + chains: [], + currency: "UNIT", + decimals: 12, + dripAmount: "10", + explorer: null, + networkName: "Rococo", + rpcEndpoint: "ws://host.docker.internal:9933/", + matrixWhitelistPatterns: parityWhitelist, +}; + +export const networkApi: NetworkApi = { + hashTx: blake2b256, + getTeleportTx: async ({ dripAmount, address, parachain_id, client, nonce }): Promise => { + const api = client.getTypedApi(e2e_relaychain); + + return await api.tx.XcmPallet.limited_teleport_assets({ + dest: XcmVersionedLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1(XcmV3Junction.Parachain(parachain_id)), + }), + beneficiary: XcmVersionedLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1( + XcmV3Junction.AccountId32({ + network: undefined, + id: address, + }), + ), + }), + assets: XcmVersionedAssets.V3([ + { + fun: XcmV3MultiassetFungibility.Fungible(dripAmount), + id: XcmV3MultiassetAssetId.Concrete({ interior: XcmV3Junctions.Here(), parents: 0 }), + }, + ]), + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), + }).sign(signer, { nonce }); + }, + + getTransferTokensTx: async ({ dripAmount, address, client, nonce }): Promise => { + const api = client.getTypedApi(e2e_relaychain); + + return await api.tx.Balances.transfer_keep_alive({ + dest: MultiAddress.Id(address), + value: dripAmount, + }).sign(signer, { nonce }); + }, + + getBalance: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(e2e_relaychain); + + const balances = await api.query.System.Account.getValue(address, { at: "finalized" }); + + return balances.data.free; + }, + + watchBalance: (address: string, client: PolkadotClient, callback: (value: bigint) => void): void => { + const api = client.getTypedApi(e2e_relaychain); + api.query.System.Account.watchValue(address, "finalized").forEach((balances) => callback(balances.data.free)); + }, + + healthcheck: async (client: PolkadotClient): Promise => { + const api = client.getTypedApi(e2e_relaychain); + await api.query.System.Number.getValue(); + }, + + getNonce: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(e2e_relaychain); + return await api.apis.AccountNonceApi.account_nonce(address); + }, +}; + +export default { data: networkData, api: networkApi }; diff --git a/src/papi/chains/index.ts b/src/papi/chains/index.ts new file mode 100644 index 00000000..8d7cdf3c --- /dev/null +++ b/src/papi/chains/index.ts @@ -0,0 +1,70 @@ +import { Binary, PolkadotClient } from "polkadot-api"; + +import e2e from "./e2e"; +import paseo from "./paseo"; +import rococo from "./rococo"; +import trappist from "./trappist"; +import versi from "./versi"; +import westend from "./westend"; + +export interface ChainData { + name: string; + id: number; +} + +export const networks: Record = { + rococo, + versi, + westend, + e2e, + trappist, + paseo, +}; + +export interface NetworkApi { + getTeleportTx(params: { + dripAmount: bigint; + address: Binary; + parachain_id: number; + client: PolkadotClient; + nonce: number; + }): Promise; + + getTransferTokensTx(params: { + dripAmount: bigint; + address: string; + client: PolkadotClient; + nonce: number; + }): Promise; + + getBalance(address: string, client: PolkadotClient): Promise; + + watchBalance(address: string, client: PolkadotClient, callback: (value: bigint) => void): void; + + healthcheck(client: PolkadotClient): Promise; + + getNonce(address: string, client: PolkadotClient): Promise; +} + +export interface NetworkData { + networkName: string; + currency: string; + chains: ChainData[]; + explorer: string | null; + rpcEndpoint: string; + decimals: number; + dripAmount: string; + balanceCap: number; + matrixWhitelistPatterns: RegExp[]; +} + +export function getNetworkData(networkName: string): { data: NetworkData; api: NetworkApi } { + if (!Object.keys(networks).includes(networkName)) { + throw new Error( + `Unknown NETWORK in env: ${networkName}; valid networks are: [${Object.keys(networks).join(", ")}]`, + ); + } + // networkName value is valdated one line before, safe to use as index + // eslint-disable-next-line security/detect-object-injection + return networks[networkName]; +} diff --git a/src/papi/chains/paseo.ts b/src/papi/chains/paseo.ts new file mode 100644 index 00000000..ff510839 --- /dev/null +++ b/src/papi/chains/paseo.ts @@ -0,0 +1,101 @@ +import { + MultiAddress, + paseo, + XcmV3Junction, + XcmV3Junctions, + XcmV3MultiassetAssetId, + XcmV3MultiassetFungibility, + XcmV3WeightLimit, + XcmVersionedMultiAssets, + XcmVersionedMultiLocation, +} from "@polkadot-api/descriptors"; +import { PolkadotClient } from "polkadot-api"; + +import { NetworkApi, NetworkData } from "src/papi/chains/index"; +import { signer } from "src/papi/signer"; + +const networkData: NetworkData = { + balanceCap: 500, + chains: [], + currency: "PAS", + decimals: 10, + dripAmount: "100", + explorer: null, + networkName: "Paseo", + rpcEndpoint: "wss://paseo.rpc.amforc.com/", + matrixWhitelistPatterns: [ + /^@erin:parity\.io$/, + /^@mak:parity\.io$/, + /^@alexbird:parity\.io$/, + /^@pierre:parity\.io$/, + /^@hectorest06:matrix\.org$/, + /^@tbaut:matrix\.org$/, + /^@al3mart:matrix\.org$/, + /^@purpletentacle:matrix\.org$/, + /^@carlosala:matrix\.org$/, + ], +}; + +export const networkApi: NetworkApi = { + getTeleportTx: async ({ dripAmount, address, parachain_id, client, nonce }): Promise => { + const api = client.getTypedApi(paseo); + + return await api.tx.XcmPallet.limited_teleport_assets({ + dest: XcmVersionedMultiLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1(XcmV3Junction.Parachain(parachain_id)), + }), + beneficiary: XcmVersionedMultiLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1( + XcmV3Junction.AccountId32({ + network: undefined, + id: address, + }), + ), + }), + assets: XcmVersionedMultiAssets.V3([ + { + fun: XcmV3MultiassetFungibility.Fungible(dripAmount), + id: XcmV3MultiassetAssetId.Concrete({ interior: XcmV3Junctions.Here(), parents: 0 }), + }, + ]), + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), + }).sign(signer, { nonce }); + }, + + getTransferTokensTx: async ({ dripAmount, address, client, nonce }): Promise => { + const api = client.getTypedApi(paseo); + + return await api.tx.Balances.transfer_keep_alive({ + dest: MultiAddress.Id(address), + value: dripAmount, + }).sign(signer, { nonce }); + }, + + getBalance: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(paseo); + + const balances = await api.query.System.Account.getValue(address, { at: "finalized" }); + + return balances.data.free; + }, + + watchBalance: (address: string, client: PolkadotClient, callback: (value: bigint) => void): void => { + const api = client.getTypedApi(paseo); + api.query.System.Account.watchValue(address, "finalized").forEach((balances) => callback(balances.data.free)); + }, + + healthcheck: async (client: PolkadotClient): Promise => { + const api = client.getTypedApi(paseo); + await api.query.System.Number.getValue(); + }, + + getNonce: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(paseo); + return await api.apis.AccountNonceApi.account_nonce(address); + }, +}; + +export default { data: networkData, api: networkApi }; diff --git a/src/papi/chains/rococo.ts b/src/papi/chains/rococo.ts new file mode 100644 index 00000000..37ddfcde --- /dev/null +++ b/src/papi/chains/rococo.ts @@ -0,0 +1,97 @@ +import { + MultiAddress, + rococo, + XcmV3Junction, + XcmV3Junctions, + XcmV3MultiassetAssetId, + XcmV3MultiassetFungibility, + XcmV3WeightLimit, + XcmVersionedAssets, + XcmVersionedLocation, +} from "@polkadot-api/descriptors"; +import { PolkadotClient } from "polkadot-api"; + +import { parityWhitelist } from "src/papi/chains/common"; +import { NetworkApi, NetworkData } from "src/papi/chains/index"; +import { signer } from "src/papi/signer"; + +export const networkData: NetworkData = { + balanceCap: 1000, + chains: [ + { name: "Rococo Relay Chain", id: -1 }, + { name: "Rockmine", id: 1000 }, + { name: "Contracts", id: 1002 }, + { name: "Encointer Lietaer", id: 1003 }, + { name: "Bridgehub", id: 1013 }, + ], + currency: "ROC", + decimals: 12, + dripAmount: "100", + explorer: "https://rococo.subscan.io", + networkName: "Rococo", + rpcEndpoint: "wss://rococo-rpc.polkadot.io/", + matrixWhitelistPatterns: parityWhitelist, +}; + +export const networkApi: NetworkApi = { + getTeleportTx: async ({ dripAmount, address, parachain_id, client, nonce }): Promise => { + const api = client.getTypedApi(rococo); + + return await api.tx.XcmPallet.limited_teleport_assets({ + dest: XcmVersionedLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1(XcmV3Junction.Parachain(parachain_id)), + }), + beneficiary: XcmVersionedLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1( + XcmV3Junction.AccountId32({ + network: undefined, + id: address, + }), + ), + }), + assets: XcmVersionedAssets.V3([ + { + fun: XcmV3MultiassetFungibility.Fungible(dripAmount), + id: XcmV3MultiassetAssetId.Concrete({ interior: XcmV3Junctions.Here(), parents: 0 }), + }, + ]), + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), + }).sign(signer, { nonce }); + }, + + getTransferTokensTx: async ({ dripAmount, address, client, nonce }): Promise => { + const api = client.getTypedApi(rococo); + + return await api.tx.Balances.transfer_keep_alive({ + dest: MultiAddress.Id(address), + value: dripAmount, + }).sign(signer, { nonce }); + }, + + getBalance: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(rococo); + + const balances = await api.query.System.Account.getValue(address, { at: "finalized" }); + + return balances.data.free; + }, + + watchBalance: (address: string, client: PolkadotClient, callback: (value: bigint) => void): void => { + const api = client.getTypedApi(rococo); + api.query.System.Account.watchValue(address, "finalized").forEach((balances) => callback(balances.data.free)); + }, + + healthcheck: async (client: PolkadotClient): Promise => { + const api = client.getTypedApi(rococo); + await api.query.System.Number.getValue(); + }, + getNonce: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(rococo); + return await api.apis.AccountNonceApi.account_nonce(address); + }, +}; + +export default { data: networkData, api: networkApi }; diff --git a/src/papi/chains/trappist.ts b/src/papi/chains/trappist.ts new file mode 100644 index 00000000..199e7096 --- /dev/null +++ b/src/papi/chains/trappist.ts @@ -0,0 +1,58 @@ +import { MultiAddress, trappist } from "@polkadot-api/descriptors"; +import { PolkadotClient } from "polkadot-api"; + +import { parityWhitelist } from "src/papi/chains/common"; +import { NetworkApi, NetworkData } from "src/papi/chains/index"; +import { signer } from "src/papi/signer"; + +export const networkData: NetworkData = { + balanceCap: 100, + chains: [], + currency: "HOP", + decimals: 12, + dripAmount: "10", + explorer: null, + networkName: "Trappist", + rpcEndpoint: "wss://rococo-trappist-rpc.polkadot.io/", + matrixWhitelistPatterns: parityWhitelist, +}; + +export const networkApi: NetworkApi = { + getTeleportTx: async (): Promise => { + throw new Error("Trappist network doesn't allow teleporting, as it itself is a parachain"); + }, + + getTransferTokensTx: async ({ dripAmount, address, client, nonce }): Promise => { + const api = client.getTypedApi(trappist); + + return await api.tx.Balances.transfer_keep_alive({ + dest: MultiAddress.Id(address), + value: dripAmount, + }).sign(signer, { nonce }); + }, + + getBalance: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(trappist); + + const balances = await api.query.System.Account.getValue(address, { at: "finalized" }); + + return balances.data.free; + }, + + watchBalance: (address: string, client: PolkadotClient, callback: (value: bigint) => void): void => { + const api = client.getTypedApi(trappist); + api.query.System.Account.watchValue(address, "finalized").forEach((balances) => callback(balances.data.free)); + }, + + healthcheck: async (client: PolkadotClient): Promise => { + const api = client.getTypedApi(trappist); + await api.query.System.Number.getValue(); + }, + + getNonce: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(trappist); + return await api.apis.AccountNonceApi.account_nonce(address); + }, +}; + +export default { data: networkData, api: networkApi }; diff --git a/src/papi/chains/versi.ts b/src/papi/chains/versi.ts new file mode 100644 index 00000000..6d1542d9 --- /dev/null +++ b/src/papi/chains/versi.ts @@ -0,0 +1,92 @@ +import { + MultiAddress, + versi, + XcmV3Junction, + XcmV3Junctions, + XcmV3MultiassetAssetId, + XcmV3MultiassetFungibility, + XcmV3WeightLimit, + XcmVersionedMultiAssets, + XcmVersionedMultiLocation, +} from "@polkadot-api/descriptors"; +import { PolkadotClient } from "polkadot-api"; + +import { parityWhitelist } from "src/papi/chains/common"; +import { NetworkApi, NetworkData } from "src/papi/chains/index"; +import { signer } from "src/papi/signer"; + +const networkData: NetworkData = { + balanceCap: 1000, + chains: [], + currency: "VRS", + decimals: 12, + dripAmount: "100", + explorer: null, + networkName: "Versi", + rpcEndpoint: "wss://versi-rpc-node-0.parity-versi.parity.io/", + matrixWhitelistPatterns: parityWhitelist, +}; + +const networkApi: NetworkApi = { + getTeleportTx: async ({ dripAmount, address, parachain_id, client, nonce }): Promise => { + const api = client.getTypedApi(versi); + + return await api.tx.XcmPallet.limited_teleport_assets({ + dest: XcmVersionedMultiLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1(XcmV3Junction.Parachain(parachain_id)), + }), + beneficiary: XcmVersionedMultiLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1( + XcmV3Junction.AccountId32({ + network: undefined, + id: address, + }), + ), + }), + assets: XcmVersionedMultiAssets.V3([ + { + fun: XcmV3MultiassetFungibility.Fungible(dripAmount), + id: XcmV3MultiassetAssetId.Concrete({ interior: XcmV3Junctions.Here(), parents: 0 }), + }, + ]), + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), + }).sign(signer, { nonce }); + }, + + getTransferTokensTx: async ({ dripAmount, address, client, nonce }): Promise => { + const api = client.getTypedApi(versi); + + return await api.tx.Balances.transfer_keep_alive({ + dest: MultiAddress.Id(address), + value: dripAmount, + }).sign(signer, { nonce }); + }, + + getBalance: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(versi); + + const balances = await api.query.System.Account.getValue(address, { at: "finalized" }); + + return balances.data.free; + }, + + watchBalance: (address: string, client: PolkadotClient, callback: (value: bigint) => void): void => { + const api = client.getTypedApi(versi); + api.query.System.Account.watchValue(address, "finalized").forEach((balances) => callback(balances.data.free)); + }, + + healthcheck: async (client: PolkadotClient): Promise => { + const api = client.getTypedApi(versi); + await api.query.System.Number.getValue(); + }, + + getNonce: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(versi); + return await api.apis.AccountNonceApi.account_nonce(address); + }, +}; + +export default { data: networkData, api: networkApi }; diff --git a/src/papi/chains/westend.ts b/src/papi/chains/westend.ts new file mode 100644 index 00000000..23d08263 --- /dev/null +++ b/src/papi/chains/westend.ts @@ -0,0 +1,96 @@ +import { + MultiAddress, + westend, + XcmV3Junction, + XcmV3Junctions, + XcmV3MultiassetAssetId, + XcmV3MultiassetFungibility, + XcmV3WeightLimit, + XcmVersionedAssets, + XcmVersionedLocation, +} from "@polkadot-api/descriptors"; +import { PolkadotClient } from "polkadot-api"; + +import { parityWhitelist } from "src/papi/chains/common"; +import { NetworkApi, NetworkData } from "src/papi/chains/index"; +import { signer } from "src/papi/signer"; + +const networkData: NetworkData = { + balanceCap: 100, + chains: [ + { name: "Westend Relay Chain", id: -1 }, + { name: "Westmint", id: 1000 }, + { name: "Collectives", id: 1001 }, + ], + currency: "WND", + decimals: 12, + dripAmount: "10", + explorer: "https://westend.subscan.io", + networkName: "Westend", + rpcEndpoint: "wss://westend-rpc.polkadot.io/", + matrixWhitelistPatterns: parityWhitelist, +}; + +export const networkApi: NetworkApi = { + getTeleportTx: async ({ dripAmount, address, parachain_id, client, nonce }): Promise => { + const api = client.getTypedApi(westend); + + return await api.tx.XcmPallet.limited_teleport_assets({ + dest: XcmVersionedLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1(XcmV3Junction.Parachain(parachain_id)), + }), + beneficiary: XcmVersionedLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1( + XcmV3Junction.AccountId32({ + network: undefined, + id: address, + }), + ), + }), + assets: XcmVersionedAssets.V3([ + { + fun: XcmV3MultiassetFungibility.Fungible(dripAmount), + id: XcmV3MultiassetAssetId.Concrete({ interior: XcmV3Junctions.Here(), parents: 0 }), + }, + ]), + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), + }).sign(signer, { nonce }); + }, + + getTransferTokensTx: async ({ dripAmount, address, client, nonce }): Promise => { + const api = client.getTypedApi(westend); + + return await api.tx.Balances.transfer_keep_alive({ + dest: MultiAddress.Id(address), + value: dripAmount, + }).sign(signer, { nonce }); + }, + + getBalance: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(westend); + + const balances = await api.query.System.Account.getValue(address, { at: "finalized" }); + + return balances.data.free; + }, + + watchBalance: (address: string, client: PolkadotClient, callback: (value: bigint) => void): void => { + const api = client.getTypedApi(westend); + api.query.System.Account.watchValue(address, "finalized").forEach((balances) => callback(balances.data.free)); + }, + + healthcheck: async (client: PolkadotClient): Promise => { + const api = client.getTypedApi(westend); + await api.query.System.Number.getValue(); + }, + + getNonce: async (address: string, client: PolkadotClient): Promise => { + const api = client.getTypedApi(westend); + return await api.apis.AccountNonceApi.account_nonce(address); + }, +}; + +export default { data: networkData, api: networkApi }; diff --git a/src/papi/client.ts b/src/papi/client.ts new file mode 100644 index 00000000..3786eea6 --- /dev/null +++ b/src/papi/client.ts @@ -0,0 +1,24 @@ +import fs from "fs"; +import { createClient, PolkadotClient } from "polkadot-api"; +import { withLogsRecorder } from "polkadot-api/logs-provider"; +import { JsonRpcProvider, WebSocketProvider } from "polkadot-api/ws-provider/node"; + +import { config } from "src/config"; + +import { getNetworkData } from "./chains"; + +const networkName = config.Get("NETWORK"); +const networkData = getNetworkData(networkName); + +let provider: JsonRpcProvider = WebSocketProvider(networkData.data.rpcEndpoint); + +if (process.env.PAPI_DEBUG) { + // Sync appends aren't ideal, but otherwise, we wouldn't be able to export client, + // without wrapping it in a promise. For debug, good enough. + fs.writeFileSync("papi-debug.log", ""); + provider = withLogsRecorder((msg) => { + fs.appendFileSync("papi-debug.log", `${msg}\n`); + }, provider); +} + +export const client: PolkadotClient = createClient(provider); diff --git a/src/papi/index.ts b/src/papi/index.ts new file mode 100644 index 00000000..72eb37c1 --- /dev/null +++ b/src/papi/index.ts @@ -0,0 +1,2 @@ +export { getNetworkData } from "./chains"; +export { client } from "./client"; diff --git a/src/papi/signer.ts b/src/papi/signer.ts new file mode 100644 index 00000000..59d50c10 --- /dev/null +++ b/src/papi/signer.ts @@ -0,0 +1,13 @@ +import { sr25519CreateDerive } from "@polkadot-labs/hdkd"; +import { entropyToMiniSecret, mnemonicToEntropy, parseSuri } from "@polkadot-labs/hdkd-helpers"; +import { getPolkadotSigner } from "polkadot-api/signer"; + +import { config } from "src/config"; + +const suri = parseSuri(config.Get("FAUCET_ACCOUNT_MNEMONIC")); + +const entropy = mnemonicToEntropy(suri.phrase); +const miniSecret = entropyToMiniSecret(entropy); +const hdkdKeyPair = sr25519CreateDerive(miniSecret)(suri.paths); + +export const signer = getPolkadotSigner(hdkdKeyPair.publicKey, "Sr25519", (input) => hdkdKeyPair.sign(input)); diff --git a/src/server/index.ts b/src/server/index.ts index ba16146a..cca51c98 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -1,5 +1,4 @@ import "dotenv/config"; -import { packageInfo } from "@polkadot/api"; import bodyParser from "body-parser"; import express from "express"; @@ -19,6 +18,5 @@ export const startServer = () => { app.listen(PORT, () => { logger.info(`Starting ${pkg.name} v${pkg.version}`); logger.info(`Faucet backend listening on port ${PORT}.`); - logger.info(`Using @polkadot/api ${packageInfo.version}`); }); }; diff --git a/src/server/routes/actions.ts b/src/server/routes/actions.ts index 27519385..3eac2ecc 100644 --- a/src/server/routes/actions.ts +++ b/src/server/routes/actions.ts @@ -1,12 +1,13 @@ import cors from "cors"; import express, { NextFunction, Request, Response } from "express"; -import { config } from "../../config"; -import { getDripRequestHandlerInstance } from "../../dripper/DripRequestHandler"; -import polkadotActions from "../../dripper/polkadot/PolkadotActions"; -import { convertAmountToBn } from "../../dripper/polkadot/utils"; -import { logger } from "../../logger"; -import { getNetworkData } from "../../networkData"; +import { config } from "src/config"; +import { getDripRequestHandlerInstance } from "src/dripper/DripRequestHandler"; +import polkadotActions from "src/dripper/polkadot/PolkadotActions"; +import { convertAmountToBn, formatAmount } from "src/dripper/polkadot/utils"; +import { logger } from "src/logger"; +import { getNetworkData } from "src/papi"; + import { BalanceResponse, BotRequestType, @@ -25,8 +26,8 @@ const dripRequestHandler = getDripRequestHandlerInstance(polkadotActions); router.get("/balance", (_, res) => { polkadotActions - .getBalance() - .then((balance) => res.send({ balance })) + .getFaucetBalance() + .then((balance) => res.send({ balance: formatAmount(balance) })) .catch((e) => { logger.error(e); res.send({ balance: "0" }); @@ -63,7 +64,7 @@ router.post>("/drip/web", external: true, address, parachain_id: parachain_id ?? "", - amount: convertAmountToBn(networkData.dripAmount), + amount: convertAmountToBn(networkData.data.dripAmount), recaptcha, }); diff --git a/src/server/routes/healthcheck.ts b/src/server/routes/healthcheck.ts index 98bf2e47..7e17f7d1 100644 --- a/src/server/routes/healthcheck.ts +++ b/src/server/routes/healthcheck.ts @@ -1,14 +1,17 @@ import express, { Request, Response } from "express"; -import { config } from "../../config"; -import polkadotApi from "../../dripper/polkadot/polkadotApi"; -import { logger } from "../../logger"; +import { config } from "src/config"; +import { logger } from "src/logger"; +import { client, getNetworkData } from "src/papi"; const router = express.Router(); +const networkName = config.Get("NETWORK"); +const networkData = getNetworkData(networkName); + const checkHealth = async (_req: Request, res: Response): Promise => { try { - await polkadotApi.isReady; + await networkData.api.healthcheck(client); res.status(200).send({ msg: "Faucet backend is healthy." }); } catch (e) { logger.error(`⭕ Api error: ${(e as Error).message}`); @@ -17,7 +20,7 @@ const checkHealth = async (_req: Request, res: Response): Promise => { }; export type APIVersionResponse = { version: string }; -const version = async (req: Request, res: Response) => { +const version = async (_req: Request, res: Response) => { try { const appDeployedRef = config.Get("DEPLOYED_REF"); res.status(200).send({ version: appDeployedRef } as APIVersionResponse); diff --git a/src/server/routes/metrics.ts b/src/server/routes/metrics.ts index 30733713..5e2d186a 100644 --- a/src/server/routes/metrics.ts +++ b/src/server/routes/metrics.ts @@ -8,7 +8,7 @@ import { gauges } from "../../metrics"; const router = express.Router(); router.get("/metrics", async (_, res) => { - const balanceBigint = actions.getFaucetBalance(); + const balanceBigint = await actions.getFaucetBalance(); if (balanceBigint !== undefined) { gauges.balance.set(convertBnAmountToNumber(balanceBigint)); } diff --git a/src/start.ts b/src/start.ts index 17d0a30d..3d6a0e18 100644 --- a/src/start.ts +++ b/src/start.ts @@ -1,12 +1,8 @@ import "reflect-metadata"; -import { runtimeRestarter } from "@eng-automation/js"; -import { logger } from "src/logger"; - -import { startBot } from "./bot"; +import { startBot } from "./bot/index"; import { AppDataSource } from "./db/dataSource"; import polkadotActions from "./dripper/polkadot/PolkadotActions"; -import polkadotApi from "./dripper/polkadot/polkadotApi"; import { startServer } from "./server"; (async () => { @@ -15,17 +11,6 @@ import { startServer } from "./server"; // Thus, listening to port on the server side can be treated as "ready" signal. await startBot(); await polkadotActions.isReady; - void runtimeRestarter({ - metadata: { - getMetadataVersion: async () => (await polkadotApi.rpc.state.getMetadata()).version.toString(), - onMetadataChange: () => process.exit(0), - }, - runtime: { - getRuntimeVersionHash: async () => (await polkadotApi.rpc.state.getRuntimeVersion()).hash.toString(), - onRuntimeChange: () => process.exit(0), - }, - log: logger.info, - }); startServer(); })().catch((e) => { console.error("Start failed:", e); diff --git a/src/test/setupE2E.ts b/src/test/setupE2E.ts index 4bc25910..f6ad344a 100644 --- a/src/test/setupE2E.ts +++ b/src/test/setupE2E.ts @@ -13,6 +13,7 @@ import { DataSource } from "typeorm"; import { Drip } from "src/db/entity/Drip"; import { migrations } from "src/db/migration/migrations"; import { PostgresConnectionOptions } from "typeorm/driver/postgres/PostgresConnectionOptions"; +import { DEV_PHRASE } from "@polkadot-labs/hdkd-helpers"; export type E2ESetup = { matrixContainer: StartedTestContainer; @@ -204,31 +205,48 @@ async function setupAppContainer(params: { matrixPort: number, dbPort: number }): Promise { - const appContainer = new GenericContainer("polkadot-testnet-faucet") + + const env: Record = { + SMF_CONFIG_NETWORK: "e2e", + + SMF_CONFIG_MATRIX_ACCESS_TOKEN: params.botAccessToken, + SMF_CONFIG_MATRIX_BOT_USER_ID: "@bot:parity.io", + SMF_CONFIG_FAUCET_IGNORE_LIST: "", + SMF_CONFIG_MATRIX_SERVER: `http://host.docker.internal:${params.matrixPort}`, + SMF_CONFIG_DEPLOYED_REF: "local", + SMF_CONFIG_FAUCET_ACCOUNT_MNEMONIC: `${DEV_PHRASE}//Alice`, + SMF_CONFIG_PORT: "5555", + + SMF_CONFIG_DB_HOST: "host.docker.internal", + SMF_CONFIG_DB_PORT: String(params.dbPort), + SMF_CONFIG_DB_USERNAME: "postgres", + SMF_CONFIG_DB_PASSWORD: "postgres", + SMF_CONFIG_DB_DATABASE_NAME: "faucet", + // Public testing secret, will accept all tokens. + SMF_CONFIG_RECAPTCHA_SECRET: "6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe" + }; + + if (process.env.PAPI_DEBUG) { + env.PAPI_DEBUG = process.env.PAPI_DEBUG; + //console.log("PIDORASKA") + } + + let appContainer = new GenericContainer("polkadot-testnet-faucet") .withExposedPorts(5555) - .withEnvironment({ - SMF_CONFIG_NETWORK: "e2e", - - SMF_CONFIG_MATRIX_ACCESS_TOKEN: params.botAccessToken, - SMF_CONFIG_MATRIX_BOT_USER_ID: "@bot:parity.io", - SMF_CONFIG_FAUCET_IGNORE_LIST: "", - SMF_CONFIG_MATRIX_SERVER: `http://host.docker.internal:${params.matrixPort}`, - SMF_CONFIG_DEPLOYED_REF: "local", - SMF_CONFIG_FAUCET_ACCOUNT_MNEMONIC: "//Alice", - SMF_CONFIG_PORT: "5555", - - SMF_CONFIG_DB_HOST: "host.docker.internal", - SMF_CONFIG_DB_PORT: String(params.dbPort), - SMF_CONFIG_DB_USERNAME: "postgres", - SMF_CONFIG_DB_PASSWORD: "postgres", - SMF_CONFIG_DB_DATABASE_NAME: "faucet", - - // Public testing secret, will accept all tokens. - SMF_CONFIG_RECAPTCHA_SECRET: "6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe" - }) + .withEnvironment(env) .withWaitStrategy(Wait.forListeningPorts()) .withExtraHosts([{ host: "host.docker.internal", ipAddress: "host-gateway" }]) .withLogConsumer(logConsumer("faucet-test-app")); + + if (process.env.PAPI_DEBUG) { + env.PAPI_DEBUG = process.env.PAPI_DEBUG; + await fs.writeFile(`${process.cwd()}/e2e/containter_logs/papi-debug.log`, ""); + appContainer = appContainer.withBindMounts([{ + source: `${process.cwd()}/e2e/containter_logs/papi-debug.log`, + target: "/faucet/papi-debug.log" + }]); + } + return await appContainer.start(); } diff --git a/src/utils.ts b/src/utils.ts index f50f8274..49297d87 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,9 +1,9 @@ import { config } from "src/config"; -import { getNetworkData } from "src/networkData"; +import { getNetworkData } from "src/papi"; export function isAccountPrivileged(sender: string): boolean { const networkName = config.Get("NETWORK"); const networkData = getNetworkData(networkName); - return networkData.matrixWhitelistPatterns.some((pattern) => pattern.test(sender)); + return networkData.data.matrixWhitelistPatterns.some((pattern) => pattern.test(sender)); } diff --git a/tsconfig.json b/tsconfig.json index d13e07a8..fc62d1fb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,9 +25,9 @@ "strict": true, // This doesn't work with TypeORM declarations "strictPropertyInitialization": false, - "target": "es2021", + "target": "esnext", "typeRoots": ["./node_modules/@types", "./src/types"] }, "include": ["src/**/*"], - "exclude": ["node_modules/**/*"] + "exclude": ["node_modules/**/*", "src/codegen", "src/codegen/rococo.ts"] } diff --git a/yarn.lock b/yarn.lock index 1d72a4db..26535fe7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,14 +29,6 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/code-frame@^7.21.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" @@ -345,15 +337,6 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" @@ -606,6 +589,121 @@ lodash "^4.17.21" node-fetch "^2.6.7" +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -674,6 +772,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -968,17 +1078,17 @@ resolved "https://registry.yarnpkg.com/@matrix-org/matrix-sdk-crypto-js/-/matrix-sdk-crypto-js-0.1.0-alpha.11.tgz#24d705318c3159ef7dbe43bca464ac2bdd11e45d" integrity sha512-HD3rskPkqrUUSaKzGLg97k/bN+OZrkcX7ODB/pNBs/jqq+/A0wDKqsszJotzFwsQcDPpWn78BmMyvBo4tLxKjw== -"@noble/curves@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== +"@noble/curves@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" + integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== dependencies: - "@noble/hashes" "1.3.2" + "@noble/hashes" "1.4.0" -"@noble/hashes@1.3.2", "@noble/hashes@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== +"@noble/hashes@1.4.0", "@noble/hashes@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== "@noble/hashes@^1.3.1": version "1.3.3" @@ -1006,6 +1116,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pkgr/utils@^2.3.1": version "2.4.2" resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" @@ -1018,524 +1133,301 @@ picocolors "^1.0.0" tslib "^2.6.0" -"@polkadot-api/cli@^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/cli/-/cli-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#c70e171e4c5e4eaaad755ae13a585e1e52bf8ac5" - integrity sha512-2C1anN4lAM1ex71DXAcb8TyJpByq3nBLg4mZmLS3n1yRGX1bseM10689jujxyfnytO5T8sNrnsEdqucsvX6xlA== +"@polkadot-api/cli@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/cli/-/cli-0.4.0.tgz#44284f13219ec0253406eee749e7a6f455f125e7" + integrity sha512-AnAP+yPrXI4xZ2oYyijc1kFAQBhIDsoZ9NSvLqXp0zr7xbhufxnVpWaTI947yX6/aSTR2CHNZ0DCt03sWtz00w== dependencies: "@commander-js/extra-typings" "^12.0.1" - "@polkadot-api/client" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/codegen" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/json-rpc-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/json-rpc-provider-proxy" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/metadata-builders" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/sc-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-bindings" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-client" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/utils" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/ws-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@substrate/connect" "^0.7.32" - "@types/node" "^20.9.0" - commander "^11.0.0" + "@polkadot-api/codegen" "0.5.0" + "@polkadot-api/json-rpc-provider" "0.0.1" + "@polkadot-api/json-rpc-provider-proxy" "0.1.0" + "@polkadot-api/known-chains" "0.1.3" + "@polkadot-api/metadata-builders" "0.3.0" + "@polkadot-api/observable-client" "0.3.0" + "@polkadot-api/sm-provider" "0.1.0" + "@polkadot-api/smoldot" "0.2.3" + "@polkadot-api/substrate-bindings" "0.5.0" + "@polkadot-api/substrate-client" "0.1.2" + "@polkadot-api/utils" "0.1.0" + "@polkadot-api/ws-provider" "0.1.0" + "@types/node" "^20.12.11" + commander "^12.0.0" fs.promises.exists "^1.1.4" - ora "^7.0.1" - read-pkg "^8.1.0" + ora "^8.0.1" + read-pkg "^9.0.1" rxjs "^7.8.1" - scale-ts "^1.4.2" + scale-ts "^1.6.0" tsc-prog "^2.3.0" - typescript "^5.3.2" - write-pkg "^6.0.0" - ws "^8.14.2" - -"@polkadot-api/client@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0", "@polkadot-api/client@^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/client/-/client-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#c6d152b3006a3201e1d45f405453c8258f0505c1" - integrity sha512-dm6O4++7fIRd5VT3vvziqt6jE9b9cmj7qHdVS72qlOgUbqVTLkVLTQC14ZsO8hNQJjpMBk2izZMTRppgYxZHuw== - dependencies: - "@polkadot-api/metadata-builders" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-bindings" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-client" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/utils" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - -"@polkadot-api/client@0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0": - version "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/client/-/client-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz#cf1030c4fa80363933f151d0dcfba97d29ef181d" - integrity sha512-WDSMp8zKNdp6/MhbrkvS1QFn7G9sOrjv8CDHLg6SrH3MlHWAysEWRgAz6U0I9wKklmXR1tMZR+zJ3NuiTAE10A== - dependencies: - "@polkadot-api/metadata-builders" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@polkadot-api/substrate-bindings" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@polkadot-api/substrate-client" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@polkadot-api/utils" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - -"@polkadot-api/codegen@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/codegen/-/codegen-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#09dd3ce11b4fabd8cb526f117b421f3569882b33" - integrity sha512-8rc6v+cAuUvF9MZdq0tarQ53AOaavRuzo9e2sLHNiOiUrwFg62IKxjjewvcQJqMGH9h04NnCgRvYZ0W3512P6Q== - dependencies: - "@polkadot-api/metadata-builders" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-bindings" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/utils" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - -"@polkadot-api/json-rpc-provider-proxy@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#4c941697cf50206f11d1bf6b23c67a70f8e97c92" - integrity sha512-VGgM2Ow+VtMZX4UKnFW/QyRSlYYEbu2qUqkdPXw0dKk2jSKnUOCgoAfPPQKsWSrQz6DF/ah98j833diaMJdJTg== - -"@polkadot-api/json-rpc-provider-proxy@0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0": - version "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz#f12f53b25229efa6d0e393e205cb61a0110b8f25" - integrity sha512-hzupcyUtObK6W1dyyeEp4BJBHRiGecB6t6YJQPk78UY1PnLsqFiboNh5doAywf+DoGBT1YXlxbYBAE3Wg43c9w== - -"@polkadot-api/json-rpc-provider@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#c1098dc145e34c3c19e069d16f64432ae239e93d" - integrity sha512-mro9kJdwcmRnbcHuD5Yz/8+xfwg4QUaJ6z+dfqQe13ck5kqyfh7opVryPUcjSkn97BKoEsengD38JcZ8lTTj5Q== - -"@polkadot-api/json-rpc-provider@0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0": - version "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz#c27d6139d1641eddf3c566966f447688c7f87909" - integrity sha512-772gcl5MXdmIvXuhJwVqM/APp+6f6ocRGfzcYoFfdghJ4A68l9ir1SDny691vcJXE8CQ7NAcz5Gl3t1Gz1MIqg== - -"@polkadot-api/metadata-builders@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#29db17da46da985efb85159954c27b416f24e89b" - integrity sha512-yA6zxPR3/SElJOTtlz5pTgam/kBaxyBxRWIafH+xkW+mLFFD0+TvI6gtX/Xq4nqXEVkrqLgeYaE9Slqw52AXWg== - dependencies: - "@polkadot-api/substrate-bindings" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/utils" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - -"@polkadot-api/metadata-builders@0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0": - version "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz#00fd32d320fdd9cbf69ca37d379d53a8df94e78a" - integrity sha512-T4t2O5Nhr8yrfJtKF5+JaxGO2TY7uFxQK0N/gDp7rDglvluiWiAl5nRvXhFzI03JOAtJ7Ey6O+ezEL1YwCjbwA== - dependencies: - "@polkadot-api/substrate-bindings" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@polkadot-api/utils" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - -"@polkadot-api/node-polkadot-provider@^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/node-polkadot-provider/-/node-polkadot-provider-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#82bc6f609579cb5003078b1e3b2ca251fc3ba92f" - integrity sha512-7Ruft1ncynVANLVNIMy+RsulABRpdDD+3IB2ww+e2WBCH/HOxM8mC3MSKv4qx+evf9HOzClskHEzAMGdNLU/fQ== - dependencies: - "@noble/hashes" "^1.3.1" - "@polkadot-api/client" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/json-rpc-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/metadata-builders" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/sc-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-bindings" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-client" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/tx-helper" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/utils" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@substrate/connect" "^0.7.32" - rxjs "^7.8.1" + tsup "^8.0.2" + typescript "^5.4.5" + write-package "^7.0.1" + ws "^8.17.0" -"@polkadot-api/sc-provider@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/sc-provider/-/sc-provider-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#5ce84f38a25dec13812de61403533d3e1f2d5c8c" - integrity sha512-s3crFRR+X7TJXOtGW6WuaFdydiLJwxVfcjyK1hlMiGWShfYshm7M/ZdcnhKI/oDoDj6qkK3RTzujx36re8PDjw== +"@polkadot-api/codegen@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/codegen/-/codegen-0.5.0.tgz#791c091aed8b2e9aa49add7570c0dc237ff2f524" + integrity sha512-saG4doKcN7Hr9KwiIMrpC+n+VBHknEOItBZkx0Qc+d5O/NAfIumIRJiHFHfH59N2JIvQlCR5mbuLMH7HcYuf6w== dependencies: - "@polkadot-api/json-rpc-provider-proxy" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@substrate/connect" "^0.8.4" + "@polkadot-api/metadata-builders" "0.3.0" + "@polkadot-api/substrate-bindings" "0.5.0" + "@polkadot-api/utils" "0.1.0" -"@polkadot-api/substrate-bindings@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#dc5e67b64bf686e1cd8a5d2ed39a7087e5462c8e" - integrity sha512-m2q03YWdaZ/MRr1wmJhjEZeZJAOzCo4RRW3g2M/bvf3SiKMgm+MlcI9UZos1Z02DRJ95At2P9geQnglTZkYn9w== - dependencies: - "@noble/hashes" "^1.3.1" - "@polkadot-api/utils" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@scure/base" "^1.1.1" - scale-ts "^1.6.0" +"@polkadot-api/json-rpc-provider-proxy@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz#bb5c943642cdf0ec7bc48c0a2647558b9fcd7bdb" + integrity sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg== -"@polkadot-api/substrate-bindings@0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0": - version "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz#28ec3bfcc993a07ed56d8bd6861ce6f0112b1f7c" - integrity sha512-oAOAwYG7iW2BUgLMzCo//pq+8X/zm5BxDUgJFtG0vPb3leUMd5kKnJcn7hWv9H4vLhyicAVoOPJrEPd/Kzocag== - dependencies: - "@noble/hashes" "^1.3.1" - "@polkadot-api/utils" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@scure/base" "^1.1.1" - scale-ts "^1.4.3" +"@polkadot-api/json-rpc-provider-proxy@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.1.0.tgz#6e191f28e7d0fbbe8b540fc51d12a0adaeba297e" + integrity sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg== -"@polkadot-api/substrate-client@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#c3b2730d2377552eedc19db4b60d9022b204e199" - integrity sha512-0rHiNkndFpeZb/S2q6wcTvKJpgkL07+KulGQWaQUYH96BOlu6Vp6kFIEZFBhNxfDdzVVpVdzrkO0nuB9PFbxjw== +"@polkadot-api/json-rpc-provider@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz#333645d40ccd9bccfd1f32503f17e4e63e76e297" + integrity sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA== -"@polkadot-api/substrate-client@0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0": - version "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz#a341f49a8df48f06f87aa615ea1ba5f2de9e0c66" - integrity sha512-rHLhKLJxv9CSplu+tXOgpxBwYDXCh32xwbJcZqxMWlXkjoNI2OB9hulX/3GJ0NE/ngMh3DV1hrqNLmyc/8PU+A== +"@polkadot-api/known-chains@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@polkadot-api/known-chains/-/known-chains-0.1.3.tgz#f956b951d5788b9926abdb08e2d20bab3582dfa8" + integrity sha512-vLbv3iAjDqZiqlJmAPRCQc8c2pErX2z7awkp27Eb4l7V9HPhMPAZiDTNRpMkynNJy5JOl7waCi182nYLZZ/+aA== -"@polkadot-api/tx-helper@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/tx-helper/-/tx-helper-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#b164853342fc0ac2d6155e81d0eb622453c4a103" - integrity sha512-Tj/ZIJC/EQBV+OX8FyYYCUIWOVDTVlm33ir7URpZGbBkijCZUiKtEKevDmntDRTrMmaJsAXD9aT0UwXlFl6k6g== +"@polkadot-api/logs-provider@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@polkadot-api/logs-provider/-/logs-provider-0.0.2.tgz#02164cce2a033d37f89f03307ba781b59a8d6dc9" + integrity sha512-TQNoxjOBsavPcpwz7wQXIBiHYOg747jxlm3+NVETJf8B03yc4aEe08+mooLR1kMPJlz62BoRhV2Q83dh4YzTYQ== dependencies: - "@noble/hashes" "^1.3.1" - "@polkadot-api/client" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/json-rpc-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/metadata-builders" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/sc-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-bindings" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/substrate-client" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/utils" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - rxjs "^7.8.1" + "@polkadot-api/json-rpc-provider" "0.0.1" + "@polkadot-api/json-rpc-provider-proxy" "0.0.1" -"@polkadot-api/utils@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#fb1b27f3430470a1026b187a53a18d624cb389f6" - integrity sha512-yj/4sNG2iOS6KME7gSQ9RF7rYuODPvxxNAcoZ8P0XYdcLaWpZZHDyGXwIZN5zoP2wnNngQNP15cV6ibu/Kkvkg== - -"@polkadot-api/utils@0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0": - version "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz#6130f32e0a3e08f7733d7a9f2caf3133fe88012c" - integrity sha512-H7hOfilvx65wYxMjAI130rK34GcAPzMEuoP5W693N0PsXYc1QeoEHSza5NSgoN1U4jGNzDBoxu0al2WGKo1B5g== - -"@polkadot-api/ws-provider@0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0", "@polkadot-api/ws-provider@^0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0": - version "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - resolved "https://registry.yarnpkg.com/@polkadot-api/ws-provider/-/ws-provider-0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0.tgz#af3c24b85513d8d224d29558187417610fcd7207" - integrity sha512-G60r4uHKD/lwODrK02hKZ7Z6a77kOq/kIt4l7U6IRF0VbSqE+PZ6V4ysntvKumilknKq8jSQ1symNZQ9FDsa7g== +"@polkadot-api/metadata-builders@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz#a76b48febef9ea72be8273d889e2677101045a05" + integrity sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA== dependencies: - "@polkadot-api/json-rpc-provider" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - "@polkadot-api/json-rpc-provider-proxy" "0.0.1-0027dd301d1d5a078e9c770a18e27aed76a66f50.1.0" - ws "^8.14.2" + "@polkadot-api/substrate-bindings" "0.0.1" + "@polkadot-api/utils" "0.0.1" -"@polkadot/api-augment@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.10.1.tgz#d3d296c923b0ff915c8d4f163e9b3bad70b89b9b" - integrity sha512-J0r1DT1M5y75iO1iwcpUBokKD3q6b22kWlPfiHEDNFydVw5vm7OTRBk9Njjl8rOnlSzcW/Ya8qWfV/wkrqHxUQ== - dependencies: - "@polkadot/api-base" "10.10.1" - "@polkadot/rpc-augment" "10.10.1" - "@polkadot/types" "10.10.1" - "@polkadot/types-augment" "10.10.1" - "@polkadot/types-codec" "10.10.1" - "@polkadot/util" "^12.5.1" - tslib "^2.6.2" - -"@polkadot/api-base@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.10.1.tgz#2d02f96960cbdd9d0ab61fe016587585902d1ee8" - integrity sha512-joH2Ywxnn+AStkw+JWAdF3i3WJy4NcBYp0SWJM/WqGafWR/FuHnati2pcj/MHzkHT8JkBippmSSJFvsqRhlwcQ== - dependencies: - "@polkadot/rpc-core" "10.10.1" - "@polkadot/types" "10.10.1" - "@polkadot/util" "^12.5.1" - rxjs "^7.8.1" - tslib "^2.6.2" - -"@polkadot/api-derive@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.10.1.tgz#555d755c393f57c8855b9fc28062148a3723e333" - integrity sha512-Q9Ibs4eRPqdV8qnRzFPD3dlWNbLHxRqMqNTNPmNQwKPo5m6fcQbZ0UZy3yJ+PI9S4AQHGhsWtfoi5qW8006GHQ== - dependencies: - "@polkadot/api" "10.10.1" - "@polkadot/api-augment" "10.10.1" - "@polkadot/api-base" "10.10.1" - "@polkadot/rpc-core" "10.10.1" - "@polkadot/types" "10.10.1" - "@polkadot/types-codec" "10.10.1" - "@polkadot/util" "^12.5.1" - "@polkadot/util-crypto" "^12.5.1" - rxjs "^7.8.1" - tslib "^2.6.2" - -"@polkadot/api@10.10.1", "@polkadot/api@^10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.10.1.tgz#06fcbdcc8e17d2312d4b4093733d506f15ff62ad" - integrity sha512-YHVkmNvjGF4Eg3thAbVhj9UX3SXx+Yxk6yVuzsEcckEudIRHzL2ikIWGCfUprfzSeFNpUCKdJIi1tsxVHtA7Tg== - dependencies: - "@polkadot/api-augment" "10.10.1" - "@polkadot/api-base" "10.10.1" - "@polkadot/api-derive" "10.10.1" - "@polkadot/keyring" "^12.5.1" - "@polkadot/rpc-augment" "10.10.1" - "@polkadot/rpc-core" "10.10.1" - "@polkadot/rpc-provider" "10.10.1" - "@polkadot/types" "10.10.1" - "@polkadot/types-augment" "10.10.1" - "@polkadot/types-codec" "10.10.1" - "@polkadot/types-create" "10.10.1" - "@polkadot/types-known" "10.10.1" - "@polkadot/util" "^12.5.1" - "@polkadot/util-crypto" "^12.5.1" - eventemitter3 "^5.0.1" - rxjs "^7.8.1" - tslib "^2.6.2" - -"@polkadot/keyring@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.5.1.tgz#2f38504aa915f54bbd265f3793a6be55010eb1f5" - integrity sha512-u6b+Q7wI6WY/vwmJS9uUHy/5hKZ226nTlVNmxjkj9GvrRsQvUSwS94163yHPJwiZJiIv5xK5m0rwCMyoYu+wjA== - dependencies: - "@polkadot/util" "12.5.1" - "@polkadot/util-crypto" "12.5.1" - tslib "^2.6.2" - -"@polkadot/networks@12.5.1", "@polkadot/networks@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.5.1.tgz#685c69d24d78a64f4e750609af22678d57fe1192" - integrity sha512-PP6UUdzz6iHHZH4q96cUEhTcydHj16+61sqeaYEJSF6Q9iY+5WVWQ26+rdjmre/EBdrMQkSS/CKy73mO5z/JkQ== - dependencies: - "@polkadot/util" "12.5.1" - "@substrate/ss58-registry" "^1.43.0" - tslib "^2.6.2" - -"@polkadot/rpc-augment@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.10.1.tgz#c25ec45687631ea649e2d5c7f7f9b0813ac4ca9f" - integrity sha512-PcvsX8DNV8BNDXXnY2K8F4mE7cWz7fKg8ykXNZTN8XUN6MrI4k/ohv7itYic7X5LaP25ZmQt5UiGyjKDGIELow== - dependencies: - "@polkadot/rpc-core" "10.10.1" - "@polkadot/types" "10.10.1" - "@polkadot/types-codec" "10.10.1" - "@polkadot/util" "^12.5.1" - tslib "^2.6.2" - -"@polkadot/rpc-core@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.10.1.tgz#5837e9ce635d5804cad897c6336771b61f3ef61a" - integrity sha512-awfFfJYsVF6W4DrqTj5RP00SSDRNB770FIoe1QE1Op4NcSrfeLpwh54HUJS716f4l5mOSYuvMp+zCbKzt8zKow== - dependencies: - "@polkadot/rpc-augment" "10.10.1" - "@polkadot/rpc-provider" "10.10.1" - "@polkadot/types" "10.10.1" - "@polkadot/util" "^12.5.1" - rxjs "^7.8.1" - tslib "^2.6.2" - -"@polkadot/rpc-provider@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.10.1.tgz#387b1a915fa7b40d5f48a408c7b0ee5980f7ce07" - integrity sha512-VMDWoJgx6/mPHAOT66Sq+Jf2lJABfV/ZUIXtT2k8HjOndbm6oKrFqGEOSSLvB2q4olDee3FkFFxkyW1s6k4JaQ== - dependencies: - "@polkadot/keyring" "^12.5.1" - "@polkadot/types" "10.10.1" - "@polkadot/types-support" "10.10.1" - "@polkadot/util" "^12.5.1" - "@polkadot/util-crypto" "^12.5.1" - "@polkadot/x-fetch" "^12.5.1" - "@polkadot/x-global" "^12.5.1" - "@polkadot/x-ws" "^12.5.1" - eventemitter3 "^5.0.1" - mock-socket "^9.3.1" - nock "^13.3.4" - tslib "^2.6.2" - optionalDependencies: - "@substrate/connect" "0.7.33" - -"@polkadot/types-augment@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.10.1.tgz#178ce0b22681109396fc681a027f35da7d757cef" - integrity sha512-XRHE75IocXfFE6EADYov3pqXCyBk5SWbiHoZ0+4WYWP9SwMuzsBaAy84NlhLBlkG3+ehIqi0HpAd/qrljJGZbg== - dependencies: - "@polkadot/types" "10.10.1" - "@polkadot/types-codec" "10.10.1" - "@polkadot/util" "^12.5.1" - tslib "^2.6.2" - -"@polkadot/types-codec@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.10.1.tgz#61d28a461493bfb72606b4399078460969a049c8" - integrity sha512-ETPG0wzWzt/bDKRQmYbO7CLe/0lUt8VrG6/bECdv+Kye+8Qedba2LZyTWm/9f2ngms8TZ82yI8mPv/mozdtfnw== - dependencies: - "@polkadot/util" "^12.5.1" - "@polkadot/x-bigint" "^12.5.1" - tslib "^2.6.2" - -"@polkadot/types-create@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.10.1.tgz#76f1729ef3f4699d99e708801312e43825368827" - integrity sha512-7OiLzd+Ter5zrpjP7fDwA1m89kd38VvMVixfOSv8x7ld2pDT+yyyKl14TCwRSWrKWCMtIb6M3iasPhq5cUa7cw== - dependencies: - "@polkadot/types-codec" "10.10.1" - "@polkadot/util" "^12.5.1" - tslib "^2.6.2" - -"@polkadot/types-known@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.10.1.tgz#ccaa1364ea1073a95c5cb0d73258e154de5103d2" - integrity sha512-yRa1lbDRqg3V/zoa0vSwdGOiYTIWktILW8OfkaLDExTu0GZBSbVHZlLAta52XVpA9Zww7mrUUC9+iernOwk//w== - dependencies: - "@polkadot/networks" "^12.5.1" - "@polkadot/types" "10.10.1" - "@polkadot/types-codec" "10.10.1" - "@polkadot/types-create" "10.10.1" - "@polkadot/util" "^12.5.1" - tslib "^2.6.2" - -"@polkadot/types-support@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.10.1.tgz#a22d319d4ba795e386000ddf6fdc8c55f9d81a9c" - integrity sha512-Cd2mwk9RG6LlX8X3H0bRY7wCTbZPqU3z38CMFhvNkFDAyjqKjtn8hpS4n8mMrZK2EwCs/MjQH1wb7rtFkaWmJw== - dependencies: - "@polkadot/util" "^12.5.1" - tslib "^2.6.2" - -"@polkadot/types@10.10.1": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.10.1.tgz#4a55909ff35b0b568c0b1539ae923a259b0dba6a" - integrity sha512-Ben62P1tjYEhKag34GBGcLX6NqcFR1VD5nNbWaxgr+t36Jl/tlHs6P9DlbFqQP7Tt9FmGrAYY0m3oTkhjG1NzA== - dependencies: - "@polkadot/keyring" "^12.5.1" - "@polkadot/types-augment" "10.10.1" - "@polkadot/types-codec" "10.10.1" - "@polkadot/types-create" "10.10.1" - "@polkadot/util" "^12.5.1" - "@polkadot/util-crypto" "^12.5.1" - rxjs "^7.8.1" - tslib "^2.6.2" - -"@polkadot/util-crypto@12.5.1", "@polkadot/util-crypto@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.5.1.tgz#1753b23abfb9d72db950399ef65b0cbe5bef9f2f" - integrity sha512-Y8ORbMcsM/VOqSG3DgqutRGQ8XXK+X9M3C8oOEI2Tji65ZsXbh9Yh+ryPLM0oBp/9vqOXjkLgZJbbVuQceOw0A== - dependencies: - "@noble/curves" "^1.2.0" - "@noble/hashes" "^1.3.2" - "@polkadot/networks" "12.5.1" - "@polkadot/util" "12.5.1" - "@polkadot/wasm-crypto" "^7.2.2" - "@polkadot/wasm-util" "^7.2.2" - "@polkadot/x-bigint" "12.5.1" - "@polkadot/x-randomvalues" "12.5.1" - "@scure/base" "^1.1.3" - tslib "^2.6.2" - -"@polkadot/util@12.5.1", "@polkadot/util@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.5.1.tgz#f4e7415600b013d3b69527aa88904acf085be3f5" - integrity sha512-fDBZL7D4/baMG09Qowseo884m3QBzErGkRWNBId1UjWR99kyex+cIY9fOSzmuQxo6nLdJlLHw1Nz2caN3+Bq0A== - dependencies: - "@polkadot/x-bigint" "12.5.1" - "@polkadot/x-global" "12.5.1" - "@polkadot/x-textdecoder" "12.5.1" - "@polkadot/x-textencoder" "12.5.1" - "@types/bn.js" "^5.1.1" - bn.js "^5.2.1" - tslib "^2.6.2" - -"@polkadot/wasm-bridge@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.2.2.tgz#957b82b17927fe080729e8930b5b5c554f77b8df" - integrity sha512-CgNENd65DVYtackOVXXRA0D1RPoCv5+77IdBCf7kNqu6LeAnR4nfTI6qjaApUdN1xRweUsQjSH7tu7VjkMOA0A== +"@polkadot-api/metadata-builders@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.3.0.tgz#d35fd6f6d564bdf3d1bf2404951a2c5070fd3456" + integrity sha512-WUxKGy2hzClESEcQWnnDp4IzlYiEXmYgSaa08zW1J3uX7rmLADDeKkfRH9TNRLAMEr9TaFt71W+OzHJtdwR6bw== dependencies: - "@polkadot/wasm-util" "7.2.2" - tslib "^2.6.1" + "@polkadot-api/substrate-bindings" "0.4.0" + "@polkadot-api/utils" "0.0.1" -"@polkadot/wasm-crypto-asmjs@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.2.2.tgz#25243a4d5d8d997761141b616623cacff4329f13" - integrity sha512-wKg+cpsWQCTSVhjlHuNeB/184rxKqY3vaklacbLOMbUXieIfuDBav5PJdzS3yeiVE60TpYaHW4iX/5OYHS82gg== +"@polkadot-api/observable-client@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/observable-client/-/observable-client-0.3.0.tgz#2f974646278fa30e84a833393178c186c9bf3432" + integrity sha512-l29E9MfINzPh8SGf6vT5ZoQuW2LEvn/so5NV7SVyqnm8pVOvqyWLGdGLYMPAi03pVWamG30v6EXH2GvqIu65+Q== dependencies: - tslib "^2.6.1" + "@polkadot-api/metadata-builders" "0.3.0" + "@polkadot-api/substrate-bindings" "0.5.0" + "@polkadot-api/substrate-client" "0.1.2" + "@polkadot-api/utils" "0.1.0" -"@polkadot/wasm-crypto-init@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.2.2.tgz#ffd105b87fc1b679c06c85c0848183c27bc539e3" - integrity sha512-vD4iPIp9x+SssUIWUenxWLPw4BVIwhXHNMpsV81egK990tvpyIxL205/EF5QRb1mKn8WfWcNFm5tYwwh9NdnnA== +"@polkadot-api/pjs-signer@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@polkadot-api/pjs-signer/-/pjs-signer-0.1.4.tgz#ae2ecbb0c5ccf7a71287c9b3385c09f811a6bd5b" + integrity sha512-5Kow/TLevSx8vNn94m32EUq0QkIACGdqOywvN1bofHu/jzyQa9N7Oq1sa32urn3p7D8npFC4wLgY7fr6fmjk3Q== dependencies: - "@polkadot/wasm-bridge" "7.2.2" - "@polkadot/wasm-crypto-asmjs" "7.2.2" - "@polkadot/wasm-crypto-wasm" "7.2.2" - "@polkadot/wasm-util" "7.2.2" - tslib "^2.6.1" + "@polkadot-api/metadata-builders" "0.3.0" + "@polkadot-api/polkadot-signer" "0.0.1" + "@polkadot-api/substrate-bindings" "0.5.0" + "@polkadot-api/utils" "0.1.0" -"@polkadot/wasm-crypto-wasm@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.2.2.tgz#9e49a1565bda2bc830708693b491b37ad8a2144d" - integrity sha512-3efoIB6jA3Hhv6k0YIBwCtlC8gCSWCk+R296yIXRLLr3cGN415KM/PO/d1JIXYI64lbrRzWRmZRhllw3jf6Atg== +"@polkadot-api/polkadot-signer@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/polkadot-signer/-/polkadot-signer-0.0.1.tgz#54ea110a139fcc551f34d144f9fdf742806dacd5" + integrity sha512-A1axSuurYG3FtM9xY6v/rM4VXoDnk8PqW+Q1+innUcR7kmAIMWZw21uUxF0Iwzu29hKHCHucSF9YJZ1yAP7JNw== dependencies: - "@polkadot/wasm-util" "7.2.2" - tslib "^2.6.1" + "@polkadot-api/metadata-builders" "0.0.1" + "@polkadot-api/substrate-bindings" "0.0.1" + "@polkadot-api/utils" "0.0.1" -"@polkadot/wasm-crypto@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.2.2.tgz#3c4b300c0997f4f7e2ddcdf8101d97fa1f5d1a7f" - integrity sha512-1ZY1rxUTawYm0m1zylvBMFovNIHYgG2v/XoASNp/EMG5c8FQIxCbhJRaTBA983GVq4lN/IAKREKEp9ZbLLqssA== +"@polkadot-api/signer@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/signer/-/signer-0.0.1.tgz#7a5f18f30f2aebb3b386f23ed26f49bb7b8c4f55" + integrity sha512-TZHGlVKf1TR2IWcSDMPJBAl/Lsp0z5vGGQr4xSwIwVVvuJw60+d2EfpnUltCTSqE9hMRaoBLl6P+dQbxdkPg4Q== dependencies: - "@polkadot/wasm-bridge" "7.2.2" - "@polkadot/wasm-crypto-asmjs" "7.2.2" - "@polkadot/wasm-crypto-init" "7.2.2" - "@polkadot/wasm-crypto-wasm" "7.2.2" - "@polkadot/wasm-util" "7.2.2" - tslib "^2.6.1" + "@polkadot-api/polkadot-signer" "0.0.1" + "@polkadot-api/substrate-bindings" "0.0.1" + "@polkadot-api/utils" "0.0.1" -"@polkadot/wasm-util@7.2.2", "@polkadot/wasm-util@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.2.2.tgz#f8aa62eba9a35466aa23f3c5634f3e8dbd398bbf" - integrity sha512-N/25960ifCc56sBlJZ2h5UBpEPvxBmMLgwYsl7CUuT+ea2LuJW9Xh8VHDN/guYXwmm92/KvuendYkEUykpm/JQ== +"@polkadot-api/sm-provider@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/sm-provider/-/sm-provider-0.1.0.tgz#b8563d2a69a403c874eedf98214b8c712f00d0b4" + integrity sha512-BaYKouvvTq8xkKAuYLtBgUJ2Icg1qXC8VG9aAoC5YOiBts8yxcTcYljx8jj6D+m7eHWs8AwSPQDLRUL2JyshWw== dependencies: - tslib "^2.6.1" + "@polkadot-api/json-rpc-provider" "0.0.1" + "@polkadot-api/json-rpc-provider-proxy" "0.1.0" -"@polkadot/x-bigint@12.5.1", "@polkadot/x-bigint@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.5.1.tgz#0a6a3a34fae51468e7b02b42e0ff0747fd88a80a" - integrity sha512-Fw39eoN9v0sqxSzfSC5awaDVdzojIiE7d1hRSQgVSrES+8whWvtbYMR0qwbVhTuW7DvogHmye41P9xKMlXZysg== +"@polkadot-api/smoldot@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@polkadot-api/smoldot/-/smoldot-0.2.3.tgz#4b9519f5c06c593622e60e8affc1d2d37cb7577e" + integrity sha512-zicBu7e+IFXABOQUmKY1kA8QBDDTdsAF1P8F+uBw1Mex3hJ9EOrfEzycObvq4nNNxZNh5dDF31Ihh+eo+hgtCA== dependencies: - "@polkadot/x-global" "12.5.1" - tslib "^2.6.2" + smoldot "2.0.26" -"@polkadot/x-fetch@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.5.1.tgz#41532d1324cef56a28c31490ac81062d487b16fb" - integrity sha512-Bc019lOKCoQJrthiS+H3LwCahGtl5tNnb2HK7xe3DBQIUx9r2HsF/uEngNfMRUFkUYg5TPCLFbEWU8NIREBS1A== +"@polkadot-api/substrate-bindings@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz#c4b7f4d6c3672d2c15cbc6c02964f014b73cbb0b" + integrity sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg== dependencies: - "@polkadot/x-global" "12.5.1" - node-fetch "^3.3.2" - tslib "^2.6.2" + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.0.1" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" -"@polkadot/x-global@12.5.1", "@polkadot/x-global@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.5.1.tgz#947bb90e0c46c853ffe216dd6dcb6847d5c18a98" - integrity sha512-6K0YtWEg0eXInDOihU5aSzeb1t9TiDdX9ZuRly+58ALSqw5kPZYmQLbzE1d8HWzyXRXK+YH65GtLzfMGqfYHmw== +"@polkadot-api/substrate-bindings@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.4.0.tgz#0b25058c3db0863e086479a1b710eeaf9c2a4a0a" + integrity sha512-7eaZABXpUp22W5GcXr51pNL4v1d8Pw8w92DbKwWs+eOGzcoZG/btEyUhPWy2OI2k7Oak3wTkvGXLSze1KyrPgQ== dependencies: - tslib "^2.6.2" + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.0.1" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" -"@polkadot/x-randomvalues@12.5.1", "@polkadot/x-randomvalues@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.5.1.tgz#b30c6fa8749f5776f1d8a78b6edddb9b0f9c2853" - integrity sha512-UsMb1d+77EPNjW78BpHjZLIm4TaIpfqq89OhZP/6gDIoS2V9iE/AK3jOWKm1G7Y2F8XIoX1qzQpuMakjfagFoQ== +"@polkadot-api/substrate-bindings@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.5.0.tgz#769e622ff5c509926da29d87c717657e24add840" + integrity sha512-T2Pqr6Y/9YcqGzGDA6Keop2Jk1zfXjS2XwIv5+dXtI1lHa9MC8xxhbPGgVwGqqhCIorMsE9jFtGG1sUBReT2TA== dependencies: - "@polkadot/x-global" "12.5.1" - tslib "^2.6.2" + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.1.0" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" -"@polkadot/x-textdecoder@12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.5.1.tgz#8d89d2b5efbffb2550a48f8afb4a834e1d8d4f6e" - integrity sha512-j2YZGWfwhMC8nHW3BXq10fAPY02ObLL/qoTjCMJ1Cmc/OGq18Ep7k9cXXbjFAq3wf3tUUewt/u/hStKCk3IvfQ== - dependencies: - "@polkadot/x-global" "12.5.1" - tslib "^2.6.2" +"@polkadot-api/substrate-client@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.1.2.tgz#f1fadb5d573a077d832d8a63dc86fe03dc9fdce5" + integrity sha512-rSyjQKUkclfmLTVAVVpR8t8ow52uwd88wbCaBHGwg6aiNNnyMzg8/Su6mi2KpiOtrFnLKG7y96BTR41aFDdl+A== -"@polkadot/x-textencoder@12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.5.1.tgz#9104e37a60068df2fbf57c81a7ce48669430c76c" - integrity sha512-1JNNpOGb4wD+c7zFuOqjibl49LPnHNr4rj4s3WflLUIZvOMY6euoDuN3ISjQSHCLlVSoH0sOCWA3qXZU4bCTDQ== +"@polkadot-api/utils@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1.tgz#908b22becac705149d7cc946532143d0fb003bfc" + integrity sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw== + +"@polkadot-api/utils@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.1.0.tgz#d36937cdc465c2ea302f3278cf53157340ab33a0" + integrity sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA== + +"@polkadot-api/ws-provider@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/ws-provider/-/ws-provider-0.1.0.tgz#80e83468157669f7a147b2a259c2bbb13efc06bd" + integrity sha512-qqi5v3F4hJi2rPL/6GNouJG1qRuBj+WIrH9D7T7dFXC1pSwiCBh27WO5wCm79N+mryE89AvKieNuUsrI9F3Tvw== dependencies: - "@polkadot/x-global" "12.5.1" - tslib "^2.6.2" + "@polkadot-api/json-rpc-provider" "0.0.1" + "@polkadot-api/json-rpc-provider-proxy" "0.1.0" + ws "^8.14.2" -"@polkadot/x-ws@^12.5.1": - version "12.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.5.1.tgz#ff9fc78ef701e18d765443779ab95296a406138c" - integrity sha512-efNMhB3Lh6pW2iTipMkqwrjpuUtb3EwR/jYZftiIGo5tDPB7rqoMOp9s6KRFJEIUfZkLnMUtbkZ5fHzUJaCjmQ== +"@polkadot-labs/hdkd-helpers@0.0.6", "@polkadot-labs/hdkd-helpers@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@polkadot-labs/hdkd-helpers/-/hdkd-helpers-0.0.6.tgz#f587929a6c2c98a3fa9a27420c2d0333d21ad8e2" + integrity sha512-Gbyf1+aQERjOVWmfCEbnuW0VYvv3pFfjBJOISeGmmAiC6tlH9zCUht/STCCEduyA6ShnjSFXELBX2H1A2D72Sw== dependencies: - "@polkadot/x-global" "12.5.1" - tslib "^2.6.2" - ws "^8.14.1" + "@noble/curves" "^1.4.0" + "@noble/hashes" "^1.4.0" + "@polkadot-labs/schnorrkel-wasm" "0.0.5" + "@scure/base" "^1.1.5" + scale-ts "^1.6.0" -"@scure/base@^1.1.1": +"@polkadot-labs/hdkd@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@polkadot-labs/hdkd/-/hdkd-0.0.6.tgz#19390391985878641a07dfd55ead6dc02111ff14" + integrity sha512-PSakvU3q89Dx0QunlGDGKKxevpGK+gZQhErugSngj8SQmPZNy45z353x2SmiJjgfCQifRBP2YX8xzASRCnx7FA== + dependencies: + "@polkadot-labs/hdkd-helpers" "0.0.6" + "@polkadot-labs/schnorrkel-wasm" "0.0.5" + +"@polkadot-labs/schnorrkel-wasm@0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@polkadot-labs/schnorrkel-wasm/-/schnorrkel-wasm-0.0.5.tgz#6c0bbb9fbfb3e25e06f36078d8de356b09217c4f" + integrity sha512-oUKF4Qu+V1bPxEjq3kmzI3FZrMIr1kK/4cxntoHSBDTZn/Ymab9LXVhRNrbVend5JrwDANePcYqbK5Fdn9NGhQ== + +"@rollup/rollup-android-arm-eabi@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz#57936f50d0335e2e7bfac496d209606fa516add4" + integrity sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w== + +"@rollup/rollup-android-arm64@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.0.tgz#81bba83b37382a2d0e30ceced06c8d3d85138054" + integrity sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q== + +"@rollup/rollup-darwin-arm64@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.0.tgz#a371bd723a5c4c4a33376da72abfc3938066842b" + integrity sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA== + +"@rollup/rollup-darwin-x64@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.0.tgz#8baf2fda277c9729125017c65651296282412886" + integrity sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.0.tgz#822830a8f7388d5b81d04c69415408d3bab1079b" + integrity sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA== + +"@rollup/rollup-linux-arm64-gnu@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.0.tgz#e20fbe1bd4414c7119f9e0bba8ad17a6666c8365" + integrity sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A== + +"@rollup/rollup-linux-arm64-musl@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.0.tgz#13f475596a62e1924f13fe1c8cf2c40e09a99b47" + integrity sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.0.tgz#6a431c441420d1c510a205e08c6673355a0a2ea9" + integrity sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA== + +"@rollup/rollup-linux-riscv64-gnu@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.0.tgz#53d9448962c3f9ed7a1672269655476ea2d67567" + integrity sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw== + +"@rollup/rollup-linux-s390x-gnu@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.0.tgz#95f0c133b324da3e7e5c7d12855e0eb71d21a946" + integrity sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA== + +"@rollup/rollup-linux-x64-gnu@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.0.tgz#820ada75c68ead1acc486e41238ca0d8f8531478" + integrity sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg== + +"@rollup/rollup-linux-x64-musl@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.0.tgz#ca74f22e125efbe94c1148d989ef93329b464443" + integrity sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg== + +"@rollup/rollup-win32-arm64-msvc@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.0.tgz#269023332297051d037a9593dcba92c10fef726b" + integrity sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ== + +"@rollup/rollup-win32-ia32-msvc@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.0.tgz#d7701438daf964011fd7ca33e3f13f3ff5129e7b" + integrity sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw== + +"@rollup/rollup-win32-x64-msvc@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.0.tgz#0bb7ac3cd1c3292db1f39afdabfd03ccea3a3d34" + integrity sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag== + +"@scure/base@^1.1.1", "@scure/base@^1.1.5": version "1.1.5" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== -"@scure/base@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" - integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== - "@sideway/address@^4.1.3": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" @@ -1577,65 +1469,6 @@ resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== -"@substrate/connect-extension-protocol@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz#fa5738039586c648013caa6a0c95c43265dbe77d" - integrity sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg== - -"@substrate/connect-extension-protocol@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz#badaa6e6b5f7c7d56987d778f4944ddb83cd9ea7" - integrity sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg== - -"@substrate/connect-known-chains@^1.0.7": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@substrate/connect-known-chains/-/connect-known-chains-1.1.0.tgz#46d4e4bc045eb07468feb5eb9ab65e967e258ee0" - integrity sha512-dTOZ8mnKfoFvsCwm81k8u/nVtctnuOk11QBu5itXDebW17LEzUGZ8uveYTOb+c5dqRHmXd48ZScPzvlhJVx1mw== - -"@substrate/connect@0.7.33": - version "0.7.33" - resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.33.tgz#6fa309557b5b45cb918f5f4fe25a356384de9808" - integrity sha512-1B984/bmXVQvTT9oV3c3b7215lvWmulP9rfP3T3Ri+OU3uIsyCzYw0A+XG6J8/jgO2FnroeNIBWlgoLaUM1uzw== - dependencies: - "@substrate/connect-extension-protocol" "^1.0.1" - smoldot "2.0.1" - -"@substrate/connect@^0.7.32": - version "0.7.35" - resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.35.tgz#853d8ff50717a8c9ee8f219d11a86e61a54b88b8" - integrity sha512-Io8vkalbwaye+7yXfG1Nj52tOOoJln2bMlc7Q9Yy3vEWqZEVkgKmcPVzbwV0CWL3QD+KMPDA2Dnw/X7EdwgoLw== - dependencies: - "@substrate/connect-extension-protocol" "^1.0.1" - smoldot "2.0.7" - -"@substrate/connect@^0.8.4": - version "0.8.7" - resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.8.7.tgz#94dc18cc330d9834b948894848ae112dd2e8689d" - integrity sha512-kJLSqiwsAC8eHsPBwUyVpp6cogs1b/4jxTiRfoWbbndmSSEqn3qkcwmYPmZud4pyJFX7FMXwzH28XaPRBGTaQQ== - dependencies: - "@substrate/connect-extension-protocol" "^2.0.0" - "@substrate/connect-known-chains" "^1.0.7" - "@substrate/light-client-extension-helpers" "^0.0.3" - smoldot "2.0.21" - -"@substrate/light-client-extension-helpers@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.3.tgz#e87ed4dd61b671f6987a76411de6f685070f3ae6" - integrity sha512-AkWX7Xpn0u8NdR7qAEwFzeobLvHiviqmsUTvN6wge8Rnlbk01Ftm2Ol8vdN6IhjWPTepF5MggibQVXKBUtZnZw== - dependencies: - "@polkadot-api/client" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@polkadot-api/json-rpc-provider" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@polkadot-api/json-rpc-provider-proxy" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@polkadot-api/substrate-client" "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - "@substrate/connect-extension-protocol" "^2.0.0" - "@substrate/connect-known-chains" "^1.0.7" - rxjs "^7.8.1" - -"@substrate/ss58-registry@^1.43.0": - version "1.43.0" - resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.43.0.tgz#93108e45cb7ef6d82560c153e3692c2aa1c711b3" - integrity sha512-USEkXA46P9sqClL7PZv0QFsit4S8Im97wchKG0/H/9q3AT/S76r40UHfCr4Un7eBJPE23f7fU9BZ0ITpP9MCsA== - "@tsconfig/node10@^1.0.7": version "1.0.8" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" @@ -1656,13 +1489,6 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== -"@types/archiver@^5.3.2": - version "5.3.2" - resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-5.3.2.tgz#a9f0bcb0f0b991400e7766d35f6e19d163bdadcc" - integrity sha512-IctHreBuWE5dvBDz/0WeKtyVKVRs4h75IblxOACL92wU66v+HGAfEYAOyXkOFphvRJMhuXdI9huDXpX0FC6lCw== - dependencies: - "@types/readdir-glob" "*" - "@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" @@ -1696,13 +1522,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/bn.js@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - "@types/body-parser@*", "@types/body-parser@^1.19.2": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1743,13 +1562,19 @@ "@types/node" "*" "@types/ssh2" "*" -"@types/dockerode@^3.3.19": - version "3.3.19" - resolved "https://registry.yarnpkg.com/@types/dockerode/-/dockerode-3.3.19.tgz#59eb07550a102b397a9504083a6c50d811eed04c" - integrity sha512-7CC5yIpQi+bHXwDK43b/deYXteP3Lem9gdocVVHJPSRJJLMfbiOchQV3rDmAPkMw+n3GIVj7m1six3JW+VcwwA== +"@types/dockerode@^3.3.24": + version "3.3.28" + resolved "https://registry.yarnpkg.com/@types/dockerode/-/dockerode-3.3.28.tgz#8accfc7543e054481ee9ee4ab08cfebc4ac2576c" + integrity sha512-RjY96chW88t2QvSebCsec+mQYo3/nyOr+/tVcE+0ynlOg2m/i9wPE52DhptzF75QDlhv2uDYVPqKfHKeGTn6Fg== dependencies: "@types/docker-modem" "*" "@types/node" "*" + "@types/ssh2" "*" + +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/events@^3.0.0": version "3.0.0" @@ -1839,14 +1664,14 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.18.tgz#85da09bafb66d4bc14f7c899185336d0c1736390" integrity sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw== -"@types/node@^20.9.0": - version "20.11.25" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.25.tgz#0f50d62f274e54dd7a49f7704cc16bfbcccaf49f" - integrity sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw== +"@types/node@^20.12.11": + version "20.12.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be" + integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw== dependencies: undici-types "~5.26.4" -"@types/normalize-package-data@^2.4.1": +"@types/normalize-package-data@^2.4.3": version "2.4.4" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== @@ -1866,13 +1691,6 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/readdir-glob@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/readdir-glob/-/readdir-glob-1.1.1.tgz#27ac2db283e6aa3d110b14ff9da44fcd1a5c38b1" - integrity sha512-ImM6TmoF8bgOwvehGviEj3tRdRBbQujr1N+0ypaln/GWjaerOB26jb93vsRHmdMtvVQZQebOlqt2HROark87mQ== - dependencies: - "@types/node" "*" - "@types/request@^2.48.8": version "2.48.8" resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.8.tgz#0b90fde3b655ab50976cb8c5ac00faca22f5a82c" @@ -2194,6 +2012,11 @@ ansi-styles@^6.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -2228,16 +2051,16 @@ archiver-utils@^2.1.0: normalize-path "^3.0.0" readable-stream "^2.0.0" -archiver@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" - integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== +archiver@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" + integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== dependencies: archiver-utils "^2.1.0" - async "^3.2.3" + async "^3.2.4" buffer-crc32 "^0.2.1" readable-stream "^3.6.0" - readdir-glob "^1.0.0" + readdir-glob "^1.1.2" tar-stream "^2.2.0" zip-stream "^4.1.0" @@ -2329,10 +2152,10 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-lock@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.4.0.tgz#c8b6630eff68fbbdd8a5b6eb763dac3bfbb8bf02" - integrity sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ== +async-lock@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.4.1.tgz#56b8718915a9b68b10fce2f2a9a3dddf765ef53f" + integrity sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ== async-mutex@^0.3.2: version "0.3.2" @@ -2341,10 +2164,10 @@ async-mutex@^0.3.2: dependencies: tslib "^2.3.1" -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +async@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== asynckit@^0.4.0: version "0.4.0" @@ -2375,6 +2198,11 @@ axios@^1.6.0: form-data "^4.0.0" proxy-from-env "^1.1.0" +b4a@^1.6.4: + version "1.6.6" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" + integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== + babel-jest@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.2.tgz#b17b9f64be288040877cbe2649f91ac3b63b2ba6" @@ -2440,6 +2268,32 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +bare-events@^2.0.0, bare-events@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" + integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== + +bare-fs@^2.1.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.2.3.tgz#34f8b81b8c79de7ef043383c05e57d4a10392a68" + integrity sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw== + dependencies: + bare-events "^2.0.0" + bare-path "^2.0.0" + streamx "^2.13.0" + +bare-os@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.2.1.tgz#c94a258c7a408ca6766399e44675136c0964913d" + integrity sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w== + +bare-path@^2.0.0, bare-path@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.1.tgz#111db5bf2db0aed40081aa4ba38b8dfc2bb782eb" + integrity sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A== + dependencies: + bare-os "^2.1.0" + base-x@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" @@ -2488,19 +2342,12 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bl@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" - integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== +blake2@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/blake2/-/blake2-5.0.0.tgz#6306e49d974fb051b6fb2aad669307b9838bfbaa" + integrity sha512-MLpq1DwBB9rC0IHuRc2gXLEAeNNTTYHEtvYCA5lK4RmoUPRmQLSLQrwgJvou62BvH9KP7whe8n+xxw45++fnYg== dependencies: - buffer "^6.0.3" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + nan "^2.17.0" body-parser@1.20.2, body-parser@^1.20.0: version "1.20.2" @@ -2634,6 +2481,13 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" +bundle-require@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.0.2.tgz#65fc74ff14eabbba36d26c9a6161bd78fff6b29e" + integrity sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag== + dependencies: + load-tsconfig "^0.2.3" + byline@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" @@ -2644,6 +2498,11 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +cac@^6.7.12: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2699,7 +2558,7 @@ chalk@^4.0.0, chalk@^4.1.2, chalk@~4: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.0, chalk@^5.3.0: +chalk@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== @@ -2709,6 +2568,21 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== +chokidar@^3.5.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + 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" + optionalDependencies: + fsevents "~2.3.2" + chokidar@^3.5.2: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -2770,7 +2644,7 @@ cli-highlight@^2.1.11: parse5-htmlparser2-tree-adapter "^6.0.0" yargs "^16.0.0" -cli-spinners@^2.9.0: +cli-spinners@^2.9.2: version "2.9.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== @@ -2855,10 +2729,15 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" - integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== +commander@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" + integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commander@^8.3.0: version "8.3.0" @@ -2984,7 +2863,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3005,11 +2884,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - date-fns@^2.29.3: version "2.30.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" @@ -3154,10 +3028,10 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -docker-compose@^0.24.1: - version "0.24.1" - resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.24.1.tgz#09f9a2408395b8adf80feaacf65f6e2a4b119866" - integrity sha512-CVphzCi0Hmw/0CHlAzgiwhLsJjFRqnvpBYMYbf63bz6MON69ElgrfrgQTmgPtEjbifjgaptu3+Gea62vI+9jiA== +docker-compose@^0.24.6: + version "0.24.8" + resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.24.8.tgz#6c125e6b9e04cf68ced47e2596ef2bb93ee9694e" + integrity sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw== dependencies: yaml "^2.2.2" @@ -3237,7 +3111,7 @@ emittery@^0.13.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== -emoji-regex@^10.2.1: +emoji-regex@^10.3.0: version "10.3.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== @@ -3264,7 +3138,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -error-ex@^1.3.1, error-ex@^1.3.2: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -3362,6 +3236,35 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esbuild@^0.19.2: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -3641,11 +3544,6 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -3759,6 +3657,11 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== +fast-fifo@^1.1.0, fast-fifo@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -3810,14 +3713,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -3886,6 +3781,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -3918,13 +3821,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - formidable@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.2.tgz#fa973a2bec150e4ce7cac15589d7a25fc30ebd89" @@ -3995,6 +3891,11 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -4057,17 +3958,16 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^7.0.0: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@^10.3.10: + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== 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" + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.10.2" glob@^7.1.3, glob@^7.1.4: version "7.2.0" @@ -4081,7 +3981,7 @@ glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3, glob@^8.1.0: +glob@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -4120,7 +4020,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.1.0: +globby@^11.0.3, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -4144,6 +4044,11 @@ graceful-fs@^4.2.0, graceful-fs@^4.2.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.2.4: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -4323,6 +4228,11 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +index-to-position@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/index-to-position/-/index-to-position-0.1.2.tgz#e11bfe995ca4d8eddb1ec43274488f3c201a7f09" + integrity sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -4359,11 +4269,6 @@ internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -4579,11 +4484,16 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-unicode-supported@^1.1.0, is-unicode-supported@^1.3.0: +is-unicode-supported@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== +is-unicode-supported@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz#fdf32df9ae98ff6ab2cedc155a5a6e895701c451" + integrity sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q== + is-weakref@^1.0.1, is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -4655,6 +4565,15 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jackspeak@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jest-changed-files@^29.4.2: version "29.4.2" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.2.tgz#bee1fafc8b620d6251423d1978a0080546bc4376" @@ -5033,6 +4952,11 @@ joi@^17.6.4: "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" +joycon@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -5073,11 +4997,6 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-parse-even-better-errors@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" - integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -5093,7 +5012,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -5165,16 +5084,16 @@ lilconfig@^2.0.5: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== +lilconfig@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lines-and-columns@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" - integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== - lint-staged@^12.3.8: version "12.3.8" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.3.8.tgz#ee3fe2e16c9d76f99d8348072900b017d6d76901" @@ -5209,6 +5128,11 @@ listr2@^4.0.1: through "^2.3.8" wrap-ansi "^7.0.0" +load-tsconfig@^0.2.3: + version "0.2.5" + resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1" + integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -5258,6 +5182,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + lodash.union@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" @@ -5268,13 +5197,13 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" - integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== +log-symbols@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-6.0.0.tgz#bb95e5f05322651cac30c0feb6404f9f2a8a9439" + integrity sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw== dependencies: - chalk "^5.0.0" - is-unicode-supported "^1.1.0" + chalk "^5.3.0" + is-unicode-supported "^1.3.0" log-update@^4.0.0: version "4.0.0" @@ -5291,7 +5220,7 @@ loglevel@^1.7.1: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== -lru-cache@^10.0.1: +lru-cache@^10.0.1, lru-cache@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== @@ -5437,7 +5366,7 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -5451,11 +5380,28 @@ minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.1: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== +minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -5471,11 +5417,6 @@ mkdirp@^2.1.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== -mock-socket@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/mock-socket/-/mock-socket-9.3.1.tgz#24fb00c2f573c84812aa4a24181bb025de80cc8e" - integrity sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw== - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -5491,7 +5432,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -mz@^2.4.0: +mz@^2.4.0, mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== @@ -5525,28 +5466,6 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -nock@^13.3.4: - version "13.3.4" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.4.tgz#4ed3ed1465a75c87833044a881dbdd6546337e8d" - integrity sha512-DDpmn5oLEdCTclEqweOT4U7bEpuoifBMFUXem9sA4turDAZ5tlbrEoWqCorwXey8CaAw44mst5JOQeVNiwtkhw== - dependencies: - debug "^4.1.0" - json-stringify-safe "^5.0.1" - lodash "^4.17.21" - propagate "^2.0.0" - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@^2.6.11: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== - dependencies: - whatwg-url "^5.0.0" - node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -5554,14 +5473,12 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" - integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== +node-fetch@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" + whatwg-url "^5.0.0" node-int64@^0.4.0: version "0.4.0" @@ -5734,19 +5651,19 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" -ora@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-7.0.1.tgz#cdd530ecd865fe39e451a0e7697865669cb11930" - integrity sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw== +ora@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-8.0.1.tgz#6dcb9250a629642cbe0d2df3a6331ad6f7a2af3e" + integrity sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ== dependencies: chalk "^5.3.0" cli-cursor "^4.0.0" - cli-spinners "^2.9.0" + cli-spinners "^2.9.2" is-interactive "^2.0.0" - is-unicode-supported "^1.3.0" - log-symbols "^5.1.0" - stdin-discarder "^0.1.0" - string-width "^6.1.0" + is-unicode-supported "^2.0.0" + log-symbols "^6.0.0" + stdin-discarder "^0.2.1" + string-width "^7.0.0" strip-ansi "^7.1.0" p-limit@^2.2.0: @@ -5819,16 +5736,14 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-json@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" - integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== +parse-json@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-8.1.0.tgz#91cdc7728004e955af9cb734de5684733b24a717" + integrity sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA== dependencies: - "@babel/code-frame" "^7.21.4" - error-ex "^1.3.2" - json-parse-even-better-errors "^3.0.0" - lines-and-columns "^2.0.3" - type-fest "^3.8.0" + "@babel/code-frame" "^7.22.13" + index-to-position "^0.1.2" + type-fest "^4.7.1" parse5-htmlparser2-tree-adapter@^6.0.0: version "6.0.1" @@ -5877,6 +5792,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -5965,6 +5888,11 @@ pidtree@^0.5.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -5977,6 +5905,27 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +polkadot-api@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/polkadot-api/-/polkadot-api-0.7.0.tgz#237103fdd5b45eaee5415a4b631cf6d1f92269d3" + integrity sha512-kJOuLaoU15qDtW5tsoqbjtZsIvKpoThuhGf13zqgR8zZ/ozUdxoM4G5/uC/RXpxMmzi867rJGapeGeI/zx7mgQ== + dependencies: + "@polkadot-api/cli" "0.4.0" + "@polkadot-api/json-rpc-provider" "0.0.1" + "@polkadot-api/known-chains" "0.1.3" + "@polkadot-api/logs-provider" "0.0.2" + "@polkadot-api/metadata-builders" "0.3.0" + "@polkadot-api/observable-client" "0.3.0" + "@polkadot-api/pjs-signer" "0.1.4" + "@polkadot-api/polkadot-signer" "0.0.1" + "@polkadot-api/signer" "0.0.1" + "@polkadot-api/sm-provider" "0.1.0" + "@polkadot-api/smoldot" "0.2.3" + "@polkadot-api/substrate-bindings" "0.5.0" + "@polkadot-api/substrate-client" "0.1.2" + "@polkadot-api/utils" "0.1.0" + "@polkadot-api/ws-provider" "0.1.0" + postcss-load-config@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" @@ -5985,6 +5934,14 @@ postcss-load-config@^3.1.4: lilconfig "^2.0.5" yaml "^1.10.2" +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + postcss-safe-parser@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1" @@ -6102,15 +6059,19 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -propagate@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" - integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== +proper-lockfile@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + dependencies: + graceful-fs "^4.2.4" + retry "^0.12.0" + signal-exit "^3.0.2" -properties-reader@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/properties-reader/-/properties-reader-2.2.0.tgz#41d837fe143d8d5f2386b6a869a1975c0b2c595c" - integrity sha512-CgVcr8MwGoBKK24r9TwHfZkLLaNFHQ6y4wgT9w/XzdpacOOi5ciH4hcuLechSDAwXsfrGQtI2JTutY2djOx2Ow== +properties-reader@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/properties-reader/-/properties-reader-2.3.0.tgz#f3ab84224c9535a7a36e011ae489a79a13b472b2" + integrity sha512-z597WicA7nDZxK12kZqHr2TcvwNU1GCfA5UwfDY/HDp3hXPoPlb5rlEx9bwGTiJnc0OqbBTkU975jDToth8Gxw== dependencies: mkdirp "^1.0.4" @@ -6167,6 +6128,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -6187,15 +6153,16 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -read-pkg@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-8.1.0.tgz#6cf560b91d90df68bce658527e7e3eee75f7c4c7" - integrity sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ== +read-pkg@^9.0.0, read-pkg@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-9.0.1.tgz#b1b81fb15104f5dbb121b6bbdee9bbc9739f569b" + integrity sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA== dependencies: - "@types/normalize-package-data" "^2.4.1" + "@types/normalize-package-data" "^2.4.3" normalize-package-data "^6.0.0" - parse-json "^7.0.0" - type-fest "^4.2.0" + parse-json "^8.0.0" + type-fest "^4.6.0" + unicorn-magic "^0.1.0" readable-stream@^2.0.0, readable-stream@^2.0.5: version "2.3.8" @@ -6228,7 +6195,7 @@ readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-glob@^1.0.0: +readdir-glob@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== @@ -6242,13 +6209,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - reflect-metadata@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" @@ -6331,15 +6291,6 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== -resolve@^1.1.6: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - resolve@^1.20.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" @@ -6358,6 +6309,15 @@ resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.22.2: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -6374,6 +6334,11 @@ restore-cursor@^4.0.0: onetime "^5.1.0" signal-exit "^3.0.2" +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" @@ -6396,6 +6361,30 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +rollup@^4.0.2: + version "4.14.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.14.0.tgz#c3e2cd479f1b2358b65c1f810fa05b51603d7be8" + integrity sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.14.0" + "@rollup/rollup-android-arm64" "4.14.0" + "@rollup/rollup-darwin-arm64" "4.14.0" + "@rollup/rollup-darwin-x64" "4.14.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.14.0" + "@rollup/rollup-linux-arm64-gnu" "4.14.0" + "@rollup/rollup-linux-arm64-musl" "4.14.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.14.0" + "@rollup/rollup-linux-riscv64-gnu" "4.14.0" + "@rollup/rollup-linux-s390x-gnu" "4.14.0" + "@rollup/rollup-linux-x64-gnu" "4.14.0" + "@rollup/rollup-linux-x64-musl" "4.14.0" + "@rollup/rollup-win32-arm64-msvc" "4.14.0" + "@rollup/rollup-win32-ia32-msvc" "4.14.0" + "@rollup/rollup-win32-x64-msvc" "4.14.0" + fsevents "~2.3.2" + run-applescript@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" @@ -6455,7 +6444,7 @@ safe-regex@^2.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scale-ts@^1.4.2, scale-ts@^1.4.3, scale-ts@^1.6.0: +scale-ts@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/scale-ts/-/scale-ts-1.6.0.tgz#e9641093c5a9e50f964ddb1607139034e3e932e9" integrity sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q== @@ -6482,6 +6471,13 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + semver@~7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" @@ -6541,15 +6537,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -6569,6 +6556,11 @@ signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + simple-git-hooks@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz#121a5c3023663b8abcc5648c8bfe8619dc263705" @@ -6617,24 +6609,10 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" -smoldot@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-2.0.1.tgz#c899cbb0827a010d3ca7944034f081786f533a4d" - integrity sha512-Wqw2fL/sELQByLSeeTX1Z/d0H4McmphPMx8vh6UZS/bIIDx81oU7s/drmx2iL/ME36uk++YxpRuJey8/MOyfOA== - dependencies: - ws "^8.8.1" - -smoldot@2.0.21: - version "2.0.21" - resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-2.0.21.tgz#f495bf34e995f9554d5b0fcd918a3b84d6834172" - integrity sha512-XFpf3CQZ2BbFwVqKSyJHP7mbTDJxT3saRr/WfnfgWv+pbmA/J0e/LdfV/3A+jg7gNTEG06EAiDPtzN8ouXTLLw== - dependencies: - ws "^8.8.1" - -smoldot@2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-2.0.7.tgz#407efd6bbb82a074612db4d056d631d8d615f442" - integrity sha512-VAOBqEen6vises36/zgrmAT1GWk2qE3X8AGnO7lmQFdskbKx8EovnwS22rtPAG+Y1Rk23/S22kDJUdPANyPkBA== +smoldot@2.0.26: + version "2.0.26" + resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-2.0.26.tgz#0e64c7fcd26240fbe4c8d6b6e4b9a9aca77e00f6" + integrity sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig== dependencies: ws "^8.8.1" @@ -6658,6 +6636,13 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" +source-map@0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -6755,12 +6740,20 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -stdin-discarder@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" - integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== +stdin-discarder@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz#390037f44c4ae1a1ae535c5fe38dc3aba8d997be" + integrity sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ== + +streamx@^2.13.0, streamx@^2.15.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614" + integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== dependencies: - bl "^5.0.0" + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + optionalDependencies: + bare-events "^2.2.0" string-argv@^0.3.1: version "0.3.1" @@ -6775,6 +6768,15 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -6784,7 +6786,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: +string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -6793,14 +6795,14 @@ string-width@^5.0.0: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string-width@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-6.1.0.tgz#96488d6ed23f9ad5d82d13522af9e4c4c3fd7518" - integrity sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ== +string-width@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.1.0.tgz#d994252935224729ea3719c49f7206dc9c46550a" + integrity sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw== dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^10.2.1" - strip-ansi "^7.0.1" + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" string.prototype.trim@^1.2.7: version "1.2.7" @@ -6859,6 +6861,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -6905,6 +6914,19 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +sucrase@^3.20.3: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + superagent@^8.0.5: version "8.0.9" resolved "https://registry.yarnpkg.com/superagent/-/superagent-8.0.9.tgz#2c6fda6fadb40516515f93e9098c0eb1602e0535" @@ -6984,15 +7006,16 @@ synckit@^0.8.5: "@pkgr/utils" "^2.3.1" tslib "^2.5.0" -tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== +tar-fs@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.5.tgz#f954d77767e4e6edf973384e1eb95f8f81d64ed9" + integrity sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg== dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" pump "^3.0.0" - tar-stream "^2.1.4" + tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^2.1.1" + bare-path "^2.1.0" tar-fs@~2.0.1: version "2.0.1" @@ -7004,7 +7027,7 @@ tar-fs@~2.0.1: pump "^3.0.0" tar-stream "^2.0.0" -tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0: +tar-stream@^2.0.0, tar-stream@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -7015,6 +7038,15 @@ tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" +tar-stream@^3.1.5: + version "3.1.7" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" + integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== + dependencies: + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" + tdigest@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" @@ -7031,25 +7063,25 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -testcontainers@^9.9.1: - version "9.9.1" - resolved "https://registry.yarnpkg.com/testcontainers/-/testcontainers-9.9.1.tgz#0af23e56c52eb7cd0e3bc63cc3e059abf3f1705a" - integrity sha512-44iDiyK0JzK5FbqdrKjmE/8QSZhvCFxh0d/OfG+R9fkznU5KVCYeeUsPULkVRIi210X4FAitSXra1ZU591Zlqw== +testcontainers@v10.8.1: + version "10.8.1" + resolved "https://registry.yarnpkg.com/testcontainers/-/testcontainers-10.8.1.tgz#46a38dfb4d98b030ac8b0781b04cca150510fd84" + integrity sha512-2Kzeu3UfnILkhpdz2+YDu1FBFerAusdMCsltErBCJouP5j5xuxrV8BHxhlDt0xsJdM8YnhHgA2B32LmDr5AToA== dependencies: "@balena/dockerignore" "^1.0.2" - "@types/archiver" "^5.3.2" - "@types/dockerode" "^3.3.19" - archiver "^5.3.1" - async-lock "^1.4.0" + "@types/dockerode" "^3.3.24" + archiver "^5.3.2" + async-lock "^1.4.1" byline "^5.0.0" debug "^4.3.4" - docker-compose "^0.24.1" + docker-compose "^0.24.6" dockerode "^3.3.5" get-port "^5.1.1" - node-fetch "^2.6.11" - properties-reader "^2.2.0" + node-fetch "^2.7.0" + proper-lockfile "^4.1.2" + properties-reader "^2.3.0" ssh-remote-port-forward "^1.0.4" - tar-fs "^2.1.1" + tar-fs "^3.0.5" tmp "^0.2.1" text-table@^0.2.0: @@ -7125,11 +7157,28 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + ts-jest@^29.0.5: version "29.0.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.5.tgz#c5557dcec8fe434fcb8b70c3e21c6b143bfce066" @@ -7163,17 +7212,16 @@ ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -ts-patch@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-patch/-/ts-patch-2.1.0.tgz#b4ba3e3f029144d7c4c6566916ebd5a453f070f5" - integrity sha512-+6LbQSGgHUnK+grgk9nvKhesc0/dDNxms0IL1XPZeTfmPFCx/QSuwz9k+9yFe0xYDD7xBlHYK0Zp0qrTCaJcAw== +ts-patch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/ts-patch/-/ts-patch-3.1.2.tgz#9d4832eca34ed0b9eb1f8456cb00c941f50b442b" + integrity sha512-n58F5AqjUMdp9RAKq+E1YBkmONltPVbt1nN+wrmZXoYZek6QcvaTuqvKMhYhr5BxtC53kD/exxIPA1cP1RQxsA== dependencies: chalk "^4.1.2" - glob "^8.0.3" global-prefix "^3.0.0" - minimist "^1.2.6" - resolve "^1.22.1" - shelljs "^0.8.5" + minimist "^1.2.8" + resolve "^1.22.2" + semver "^7.5.4" strip-ansi "^6.0.1" tsc-prog@^2.3.0: @@ -7211,10 +7259,25 @@ tslib@^2.6.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== -tslib@^2.6.1, tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tsup@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/tsup/-/tsup-8.0.2.tgz#c63192a08386515103e2c44ac5a23bdff75c5fa1" + integrity sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ== + dependencies: + bundle-require "^4.0.0" + cac "^6.7.12" + chokidar "^3.5.1" + debug "^4.3.1" + esbuild "^0.19.2" + execa "^5.0.0" + globby "^11.0.3" + joycon "^3.0.1" + postcss-load-config "^4.0.1" + resolve-from "^5.0.0" + rollup "^4.0.2" + source-map "0.8.0-beta.0" + sucrase "^3.20.3" + tree-kill "^1.2.2" tsutils@^3.21.0: version "3.21.0" @@ -7257,16 +7320,16 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^3.8.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - -type-fest@^4.2.0, type-fest@^4.6.0: +type-fest@^4.6.0: version "4.11.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.11.1.tgz#7de27117459b926cb56922a4fd565423041e06d3" integrity sha512-MFMf6VkEVZAETidGGSYW2B1MjXbGX+sWIywn2QPEaJ3j08V+MwVRHMXtf2noB8ENJaD0LIun9wh5Z6OPNf1QzQ== +type-fest@^4.7.1: + version "4.18.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.18.2.tgz#8d765c42e7280a11f4d04fb77a00dacc417c8b05" + integrity sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -7312,10 +7375,10 @@ typeorm@^0.3.17: uuid "^9.0.0" yargs "^17.6.2" -typescript-transform-paths@^3.4.6: - version "3.4.6" - resolved "https://registry.yarnpkg.com/typescript-transform-paths/-/typescript-transform-paths-3.4.6.tgz#28e6b24eb17a34116484a4b7af7323b8bb756db6" - integrity sha512-qdgpCk9oRHkIBhznxaHAapCFapJt5e4FbFik7Y4qdqtp6VyC3smAIPoDEIkjZ2eiF7x5+QxUPYNwJAtw0thsTw== +typescript-transform-paths@^3.4.7: + version "3.4.7" + resolved "https://registry.yarnpkg.com/typescript-transform-paths/-/typescript-transform-paths-3.4.7.tgz#1deaf976fb1b7a70fb26b541356017057c0c17a5" + integrity sha512-1Us1kdkdfKd2unbkBAOV2HHRmbRBYpSuk9nJ7cLD2hP4QmfToiM/VpxNlhJc1eezVwVqSKSBjNSzZsK/fWR/9A== dependencies: minimatch "^3.0.4" @@ -7324,16 +7387,16 @@ typescript@4.6.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== -typescript@^4.9.3: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - typescript@^5.3.2: version "5.4.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -7369,6 +7432,11 @@ unhomoglyph@^1.0.6: resolved "https://registry.yarnpkg.com/unhomoglyph/-/unhomoglyph-1.0.6.tgz#ea41f926d0fcf598e3b8bb2980c2ddac66b081d3" integrity sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg== +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -7457,16 +7525,16 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -7475,6 +7543,15 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -7512,6 +7589,15 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -7530,6 +7616,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7563,27 +7658,27 @@ write-json-file@^5.0.0: sort-keys "^5.0.0" write-file-atomic "^3.0.3" -write-pkg@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-6.0.1.tgz#5b5ec22edf199f372b68c54d3f80b112c8463a6e" - integrity sha512-ZwKp0+CQCNrJbhHStRy6IVDnVjvD4gYy6MhQLKgBnl85oaiTNXhvtuox7AqvOSf1wta0YW4U5JidjpJnd1i8TA== +write-package@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/write-package/-/write-package-7.0.1.tgz#29b848298334515c31dc152d26725ff8b142ae44" + integrity sha512-S7c5F2mpb5o+9pS1UfO3jcQb0OR25L7ZJT64cv3K0TkGh1VxJb+PNnL8b46KSJ6tmxIbA0xgHnrtBdVGeHmJ0A== dependencies: deepmerge-ts "^5.1.0" - read-pkg "^8.1.0" + read-pkg "^9.0.0" sort-keys "^5.0.0" type-fest "^4.6.0" write-json-file "^5.0.0" -ws@^8.14.1: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== - ws@^8.14.2: version "8.16.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== +ws@^8.17.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== + ws@^8.8.1: version "8.12.1" resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f" @@ -7624,6 +7719,11 @@ yaml@^2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== +yaml@^2.3.4: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" + integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"