diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 73ad57cd..7d67edfb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -106,6 +106,9 @@ jobs: test_dev: runs-on: ubuntu-latest needs: ["build"] + strategy: + matrix: + suite: ["dev_test", "dev_multi", "dev_seq"] steps: - uses: actions/checkout@v3 - uses: oven-sh/setup-bun@v1 @@ -122,25 +125,14 @@ jobs: run: | pnpm install pnpm run build - - uses: oven-sh/setup-bun@v1 - with: - bun-version: latest - name: Download moonbeam binary run: | cd test bun moonwall download moonbeam latest ./tmp - - name: Run standard dev test - run: | - cd test - bun moonwall test dev_test - - name: Run parallel dev test - run: | - cd test - bun moonwall test dev_multi - - name: Run sequential dev test + - name: Run dev test run: | cd test - bun moonwall test dev_seq + bun moonwall test ${{ matrix.suite }} test_chopsticks: runs-on: ubuntu-latest @@ -179,6 +171,9 @@ jobs: test_readonly: runs-on: ubuntu-latest needs: ["build"] + strategy: + matrix: + suite: ["eth_test", "viem_test", "web3_test"] steps: - uses: actions/checkout@v3 - uses: pnpm/action-setup@v2 @@ -195,17 +190,10 @@ jobs: - uses: oven-sh/setup-bun@v1 with: bun-version: latest - - name: Run standard ethers run - run: | - cd test - bun moonwall test eth_test - - name: Run standard viem run + - name: Run test run: | cd test - bun moonwall test viem_test - # disabled until web3.js fix their stuff - # - name: Run standard web3 run - # run: bun moonwall test web3_test + bun moonwall test ${{ matrix.suite }} test_zombie: runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index f1140a9c..b01a51af 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ typechain-types cache artifacts **/tmp/* -**/contracts/out/* +**/out diff --git a/.vscode/settings.json b/.vscode/settings.json index 915c268c..dabff8a1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "testing.automaticallyOpenPeekView": "never" + "testing.automaticallyOpenPeekView": "never", + "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/docs/package.json b/docs/package.json index 9b6922b4..ffcbef11 100644 --- a/docs/package.json +++ b/docs/package.json @@ -13,7 +13,7 @@ "vitepress": "1.0.0-rc.10" }, "dependencies": { - "@algolia/client-search": ">=4.9.1 <6.0.0-0", - "search-insights": ">=1.0.0 <3.0.0-0" + "@algolia/client-search": "^4.20.0", + "search-insights": "^2.10.0" } } \ No newline at end of file diff --git a/package.json b/package.json index f586b176..03df774b 100644 --- a/package.json +++ b/package.json @@ -26,13 +26,13 @@ "devDependencies": { "@changesets/cli": "^2.26.2", "@pnpm/eslint-config": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^6.10.0", - "@typescript-eslint/parser": "^6.10.0", - "eslint": "^8.53.0", + "@typescript-eslint/eslint-plugin": "^6.12.0", + "@typescript-eslint/parser": "^6.12.0", + "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", "eslint-config-xo": "^0.43.1", "eslint-config-xo-typescript": "^1.0.1", - "prettier": "^2.8.8", - "typescript": "^5.2.2" + "prettier": "^3.1.0", + "typescript": "^5.3.2" } } diff --git a/packages/cli/moonwall.mjs b/packages/cli/moonwall.mjs index 098af5f5..2e0db323 100755 --- a/packages/cli/moonwall.mjs +++ b/packages/cli/moonwall.mjs @@ -1,3 +1,3 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env -S node -import './dist/cmds/entrypoint.js' +import './dist/cmds/entrypoint.js' \ No newline at end of file diff --git a/packages/cli/package.json b/packages/cli/package.json index 38797a35..b309b356 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -61,18 +61,20 @@ "prepublish": "pnpm run build && pnpm run generate-types" }, "dependencies": { - "@acala-network/chopsticks": "^0.9.1", + "@acala-network/chopsticks": "^0.9.2", "@moonbeam-network/api-augment": "^0.2600.0", "@moonwall/types": "workspace:*", "@moonwall/util": "workspace:*", - "@polkadot/api": "^10.10.1", - "@polkadot/api-augment": "^10.10.1", - "@polkadot/api-derive": "^10.10.1", - "@polkadot/keyring": "^12.5.1", - "@polkadot/types": "^10.10.1", - "@polkadot/types-codec": "^10.10.1", - "@polkadot/util": "^12.5.1", - "@polkadot/util-crypto": "^12.5.1", + "@polkadot/api": "^10.11.1", + "@polkadot/api-augment": "^10.11.1", + "@polkadot/api-derive": "^10.11.1", + "@polkadot/keyring": "^12.6.1", + "@polkadot/types": "^10.11.1", + "@polkadot/types-codec": "^10.11.1", + "@polkadot/util": "^12.6.1", + "@polkadot/util-crypto": "^12.6.1", + "@types/ws": "^8.5.10", + "@vitest/ui": "1.0.0-beta.5", "@zombienet/orchestrator": "^0.0.62", "@zombienet/utils": "^0.0.24", "bottleneck": "^2.19.5", @@ -82,8 +84,8 @@ "colors": "^1.4.0", "debug": "^4.3.4", "dotenv": "^16.3.1", - "effect": "2.0.0-next.54", - "ethers": "^6.8.1", + "effect": "2.0.0-next.56", + "ethers": "6.8.1", "execa": "^8.0.1", "inquirer": "^9.2.12", "inquirer-press-to-continue": "^1.2.0", @@ -91,23 +93,26 @@ "minimatch": "^9.0.3", "node-fetch": "^3.3.2", "semver": "^7.5.4", - "viem": "^1.18.9", - "vitest": "1.0.0-beta.4", + "viem": "^1.19.6", + "vitest": "1.0.0-beta.5", "web3": "4.2.2", - "web3-providers-ws": "4.0.7", "ws": "^8.14.2", "yaml": "^2.3.4", "yargs": "^17.7.2" }, + "peerDependencies": { + "@vitest/ui": "1.0.0-beta.5", + "vitest": "1.0.0-beta.5" + }, "devDependencies": { "@types/cli-progress": "^3.11.5", "@types/debug": "^4.1.12", - "@types/node": "^20.9.0", - "@types/yargs": "^17.0.31", - "prettier": "^3.0.3", - "tsup": "^7.2.0", - "tsx": "^4.1.0", - "typescript": "^5.2.2" + "@types/node": "^20.9.4", + "@types/yargs": "^17.0.32", + "prettier": "^3.1.0", + "tsup": "^8.0.1", + "tsx": "^4.2.0", + "typescript": "^5.3.2" }, "publishConfig": { "access": "public" diff --git a/packages/cli/src/cmds/entrypoint.ts b/packages/cli/src/cmds/entrypoint.ts index 597311c8..e2c915ff 100755 --- a/packages/cli/src/cmds/entrypoint.ts +++ b/packages/cli/src/cmds/entrypoint.ts @@ -4,12 +4,13 @@ import yargs from "yargs"; import fs from "fs"; import { hideBin } from "yargs/helpers"; import { testEffect } from "./runTests"; -import { runNetworkCmd } from "./runNetwork"; import { generateConfig } from "../internal/cmdFunctions/initialisation"; import { fetchArtifact } from "../internal/cmdFunctions/fetchArtifact"; import dotenv from "dotenv"; -import { Effect, Console, pipe } from "effect"; +import { Effect, pipe } from "effect"; +import * as Err from "../errors"; import { main } from "./main"; +import { runNetworkCmdEffect } from "./runNetwork"; dotenv.config(); const defaultConfigFiles = ["./moonwall.config", "./moonwall.config.json"]; @@ -24,8 +25,10 @@ const findExistingConfig = (files: string[]): string | undefined => { const defaultConfigFile = findExistingConfig(defaultConfigFiles) || "./moonwall.config.json"; -const parseConfigFile = Effect.sync(() => +const parseArgs = Effect.sync(() => yargs(hideBin(process.argv)) + .usage("Usage: $0") + .version("2.0.0") .options({ configFile: { type: "string", @@ -37,32 +40,21 @@ const parseConfigFile = Effect.sync(() => .parseSync() ); -const setEnvVar = (key: string, value: string) => Effect.sync(() => (process.env[key] = value)); +const setEnvVar = (key: string, value: string) => + Effect.sync(() => { + process.env[key] = value; + }); const setupConfigFileEnv = pipe( - parseConfigFile, + parseArgs, Effect.flatMap((parsed) => setEnvVar("MOON_CONFIG_PATH", parsed.configFile)) ); -const cliStart = Effect.try(() => { - const argv = yargs(hideBin(process.argv)) - .usage("Usage: $0") - .version("2.0.0") - .options({ - configFile: { - type: "string", - alias: "c", - description: "path to MoonwallConfig file", - default: defaultConfigFile, - }, - }) - .parseSync(); - - if (!argv._.length) { - return main(); - } +const processArgs = (args: any): { command: string; args?: object } => { + let commandChosen: string; + const argsObject: object = {}; - return yargs(hideBin(process.argv)) + yargs(hideBin(args)) .usage("Usage: $0") .version("2.0.0") .options({ @@ -74,15 +66,13 @@ const cliStart = Effect.try(() => { }, }) .command(`init`, "Run tests for a given Environment", async () => { - const effect = Effect.tryPromise(() => generateConfig()); - - await Effect.runPromise(effect); + commandChosen = "init"; }) .command( `download [ver] [path]`, "Download x86 artifact from GitHub", - (yargs) => { - return yargs + (yargs) => + yargs .positional("bin", { describe: "Name of artifact to download\n[ moonbeam | polkadot | *-runtime ]", }) @@ -105,41 +95,30 @@ const cliStart = Effect.try(() => { describe: "Rename downloaded file to this name", alias: "o", type: "string", - }); - }, + }), async (argv) => { - const effect = Effect.tryPromise(() => fetchArtifact(argv)); - await Effect.runPromise(effect); + commandChosen = "download"; + argsObject["argv"] = argv; } ) .command( `test [GrepTest]`, "Run tests for a given Environment", - (yargs) => yargs .positional("envName", { describe: "Network environment to run tests against", - array: true, - string: true, + type: "string", }) .positional("GrepTest", { type: "string", description: "Pattern to grep test ID/Description to run", }), - async ({ envName, GrepTest }) => { process.env.MOON_RUN_SCRIPTS = "true"; - const effect = Effect.gen(function* (_) { - if (envName) { - yield* _(testEffect(envName as any, { testNamePattern: GrepTest })); - } else { - console.error("👉 Run 'pnpm moonwall --help' for more information"); - yield* _(Effect.fail("❌ No environment specified")); - } - }); - - await Effect.runPromise(effect); + argsObject["envName"] = envName; + argsObject["GrepTest"] = GrepTest; + commandChosen = "test"; } ) .command( @@ -156,28 +135,85 @@ const cliStart = Effect.try(() => { }), async (argv) => { process.env.MOON_RUN_SCRIPTS = "true"; - const effect = Effect.tryPromise(() => runNetworkCmd(argv as any)); - - await Effect.runPromise(effect); + argsObject["argv"] = argv; + commandChosen = "run"; } ) .help("h") .alias("h", "help") .parse(); + + return { command: commandChosen, args: argsObject }; +}; + +const cliStart = Effect.gen(function* (_) { + let commandChosen: string; + let args: object = {}; + let failedTests: number | false; + + const argv = yield* _(parseArgs); + + if (!argv._.length) { + commandChosen = "mainmenu"; + } else { + const processedArgs = yield* _(Effect.sync(() => processArgs(process.argv))); + commandChosen = processedArgs.command; + args = processedArgs.args; + } + + switch (commandChosen) { + case "mainmenu": + yield* _(Effect.promise(main)); + break; + + case "init": + yield* _(Effect.tryPromise(() => generateConfig())); + break; + + case "download": + yield* _(Effect.tryPromise(() => fetchArtifact(args["argv"]))); + break; + + case "test": { + yield* _( + testEffect(args["envName"], { testNamePattern: args["GrepTest"] }).pipe( + Effect.tap(() => Effect.sync(() => console.log("✅ All Tests Passed"))), + Effect.catchTag("TestsFailedError", (error) => { + failedTests = error.fails; + return Effect.succeed( + console.log(`❌ ${error.fails} test file${error.fails !== 1 ? "s" : ""} failed`) + ); + }) + ) + ); + + if (failedTests) { + process.exitCode = 1; + } + + break; + } + + case "run": + yield* _(runNetworkCmdEffect(args["argv"])); + break; + + default: + yield* _(new Err.InvalidCommandError({ command: commandChosen })); + break; + } }); -const cli = pipe( +const program = pipe( setupConfigFileEnv, Effect.flatMap(() => cliStart), - Effect.catchAll((error: any) => Effect.logError(`Error: ${error.message}`)) + Effect.uninterruptible, + Effect.disconnect ); -Effect.runPromise(cli) - .then((res) => { - Console.log(res); - process.exit(0); +Effect.runPromise(program) + .then(() => { + console.log("🏁 Moonwall Process finished"); + process.exit(); }) - .catch((defect) => { - Console.error(defect); - process.exit(1); - }); + .catch(console.error); diff --git a/packages/cli/src/cmds/main.ts b/packages/cli/src/cmds/main.ts index f76c0049..a9cdf7eb 100644 --- a/packages/cli/src/cmds/main.ts +++ b/packages/cli/src/cmds/main.ts @@ -2,20 +2,21 @@ import { MoonwallConfig } from "@moonwall/types"; import chalk from "chalk"; import clear from "clear"; import colors from "colors"; +import { Effect } from "effect"; +import fs from "fs"; import inquirer from "inquirer"; -import PressToContinuePrompt from "inquirer-press-to-continue"; import fetch from "node-fetch"; +import PressToContinuePrompt from "inquirer-press-to-continue"; +import path from "path"; import { SemVer, lt } from "semver"; import pkg from "../../package.json" assert { type: "json" }; import { fetchArtifact, getVersions } from "../internal/cmdFunctions/fetchArtifact"; import { createFolders, generateConfig } from "../internal/cmdFunctions/initialisation"; +import { executeScript } from "../internal/launcherCommon"; import { importAsyncConfig } from "../lib/configReader"; import { allReposAsync } from "../lib/repoDefinitions"; -import { runNetworkCmd } from "./runNetwork"; -import { testCmd } from "./runTests"; -import fs from "fs"; -import { executeScript } from "../internal/launcherCommon"; -import path from "path"; +import { runNetworkCmdEffect } from "./runNetwork"; +import { testEffect } from "./runTests"; inquirer.registerPrompt("press-to-continue", PressToContinuePrompt); @@ -103,7 +104,7 @@ async function mainMenu(config: MoonwallConfig) { const chosenRunEnv = await chooseRunEnv(config); process.env.MOON_RUN_SCRIPTS = "true"; if (chosenRunEnv.envName !== "back") { - await runNetworkCmd(chosenRunEnv); + await Effect.runPromise(runNetworkCmdEffect(chosenRunEnv.envName)); } return false; } @@ -111,7 +112,7 @@ async function mainMenu(config: MoonwallConfig) { const chosenTestEnv = await chooseTestEnv(config); if (chosenTestEnv.envName !== "back") { process.env.MOON_RUN_SCRIPTS = "true"; - await testCmd(chosenTestEnv.envName); + await Effect.runPromise(testEffect(chosenTestEnv.envName)); await inquirer.prompt({ name: "test complete", type: "press-to-continue", diff --git a/packages/cli/src/cmds/runNetwork.ts b/packages/cli/src/cmds/runNetwork.ts index 5c0ee629..9ae90a9c 100644 --- a/packages/cli/src/cmds/runNetwork.ts +++ b/packages/cli/src/cmds/runNetwork.ts @@ -2,196 +2,207 @@ import { Environment } from "@moonwall/types"; import { ApiPromise } from "@polkadot/api"; import chalk from "chalk"; import clear from "clear"; +import { Effect } from "effect"; import fs, { promises as fsPromises } from "fs"; import inquirer from "inquirer"; import PressToContinuePrompt from "inquirer-press-to-continue"; import WebSocket from "ws"; import { parse } from "yaml"; +import * as Err from "../errors"; import { clearNodeLogs, reportLogLocation } from "../internal/cmdFunctions/tempLogs"; -import { commonChecks } from "../internal/launcherCommon"; -import { cacheConfig, importAsyncConfig, loadEnvVars } from "../lib/configReader"; -import { MoonwallContext, runNetworkOnly } from "../lib/globalContext"; -import { executeTests } from "./runTests"; import { sendIpcMessage } from "../internal/foundations/zombieHelpers"; +import { commonChecks } from "../internal/launcherCommon"; +import { importAsyncConfig, loadEnvVars } from "../lib/configReader"; +import { MoonwallContext, runNetworkOnlyEffect } from "../lib/globalContextEffect"; +import { executeTestEffect } from "./runTests"; inquirer.registerPrompt("press-to-continue", PressToContinuePrompt); let lastSelected = 0; -export async function runNetworkCmd(args) { - await cacheConfig(); - process.env.MOON_TEST_ENV = args.envName; - const globalConfig = await importAsyncConfig(); - const env = globalConfig.environments.find(({ name }) => name === args.envName)!; - - if (!env) { - const envList = globalConfig.environments.map((env) => env.name); - throw new Error( - `No environment found in config for: ${chalk.bgWhiteBright.blackBright( - args.envName - )}\n Environments defined in config are: ${envList}\n` +export const runNetworkCmdEffect = (args) => + Effect.gen(function* (_) { + process.env.MOON_TEST_ENV = args.envName; + const globalConfig = yield* _(Effect.promise(() => importAsyncConfig())); + const env = yield* _( + Effect.filterOrFail( + Effect.sync(() => globalConfig.environments.find(({ name }) => name === args.envName)), + (env) => !!env, + () => new Err.EnvironmentMissingError({ env: args.envName }) + ) ); - } - loadEnvVars(); - - await commonChecks(env); - - const testFileDirs = env.testFileDir; - const foundation = env.foundation.type; - const questions = [ - { - type: "confirm", - name: "Quit", - message: "ℹī¸ Are you sure you'd like to close network and quit? \n", - default: false, - }, - { - name: "Choice", - type: "list", - message: "What would you like todo now", - choices: ["Chill", "Info", "Test", "Quit"], - }, - { - name: "MenuChoice", - type: "list", - message: - `Environment : ${chalk.bgGray.cyanBright(args.envName)}\n` + "Please select a choice: ", - default: () => lastSelected, - pageSize: 10, - choices: [ - { - name: "Tail: Print the logs of the current running node to this console", - value: 1, - short: "tail", - }, - { - name: `Info: Display Information about this environment ${args.envName}`, - value: 2, - short: "info", - }, - { - name: - foundation == "dev" || foundation == "chopsticks" || foundation == "zombie" - ? `Command: Run command on network (${chalk.bgGrey.cyanBright(foundation)})` - : chalk.dim( - `Not applicable for foundation type (${chalk.bgGrey.cyanBright(foundation)})` - ), - value: 3, - short: "cmd", - disabled: foundation !== "dev" && foundation !== "chopsticks" && foundation !== "zombie", - }, - { - name: - testFileDirs.length > 0 - ? "Test: Execute tests registered for this environment (" + - chalk.bgGrey.cyanBright(testFileDirs) + - ")" - : chalk.dim("Test: NO TESTS SPECIFIED"), - value: 4, - disabled: testFileDirs.length > 0 ? false : true, - short: "test", - }, - { - name: - testFileDirs.length > 0 - ? "GrepTest: Execute individual test(s) based on grepping the name / ID (" + - chalk.bgGrey.cyanBright(testFileDirs) + - ")" - : chalk.dim("Test: NO TESTS SPECIFIED"), - value: 5, - disabled: testFileDirs.length > 0 ? false : true, - short: "grep", - }, - new inquirer.Separator(), - { - name: "Quit: Close network and quit the application", - value: 6, - short: "quit", + yield* _(Effect.sync(() => loadEnvVars())); + + yield* _(Effect.promise(() => commonChecks(env))); + + const testFileDirs = env.testFileDir; + const foundation = env.foundation.type; + const questions = [ + { + type: "confirm", + name: "Quit", + message: "ℹī¸ Are you sure you'd like to close network and quit? \n", + default: false, + }, + { + name: "Choice", + type: "list", + message: "What would you like todo now", + choices: ["Chill", "Info", "Test", "Quit"], + }, + { + name: "MenuChoice", + type: "list", + message: + `Environment : ${chalk.bgGray.cyanBright(args.envName)}\n` + "Please select a choice: ", + default: () => lastSelected, + pageSize: 10, + choices: [ + { + name: "Tail: Print the logs of the current running node to this console", + value: 1, + short: "tail", + }, + { + name: `Info: Display Information about this environment ${args.envName}`, + value: 2, + short: "info", + }, + { + name: + foundation == "dev" || foundation == "chopsticks" || foundation == "zombie" + ? `Command: Run command on network (${chalk.bgGrey.cyanBright(foundation)})` + : chalk.dim( + `Not applicable for foundation type (${chalk.bgGrey.cyanBright(foundation)})` + ), + value: 3, + short: "cmd", + disabled: + foundation !== "dev" && foundation !== "chopsticks" && foundation !== "zombie", + }, + { + name: + testFileDirs.length > 0 + ? "Test: Execute tests registered for this environment (" + + chalk.bgGrey.cyanBright(testFileDirs) + + ")" + : chalk.dim("Test: NO TESTS SPECIFIED"), + value: 4, + disabled: testFileDirs.length > 0 ? false : true, + short: "test", + }, + { + name: + testFileDirs.length > 0 + ? "GrepTest: Execute individual test(s) based on grepping the name / ID (" + + chalk.bgGrey.cyanBright(testFileDirs) + + ")" + : chalk.dim("Test: NO TESTS SPECIFIED"), + value: 5, + disabled: testFileDirs.length > 0 ? false : true, + short: "grep", + }, + new inquirer.Separator(), + { + name: "Quit: Close network and quit the application", + value: 6, + short: "quit", + }, + ], + filter(val) { + return val; }, - ], - filter(val) { - return val; }, - }, - { - name: "NetworkStarted", - type: "press-to-continue", - anyKey: true, - pressToContinueMessage: "✅ Press any key to continue...\n", - }, - ]; + { + name: "NetworkStarted", + type: "press-to-continue", + anyKey: true, + pressToContinueMessage: "✅ Press any key to continue...\n", + }, + ]; - if ( - (env.foundation.type == "dev" && !env.foundation.launchSpec[0].retainAllLogs) || - (env.foundation.type == "chopsticks" && !env.foundation.launchSpec[0].retainAllLogs) - ) { - clearNodeLogs(); - } + if ( + (env.foundation.type == "dev" && !env.foundation.launchSpec[0].retainAllLogs) || + (env.foundation.type == "chopsticks" && !env.foundation.launchSpec[0].retainAllLogs) + ) { + yield* _(Effect.try(() => clearNodeLogs())); + } - await runNetworkOnly(); - clear(); - const portsList = await reportServicePorts(); - reportLogLocation(); - portsList.forEach(({ port }) => - console.log(` đŸ–Ĩī¸ https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A${port}`) - ); + yield* _(runNetworkOnlyEffect()); - if (!args.GrepTest) { - await inquirer.prompt(questions.find(({ name }) => name == "NetworkStarted")); - } else { - process.env.MOON_RECYCLE = "true"; - process.env.MOON_GREP = await args.GrepTest; - await executeTests(env, { testNamePattern: await args.GrepTest }); - } + yield* _(Effect.try(() => clear())); + + const portsList = yield* _(Effect.tryPromise(() => reportServicePorts())); + yield* _(Effect.try(() => reportLogLocation())); - mainloop: for (;;) { - const choice = await inquirer.prompt(questions.find(({ name }) => name == "MenuChoice")); - const env = globalConfig.environments.find(({ name }) => name === args.envName)!; - - switch (choice.MenuChoice) { - case 1: - clear(); - await resolveTailChoice(env); - lastSelected = 0; - clear(); - break; - - case 2: - await resolveInfoChoice(env); - lastSelected = 1; - break; - - case 3: - env.foundation.type !== "zombie" - ? await resolveCommandChoice() - : await resolveZombieCommandChoice(); - lastSelected = 2; - break; - - case 4: - await resolveTestChoice(env); - lastSelected = 3; - break; - - case 5: - await resolveGrepChoice(env); - lastSelected = 4; - break; - - case 6: { - const quit = await inquirer.prompt(questions.find(({ name }) => name == "Quit")); - if (quit.Quit === true) { - break mainloop; + portsList.forEach(({ port }) => + console.log(` đŸ–Ĩī¸ https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A${port}`) + ); + + if (!args.GrepTest) { + yield* _( + Effect.tryPromise(() => + inquirer.prompt(questions.find(({ name }) => name == "NetworkStarted")) + ) + ); + } else { + process.env.MOON_RECYCLE = "true"; + process.env.MOON_GREP = args.GrepTest; + yield* _(executeTestEffect(env, { testNamePattern: args.GrepTest })); + } + + mainloop: for (;;) { + const choice: any = yield* _( + Effect.promise(() => inquirer.prompt(questions.find(({ name }) => name == "MenuChoice"))) + ); + const env = globalConfig.environments.find(({ name }) => name === args.envName); + + switch (choice.MenuChoice) { + case 1: + clear(); + yield* _(Effect.promise(() => resolveTailChoice(env))); + lastSelected = 0; + clear(); + break; + + case 2: + yield* _(resolveInfoChoice(env)); + lastSelected = 1; + break; + + case 3: + env.foundation.type !== "zombie" + ? yield* _(Effect.promise(() => resolveCommandChoice())) + : yield* _(Effect.promise(() => resolveZombieCommandChoice())); + lastSelected = 2; + break; + + case 4: + yield* _(resolveTestChoice(env)); + lastSelected = 3; + break; + + case 5: + yield* _(resolveGrepChoice(env)); + lastSelected = 4; + break; + + case 6: { + const quit: any = yield* _( + Effect.promise(() => inquirer.prompt(questions.find(({ name }) => name == "Quit"))) + ); + if (quit.Quit === true) { + break mainloop; + } + break; } - break; + default: + throw new Error("invalid value"); } - default: - throw new Error("invalid value"); } - } - await MoonwallContext.destroy(); -} + yield* _(MoonwallContext.destroy()); + }); const reportServicePorts = async () => { const ctx = MoonwallContext.getContext(); @@ -315,8 +326,8 @@ const resolveCommandChoice = async () => { ctx.foundation == "dev" ? await api.rpc.engine.createBlock(true, true) : ctx.foundation == "chopsticks" - ? await sendNewBlockCmd() - : undefined; + ? await sendNewBlockCmd() + : undefined; break; case "createUnfinalizedBlock": @@ -357,42 +368,50 @@ const resolveCommandChoice = async () => { return; }; -const resolveInfoChoice = async (env: Environment) => { - console.log(chalk.bgWhite.blackBright("Node Launch args:")); - console.dir(MoonwallContext.getContext().environment, { depth: null }); - console.log(chalk.bgWhite.blackBright("Launch Spec in Config File:")); - console.dir(env, { depth: null }); - const portsList = await reportServicePorts(); - reportLogLocation(); - portsList.forEach(({ port }) => - console.log(` đŸ–Ĩī¸ https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A${port}`) - ); -}; +const resolveInfoChoice = (env: Environment) => + Effect.gen(function* (_) { + console.log(chalk.bgWhite.blackBright("Node Launch args:")); + console.dir(MoonwallContext.getContext().environment, { depth: null }); + console.log(chalk.bgWhite.blackBright("Launch Spec in Config File:")); + console.dir(env, { depth: null }); + const portsList = yield* _(Effect.tryPromise(() => reportServicePorts())); + reportLogLocation(); + portsList.forEach(({ port }) => + console.log(` đŸ–Ĩī¸ https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A${port}`) + ); + }); -const resolveGrepChoice = async (env: Environment, silent: boolean = false) => { - const choice = await inquirer.prompt({ - name: "grep", - type: "input", - message: `What pattern would you like to filter for (ID/Title): `, - default: process.env.MOON_GREP || "D01T01", +const resolveGrepChoice = (env: Environment, silent: boolean = false) => + Effect.gen(function* (_) { + const choice: any = yield* _( + Effect.promise(() => + inquirer.prompt({ + name: "grep", + type: "input", + message: `What pattern would you like to filter for (ID/Title): `, + default: process.env.MOON_GREP || "D01T01", + }) + ) + ); + + process.env.MOON_RECYCLE = "true"; + process.env.MOON_GREP = choice.grep; + const opts = { testNamePattern: choice.grep, silent }; + if (silent) { + opts["reporters"] = ["dot"]; + } + return yield* _(executeTestEffect(env, opts)); }); - process.env.MOON_RECYCLE = "true"; - process.env.MOON_GREP = await choice.grep; - const opts = { testNamePattern: await choice.grep, silent }; - if (silent) { - opts["reporters"] = ["dot"]; - } - return await executeTests(env, opts); -}; -const resolveTestChoice = async (env: Environment, silent: boolean = false) => { - process.env.MOON_RECYCLE = "true"; - const opts = { silent }; - if (silent) { - opts["reporters"] = ["dot"]; - } - return await executeTests(env, opts); -}; +const resolveTestChoice = (env: Environment, silent: boolean = false) => + Effect.gen(function* (_) { + process.env.MOON_RECYCLE = "true"; + const opts = { silent }; + if (silent) { + opts["reporters"] = ["dot"]; + } + return yield* _(executeTestEffect(env, opts)); + }); const resolveTailChoice = async (env: Environment) => { let tailing: boolean = true; diff --git a/packages/cli/src/cmds/runTests.ts b/packages/cli/src/cmds/runTests.ts index d4e17974..e99e246d 100644 --- a/packages/cli/src/cmds/runTests.ts +++ b/packages/cli/src/cmds/runTests.ts @@ -1,48 +1,24 @@ import { Environment } from "@moonwall/types"; -import chalk from "chalk"; import path from "path"; import { Effect, Config } from "effect"; -import type { UserConfig, Vitest } from "vitest"; +import type { UserConfig } from "vitest"; import { startVitest } from "vitest/node"; import { clearNodeLogs } from "../internal/cmdFunctions/tempLogs"; import { commonChecks } from "../internal/launcherCommon"; -import { cacheConfig, importAsyncConfig, loadEnvVars } from "../lib/configReader"; -import { MoonwallContext, contextCreator, runNetworkOnly } from "../lib/globalContext"; - -class EnvironmentMissingError { - readonly _tag = "EnvironmentMissingError"; - constructor(readonly env: string) {} -} - -class TestsFailedError { - readonly _tag = "TestsFailedError"; -} - -class CommonCheckError { - readonly _tag = "CommonCheckError"; -} - -class ConfigError { - readonly _tag = "ConfigError"; - constructor(readonly customMessage?: string) {} -} - -class MoonwallContextError { - readonly _tag = "MoonwallContextError"; -} +import { importAsyncConfig, loadEnvVars } from "../lib/configReader"; +import * as Err from "../errors"; +import { + MoonwallContext, + createContextEffect, + runNetworkOnlyEffect, +} from "../lib/globalContextEffect"; export const testEffect = (envName: string, additionalArgs?: object) => { return Effect.gen(function* (_) { - yield* _( - Effect.tryPromise({ - try: () => cacheConfig(), - catch: () => new ConfigError(), - }) - ); const globalConfig = yield* _( Effect.tryPromise({ try: () => importAsyncConfig(), - catch: () => new ConfigError(), + catch: () => new Err.ConfigError(), }) ); @@ -50,7 +26,7 @@ export const testEffect = (envName: string, additionalArgs?: object) => { Effect.filterOrFail( Effect.sync(() => globalConfig.environments.find(({ name }) => name === envName)), (env) => !!env, - () => new EnvironmentMissingError(envName) + () => new Err.EnvironmentMissingError({ env: envName }) ) ); @@ -60,7 +36,7 @@ export const testEffect = (envName: string, additionalArgs?: object) => { yield* _( Effect.tryPromise({ try: () => commonChecks(env), - catch: () => new CommonCheckError(), + catch: () => new Err.CommonCheckError(), }) ); @@ -75,58 +51,18 @@ export const testEffect = (envName: string, additionalArgs?: object) => { Effect.sync(() => vitest!.state.getFiles().filter((file) => file.result!.state === "fail")) ); - if (failed.length === 0) { - yield* _(Effect.sync(() => console.log("✅ All tests passed"))); - return; - } else { - yield* _(Effect.sync(() => console.log("❌ Some tests failed"))); - yield* _(Effect.fail(new TestsFailedError())); + if (failed.length !== 0) { + yield* _(new Err.TestsFailedError({ fails: failed.length })); } }); }; -export async function testCmd(envName: string, additionalArgs?: object): Promise { - await cacheConfig(); - const globalConfig = await importAsyncConfig(); - const env = globalConfig.environments.find(({ name }) => name === envName)!; - process.env.MOON_TEST_ENV = envName; - - if (!env) { - const envList = globalConfig.environments.map((env) => env.name); - new Error( - `No environment found in config for: ${chalk.bgWhiteBright.blackBright( - envName - )}\n Environments defined in config are: ${envList}\n` - ); - } - loadEnvVars(); - - await commonChecks(env); - - if ( - (env.foundation.type == "dev" && !env.foundation.launchSpec[0].retainAllLogs) || - (env.foundation.type == "chopsticks" && !env.foundation.launchSpec[0].retainAllLogs) - ) { - clearNodeLogs(); - } - const vitest = await executeTests(env, additionalArgs); - const failed = vitest!.state.getFiles().filter((file) => file.result!.state === "fail"); - - if (failed.length === 0) { - console.log("✅ All tests passed"); - return true; - } else { - console.log("❌ Some tests failed"); - return false; - } -} - export const executeTestEffect = (env: Environment, additionalArgs?: object) => { return Effect.gen(function* (_) { const globalConfig = yield* _( Effect.tryPromise({ try: () => importAsyncConfig(), - catch: () => new ConfigError(), + catch: () => new Err.ConfigError(), }) ); @@ -136,12 +72,7 @@ export const executeTestEffect = (env: Environment, additionalArgs?: object) => ) { yield* _(Effect.config(Config.string("MOON_TEST_ENV"))); - const ctx = yield* _( - Effect.tryPromise({ - try: () => contextCreator(), - catch: () => new MoonwallContextError(), - }) - ); + const ctx = yield* _(createContextEffect()); const chainData = yield* _( Effect.filterOrFail( @@ -159,20 +90,22 @@ export const executeTestEffect = (env: Environment, additionalArgs?: object) => ), (data) => data.length > 0, () => - new ConfigError( + new Err.ConfigError( "No polkadotJs provider named 'para' found (this is required for read_only foundations)" ) ) ); - const { rtVersion, rtName } = yield* _(Effect.sync(() => Object.values(chainData[0])[0])); + const { rtVersion, rtName }: any = yield* _( + Effect.sync(() => Object.values(chainData[0])[0]) + ); process.env.MOON_RTVERSION = rtVersion; process.env.MOON_RTNAME = rtName; yield* _( - Effect.tryPromise({ + Effect.try({ try: () => MoonwallContext.destroy(), - catch: () => new MoonwallContextError(), + catch: () => new Err.MoonwallContextError(), }) ); } @@ -201,7 +134,7 @@ export const executeTestEffect = (env: Environment, additionalArgs?: object) => const options = yield* _( Effect.try({ try: () => addThreadConfig(baseOptions, env.multiThreads), - catch: () => new ConfigError(), + catch: () => new Err.ConfigError(), }) ); @@ -209,12 +142,7 @@ export const executeTestEffect = (env: Environment, additionalArgs?: object) => globalConfig.environments.find((env) => env.name === process.env.MOON_TEST_ENV).foundation .type == "zombie" ) { - yield* _( - Effect.tryPromise({ - try: () => runNetworkOnly(), - catch: () => new MoonwallContextError(), - }) - ); + yield* _(runNetworkOnlyEffect()); process.env.MOON_RECYCLE = "true"; } @@ -229,78 +157,6 @@ export const executeTestEffect = (env: Environment, additionalArgs?: object) => }); }; -export async function executeTests(env: Environment, additionalArgs?: object) { - return new Promise(async (resolve, reject) => { - const globalConfig = await importAsyncConfig(); - if (env.foundation.type === "read_only") { - try { - if (!process.env.MOON_TEST_ENV) { - throw new Error("MOON_TEST_ENV not set"); - } - - const ctx = await contextCreator(); - const chainData = ctx.providers - .filter((provider) => provider.type == "polkadotJs" && provider.name.includes("para")) - .map((provider) => { - return { - [provider.name]: { - rtName: (provider.greet() as any).rtName, - rtVersion: (provider.greet() as any).rtVersion, - }, - }; - }); - // TODO: Extend/develop this feature to respect para/relay chain specifications - const { rtVersion, rtName } = Object.values(chainData[0])[0]; - process.env.MOON_RTVERSION = rtVersion; - process.env.MOON_RTNAME = rtName; - await MoonwallContext.destroy(); - } catch { - // No chain to test against - } - } - - const baseOptions = { - watch: false, - globals: true, - reporters: env.reporters ? env.reporters : ["default"], - outputFile: env.reportFile, - testTimeout: env.timeout || globalConfig.defaultTestTimeout, - hookTimeout: env.timeout || globalConfig.defaultTestTimeout, - passWithNoTests: false, - deps: { - optimizer: { ssr: { enabled: false }, web: { enabled: false } }, - }, - include: env.include ? env.include : ["**/*{test,spec,test_,test-}*{ts,mts,cts}"], - onConsoleLog(log) { - if (filterList.includes(log.trim())) return false; - // if (log.trim() == "stdout | unknown test" || log.trim() == "") return false; - if (log.includes("has multiple versions, ensure that there is only one installed.")) { - return false; - } - }, - } satisfies UserConfig; - - // TODO: Create options builder class - const options = addThreadConfig(baseOptions, env.multiThreads); - - if ( - globalConfig.environments.find((env) => env.name === process.env.MOON_TEST_ENV)?.foundation - .type == "zombie" - ) { - await runNetworkOnly(); - process.env.MOON_RECYCLE = "true"; - } - - try { - const folders = env.testFileDir.map((folder) => path.join(".", folder, "/")); - resolve(await startVitest("test", folders, { ...options, ...additionalArgs })); - } catch (e) { - console.error(e); - reject(e); - } - }); -} - const filterList = ["", "", "stdout | unknown test"]; function addThreadConfig( diff --git a/packages/cli/src/errors/MoonwallContextErrors.ts b/packages/cli/src/errors/MoonwallContextErrors.ts new file mode 100644 index 00000000..2fcca885 --- /dev/null +++ b/packages/cli/src/errors/MoonwallContextErrors.ts @@ -0,0 +1,7 @@ +export class MoonwallContextDestroyError { + readonly _tag = "MoonwallContextDestroyError"; +} + +export class MoonwallContextCreateError { + readonly _tag = "MoonwallContextCreateError"; +} diff --git a/packages/cli/src/errors/configErrors.ts b/packages/cli/src/errors/configErrors.ts new file mode 100644 index 00000000..24300797 --- /dev/null +++ b/packages/cli/src/errors/configErrors.ts @@ -0,0 +1,14 @@ +import { Data } from "effect"; + +export class EnvironmentMissingError extends Data.TaggedError("EnvironmentMissingError")<{ + env: string; +}> {} + +export class ConfigError { + readonly _tag = "ConfigError"; + constructor(readonly customMessage?: string) {} +} + +export class MoonwallContextError { + readonly _tag = "MoonwallContextError"; +} diff --git a/packages/cli/src/errors/generalErrors.ts b/packages/cli/src/errors/generalErrors.ts new file mode 100644 index 00000000..87ae58c3 --- /dev/null +++ b/packages/cli/src/errors/generalErrors.ts @@ -0,0 +1,13 @@ +import { Data } from "effect"; + +export class TestsFailedError extends Data.TaggedError("TestsFailedError")<{ fails?: number }> {} + +export class CommonCheckError { + readonly _tag = "CommonCheckError"; +} + +export class RunNetworkError { + readonly _tag = "RunNetworkError"; +} + +export class InvalidCommandError extends Data.TaggedError("InvalidCommand")<{ command: string }> {} diff --git a/packages/cli/src/errors/index.ts b/packages/cli/src/errors/index.ts new file mode 100644 index 00000000..0896df58 --- /dev/null +++ b/packages/cli/src/errors/index.ts @@ -0,0 +1,7 @@ +export * from "./configErrors"; +export * from "./generalErrors"; +export * from "./providerErrors"; +export * from "./zombieErrors"; +export * from "./MoonwallContextErrors"; +export * from "./nonErrors"; +export * from "./rpcErrors"; diff --git a/packages/cli/src/errors/nonErrors.ts b/packages/cli/src/errors/nonErrors.ts new file mode 100644 index 00000000..91b81339 --- /dev/null +++ b/packages/cli/src/errors/nonErrors.ts @@ -0,0 +1,4 @@ +export class ForceQuitFibre { + readonly _tag = "ForceQuitFibre"; + constructor(readonly seconds?: number) {} +} diff --git a/packages/cli/src/errors/providerErrors.ts b/packages/cli/src/errors/providerErrors.ts new file mode 100644 index 00000000..fcebb116 --- /dev/null +++ b/packages/cli/src/errors/providerErrors.ts @@ -0,0 +1,3 @@ +export class ProviderDisconnectError { + readonly _tag = "ProviderDisconnectError"; +} diff --git a/packages/cli/src/errors/rpcErrors.ts b/packages/cli/src/errors/rpcErrors.ts new file mode 100644 index 00000000..bf6320c2 --- /dev/null +++ b/packages/cli/src/errors/rpcErrors.ts @@ -0,0 +1,17 @@ +export class JsonRpcResponseError { + readonly _tag = "JsonRpcResponseError"; + constructor(readonly message?: unknown) {} +} + +export class JsonRpcRequestError { + readonly _tag = "JsonRpcRequestError"; + constructor(readonly message?: unknown) {} +} + +export class JsonRpcRequestTimeout { + readonly _tag = "JsonRpcRequestTimeout"; +} + +export class JsonRpcCannotOpen { + readonly _tag = "JsonRpcCannotOpen"; +} diff --git a/packages/cli/src/errors/zombieErrors.ts b/packages/cli/src/errors/zombieErrors.ts new file mode 100644 index 00000000..ea3927a7 --- /dev/null +++ b/packages/cli/src/errors/zombieErrors.ts @@ -0,0 +1,3 @@ +export class ZombieStopError { + readonly _tag = "ZombieStopError"; +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 3d81747a..5c77e5ab 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -6,7 +6,7 @@ export * from "./lib/binariesHelpers"; export * from "./lib/configReader"; export * from "./lib/contextHelpers"; export * from "./lib/contractFunctions"; -export * from "./lib/globalContext"; +export * from "./lib/globalContextEffect"; export * from "./lib/governanceProcedures"; export * from "./lib/rpcFunctions"; export * from "./lib/runnerContext"; diff --git a/packages/cli/src/internal/cmdFunctions/downloader.ts b/packages/cli/src/internal/cmdFunctions/downloader.ts index 8034f815..ac2fb829 100644 --- a/packages/cli/src/internal/cmdFunctions/downloader.ts +++ b/packages/cli/src/internal/cmdFunctions/downloader.ts @@ -1,6 +1,6 @@ import { SingleBar, Presets } from "cli-progress"; -import fetch from "node-fetch"; import fs from "node:fs"; +import fetch from "node-fetch"; let progressBar: SingleBar; diff --git a/packages/cli/src/internal/cmdFunctions/fetchArtifact.ts b/packages/cli/src/internal/cmdFunctions/fetchArtifact.ts index 25bb6a16..a915f502 100644 --- a/packages/cli/src/internal/cmdFunctions/fetchArtifact.ts +++ b/packages/cli/src/internal/cmdFunctions/fetchArtifact.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import path from "path"; -import fetch from "node-fetch"; import semver from "semver"; +import fetch from "node-fetch"; import chalk from "chalk"; import { runTask } from "../processHelpers"; import { minimatch } from "minimatch"; @@ -37,10 +37,10 @@ export async function fetchArtifact(args) { } }) : args.ver === "latest" - ? releases.find((release) => release.assets.find((asset) => asset.name === binary)) - : releases - .filter((release) => release.tag_name.includes(args.ver)) - .find((release) => release.assets.find((asset) => minimatch(asset.name, binary))); + ? releases.find((release) => release.assets.find((asset) => asset.name === binary)) + : releases + .filter((release) => release.tag_name.includes(args.ver)) + .find((release) => release.assets.find((asset) => minimatch(asset.name, binary))); if (release == null) { throw new Error(`Release not found for ${args.ver}`); @@ -86,7 +86,7 @@ export async function getVersions(name: string, runtime: boolean = false) { throw new Error(`Network not found for ${name}`); } const url = `https://api.github.com/repos/${repo.ghAuthor}/${repo.ghRepo}/releases`; - const releases = (await (await fetch(url)).json()) as Release[]; + const releases = (await ((await fetch(url)) as any).json()) as Release[]; const versions = releases .map((release) => { let tag = release.tag_name; diff --git a/packages/cli/src/internal/cmdFunctions/tempLogs.ts b/packages/cli/src/internal/cmdFunctions/tempLogs.ts index 69f17597..54805fc1 100644 --- a/packages/cli/src/internal/cmdFunctions/tempLogs.ts +++ b/packages/cli/src/internal/cmdFunctions/tempLogs.ts @@ -25,8 +25,8 @@ export function reportLogLocation(silent: boolean = false) { filePath = process.env.MOON_ZOMBIE_DIR ? process.env.MOON_ZOMBIE_DIR : process.env.MOON_LOG_LOCATION - ? process.env.MOON_LOG_LOCATION - : path.join(dirPath, result.find((file) => path.extname(file) == ".log")!); + ? process.env.MOON_LOG_LOCATION + : path.join(dirPath, result.find((file) => path.extname(file) == ".log")!); consoleMessage = ` đŸĒĩ Log location: ${filePath}`; } catch (e) { console.error(e); diff --git a/packages/cli/src/internal/foundations/chopsticksHelpers.ts b/packages/cli/src/internal/foundations/chopsticksHelpers.ts index 72b1dd40..1238964e 100644 --- a/packages/cli/src/internal/foundations/chopsticksHelpers.ts +++ b/packages/cli/src/internal/foundations/chopsticksHelpers.ts @@ -5,7 +5,7 @@ import { FrameSystemEventRecord } from "@polkadot/types/lookup"; import chalk from "chalk"; import { setTimeout } from "timers/promises"; import { assert } from "vitest"; -import { MoonwallContext } from "../../lib/globalContext"; +import { MoonwallContext } from "../../lib/globalContextEffect"; export async function getWsFromConfig(providerName?: string): Promise { if (providerName) { diff --git a/packages/cli/src/internal/foundations/devModeHelpers.ts b/packages/cli/src/internal/foundations/devModeHelpers.ts index 710757ff..5e10e004 100644 --- a/packages/cli/src/internal/foundations/devModeHelpers.ts +++ b/packages/cli/src/internal/foundations/devModeHelpers.ts @@ -16,7 +16,7 @@ import { setTimeout } from "timers/promises"; import { assert } from "vitest"; import { importAsyncConfig, isEthereumDevConfig } from "../../lib/configReader"; import { extractError } from "../../lib/contextHelpers"; -import { MoonwallContext } from "../../lib/globalContext"; +import { MoonwallContext } from "../../lib/globalContextEffect"; const debug = Debug("DevTest"); export async function getDevProviderPath() { diff --git a/packages/cli/src/internal/localNode.ts b/packages/cli/src/internal/localNode.ts index e5193d8b..d3544721 100644 --- a/packages/cli/src/internal/localNode.ts +++ b/packages/cli/src/internal/localNode.ts @@ -1,141 +1,124 @@ -import Debug from "debug"; -import { execaCommand, execaCommandSync } from "execa"; -import path from "path"; +import { Chunk, Effect, Option, Stream, StreamEmit } from "effect"; +import { execaCommand } from "execa"; import fs from "fs"; +import path from "path"; import WebSocket from "ws"; import { checkAccess, checkExists } from "./fileCheckers"; -const debugNode = Debug("global:node"); export type LaunchedNode = { pid: number; kill(signal?: NodeJS.Signals | number, options?: object): boolean; }; -export async function launchNode(cmd: string, args: string[], name: string): Promise { - if (cmd.includes("moonbeam")) { - await checkExists(cmd); - checkAccess(cmd); - } - - const dirPath = path.join(process.cwd(), "tmp", "node_logs"); - if (!fs.existsSync(dirPath)) { - fs.mkdirSync(dirPath, { recursive: true }); - } - - debugNode(`Launching dev node: ${name}`); - const logLocation = path - .join( - dirPath, - `${path.basename(cmd)}_node_${args - .find((a) => a.includes("port")) - ?.split("=")[1]}_${new Date().getTime()}.log` - ) - .replaceAll("node_node_undefined", "chopsticks"); - process.env.MOON_LOG_LOCATION = logLocation; - - const runningNode = execaCommand(`${cmd} ${args.join(" ")}`, { - all: true, - cleanup: false, - detached: false, - }).pipeAll(logLocation); - - probe: for (;;) { - try { - const ports = findPortsByPid(runningNode.pid); +export const launchNodeEffect = (cmd: string, args: string[]) => + Effect.gen(function* (_) { + if (cmd.includes("moonbeam")) { + yield* _(Effect.promise(() => checkExists(cmd))); + yield* _(Effect.sync(() => checkAccess(cmd))); + } + + const dirPath = path.join(process.cwd(), "tmp", "node_logs"); + if (yield* _(Effect.sync(() => !fs.existsSync(dirPath)))) { + yield* _(Effect.sync(() => fs.mkdirSync(dirPath, { recursive: true }))); + } + + const logLocation = path + .join( + dirPath, + `${path.basename(cmd)}_node_${args + .find((a) => a.includes("port")) + ?.split("=")[1]}_${new Date().getTime()}.log` + ) + .replaceAll("node_node_undefined", "chopsticks"); + + process.env.MOON_LOG_LOCATION = logLocation; + + const runningNode = yield* _( + Effect.sync(() => + execaCommand(`${cmd} ${args.join(" ")}`, { + all: true, + cleanup: true, + detached: true, + }).pipeAll(logLocation) + ) + ); + + probe: for (;;) { + const ports = yield* _(findPortsByPidEffect(runningNode.pid)); if (ports) { for (const port of ports) { - try { - await checkWebSocketJSONRPC(port); - // console.log(`Port ${port} supports WebSocket JSON RPC!`); + if (yield* _(Effect.sync(() => webSocketProbe(port)))) { break probe; - } catch { - continue; } } } - } catch { - continue; } - } - - return { pid: runningNode.pid, kill: runningNode.kill }; -} - -async function checkWebSocketJSONRPC(port: number): Promise { - const WEB_SOCKET_TIMEOUT = 5000; // e.g., 5 seconds - - return new Promise((resolve, reject) => { - const ws = new WebSocket(`ws://localhost:${port}`); - const timeout = setTimeout(() => { - ws.close(); - reject(new Error("WebSocket response timeout")); - }, WEB_SOCKET_TIMEOUT); - - const openHandler = () => { - ws.send( - JSON.stringify({ - jsonrpc: "2.0", - id: 1, - method: "system_chain", - params: [], - }) + return { pid: runningNode.pid, kill: runningNode.kill } satisfies LaunchedNode; + }); + +const jsonRpcMessage = { + jsonrpc: "2.0", + id: 1, + method: "system_chain", + params: [], +}; + +const webSocketProbe = (port: number) => + Effect.gen(function* (_) { + const val = yield* _(Stream.runCollect(webSocketStream(port))); + const filtered = Chunk.toArray(val).filter( + (val) => val.result !== undefined && val.result.length > 0 + ); + return filtered.length > 0; + }); + +const webSocketStream = (port: number) => { + const ws = new WebSocket(`ws://127.0.0.1:${port}`); + return Stream.async((emit: StreamEmit.Emit) => { + ws.addEventListener("open", () => { + ws.send(JSON.stringify(jsonRpcMessage)); + }); + ws.addEventListener("message", (e) => { + emit(Effect.succeed(Chunk.of(e.data.toString()))); + emit(Effect.fail(Option.none())); + }); + ws.addEventListener("error", (e) => emit(Effect.succeed(Chunk.of(e.message)))); + ws.addEventListener("close", () => emit(Effect.fail(Option.none()))); + }).pipe( + Stream.map((dataString) => JSON.parse(dataString)), + Stream.ensuring(Effect.sync(() => ws.close())) + ); +}; + +const findPortsByPidEffect = (pid: number, timeout: number = 10000) => + Effect.gen(function* (_) { + const end = yield* _(Effect.sync(() => Date.now() + timeout)); + + for (;;) { + const command = `lsof -i -n -P | grep LISTEN | grep ${pid} || true`; + const { stdout } = yield* _( + Effect.tryPromise(() => + execaCommand(command, { shell: true, cleanup: true, timeout: 2000 }) + ) ); - }; - - const messageHandler = (data: string) => { - clearTimeout(timeout); - try { - const { jsonrpc, id } = JSON.parse(data.toString()); - if (jsonrpc === "2.0" && id === 1) { - resolve(true); - } else { - reject(new Error("Invalid JSON-RPC response")); + const ports: number[] = []; + const lines = stdout.split("\n"); + + for (const line of lines) { + const regex = /(?:\*|127\.0\.0\.1):(\d+)/; + const match = line.match(regex); + if (match) { + ports.push(Number(match[1])); } - } catch (e) { - reject(new Error("Failed to parse WebSocket message")); - } finally { - ws.removeListener("error", errorHandler); - ws.close(); - } - }; - - const errorHandler = (err: Error) => { - clearTimeout(timeout); - ws.removeListener("open", openHandler); - ws.removeListener("message", messageHandler); - ws.close(); - reject(new Error(`WebSocket error: ${err.message}`)); - }; - - ws.once("open", openHandler); - ws.once("message", messageHandler); - ws.once("error", errorHandler); - }); -} - -function findPortsByPid(pid: number, timeout: number = 10000) { - const end = Date.now() + timeout; - - for (;;) { - const command = `lsof -i -n -P | grep LISTEN | grep ${pid} || true`; - const { stdout } = execaCommandSync(command, { shell: true, cleanup: true, timeout: 2000 }); - const ports: number[] = []; - const lines = stdout.split("\n"); - - for (const line of lines) { - const regex = /(?:\*|127\.0\.0\.1):(\d+)/; - const match = line.match(regex); - if (match) { - ports.push(Number(match[1])); } - } - if (ports.length) { - return ports; - } + if (ports.length) { + return ports; + } - if (Date.now() > end) break; - } + if (Date.now() > end) break; - return []; -} + yield* _(Effect.sleep(100)); + } + return []; + }); diff --git a/packages/cli/src/internal/logging.ts b/packages/cli/src/internal/logging.ts index da415a54..f4feaf9d 100644 --- a/packages/cli/src/internal/logging.ts +++ b/packages/cli/src/internal/logging.ts @@ -1,5 +1,8 @@ const originalWrite = process.stderr.write.bind(process.stderr); -const blockList = ["has multiple versions, ensure that there is only one installed"]; +const blockList = [ + "has multiple versions, ensure that there is only one installed", + "Unable to map [u8; 32] to a lookup index", +]; process.stderr.write = ( chunk: string | Uint8Array, diff --git a/packages/cli/src/internal/providerFactories.ts b/packages/cli/src/internal/providerFactories.ts index ab10ff7f..76641f2a 100644 --- a/packages/cli/src/internal/providerFactories.ts +++ b/packages/cli/src/internal/providerFactories.ts @@ -8,7 +8,7 @@ import { Signer, Wallet, ethers } from "ethers"; import { createWalletClient, http, publicActions } from "viem"; import { privateKeyToAccount } from "viem/accounts"; import { Web3 } from "web3"; -import { WebSocketProvider as Web3ProviderWs } from "web3-providers-ws"; +import { WebSocketProvider as Web3ProviderWs } from "web3"; const debug = Debug("global:providers"); export class ProviderFactory { @@ -73,8 +73,7 @@ export class ProviderFactory { {}, { delay: 50, autoReconnect: false, maxAttempts: 10 } ); - - return new Web3(provider) as Web3; + return new Web3(provider); }, }; } @@ -240,7 +239,7 @@ export class ProviderInterfaceFactory { rtName: (api.consts.system.version as any).specName.toString(), }; }, - disconnect: async () => api.disconnect(), + disconnect: async () => await api.disconnect(), }; } @@ -252,16 +251,20 @@ export class ProviderInterfaceFactory { type: this.type, greet: async () => console.log( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore Apparently this exists according to docs? `👋 Provider ${this.name} is connected to chain ` + (await api.eth.getChainId()) ), - disconnect: async () => { - api.currentProvider!.disconnect(); + disconnect: () => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore Apparently this exists according to docs? + // api.provider.disconnect(); <--- this is really problematic and halts exit }, }; } private async createEthers(): Promise { - const api = (await this.connect()) as Signer; + const api = (await this.connect()) as Wallet; return { name: this.name, api, @@ -283,7 +286,7 @@ export class ProviderInterfaceFactory { type: this.type, greet: async () => console.log(`👋 Provider ${this.name} is connected to chain ` + (await api.getChainId())), - disconnect: async () => { + disconnect: () => { // Not needed until we switch to websockets }, }; diff --git a/packages/cli/src/lib/configReader.ts b/packages/cli/src/lib/configReader.ts index b5a2dc85..dc03f40f 100644 --- a/packages/cli/src/lib/configReader.ts +++ b/packages/cli/src/lib/configReader.ts @@ -5,8 +5,6 @@ import { readFileSync } from "fs"; import JSONC from "jsonc-parser"; import path, { extname } from "path"; -let cachedConfig: MoonwallConfig | undefined; - async function parseConfig(filePath: string) { let result: any; @@ -70,43 +68,21 @@ export function isEthereumDevConfig(): boolean { return env.foundation.type == "dev" && !env.foundation.launchSpec[0].disableDefaultEthProviders; } -export async function cacheConfig() { - const configPath = process.env.MOON_CONFIG_PATH!; - const filePath = path.isAbsolute(configPath) ? configPath : path.join(process.cwd(), configPath); - try { - const config = parseConfigSync(filePath); - const replacedConfig = replaceEnvVars(config); - cachedConfig = replacedConfig as MoonwallConfig; - } catch (e) { - console.error(e); - throw new Error(`Error import config at ${filePath}`); - } -} - export function importJsonConfig(): MoonwallConfig { - if (cachedConfig) { - return cachedConfig; - } - const configPath = process.env.MOON_CONFIG_PATH!; const filePath = path.isAbsolute(configPath) ? configPath : path.join(process.cwd(), configPath); try { const config = parseConfigSync(filePath); const replacedConfig = replaceEnvVars(config); - cachedConfig = replacedConfig as MoonwallConfig; - return cachedConfig; + return replacedConfig as MoonwallConfig; } catch (e) { console.error(e); throw new Error(`Error import config at ${filePath}`); } } -export async function importAsyncConfig(): Promise { - if (cachedConfig) { - return cachedConfig; - } - +export async function importAsyncConfig() { const configPath = process.env.MOON_CONFIG_PATH!; const filePath = path.isAbsolute(configPath) ? configPath : path.join(process.cwd(), configPath); @@ -114,8 +90,7 @@ export async function importAsyncConfig(): Promise { const config = await parseConfig(filePath); const replacedConfig = replaceEnvVars(config); - cachedConfig = replacedConfig as MoonwallConfig; - return cachedConfig; + return replacedConfig as MoonwallConfig; } catch (e) { console.error(e); throw new Error(`Error import config at ${filePath}`); diff --git a/packages/cli/src/lib/contractFunctions.ts b/packages/cli/src/lib/contractFunctions.ts index a8904c80..add12966 100644 --- a/packages/cli/src/lib/contractFunctions.ts +++ b/packages/cli/src/lib/contractFunctions.ts @@ -139,8 +139,8 @@ export async function interactWithContract( .viem() .estimateGas({ account: account.address, to: contractAddress, value: 0n, data }) : gas > 0n - ? gas - : 200_000n; + ? gas + : 200_000n; if (!call && rawTxOnly) { return web3Library === "viem" diff --git a/packages/cli/src/lib/globalContext.ts b/packages/cli/src/lib/globalContextEffect.ts similarity index 77% rename from packages/cli/src/lib/globalContext.ts rename to packages/cli/src/lib/globalContextEffect.ts index 69b56b0e..d4b53622 100644 --- a/packages/cli/src/lib/globalContext.ts +++ b/packages/cli/src/lib/globalContextEffect.ts @@ -1,4 +1,5 @@ import "@moonbeam-network/api-augment"; +import { Effect } from "effect"; import { ConnectedProvider, Environment, @@ -14,6 +15,7 @@ import Debug from "debug"; import fs from "fs"; import net from "net"; import readline from "readline"; +import * as Err from "../errors"; import { setTimeout as timer } from "timers/promises"; import { parseChopsticksRunCmd, parseRunCmd, parseZombieCmd } from "../internal/commandParsers"; import { @@ -22,7 +24,7 @@ import { checkZombieBins, getZombieConfig, } from "../internal/foundations/zombieHelpers"; -import { LaunchedNode, launchNode } from "../internal/localNode"; +import { LaunchedNode, launchNodeEffect } from "../internal/localNode"; import { ProviderFactory, ProviderInterfaceFactory, @@ -30,6 +32,7 @@ import { } from "../internal/providerFactories"; import { importAsyncConfig, + importJsonConfig, isEthereumDevConfig, isEthereumZombieConfig, isOptionSet, @@ -37,7 +40,7 @@ import { const debugSetup = Debug("global:context"); export class MoonwallContext { - private static instance: MoonwallContext | undefined; + private static instance: MoonwallContext; environment!: MoonwallEnvironment; providers: ConnectedProvider[]; nodes: LaunchedNode[]; @@ -46,7 +49,7 @@ export class MoonwallContext { rtUpgradePath?: string; ipcServer?: net.Server; - constructor(config: MoonwallConfig) { + private constructor(config: MoonwallConfig) { const env = config.environments.find(({ name }) => name == process.env.MOON_TEST_ENV)!; this.providers = []; this.nodes = []; @@ -111,14 +114,14 @@ export class MoonwallContext { providers: env.connections ? ProviderFactory.prepare(env.connections) : isEthereumDevConfig() - ? ProviderFactory.prepareDefaultDev() - : ProviderFactory.prepare([ - { - name: "node", - type: "polkadotJs", - endpoints: [vitestAutoUrl], - }, - ]), + ? ProviderFactory.prepareDefaultDev() + : ProviderFactory.prepare([ + { + name: "node", + type: "polkadotJs", + endpoints: [vitestAutoUrl], + }, + ]), }; } @@ -192,11 +195,6 @@ export class MoonwallContext { const socketPath = `${network.tmpDir}/node-ipc.sock`; const server = net.createServer((client) => { - // client.on("end", () => { - // console.log("📨 IPC client disconnected"); - // }); - - // Client message handling client.on("data", async (data) => { const writeToClient = (message: IPCResponseMessage) => { if (client.writable) { @@ -305,7 +303,6 @@ export class MoonwallContext { this.ipcServer = server; process.env.MOON_IPC_SOCKET = socketPath; - process.once("exit", onProcessExit); process.once("SIGINT", onProcessExit); this.zombieNetwork = network; @@ -327,9 +324,9 @@ export class MoonwallContext { return await this.startZombieNetwork(); } - const promises = nodes.map(async ({ cmd, args, name, launch }) => { + const promises = nodes.map(async ({ cmd, args, launch }) => { if (launch) { - const result = await launchNode(cmd, args, name!); + const result = await Effect.runPromise(launchNodeEffect(cmd, args)); this.nodes.push(result); } else { return Promise.resolve(); @@ -348,8 +345,8 @@ export class MoonwallContext { this.environment.providers = env.connections ? ProviderFactory.prepare(env.connections) : isEthereumZombieConfig() - ? ProviderFactory.prepareDefaultZombie() - : ProviderFactory.prepareNoEthDefaultZombie(); + ? ProviderFactory.prepareDefaultZombie() + : ProviderFactory.prepareNoEthDefaultZombie(); } if (this.providers.length > 0) { @@ -359,7 +356,7 @@ export class MoonwallContext { const promises = this.environment.providers.map( async ({ name, type, connect }) => new Promise(async (resolve) => { - this.providers.push(await ProviderInterfaceFactory.populate(name, type, connect)); + this.providers.push(await ProviderInterfaceFactory.populate(name, type, connect as any)); resolve(""); }) ); @@ -433,81 +430,107 @@ export class MoonwallContext { public static printStats() { if (MoonwallContext) { - console.dir(MoonwallContext.getContext(), { depth: 1 }); + console.dir(this.getContext(), { depth: 1 }); } else { console.log("Global context not created!"); } } - public static getContext(config?: MoonwallConfig, force: boolean = false): MoonwallContext { + public static getContext(force: boolean = false): MoonwallContext { if (!MoonwallContext.instance || force) { - if (!config) { - throw new Error("❌ Config must be provided on Global Context instantiation"); - } + const config = importJsonConfig(); MoonwallContext.instance = new MoonwallContext(config); - debugSetup(`đŸŸĸ Moonwall context "${config.label}" created`); } - return MoonwallContext.instance; + return this.instance; } - public static async destroy() { - const ctx = this.instance; - - try { - await ctx.disconnect(); - } catch { - console.log("🛑 All connections disconnected"); + public static destroy() { + if (MoonwallContext.getContext()) { + return MoonwallContext.getContext().destroyEffect(); } + } - while (ctx.nodes.length > 0) { - const node = ctx.nodes.pop(); - const pid = node.pid; - node.kill("SIGKILL", { forceKillAfterTimeout: 2000 }); - for (;;) { - if (await isPidRunning(pid)) { - await timer(10); - } else { - break; - } - } - } + public destroyEffect() { + return Effect.gen(function* (_) { + const ctx = MoonwallContext.getContext(); + yield* _( + Effect.tryPromise({ + try: () => ctx.disconnect(), + catch: () => new Err.ProviderDisconnectError(), + }) + ); - if (ctx.zombieNetwork) { - console.log("đŸĒ“ Killing zombie nodes"); - await ctx.zombieNetwork.stop(); - const processIds = Object.values((ctx.zombieNetwork.client as any).processMap) - .filter((item) => item!["pid"]) - .map((process) => process!["pid"]); + if (ctx.nodes.length > 0) { + const node = ctx.nodes[0]; + // yield* _(Effect.promise(() => execaCommand(`kill ${node.pid}`, { shell: true }))); + yield* _(Effect.try(() => node.kill())); - try { - execaCommandSync(`kill ${processIds.join(" ")}`, {}); - } catch (e) { - console.log(e.message); - console.log("continuing..."); + for (;;) { + const isRunning = yield* _(isPidRunningEffect(node.pid)); + if (isRunning) { + yield* _(Effect.sleep(50)); + } else { + break; + } + } } - await waitForPidsToDie(processIds); - - ctx.ipcServer?.close(); - ctx.ipcServer?.removeAllListeners(); - } + if (ctx.zombieNetwork) { + console.log("đŸĒ“ Killing zombie nodes"); + yield* _( + Effect.tryPromise({ + try: () => ctx.zombieNetwork.stop(), + catch: () => new Err.ZombieStopError(), + }) + ); + + const processIds = yield* _( + Effect.filterOrFail( + Effect.sync(() => + Object.values((ctx.zombieNetwork.client as any).processMap) + .filter((item) => item!["pid"]) + .map((process) => process!["pid"]) + ), + (pids) => pids.length > 0, + () => new Err.ZombieStopError() + ) + ); + + yield* _(Effect.sync(() => execaCommandSync(`kill ${processIds.join(" ")}`, {}))); + yield* _(waitForPidsToDieEffect(processIds)); + + yield* _(Effect.sync(() => ctx.ipcServer?.close())); + yield* _(Effect.sync(() => ctx.ipcServer?.removeAllListeners())); + } + }); } } -export const contextCreator = async () => { - const config = await importAsyncConfig(); - const ctx = MoonwallContext.getContext(config); - await runNetworkOnly(); - await ctx.connectEnvironment(); - return ctx; -}; +export const createContextEffect = () => + Effect.gen(function* (_) { + const ctx = yield* _(Effect.sync(() => MoonwallContext.getContext())); + yield* _(runNetworkOnlyEffect()); + yield* _( + Effect.tryPromise({ + try: () => ctx.connectEnvironment(), + catch: () => new Err.MoonwallContextError(), + }) + ); -export const runNetworkOnly = async () => { - const config = await importAsyncConfig(); - const ctx = MoonwallContext.getContext(config); - await ctx.startNetwork(); -}; + return ctx; + }); + +export const runNetworkOnlyEffect = () => + Effect.gen(function* (_) { + const ctx = yield* _(Effect.sync(() => MoonwallContext.getContext())); + yield* _( + Effect.tryPromise({ + try: () => ctx.startNetwork(), + catch: () => new Err.MoonwallContextError(), + }) + ); + }); export interface IGlobalContextFoundation { name: string; @@ -522,23 +545,28 @@ export interface IGlobalContextFoundation { foundationType: FoundationType; } -async function isPidRunning(pid: number): Promise { - try { - await execaCommand(`ps -p ${pid} -o pid=`, { cleanup: true }); - return true; - } catch { +const isPidRunningEffect = (pid: number) => + Effect.gen(function* (_) { + const result = yield* _( + Effect.promise(() => execaCommand(`ps -p ${pid} -o pid=`, { cleanup: true, reject: false })) + ); + + if (result.exitCode === 0) { + return result.stdout.trim() === pid.toString(); + } + return false; - } -} + }); -async function waitForPidsToDie(pids: number[]): Promise { - const checkPids = async (): Promise => { - const checks = pids.map(async (pid) => await isPidRunning(pid)); - const results = await Promise.all(checks); - return results.every((running) => !running); - }; +const waitForPidsToDieEffect = (pids: number[]) => + Effect.gen(function* (_) { + const checkAliveEffect = () => { + return Effect.allSuccesses(pids.map((pid) => isPidRunningEffect(pid))).pipe( + Effect.map((res) => res.every((running) => !running)) + ); + }; - while (!(await checkPids())) { - await new Promise((resolve) => setTimeout(resolve, 1000)); - } -} + while (!(yield* _(checkAliveEffect()))) { + yield* _(Effect.sleep(1000)); + } + }); diff --git a/packages/cli/src/lib/handlers/chopsticksHandler.ts b/packages/cli/src/lib/handlers/chopsticksHandler.ts index 780ed149..cf127e00 100644 --- a/packages/cli/src/lib/handlers/chopsticksHandler.ts +++ b/packages/cli/src/lib/handlers/chopsticksHandler.ts @@ -10,7 +10,7 @@ import { createChopsticksBlock, sendSetStorageRequest, } from "../../internal/foundations/chopsticksHelpers"; -import { MoonwallContext } from "../globalContext"; +import { MoonwallContext } from "../globalContextEffect"; import { upgradeRuntimeChopsticks } from "../upgradeProcedures"; export const chopsticksHandler: FoundationHandler<"chopsticks"> = ({ diff --git a/packages/cli/src/lib/handlers/readOnlyHandler.ts b/packages/cli/src/lib/handlers/readOnlyHandler.ts index beda0572..c339cba8 100644 --- a/packages/cli/src/lib/handlers/readOnlyHandler.ts +++ b/packages/cli/src/lib/handlers/readOnlyHandler.ts @@ -1,6 +1,6 @@ import { ApiPromise } from "@polkadot/api"; import { FoundationHandler } from "@moonwall/types"; -import { MoonwallContext } from "../globalContext"; +import { MoonwallContext } from "../globalContextEffect"; export const readOnlyHandler: FoundationHandler<"read_only"> = ({ testCases, diff --git a/packages/cli/src/lib/handlers/zombieHandler.ts b/packages/cli/src/lib/handlers/zombieHandler.ts index ea07568a..9ce96b38 100644 --- a/packages/cli/src/lib/handlers/zombieHandler.ts +++ b/packages/cli/src/lib/handlers/zombieHandler.ts @@ -1,7 +1,7 @@ import { FoundationHandler, UpgradePreferences } from "@moonwall/types"; import { ApiPromise } from "@polkadot/api"; import { upgradeRuntime } from "../upgradeProcedures"; -import { MoonwallContext } from "../globalContext"; +import { MoonwallContext } from "../globalContextEffect"; import { alith } from "@moonwall/util"; import { sendIpcMessage } from "../../internal/foundations/zombieHelpers"; diff --git a/packages/cli/src/lib/runnerContext.ts b/packages/cli/src/lib/runnerContext.ts index a51be395..c5c519e2 100644 --- a/packages/cli/src/lib/runnerContext.ts +++ b/packages/cli/src/lib/runnerContext.ts @@ -13,17 +13,19 @@ import type { ViemClient, } from "@moonwall/types"; import { ApiPromise } from "@polkadot/api"; +import { Config, Effect } from "effect"; +import * as Err from "../errors"; import Bottleneck from "bottleneck"; import Debug from "debug"; import { Signer } from "ethers"; import { afterAll, beforeAll, describe, it } from "vitest"; import { Web3 } from "web3"; import { importAsyncConfig } from "./configReader"; -import { MoonwallContext, contextCreator } from "./globalContext"; import { chopsticksHandler } from "./handlers/chopsticksHandler"; import { devHandler } from "./handlers/devHandler"; import { readOnlyHandler } from "./handlers/readOnlyHandler"; import { zombieHandler } from "./handlers/zombieHandler"; +import { createContextEffect } from "./globalContextEffect"; const RT_VERSION = Number(process.env.MOON_RTVERSION); const RT_NAME = process.env.MOON_RTNAME; @@ -78,26 +80,40 @@ export function describeSuite({ describe.skip(`🗃ī¸ #${suiteId} ${title}`); return; } - let ctx: MoonwallContext | null = null; + let ctx: any; beforeAll(async function () { - const globalConfig = await importAsyncConfig(); + const effect = Effect.gen(function* (_) { + const globalConfig = yield* _( + Effect.tryPromise({ + try: () => importAsyncConfig(), + catch: () => new Err.ConfigError("Could not load config before running test"), + }) + ); - if (!process.env.MOON_TEST_ENV) { - throw new Error("MOON_TEST_ENV not set"); - } + yield* _(Effect.config(Config.string("MOON_TEST_ENV"))); + const env = globalConfig.environments.find(({ name }) => name === process.env.MOON_TEST_ENV); + + if (env.foundation.type === "read_only") { + const settings = loadParams(env.foundation.launchSpec); + limiter = new Bottleneck(settings); + } - ctx = await contextCreator(); - const env = globalConfig.environments.find(({ name }) => name === process.env.MOON_TEST_ENV)!; + return yield* _(createContextEffect()); + }); - if (env.foundation.type === "read_only") { - const settings = loadParams(env.foundation.launchSpec); - limiter = new Bottleneck(settings); - } + ctx = await Effect.runPromise(effect); }); afterAll(async function () { - await MoonwallContext.destroy(); + const effect = ctx.destroyEffect().pipe( + Effect.timeoutFail({ + duration: "10 seconds", + onTimeout: () => new Err.MoonwallContextDestroyError(), + }) + ); + + await Effect.runPromise(effect); ctx = null; }); diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 6a49e182..0359a3e5 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": {}, + "types": ["node", "yargs", "debug", "ws"], "include": ["./src/**/*.ts"], "exclude": ["**/dist/**"] } diff --git a/packages/types/package.json b/packages/types/package.json index 6626af62..51869b7b 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -58,26 +58,26 @@ "schema": "typescript-json-schema --tsNodeRegister --esModuleInterop -o config_schema.json ./src/config.ts MoonwallConfig" }, "dependencies": { - "@polkadot/api": "^10.10.1", - "@polkadot/api-base": "^10.10.1", - "@polkadot/keyring": "^12.5.1", - "@polkadot/types": "^10.10.1", - "@polkadot/util": "^12.5.1", - "@polkadot/util-crypto": "^12.5.1", - "@types/node": "^20.9.0", + "@polkadot/api": "^10.11.1", + "@polkadot/api-base": "^10.11.1", + "@polkadot/keyring": "^12.6.1", + "@polkadot/types": "^10.11.1", + "@polkadot/util": "^12.6.1", + "@polkadot/util-crypto": "^12.6.1", + "@types/node": "^20.9.4", "@zombienet/utils": "^0.0.24", "bottleneck": "^2.19.5", "debug": "^4.3.4", - "ethers": "^6.8.1", - "viem": "^1.18.9", + "ethers": "6.8.1", + "viem": "^1.19.6", "web3": "4.2.2" }, "publishConfig": { "access": "public" }, "devDependencies": { - "tsup": "^7.2.0", - "typescript": "^5.2.2", + "tsup": "^8.0.1", + "typescript": "^5.3.2", "typescript-json-schema": "^0.62.0" } } diff --git a/packages/types/src/context.ts b/packages/types/src/context.ts index 0a810a5e..8da0f3ae 100644 --- a/packages/types/src/context.ts +++ b/packages/types/src/context.ts @@ -7,7 +7,7 @@ import { EventRecord } from "@polkadot/types/interfaces"; import { AnyTuple, RegistryError } from "@polkadot/types/types"; import { Debugger } from "debug"; import { Signer } from "ethers"; -import { Web3 } from "web3"; +import type { Web3 } from "web3"; import { FoundationType, ProviderType } from "./config"; import { CallType } from "./foundations"; import { ViemClient } from "./runner"; @@ -38,7 +38,7 @@ export type MoonwallEnvironment = { export interface MoonwallProvider { name: string; type: ProviderType; - connect: () => Promise | Signer | Web3 | Promise | void; + connect: () => Promise | Signer | Web3 | Promise | void; ws?: () => WsProvider; } @@ -106,7 +106,7 @@ export interface BlockCreation { export interface BlockCreationResponse< ApiType extends ApiTypes, - Calls extends CallType | CallType[] + Calls extends CallType | CallType[], > { block: { duration: number; diff --git a/packages/types/src/helpers.ts b/packages/types/src/helpers.ts index 6d4e0c61..68099e56 100644 --- a/packages/types/src/helpers.ts +++ b/packages/types/src/helpers.ts @@ -2,6 +2,6 @@ export type DeepPartial = { [P in keyof T]?: T[P] extends (infer U)[] ? DeepPartial[] : T[P] extends ReadonlyArray - ? ReadonlyArray> - : DeepPartial; + ? ReadonlyArray> + : DeepPartial; }; diff --git a/packages/types/src/runner.ts b/packages/types/src/runner.ts index 1d40bdbd..3e31b140 100644 --- a/packages/types/src/runner.ts +++ b/packages/types/src/runner.ts @@ -54,12 +54,12 @@ export type FoundationContextMap = { [K in FoundationMethod]: K extends "dev" ? DevModeContext : K extends "chopsticks" - ? ChopsticksContext - : K extends "zombie" - ? ZombieContext - : K extends "read_only" - ? ReadOnlyContext - : /* default: */ GenericContext; + ? ChopsticksContext + : K extends "zombie" + ? ZombieContext + : K extends "read_only" + ? ReadOnlyContext + : /* default: */ GenericContext; }; export type TestContextMap = { @@ -390,7 +390,7 @@ export interface DevModeContext extends GenericContext { }) | (EthersTransactionOptions & { libraryType: "ethers"; - }) + }), >( options: TOptions ): Promise<`0x${string}`>; @@ -447,12 +447,11 @@ export interface DevModeContext extends GenericContext { }>; } -export type ViemTransactionOptions = - | TransactionSerializable & { - privateKey?: `0x${string}`; - skipEstimation?: boolean; - txnType?: TransactionType; - }; +export type ViemTransactionOptions = TransactionSerializable & { + privateKey?: `0x${string}`; + skipEstimation?: boolean; + txnType?: TransactionType; +}; export type EthersTransactionOptions = TransactionRequest & { txnType?: TransactionType; diff --git a/packages/util/package.json b/packages/util/package.json index 38560bc6..5b89135c 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -59,15 +59,15 @@ "dependencies": { "@moonbeam-network/api-augment": "^0.2600.0", "@moonwall/types": "workspace:*", - "@polkadot/api": "^10.10.1", - "@polkadot/api-augment": "^10.10.1", - "@polkadot/api-derive": "^10.10.1", - "@polkadot/keyring": "^12.5.1", - "@polkadot/rpc-provider": "^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", + "@polkadot/api": "^10.11.1", + "@polkadot/api-augment": "^10.11.1", + "@polkadot/api-derive": "^10.11.1", + "@polkadot/keyring": "^12.6.1", + "@polkadot/rpc-provider": "^10.11.1", + "@polkadot/types": "^10.11.1", + "@polkadot/types-codec": "^10.11.1", + "@polkadot/util": "^12.6.1", + "@polkadot/util-crypto": "^12.6.1", "bottleneck": "^2.19.5", "chalk": "^5.3.0", "clear": "^0.1.0", @@ -75,14 +75,13 @@ "colors": "^1.4.0", "debug": "^4.3.4", "dotenv": "^16.3.1", - "ethers": "^6.8.1", + "ethers": "6.8.1", "inquirer": "^9.2.12", "inquirer-press-to-continue": "^1.2.0", - "node-fetch": "^3.3.2", "rlp": "^3.0.0", "semver": "^7.5.4", - "viem": "^1.18.9", - "vitest": "1.0.0-beta.4", + "viem": "^1.19.6", + "vitest": "1.0.0-beta.5", "web3": "4.2.2", "ws": "^8.14.2", "yaml": "^2.3.4", @@ -90,11 +89,11 @@ }, "devDependencies": { "@types/debug": "^4.1.12", - "@types/node": "^20.9.0", - "@types/yargs": "^17.0.31", - "prettier": "^3.0.3", - "tsup": "^7.2.0", - "typescript": "^5.2.2" + "@types/node": "^20.9.4", + "@types/yargs": "^17.0.32", + "prettier": "^3.1.0", + "tsup": "^8.0.1", + "typescript": "^5.3.2" }, "publishConfig": { "access": "public" diff --git a/packages/util/src/functions/common.ts b/packages/util/src/functions/common.ts index f1b9a49b..9fae2f80 100644 --- a/packages/util/src/functions/common.ts +++ b/packages/util/src/functions/common.ts @@ -1,7 +1,5 @@ import "@moonbeam-network/api-augment"; import { BN } from "@polkadot/util"; -import fetch from "node-fetch"; - // Sort dict by key export function sortObjectByKeys(o) { return Object.keys(o) @@ -111,11 +109,11 @@ export async function directRpcRequest( params, }; - const response = await fetch(endpoint, { + const response = (await fetch(endpoint, { method: "POST", body: JSON.stringify(data), headers: { "Content-Type": "application/json" }, - }); + })) as any; const responseData = (await response.json()) as JsonRpcResponse; diff --git a/packages/util/src/functions/viem.ts b/packages/util/src/functions/viem.ts index 18e45445..6e269b33 100644 --- a/packages/util/src/functions/viem.ts +++ b/packages/util/src/functions/viem.ts @@ -250,26 +250,26 @@ export async function createViemTransaction 0) { txnBlob["accessList"] = accessList; @@ -293,8 +293,8 @@ export async function checkBalance( return typeof block == "string" ? await context.viem().getBalance({ address: account, blockTag: block }) : typeof block == "bigint" - ? await context.viem().getBalance({ address: account, blockNumber: block }) - : await context.viem().getBalance({ address: account }); + ? await context.viem().getBalance({ address: account, blockNumber: block }) + : await context.viem().getBalance({ address: account }); } /** diff --git a/packages/util/tsconfig.json b/packages/util/tsconfig.json index 6a49e182..c86c98c9 100644 --- a/packages/util/tsconfig.json +++ b/packages/util/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": {}, + "types": ["node", "yargs", "debug"], "include": ["./src/**/*.ts"], "exclude": ["**/dist/**"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9816a628..d837a1c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,48 +15,48 @@ importers: specifier: ^1.1.0 version: 1.1.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.10.0 - version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.12.0 + version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/parser': - specifier: ^6.10.0 - version: 6.10.0(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.12.0 + version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) eslint: - specifier: ^8.53.0 - version: 8.53.0 + specifier: ^8.54.0 + version: 8.54.0 eslint-config-prettier: specifier: ^9.0.0 - version: 9.0.0(eslint@8.53.0) + version: 9.0.0(eslint@8.54.0) eslint-config-xo: specifier: ^0.43.1 - version: 0.43.1(eslint@8.53.0) + version: 0.43.1(eslint@8.54.0) eslint-config-xo-typescript: specifier: ^1.0.1 - version: 1.0.1(@typescript-eslint/eslint-plugin@6.10.0)(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) + version: 1.0.1(@typescript-eslint/eslint-plugin@6.12.0)(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) prettier: - specifier: ^2.8.8 - version: 2.8.8 + specifier: ^3.1.0 + version: 3.1.0 typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.2 + version: 5.3.2 docs: dependencies: '@algolia/client-search': - specifier: '>=4.9.1 <6.0.0-0' + specifier: ^4.20.0 version: 4.20.0 search-insights: - specifier: '>=1.0.0 <3.0.0-0' - version: 2.8.3 + specifier: ^2.10.0 + version: 2.10.0 devDependencies: vitepress: specifier: 1.0.0-rc.10 - version: 1.0.0-rc.10(@algolia/client-search@4.20.0)(search-insights@2.8.3) + version: 1.0.0-rc.10(@algolia/client-search@4.20.0)(search-insights@2.10.0)(typescript@5.3.2) packages/cli: dependencies: '@acala-network/chopsticks': - specifier: ^0.9.1 - version: 0.9.1(@polkadot/util@12.5.1)(debug@4.3.4) + specifier: ^0.9.2 + version: 0.9.2(debug@4.3.4) '@moonbeam-network/api-augment': specifier: ^0.2600.0 version: 0.2600.0 @@ -67,35 +67,41 @@ importers: specifier: workspace:* version: link:../util '@polkadot/api': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/api-augment': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/api-derive': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/keyring': - specifier: ^12.5.1 - version: 12.5.1(@polkadot/util-crypto@12.5.1)(@polkadot/util@12.5.1) + specifier: ^12.6.1 + version: 12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1) '@polkadot/types': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/types-codec': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/util': - specifier: ^12.5.1 - version: 12.5.1 + specifier: ^12.6.1 + version: 12.6.1 '@polkadot/util-crypto': - specifier: ^12.5.1 - version: 12.5.1(@polkadot/util@12.5.1) + specifier: ^12.6.1 + version: 12.6.1(@polkadot/util@12.6.1) + '@types/ws': + specifier: ^8.5.10 + version: 8.5.10 + '@vitest/ui': + specifier: 1.0.0-beta.5 + version: 1.0.0-beta.5(vitest@1.0.0-beta.5) '@zombienet/orchestrator': specifier: ^0.0.62 - version: 0.0.62(@polkadot/util@12.5.1)(@types/node@20.9.0) + version: 0.0.62(@polkadot/util@12.6.1)(@types/node@20.9.4) '@zombienet/utils': specifier: ^0.0.24 - version: 0.0.24(@types/node@20.9.0)(typescript@5.2.2) + version: 0.0.24(@types/node@20.9.4)(typescript@5.3.2) bottleneck: specifier: ^2.19.5 version: 2.19.5 @@ -118,10 +124,10 @@ importers: specifier: ^16.3.1 version: 16.3.1 effect: - specifier: 2.0.0-next.54 - version: 2.0.0-next.54 + specifier: 2.0.0-next.56 + version: 2.0.0-next.56 ethers: - specifier: ^6.8.1 + specifier: 6.8.1 version: 6.8.1 execa: specifier: ^8.0.1 @@ -145,17 +151,14 @@ importers: specifier: ^7.5.4 version: 7.5.4 viem: - specifier: ^1.18.9 - version: 1.18.9(typescript@5.2.2) + specifier: ^1.19.6 + version: 1.19.6(typescript@5.3.2) vitest: - specifier: 1.0.0-beta.4 - version: 1.0.0-beta.4(@types/node@20.9.0)(@vitest/ui@1.0.0-beta.4) + specifier: 1.0.0-beta.5 + version: 1.0.0-beta.5(@types/node@20.9.4)(@vitest/ui@1.0.0-beta.5) web3: specifier: 4.2.2 - version: 4.2.2(typescript@5.2.2) - web3-providers-ws: - specifier: 4.0.7 - version: 4.0.7 + version: 4.2.2(typescript@5.3.2) ws: specifier: ^8.14.2 version: 8.14.2 @@ -173,50 +176,50 @@ importers: specifier: ^4.1.12 version: 4.1.12 '@types/node': - specifier: ^20.9.0 - version: 20.9.0 + specifier: ^20.9.4 + version: 20.9.4 '@types/yargs': - specifier: ^17.0.31 - version: 17.0.31 + specifier: ^17.0.32 + version: 17.0.32 prettier: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^3.1.0 + version: 3.1.0 tsup: - specifier: ^7.2.0 - version: 7.2.0(typescript@5.2.2) + specifier: ^8.0.1 + version: 8.0.1(typescript@5.3.2) tsx: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.2.0 + version: 4.2.0 typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.2 + version: 5.3.2 packages/types: dependencies: '@polkadot/api': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/api-base': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/keyring': - specifier: ^12.5.1 - version: 12.5.1(@polkadot/util-crypto@12.5.1)(@polkadot/util@12.5.1) + specifier: ^12.6.1 + version: 12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1) '@polkadot/types': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/util': - specifier: ^12.5.1 - version: 12.5.1 + specifier: ^12.6.1 + version: 12.6.1 '@polkadot/util-crypto': - specifier: ^12.5.1 - version: 12.5.1(@polkadot/util@12.5.1) + specifier: ^12.6.1 + version: 12.6.1(@polkadot/util@12.6.1) '@types/node': - specifier: ^20.9.0 - version: 20.9.0 + specifier: ^20.9.4 + version: 20.9.4 '@zombienet/utils': specifier: ^0.0.24 - version: 0.0.24(@types/node@20.9.0)(typescript@5.2.2) + version: 0.0.24(@types/node@20.9.4)(typescript@5.3.2) bottleneck: specifier: ^2.19.5 version: 2.19.5 @@ -224,21 +227,21 @@ importers: specifier: ^4.3.4 version: 4.3.4(supports-color@8.1.1) ethers: - specifier: ^6.8.1 + specifier: 6.8.1 version: 6.8.1 viem: - specifier: ^1.18.9 - version: 1.18.9(typescript@5.2.2) + specifier: ^1.19.6 + version: 1.19.6(typescript@5.3.2) web3: specifier: 4.2.2 - version: 4.2.2(typescript@5.2.2) + version: 4.2.2(typescript@5.3.2) devDependencies: tsup: - specifier: ^7.2.0 - version: 7.2.0(typescript@5.2.2) + specifier: ^8.0.1 + version: 8.0.1(typescript@5.3.2) typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.2 + version: 5.3.2 typescript-json-schema: specifier: ^0.62.0 version: 0.62.0 @@ -252,32 +255,32 @@ importers: specifier: workspace:* version: link:../types '@polkadot/api': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/api-augment': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/api-derive': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/keyring': - specifier: ^12.5.1 - version: 12.5.1(@polkadot/util-crypto@12.5.1)(@polkadot/util@12.5.1) + specifier: ^12.6.1 + version: 12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1) '@polkadot/rpc-provider': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/types': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/types-codec': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/util': - specifier: ^12.5.1 - version: 12.5.1 + specifier: ^12.6.1 + version: 12.6.1 '@polkadot/util-crypto': - specifier: ^12.5.1 - version: 12.5.1(@polkadot/util@12.5.1) + specifier: ^12.6.1 + version: 12.6.1(@polkadot/util@12.6.1) bottleneck: specifier: ^2.19.5 version: 2.19.5 @@ -300,7 +303,7 @@ importers: specifier: ^16.3.1 version: 16.3.1 ethers: - specifier: ^6.8.1 + specifier: 6.8.1 version: 6.8.1 inquirer: specifier: ^9.2.12 @@ -308,9 +311,6 @@ importers: inquirer-press-to-continue: specifier: ^1.2.0 version: 1.2.0(inquirer@9.2.12) - node-fetch: - specifier: ^3.3.2 - version: 3.3.2 rlp: specifier: ^3.0.0 version: 3.0.0 @@ -318,14 +318,14 @@ importers: specifier: ^7.5.4 version: 7.5.4 viem: - specifier: ^1.18.9 - version: 1.18.9(typescript@5.2.2) + specifier: ^1.19.6 + version: 1.19.6(typescript@5.3.2) vitest: - specifier: 1.0.0-beta.4 - version: 1.0.0-beta.4(@types/node@20.9.0)(@vitest/ui@1.0.0-beta.4) + specifier: 1.0.0-beta.5 + version: 1.0.0-beta.5(@types/node@20.9.4)(@vitest/ui@1.0.0-beta.5) web3: specifier: 4.2.2 - version: 4.2.2(typescript@5.2.2) + version: 4.2.2(typescript@5.3.2) ws: specifier: ^8.14.2 version: 8.14.2 @@ -340,26 +340,26 @@ importers: specifier: ^4.1.12 version: 4.1.12 '@types/node': - specifier: ^20.9.0 - version: 20.9.0 + specifier: ^20.9.4 + version: 20.9.4 '@types/yargs': - specifier: ^17.0.31 - version: 17.0.31 + specifier: ^17.0.32 + version: 17.0.32 prettier: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^3.1.0 + version: 3.1.0 tsup: - specifier: ^7.2.0 - version: 7.2.0(typescript@5.2.2) + specifier: ^8.0.1 + version: 8.0.1(typescript@5.3.2) typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.2 + version: 5.3.2 test: devDependencies: '@acala-network/chopsticks': - specifier: ^0.9.1 - version: 0.9.1(@polkadot/util@12.5.1)(debug@4.3.4) + specifier: ^0.9.2 + version: 0.9.2(debug@4.3.4) '@moonbeam-network/api-augment': specifier: ^0.2600.0 version: 0.2600.0 @@ -376,23 +376,23 @@ importers: specifier: ^5.0.0 version: 5.0.0 '@polkadot/api': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/api-augment': - specifier: ^10.10.1 - version: 10.10.1 + specifier: ^10.11.1 + version: 10.11.1 '@polkadot/util': - specifier: ^12.5.1 - version: 12.5.1 + specifier: ^12.6.1 + version: 12.6.1 '@types/node': - specifier: ^20.9.0 - version: 20.9.0 + specifier: ^20.9.4 + version: 20.9.4 '@vitest/ui': - specifier: 1.0.0-beta.4 - version: 1.0.0-beta.4(vitest@1.0.0-beta.4) + specifier: 1.0.0-beta.5 + version: 1.0.0-beta.5(vitest@1.0.0-beta.5) bun-types: - specifier: ^1.0.11 - version: 1.0.11 + specifier: ^1.0.13 + version: 1.0.13 chai: specifier: ^4.3.10 version: 4.3.10 @@ -400,32 +400,32 @@ importers: specifier: ^5.3.0 version: 5.3.0 ethers: - specifier: ^6.8.1 + specifier: 6.8.1 version: 6.8.1 pnpm: - specifier: 8.10.2 - version: 8.10.2 + specifier: 8.10.5 + version: 8.10.5 prettier: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^3.1.0 + version: 3.1.0 solc: specifier: ^0.8.23 version: 0.8.23 tsx: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.2.0 + version: 4.2.0 typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.2 + version: 5.3.2 viem: - specifier: ^1.18.9 - version: 1.18.9(typescript@5.2.2) + specifier: ^1.19.6 + version: 1.19.6(typescript@5.3.2) vitest: - specifier: 1.0.0-beta.4 - version: 1.0.0-beta.4(@types/node@20.9.0)(@vitest/ui@1.0.0-beta.4) + specifier: 1.0.0-beta.5 + version: 1.0.0-beta.5(@types/node@20.9.4)(@vitest/ui@1.0.0-beta.5) web3: specifier: 4.2.2 - version: 4.2.2(typescript@5.2.2) + version: 4.2.2(typescript@5.3.2) yargs: specifier: ^17.7.2 version: 17.7.2 @@ -437,34 +437,40 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@acala-network/chopsticks-core@0.9.1(@polkadot/util@12.5.1): - resolution: {integrity: sha512-pFPbSELcpkSzPy9lpomYAcn6BMFXqn6Z+0RNR+CcLSqHeMoJRKGh/w9T7MwFKd4MqDjY8/WZhLmp4X6bp7xAng==} + /@acala-network/chopsticks-core@0.9.2: + resolution: {integrity: sha512-gFMOIlzy5i0UgxJGCZjlqsWPGJxaAOyjqeIaG2gzngeEg49ZyavesMDC2g1TOqQJhkB0ytXzw9w7yS9sj8NE+A==} dependencies: - '@acala-network/chopsticks-executor': 0.9.1 - '@polkadot/api': 10.10.1 - '@polkadot/util-crypto': 12.5.1(@polkadot/util@12.5.1) + '@acala-network/chopsticks-executor': 0.9.2 + '@polkadot/api': 10.11.1 + '@polkadot/rpc-provider': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/types-known': 10.11.1 + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) comlink: 4.4.1 eventemitter3: 5.0.1 lodash: 4.17.21 - pino: 8.16.1 + lru-cache: 10.0.3 + pino: 8.16.2 pino-pretty: 10.2.3 + rxjs: 7.8.1 zod: 3.22.4 transitivePeerDependencies: - - '@polkadot/util' - bufferutil - supports-color - utf-8-validate - /@acala-network/chopsticks-db@0.9.1(@polkadot/util@12.5.1): - resolution: {integrity: sha512-jtDTqGu5CKyaAKKHI3Oi8FIRc3jwm1oMgbjTSYWD9oSzEBAqn2Xmbwg6VxCQhWH20ydrcxPyALEWb9mMICoNtw==} + /@acala-network/chopsticks-db@0.9.2: + resolution: {integrity: sha512-2XQhCP3Bjl6bv4dGQ0+WjnUKymG13KRuzZP30OQRBusEgyvMA3MstQtGjMr0M0S+FsxLWc904nGdk/bJVLrZLQ==} dependencies: - '@acala-network/chopsticks-core': 0.9.1(@polkadot/util@12.5.1) + '@acala-network/chopsticks-core': 0.9.2 + '@polkadot/util': 12.6.1 idb: 7.1.1 sqlite3: 5.1.6 typeorm: 0.3.17(sqlite3@5.1.6) transitivePeerDependencies: - '@google-cloud/spanner' - - '@polkadot/util' - '@sap/hana-client' - better-sqlite3 - bluebird @@ -486,20 +492,24 @@ packages: - typeorm-aurora-data-api-driver - utf-8-validate - /@acala-network/chopsticks-executor@0.9.1: - resolution: {integrity: sha512-uukm3GInn+z+3jjZTFClJZjoWlM/IudpaYw+wO5h+6XIySmkLIfsPd19Kq4Nj0S0DFRPDHynnqsgg2JL789P+A==} + /@acala-network/chopsticks-executor@0.9.2: + resolution: {integrity: sha512-BVuUo8rHDIM+ociVSihQK64xtQ2mIDJfe/n/+kLr8MA4Dwuv8kHQV3lo68mmc9gpojhYT/vBvI64iXxeKpBKhw==} dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/wasm-util': 7.2.2(@polkadot/util@12.5.1) + '@polkadot/util': 12.6.1 + '@polkadot/wasm-util': 7.3.1(@polkadot/util@12.6.1) - /@acala-network/chopsticks@0.9.1(@polkadot/util@12.5.1)(debug@4.3.4): - resolution: {integrity: sha512-oTrJGQ/omE/6Di06RIPwAD4VdC8akstWY4GpZc1n+ZGn5YIHLDv7Nxzi2q2VBY9zBIIAp8Xw96cMId7ane2G+Q==} + /@acala-network/chopsticks@0.9.2(debug@4.3.4): + resolution: {integrity: sha512-gp9E3AxHKsH7VFLxa8gOGnSK2S+UWpX7JOTXBUE/PF5d+AJNcx3DqrwyPFbqWxj1biTyxIXRtmeMJMf5xu2ojg==} hasBin: true dependencies: - '@acala-network/chopsticks-core': 0.9.1(@polkadot/util@12.5.1) - '@acala-network/chopsticks-db': 0.9.1(@polkadot/util@12.5.1) + '@acala-network/chopsticks-core': 0.9.2 + '@acala-network/chopsticks-db': 0.9.2 '@pnpm/npm-conf': 2.2.2 - axios: 1.6.1(debug@4.3.4) + '@polkadot/api-augment': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) + axios: 1.6.2(debug@4.3.4) dotenv: 16.3.1 global-agent: 3.0.0 js-yaml: 4.1.0 @@ -510,7 +520,6 @@ packages: zod: 3.22.4 transitivePeerDependencies: - '@google-cloud/spanner' - - '@polkadot/util' - '@sap/hana-client' - better-sqlite3 - bluebird @@ -536,13 +545,10 @@ packages: /@adraffy/ens-normalize@1.10.0: resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} - /@adraffy/ens-normalize@1.9.4: - resolution: {integrity: sha512-UK0bHA7hh9cR39V+4gl2/NnBBjoXIxkuWAPCaY4X7fbH4L/azIi7ilWOCjMUYfpJgraLUAqkRi2BqrjME8Rynw==} - - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.8.3): + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.8.3) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0) '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0) transitivePeerDependencies: - '@algolia/client-search' @@ -550,13 +556,13 @@ packages: - search-insights dev: true - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.8.3): + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0): resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0) - search-insights: 2.8.3 + search-insights: 2.10.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch @@ -694,12 +700,12 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/runtime@7.23.2: @@ -708,8 +714,8 @@ packages: dependencies: regenerator-runtime: 0.14.0 - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + /@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 @@ -771,8 +777,8 @@ packages: '@changesets/types': 5.2.1 '@changesets/write': 0.2.3 '@manypkg/get-packages': 1.1.3 - '@types/is-ci': 3.0.2 - '@types/semver': 7.5.3 + '@types/is-ci': 3.0.4 + '@types/semver': 7.5.5 ansi-colors: 4.1.3 chalk: 2.4.2 enquirer: 2.4.1 @@ -788,7 +794,7 @@ packages: semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 - tty-table: 4.2.2 + tty-table: 4.2.3 dev: true /@changesets/config@2.3.1: @@ -918,11 +924,11 @@ packages: resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} dev: true - /@docsearch/js@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.8.3): + /@docsearch/js@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0): resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} dependencies: - '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.8.3) - preact: 10.18.1 + '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0) + preact: 10.19.2 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -931,7 +937,7 @@ packages: - search-insights dev: true - /@docsearch/react@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.8.3): + /@docsearch/react@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0): resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -948,11 +954,11 @@ packages: search-insights: optional: true dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.8.3) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0) '@docsearch/css': 3.5.2 algoliasearch: 4.20.0 - search-insights: 2.8.3 + search-insights: 2.10.0 transitivePeerDependencies: - '@algolia/client-search' dev: true @@ -963,6 +969,15 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.7: + resolution: {integrity: sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true optional: true /@esbuild/android-arm@0.18.20: @@ -971,6 +986,15 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.7: + resolution: {integrity: sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true optional: true /@esbuild/android-x64@0.18.20: @@ -979,6 +1003,15 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.7: + resolution: {integrity: sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true optional: true /@esbuild/darwin-arm64@0.18.20: @@ -987,6 +1020,15 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.7: + resolution: {integrity: sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true optional: true /@esbuild/darwin-x64@0.18.20: @@ -995,6 +1037,15 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.7: + resolution: {integrity: sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true optional: true /@esbuild/freebsd-arm64@0.18.20: @@ -1003,6 +1054,15 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.7: + resolution: {integrity: sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true optional: true /@esbuild/freebsd-x64@0.18.20: @@ -1011,6 +1071,15 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.7: + resolution: {integrity: sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true optional: true /@esbuild/linux-arm64@0.18.20: @@ -1019,6 +1088,15 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.7: + resolution: {integrity: sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-arm@0.18.20: @@ -1027,6 +1105,15 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.7: + resolution: {integrity: sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-ia32@0.18.20: @@ -1035,6 +1122,15 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.7: + resolution: {integrity: sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-loong64@0.18.20: @@ -1043,6 +1139,15 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.7: + resolution: {integrity: sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-mips64el@0.18.20: @@ -1051,6 +1156,15 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.7: + resolution: {integrity: sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-ppc64@0.18.20: @@ -1059,6 +1173,15 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.7: + resolution: {integrity: sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-riscv64@0.18.20: @@ -1067,6 +1190,15 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.7: + resolution: {integrity: sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-s390x@0.18.20: @@ -1075,6 +1207,15 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.7: + resolution: {integrity: sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true optional: true /@esbuild/linux-x64@0.18.20: @@ -1083,6 +1224,15 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.7: + resolution: {integrity: sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true /@esbuild/netbsd-x64@0.18.20: @@ -1091,6 +1241,15 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.7: + resolution: {integrity: sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true optional: true /@esbuild/openbsd-x64@0.18.20: @@ -1099,6 +1258,15 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.7: + resolution: {integrity: sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true optional: true /@esbuild/sunos-x64@0.18.20: @@ -1107,6 +1275,15 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.7: + resolution: {integrity: sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true optional: true /@esbuild/win32-arm64@0.18.20: @@ -1115,6 +1292,15 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.7: + resolution: {integrity: sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true optional: true /@esbuild/win32-ia32@0.18.20: @@ -1123,6 +1309,15 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.7: + resolution: {integrity: sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true optional: true /@esbuild/win32-x64@0.18.20: @@ -1131,20 +1326,29 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): + /@esbuild/win32-x64@0.19.7: + resolution: {integrity: sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.9.1: - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -1156,7 +1360,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1165,8 +1369,8 @@ packages: - supports-color dev: true - /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1212,7 +1416,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 dev: true /@jridgewell/resolve-uri@3.1.1: @@ -1227,8 +1431,8 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.19: - resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 @@ -1244,7 +1448,7 @@ packages: resolution: {integrity: sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: false /@manypkg/find-root@1.1.0: @@ -1362,14 +1566,14 @@ packages: resolution: {integrity: sha512-SKS6ojdy2Pcrr/BQEMgkc/u1fPqFePVe7N1LgWV7Dh30g7L9Q4r2ZAbnW5JP5/RK9j1Jd1aplmjR80Vd7MOViw==} engines: {node: '>=12.22.0'} dependencies: - '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 - eslint-config-standard-with-typescript: 39.1.1(@typescript-eslint/eslint-plugin@6.10.0)(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.2.0)(eslint-plugin-promise@6.1.1)(eslint@8.53.0)(typescript@5.2.2) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint@8.53.0) - eslint-plugin-n: 16.2.0(eslint@8.53.0) - eslint-plugin-node: 11.1.0(eslint@8.53.0) - eslint-plugin-promise: 6.1.1(eslint@8.53.0) + '@typescript-eslint/eslint-plugin': 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + eslint-config-standard-with-typescript: 39.1.1(@typescript-eslint/eslint-plugin@6.12.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.2.2) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) + eslint-plugin-n: 16.3.1(eslint@8.54.0) + eslint-plugin-node: 11.1.0(eslint@8.54.0) + eslint-plugin-promise: 6.1.1(eslint@8.54.0) typescript: 5.2.2 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -1394,29 +1598,29 @@ packages: /@polka/url@1.0.0-next.23: resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} - /@polkadot/api-augment@10.10.1: - resolution: {integrity: sha512-J0r1DT1M5y75iO1iwcpUBokKD3q6b22kWlPfiHEDNFydVw5vm7OTRBk9Njjl8rOnlSzcW/Ya8qWfV/wkrqHxUQ==} - engines: {node: '>=16'} + /@polkadot/api-augment@10.11.1: + resolution: {integrity: sha512-9Sk7fi6wzvxAoxvGJPcMt0hU4WzuIAlBy4Rng6WPiS6Ed0HJLr1dkZaqFFmV5my2pb3tu//1JGYkt+MUVB0Kqw==} + engines: {node: '>=18'} 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 + '@polkadot/api-base': 10.11.1 + '@polkadot/rpc-augment': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/types-augment': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - /@polkadot/api-base@10.10.1: - resolution: {integrity: sha512-joH2Ywxnn+AStkw+JWAdF3i3WJy4NcBYp0SWJM/WqGafWR/FuHnati2pcj/MHzkHT8JkBippmSSJFvsqRhlwcQ==} - engines: {node: '>=16'} + /@polkadot/api-base@10.11.1: + resolution: {integrity: sha512-A645Hj9bGtq0EOEWcwTaGoD40vp8/ih1suwinl5il8Psg+bdDmzodnVH5Jhuwe1dNKOuXuvxZvOmbYUPWyIqyg==} + engines: {node: '>=18'} dependencies: - '@polkadot/rpc-core': 10.10.1 - '@polkadot/types': 10.10.1 - '@polkadot/util': 12.5.1 + '@polkadot/rpc-core': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/util': 12.6.1 rxjs: 7.8.1 tslib: 2.6.2 transitivePeerDependencies: @@ -1424,18 +1628,18 @@ packages: - supports-color - utf-8-validate - /@polkadot/api-derive@10.10.1: - resolution: {integrity: sha512-Q9Ibs4eRPqdV8qnRzFPD3dlWNbLHxRqMqNTNPmNQwKPo5m6fcQbZ0UZy3yJ+PI9S4AQHGhsWtfoi5qW8006GHQ==} - engines: {node: '>=16'} + /@polkadot/api-derive@10.11.1: + resolution: {integrity: sha512-i48okJr0l1IrFTPa9KVkoJnDL2EHKExR6XC0Z7I9+kW9noxYWqo0tIoi5s1bNVD475xWK/rUjT7qHxiDbPaCUQ==} + engines: {node: '>=18'} 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(@polkadot/util@12.5.1) + '@polkadot/api': 10.11.1 + '@polkadot/api-augment': 10.11.1 + '@polkadot/api-base': 10.11.1 + '@polkadot/rpc-core': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) rxjs: 7.8.1 tslib: 2.6.2 transitivePeerDependencies: @@ -1443,24 +1647,24 @@ packages: - supports-color - utf-8-validate - /@polkadot/api@10.10.1: - resolution: {integrity: sha512-YHVkmNvjGF4Eg3thAbVhj9UX3SXx+Yxk6yVuzsEcckEudIRHzL2ikIWGCfUprfzSeFNpUCKdJIi1tsxVHtA7Tg==} - engines: {node: '>=16'} + /@polkadot/api@10.11.1: + resolution: {integrity: sha512-WEgUYvY90AHX9drmsvWQ4DDuqlE7h4x3f28K5eOoJF4dQ5AkWsFogxwJ4TH57POWLfyi8AIn6/f1vsqPtReDhA==} + engines: {node: '>=18'} 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/util-crypto@12.5.1)(@polkadot/util@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(@polkadot/util@12.5.1) + '@polkadot/api-augment': 10.11.1 + '@polkadot/api-base': 10.11.1 + '@polkadot/api-derive': 10.11.1 + '@polkadot/keyring': 12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1) + '@polkadot/rpc-augment': 10.11.1 + '@polkadot/rpc-core': 10.11.1 + '@polkadot/rpc-provider': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/types-augment': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/types-create': 10.11.1 + '@polkadot/types-known': 10.11.1 + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) eventemitter3: 5.0.1 rxjs: 7.8.1 tslib: 2.6.2 @@ -1469,47 +1673,47 @@ packages: - supports-color - utf-8-validate - /@polkadot/keyring@12.5.1(@polkadot/util-crypto@12.5.1)(@polkadot/util@12.5.1): - resolution: {integrity: sha512-u6b+Q7wI6WY/vwmJS9uUHy/5hKZ226nTlVNmxjkj9GvrRsQvUSwS94163yHPJwiZJiIv5xK5m0rwCMyoYu+wjA==} - engines: {node: '>=16'} + /@polkadot/keyring@12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1): + resolution: {integrity: sha512-cicTctZr5Jy5vgNT2FsNiKoTZnz6zQkgDoIYv79NI+p1Fhwc9C+DN/iMCnk3Cm9vR2gSAd2fSV+Y5iKVDhAmUw==} + engines: {node: '>=18'} peerDependencies: - '@polkadot/util': 12.5.1 - '@polkadot/util-crypto': 12.5.1 + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1 dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/util-crypto': 12.5.1(@polkadot/util@12.5.1) + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) tslib: 2.6.2 - /@polkadot/networks@12.5.1: - resolution: {integrity: sha512-PP6UUdzz6iHHZH4q96cUEhTcydHj16+61sqeaYEJSF6Q9iY+5WVWQ26+rdjmre/EBdrMQkSS/CKy73mO5z/JkQ==} - engines: {node: '>=16'} + /@polkadot/networks@12.6.1: + resolution: {integrity: sha512-pzyirxTYAnsx+6kyLYcUk26e4TLz3cX6p2KhTgAVW77YnpGX5VTKTbYykyXC8fXFd/migeQsLaa2raFN47mwoA==} + engines: {node: '>=18'} dependencies: - '@polkadot/util': 12.5.1 - '@substrate/ss58-registry': 1.43.0 + '@polkadot/util': 12.6.1 + '@substrate/ss58-registry': 1.44.0 tslib: 2.6.2 - /@polkadot/rpc-augment@10.10.1: - resolution: {integrity: sha512-PcvsX8DNV8BNDXXnY2K8F4mE7cWz7fKg8ykXNZTN8XUN6MrI4k/ohv7itYic7X5LaP25ZmQt5UiGyjKDGIELow==} - engines: {node: '>=16'} + /@polkadot/rpc-augment@10.11.1: + resolution: {integrity: sha512-wrtxHnEwqS3b1GuZ3sA1pzLuUjjLnW4FPawOklONRcIuKbGmFuvu7QvEIHmxBV1FAS/fs8gbvp8ImKWUPnT93Q==} + engines: {node: '>=18'} dependencies: - '@polkadot/rpc-core': 10.10.1 - '@polkadot/types': 10.10.1 - '@polkadot/types-codec': 10.10.1 - '@polkadot/util': 12.5.1 + '@polkadot/rpc-core': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - /@polkadot/rpc-core@10.10.1: - resolution: {integrity: sha512-awfFfJYsVF6W4DrqTj5RP00SSDRNB770FIoe1QE1Op4NcSrfeLpwh54HUJS716f4l5mOSYuvMp+zCbKzt8zKow==} - engines: {node: '>=16'} + /@polkadot/rpc-core@10.11.1: + resolution: {integrity: sha512-3l4l+zL7MDWzQx3WnaieXXUKsbeA1Miu4wsje5trYJEE+hm+nMW8h7fiFKfYzXBi7ty/wMS+S7BfQPTrDkYHxA==} + engines: {node: '>=18'} dependencies: - '@polkadot/rpc-augment': 10.10.1 - '@polkadot/rpc-provider': 10.10.1 - '@polkadot/types': 10.10.1 - '@polkadot/util': 12.5.1 + '@polkadot/rpc-augment': 10.11.1 + '@polkadot/rpc-provider': 10.11.1 + '@polkadot/types': 10.11.1 + '@polkadot/util': 12.6.1 rxjs: 7.8.1 tslib: 2.6.2 transitivePeerDependencies: @@ -1517,237 +1721,237 @@ packages: - supports-color - utf-8-validate - /@polkadot/rpc-provider@10.10.1: - resolution: {integrity: sha512-VMDWoJgx6/mPHAOT66Sq+Jf2lJABfV/ZUIXtT2k8HjOndbm6oKrFqGEOSSLvB2q4olDee3FkFFxkyW1s6k4JaQ==} - engines: {node: '>=16'} + /@polkadot/rpc-provider@10.11.1: + resolution: {integrity: sha512-86aDUOnaG42si0jSOAgn6Fs3F3rz57x+iNBK1JpM0PLL2XvmPuoMZL5dZwzqSIey3nVdGJqRYfnFquWuyQpnOQ==} + engines: {node: '>=18'} dependencies: - '@polkadot/keyring': 12.5.1(@polkadot/util-crypto@12.5.1)(@polkadot/util@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/util@12.5.1) - '@polkadot/x-fetch': 12.5.1 - '@polkadot/x-global': 12.5.1 - '@polkadot/x-ws': 12.5.1 + '@polkadot/keyring': 12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1) + '@polkadot/types': 10.11.1 + '@polkadot/types-support': 10.11.1 + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) + '@polkadot/x-fetch': 12.6.1 + '@polkadot/x-global': 12.6.1 + '@polkadot/x-ws': 12.6.1 eventemitter3: 5.0.1 mock-socket: 9.3.1 - nock: 13.3.4 + nock: 13.3.8 tslib: 2.6.2 optionalDependencies: - '@substrate/connect': 0.7.33 + '@substrate/connect': 0.7.35 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - /@polkadot/types-augment@10.10.1: - resolution: {integrity: sha512-XRHE75IocXfFE6EADYov3pqXCyBk5SWbiHoZ0+4WYWP9SwMuzsBaAy84NlhLBlkG3+ehIqi0HpAd/qrljJGZbg==} - engines: {node: '>=16'} + /@polkadot/types-augment@10.11.1: + resolution: {integrity: sha512-Exd5mMCuSOXXz73iWqy8ocScWTrwAPqHz0Kxpz5OWlAu+5usipMuhjoeaZA803FHQntZh9lHUN31fuc50Exhew==} + engines: {node: '>=18'} dependencies: - '@polkadot/types': 10.10.1 - '@polkadot/types-codec': 10.10.1 - '@polkadot/util': 12.5.1 + '@polkadot/types': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 - /@polkadot/types-codec@10.10.1: - resolution: {integrity: sha512-ETPG0wzWzt/bDKRQmYbO7CLe/0lUt8VrG6/bECdv+Kye+8Qedba2LZyTWm/9f2ngms8TZ82yI8mPv/mozdtfnw==} - engines: {node: '>=16'} + /@polkadot/types-codec@10.11.1: + resolution: {integrity: sha512-B9Fu2hq3cRpJpGPcgfZ8Qi1OSX9u82J46adlbIG95ktoA+70eZ83VS3Zvtt9ACsdLVGETCJfDjSO25XptjhZKQ==} + engines: {node: '>=18'} dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/x-bigint': 12.5.1 + '@polkadot/util': 12.6.1 + '@polkadot/x-bigint': 12.6.1 tslib: 2.6.2 - /@polkadot/types-create@10.10.1: - resolution: {integrity: sha512-7OiLzd+Ter5zrpjP7fDwA1m89kd38VvMVixfOSv8x7ld2pDT+yyyKl14TCwRSWrKWCMtIb6M3iasPhq5cUa7cw==} - engines: {node: '>=16'} + /@polkadot/types-create@10.11.1: + resolution: {integrity: sha512-oeaI185F3XeWSz9/fe//qZ0KsQyE6C6c13WuOa+5cX/Yuz7cSAXawrhl58HRaU+fueaE/ijEHLcuK1sdM6e1JQ==} + engines: {node: '>=18'} dependencies: - '@polkadot/types-codec': 10.10.1 - '@polkadot/util': 12.5.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 - /@polkadot/types-known@10.10.1: - resolution: {integrity: sha512-yRa1lbDRqg3V/zoa0vSwdGOiYTIWktILW8OfkaLDExTu0GZBSbVHZlLAta52XVpA9Zww7mrUUC9+iernOwk//w==} - engines: {node: '>=16'} + /@polkadot/types-known@10.11.1: + resolution: {integrity: sha512-BPHI7EbdRaznZR4RVVrQC5epyxL6caJ5dkluZP6rRwx7VmQK0FTGIwgh3UP724mzQhM8rT77MD3h2ftnq1cteg==} + engines: {node: '>=18'} 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 + '@polkadot/networks': 12.6.1 + '@polkadot/types': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/types-create': 10.11.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 - /@polkadot/types-support@10.10.1: - resolution: {integrity: sha512-Cd2mwk9RG6LlX8X3H0bRY7wCTbZPqU3z38CMFhvNkFDAyjqKjtn8hpS4n8mMrZK2EwCs/MjQH1wb7rtFkaWmJw==} - engines: {node: '>=16'} + /@polkadot/types-support@10.11.1: + resolution: {integrity: sha512-eCvWjdpELsHvXiTq201DdbIeOIaEr53zTD7HqC2wR/Z1bkQuw79Z+CyIU4sp79GL1vZ1PxS7vUH9M3FKNaTl1Q==} + engines: {node: '>=18'} dependencies: - '@polkadot/util': 12.5.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 - /@polkadot/types@10.10.1: - resolution: {integrity: sha512-Ben62P1tjYEhKag34GBGcLX6NqcFR1VD5nNbWaxgr+t36Jl/tlHs6P9DlbFqQP7Tt9FmGrAYY0m3oTkhjG1NzA==} - engines: {node: '>=16'} + /@polkadot/types@10.11.1: + resolution: {integrity: sha512-4uKnzW2GZqNA5qRZpTPJ7z+G/ARTvXI89etv9xXXVttUdfTaYZsMf4rMuMThOAE/mAUn70LoH0JKthZLwzVgNQ==} + engines: {node: '>=18'} dependencies: - '@polkadot/keyring': 12.5.1(@polkadot/util-crypto@12.5.1)(@polkadot/util@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(@polkadot/util@12.5.1) + '@polkadot/keyring': 12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1) + '@polkadot/types-augment': 10.11.1 + '@polkadot/types-codec': 10.11.1 + '@polkadot/types-create': 10.11.1 + '@polkadot/util': 12.6.1 + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) rxjs: 7.8.1 tslib: 2.6.2 - /@polkadot/util-crypto@12.5.1(@polkadot/util@12.5.1): - resolution: {integrity: sha512-Y8ORbMcsM/VOqSG3DgqutRGQ8XXK+X9M3C8oOEI2Tji65ZsXbh9Yh+ryPLM0oBp/9vqOXjkLgZJbbVuQceOw0A==} - engines: {node: '>=16'} + /@polkadot/util-crypto@12.6.1(@polkadot/util@12.6.1): + resolution: {integrity: sha512-2ezWFLmdgeDXqB9NAUdgpp3s2rQztNrZLY+y0SJYNOG4ch+PyodTW/qSksnOrVGVdRhZ5OESRE9xvo9LYV5UAw==} + engines: {node: '>=18'} peerDependencies: - '@polkadot/util': 12.5.1 + '@polkadot/util': 12.6.1 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/util@12.5.1)(@polkadot/x-randomvalues@12.5.1) - '@polkadot/wasm-util': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/x-bigint': 12.5.1 - '@polkadot/x-randomvalues': 12.5.1(@polkadot/util@12.5.1)(@polkadot/wasm-util@7.2.2) + '@polkadot/networks': 12.6.1 + '@polkadot/util': 12.6.1 + '@polkadot/wasm-crypto': 7.3.1(@polkadot/util@12.6.1)(@polkadot/x-randomvalues@12.6.1) + '@polkadot/wasm-util': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/x-bigint': 12.6.1 + '@polkadot/x-randomvalues': 12.6.1(@polkadot/util@12.6.1)(@polkadot/wasm-util@7.3.1) '@scure/base': 1.1.3 tslib: 2.6.2 - /@polkadot/util@12.5.1: - resolution: {integrity: sha512-fDBZL7D4/baMG09Qowseo884m3QBzErGkRWNBId1UjWR99kyex+cIY9fOSzmuQxo6nLdJlLHw1Nz2caN3+Bq0A==} - engines: {node: '>=16'} + /@polkadot/util@12.6.1: + resolution: {integrity: sha512-10ra3VfXtK8ZSnWI7zjhvRrhupg3rd4iFC3zCaXmRpOU+AmfIoCFVEmuUuC66gyXiz2/g6k5E6j0lWQCOProSQ==} + engines: {node: '>=18'} 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.2 + '@polkadot/x-bigint': 12.6.1 + '@polkadot/x-global': 12.6.1 + '@polkadot/x-textdecoder': 12.6.1 + '@polkadot/x-textencoder': 12.6.1 + '@types/bn.js': 5.1.5 bn.js: 5.2.1 tslib: 2.6.2 - /@polkadot/wasm-bridge@7.2.2(@polkadot/util@12.5.1)(@polkadot/x-randomvalues@12.5.1): - resolution: {integrity: sha512-CgNENd65DVYtackOVXXRA0D1RPoCv5+77IdBCf7kNqu6LeAnR4nfTI6qjaApUdN1xRweUsQjSH7tu7VjkMOA0A==} - engines: {node: '>=16'} + /@polkadot/wasm-bridge@7.3.1(@polkadot/util@12.6.1)(@polkadot/x-randomvalues@12.6.1): + resolution: {integrity: sha512-wPtDkGaOQx5BUIYP+kJv5aV3BnCQ+HXr36khGKYrRQAMBrG+ybCNPOTVXDQnSbraPQRSw7fSIJmiQpEmFsIz0w==} + engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' '@polkadot/x-randomvalues': '*' dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/wasm-util': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/x-randomvalues': 12.5.1(@polkadot/util@12.5.1)(@polkadot/wasm-util@7.2.2) + '@polkadot/util': 12.6.1 + '@polkadot/wasm-util': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/x-randomvalues': 12.6.1(@polkadot/util@12.6.1)(@polkadot/wasm-util@7.3.1) tslib: 2.6.2 - /@polkadot/wasm-crypto-asmjs@7.2.2(@polkadot/util@12.5.1): - resolution: {integrity: sha512-wKg+cpsWQCTSVhjlHuNeB/184rxKqY3vaklacbLOMbUXieIfuDBav5PJdzS3yeiVE60TpYaHW4iX/5OYHS82gg==} - engines: {node: '>=16'} + /@polkadot/wasm-crypto-asmjs@7.3.1(@polkadot/util@12.6.1): + resolution: {integrity: sha512-pTUOCIP0nUc4tjzdG1vtEBztKEWde4DBEZm7NaxBLvwNUxsbYhLKYvuhASEyEIz0ZyE4rOBWEmRF4Buic8oO+g==} + engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' dependencies: - '@polkadot/util': 12.5.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 - /@polkadot/wasm-crypto-init@7.2.2(@polkadot/util@12.5.1)(@polkadot/x-randomvalues@12.5.1): - resolution: {integrity: sha512-vD4iPIp9x+SssUIWUenxWLPw4BVIwhXHNMpsV81egK990tvpyIxL205/EF5QRb1mKn8WfWcNFm5tYwwh9NdnnA==} - engines: {node: '>=16'} + /@polkadot/wasm-crypto-init@7.3.1(@polkadot/util@12.6.1)(@polkadot/x-randomvalues@12.6.1): + resolution: {integrity: sha512-Fx15ItLcxCe7uJCWZVXhFbsrXqHUKAp9KGYQFKBRK7r1C2va4Y7qnirjwkxoMHQcunusLe2KdbrD+YJuzh4wlA==} + engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' '@polkadot/x-randomvalues': '*' dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/wasm-bridge': 7.2.2(@polkadot/util@12.5.1)(@polkadot/x-randomvalues@12.5.1) - '@polkadot/wasm-crypto-asmjs': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/wasm-crypto-wasm': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/wasm-util': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/x-randomvalues': 12.5.1(@polkadot/util@12.5.1)(@polkadot/wasm-util@7.2.2) + '@polkadot/util': 12.6.1 + '@polkadot/wasm-bridge': 7.3.1(@polkadot/util@12.6.1)(@polkadot/x-randomvalues@12.6.1) + '@polkadot/wasm-crypto-asmjs': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/wasm-crypto-wasm': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/wasm-util': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/x-randomvalues': 12.6.1(@polkadot/util@12.6.1)(@polkadot/wasm-util@7.3.1) tslib: 2.6.2 - /@polkadot/wasm-crypto-wasm@7.2.2(@polkadot/util@12.5.1): - resolution: {integrity: sha512-3efoIB6jA3Hhv6k0YIBwCtlC8gCSWCk+R296yIXRLLr3cGN415KM/PO/d1JIXYI64lbrRzWRmZRhllw3jf6Atg==} - engines: {node: '>=16'} + /@polkadot/wasm-crypto-wasm@7.3.1(@polkadot/util@12.6.1): + resolution: {integrity: sha512-hBMRwrBLCfVsFHSdnwwIxEPshoZdW/dHehYRxMSpUdmqOxtD1gnjocXGE1KZUYGX675+EFuR+Ch6OoTKFJxwTA==} + engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/wasm-util': 7.2.2(@polkadot/util@12.5.1) + '@polkadot/util': 12.6.1 + '@polkadot/wasm-util': 7.3.1(@polkadot/util@12.6.1) tslib: 2.6.2 - /@polkadot/wasm-crypto@7.2.2(@polkadot/util@12.5.1)(@polkadot/x-randomvalues@12.5.1): - resolution: {integrity: sha512-1ZY1rxUTawYm0m1zylvBMFovNIHYgG2v/XoASNp/EMG5c8FQIxCbhJRaTBA983GVq4lN/IAKREKEp9ZbLLqssA==} - engines: {node: '>=16'} + /@polkadot/wasm-crypto@7.3.1(@polkadot/util@12.6.1)(@polkadot/x-randomvalues@12.6.1): + resolution: {integrity: sha512-BSK0YyCN4ohjtwbiHG71fgf+7ufgfLrHxjn7pKsvXhyeiEVuDhbDreNcpUf3eGOJ5tNk75aSbKGF4a3EJGIiNA==} + engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' '@polkadot/x-randomvalues': '*' dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/wasm-bridge': 7.2.2(@polkadot/util@12.5.1)(@polkadot/x-randomvalues@12.5.1) - '@polkadot/wasm-crypto-asmjs': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/wasm-crypto-init': 7.2.2(@polkadot/util@12.5.1)(@polkadot/x-randomvalues@12.5.1) - '@polkadot/wasm-crypto-wasm': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/wasm-util': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/x-randomvalues': 12.5.1(@polkadot/util@12.5.1)(@polkadot/wasm-util@7.2.2) + '@polkadot/util': 12.6.1 + '@polkadot/wasm-bridge': 7.3.1(@polkadot/util@12.6.1)(@polkadot/x-randomvalues@12.6.1) + '@polkadot/wasm-crypto-asmjs': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/wasm-crypto-init': 7.3.1(@polkadot/util@12.6.1)(@polkadot/x-randomvalues@12.6.1) + '@polkadot/wasm-crypto-wasm': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/wasm-util': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/x-randomvalues': 12.6.1(@polkadot/util@12.6.1)(@polkadot/wasm-util@7.3.1) tslib: 2.6.2 - /@polkadot/wasm-util@7.2.2(@polkadot/util@12.5.1): - resolution: {integrity: sha512-N/25960ifCc56sBlJZ2h5UBpEPvxBmMLgwYsl7CUuT+ea2LuJW9Xh8VHDN/guYXwmm92/KvuendYkEUykpm/JQ==} - engines: {node: '>=16'} + /@polkadot/wasm-util@7.3.1(@polkadot/util@12.6.1): + resolution: {integrity: sha512-0m6ozYwBrJgnGl6QvS37ZiGRu4FFPPEtMYEVssfo1Tz4skHJlByWaHWhRNoNCVFAKiGEBu+rfx5HAQMAhoPkvg==} + engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' dependencies: - '@polkadot/util': 12.5.1 + '@polkadot/util': 12.6.1 tslib: 2.6.2 - /@polkadot/x-bigint@12.5.1: - resolution: {integrity: sha512-Fw39eoN9v0sqxSzfSC5awaDVdzojIiE7d1hRSQgVSrES+8whWvtbYMR0qwbVhTuW7DvogHmye41P9xKMlXZysg==} - engines: {node: '>=16'} + /@polkadot/x-bigint@12.6.1: + resolution: {integrity: sha512-YlABeVIlgYQZJ4ZpW/+akFGGxw5jMGt4g5vaP7EumlORGneJHzzWJYDmI5v2y7j1zvC9ofOle7z4tRmtN/QDew==} + engines: {node: '>=18'} dependencies: - '@polkadot/x-global': 12.5.1 + '@polkadot/x-global': 12.6.1 tslib: 2.6.2 - /@polkadot/x-fetch@12.5.1: - resolution: {integrity: sha512-Bc019lOKCoQJrthiS+H3LwCahGtl5tNnb2HK7xe3DBQIUx9r2HsF/uEngNfMRUFkUYg5TPCLFbEWU8NIREBS1A==} - engines: {node: '>=16'} + /@polkadot/x-fetch@12.6.1: + resolution: {integrity: sha512-iyBv0ecfCsqGSv26CPJk9vSoKtry/Fn7x549ysA4hlc9KboraMHxOHTpcNZYC/OdgvbFZl40zIXCY0SA1ai8aw==} + engines: {node: '>=18'} dependencies: - '@polkadot/x-global': 12.5.1 + '@polkadot/x-global': 12.6.1 node-fetch: 3.3.2 tslib: 2.6.2 - /@polkadot/x-global@12.5.1: - resolution: {integrity: sha512-6K0YtWEg0eXInDOihU5aSzeb1t9TiDdX9ZuRly+58ALSqw5kPZYmQLbzE1d8HWzyXRXK+YH65GtLzfMGqfYHmw==} - engines: {node: '>=16'} + /@polkadot/x-global@12.6.1: + resolution: {integrity: sha512-w5t19HIdBPuyu7X/AiCyH2DsKqxBF0KpF4Ymolnx8PfcSIgnq9ZOmgs74McPR6FgEmeEkr9uNKujZrsfURi1ug==} + engines: {node: '>=18'} dependencies: tslib: 2.6.2 - /@polkadot/x-randomvalues@12.5.1(@polkadot/util@12.5.1)(@polkadot/wasm-util@7.2.2): - resolution: {integrity: sha512-UsMb1d+77EPNjW78BpHjZLIm4TaIpfqq89OhZP/6gDIoS2V9iE/AK3jOWKm1G7Y2F8XIoX1qzQpuMakjfagFoQ==} - engines: {node: '>=16'} + /@polkadot/x-randomvalues@12.6.1(@polkadot/util@12.6.1)(@polkadot/wasm-util@7.3.1): + resolution: {integrity: sha512-1uVKlfYYbgIgGV5v1Dgn960cGovenWm5pmg+aTMeUGXVYiJwRD2zOpLyC1i/tP454iA74j74pmWb8Nkn0tJZUQ==} + engines: {node: '>=18'} peerDependencies: - '@polkadot/util': 12.5.1 + '@polkadot/util': 12.6.1 '@polkadot/wasm-util': '*' dependencies: - '@polkadot/util': 12.5.1 - '@polkadot/wasm-util': 7.2.2(@polkadot/util@12.5.1) - '@polkadot/x-global': 12.5.1 + '@polkadot/util': 12.6.1 + '@polkadot/wasm-util': 7.3.1(@polkadot/util@12.6.1) + '@polkadot/x-global': 12.6.1 tslib: 2.6.2 - /@polkadot/x-textdecoder@12.5.1: - resolution: {integrity: sha512-j2YZGWfwhMC8nHW3BXq10fAPY02ObLL/qoTjCMJ1Cmc/OGq18Ep7k9cXXbjFAq3wf3tUUewt/u/hStKCk3IvfQ==} - engines: {node: '>=16'} + /@polkadot/x-textdecoder@12.6.1: + resolution: {integrity: sha512-IasodJeV1f2Nr/VtA207+LXCQEqYcG8y9qB/EQcRsrEP58NbwwxM5Z2obV0lSjJOxRTJ4/OlhUwnLHwcbIp6+g==} + engines: {node: '>=18'} dependencies: - '@polkadot/x-global': 12.5.1 + '@polkadot/x-global': 12.6.1 tslib: 2.6.2 - /@polkadot/x-textencoder@12.5.1: - resolution: {integrity: sha512-1JNNpOGb4wD+c7zFuOqjibl49LPnHNr4rj4s3WflLUIZvOMY6euoDuN3ISjQSHCLlVSoH0sOCWA3qXZU4bCTDQ==} - engines: {node: '>=16'} + /@polkadot/x-textencoder@12.6.1: + resolution: {integrity: sha512-sTq/+tXqBhGe01a1rjieSHFh3y935vuRgtahVgVJZnfqh5SmLPgSN5tTPxZWzyx7gHIfotle8laTJbJarv7V1A==} + engines: {node: '>=18'} dependencies: - '@polkadot/x-global': 12.5.1 + '@polkadot/x-global': 12.6.1 tslib: 2.6.2 - /@polkadot/x-ws@12.5.1: - resolution: {integrity: sha512-efNMhB3Lh6pW2iTipMkqwrjpuUtb3EwR/jYZftiIGo5tDPB7rqoMOp9s6KRFJEIUfZkLnMUtbkZ5fHzUJaCjmQ==} - engines: {node: '>=16'} + /@polkadot/x-ws@12.6.1: + resolution: {integrity: sha512-fs9V+XekjJLpVLLwxnqq3llqSZu2T/b9brvld8anvzS/htDLPbi7+c5W3VGJ9Po8fS67IsU3HCt0Gu6F6mGrMA==} + engines: {node: '>=18'} dependencies: - '@polkadot/x-global': 12.5.1 + '@polkadot/x-global': 12.6.1 tslib: 2.6.2 ws: 8.14.2 transitivePeerDependencies: @@ -1797,6 +2001,90 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false + /@rollup/rollup-android-arm-eabi@4.5.1: + resolution: {integrity: sha512-YaN43wTyEBaMqLDYeze+gQ4ZrW5RbTEGtT5o1GVDkhpdNcsLTnLRcLccvwy3E9wiDKWg9RIhuoy3JQKDRBfaZA==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64@4.5.1: + resolution: {integrity: sha512-n1bX+LCGlQVuPlCofO0zOKe1b2XkFozAVRoczT+yxWZPGnkEAKTTYVOGZz8N4sKuBnKMxDbfhUsB1uwYdup/sw==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64@4.5.1: + resolution: {integrity: sha512-QqJBumdvfBqBBmyGHlKxje+iowZwrHna7pokj/Go3dV1PJekSKfmjKrjKQ/e6ESTGhkfPNLq3VXdYLAc+UtAQw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64@4.5.1: + resolution: {integrity: sha512-RrkDNkR/P5AEQSPkxQPmd2ri8WTjSl0RYmuFOiEABkEY/FSg0a4riihWQGKDJ4LnV9gigWZlTMx2DtFGzUrYQw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.5.1: + resolution: {integrity: sha512-ZFPxvUZmE+fkB/8D9y/SWl/XaDzNSaxd1TJUSE27XAKlRpQ2VNce/86bGd9mEUgL3qrvjJ9XTGwoX0BrJkYK/A==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.5.1: + resolution: {integrity: sha512-FEuAjzVIld5WVhu+M2OewLmjmbXWd3q7Zcx+Rwy4QObQCqfblriDMMS7p7+pwgjZoo9BLkP3wa9uglQXzsB9ww==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.5.1: + resolution: {integrity: sha512-f5Gs8WQixqGRtI0Iq/cMqvFYmgFzMinuJO24KRfnv7Ohi/HQclwrBCYkzQu1XfLEEt3DZyvveq9HWo4bLJf1Lw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.5.1: + resolution: {integrity: sha512-CWPkPGrFfN2vj3mw+S7A/4ZaU3rTV7AkXUr08W9lNP+UzOvKLVf34tWCqrKrfwQ0NTk5GFqUr2XGpeR2p6R4gw==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.5.1: + resolution: {integrity: sha512-ZRETMFA0uVukUC9u31Ed1nx++29073goCxZtmZARwk5aF/ltuENaeTtRVsSQzFlzdd4J6L3qUm+EW8cbGt0CKQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.5.1: + resolution: {integrity: sha512-ihqfNJNb2XtoZMSCPeoo0cYMgU04ksyFIoOw5S0JUVbOhafLot+KD82vpKXOurE2+9o/awrqIxku9MRR9hozHQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.5.1: + resolution: {integrity: sha512-zK9MRpC8946lQ9ypFn4gLpdwr5a01aQ/odiIJeL9EbgZDMgbZjjT/XzTqJvDfTmnE1kHdbG20sAeNlpc91/wbg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.5.1: + resolution: {integrity: sha512-5I3Nz4Sb9TYOtkRwlH0ow+BhMH2vnh38tZ4J4mggE48M/YyJyp/0sPSxhw1UeS1+oBgQ8q7maFtSeKpeRJu41Q==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@scure/base@1.1.3: resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} @@ -1831,19 +2119,19 @@ packages: requiresBuild: true optional: true - /@substrate/connect@0.7.33: - resolution: {integrity: sha512-1B984/bmXVQvTT9oV3c3b7215lvWmulP9rfP3T3Ri+OU3uIsyCzYw0A+XG6J8/jgO2FnroeNIBWlgoLaUM1uzw==} + /@substrate/connect@0.7.35: + resolution: {integrity: sha512-Io8vkalbwaye+7yXfG1Nj52tOOoJln2bMlc7Q9Yy3vEWqZEVkgKmcPVzbwV0CWL3QD+KMPDA2Dnw/X7EdwgoLw==} requiresBuild: true dependencies: '@substrate/connect-extension-protocol': 1.0.1 - smoldot: 2.0.1 + smoldot: 2.0.7 transitivePeerDependencies: - bufferutil - utf-8-validate optional: true - /@substrate/ss58-registry@1.43.0: - resolution: {integrity: sha512-USEkXA46P9sqClL7PZv0QFsit4S8Im97wchKG0/H/9q3AT/S76r40UHfCr4Un7eBJPE23f7fU9BZ0ITpP9MCsA==} + /@substrate/ss58-registry@1.44.0: + resolution: {integrity: sha512-7lQ/7mMCzVNSEfDS4BCqnRnKCFKpcOaPrxMeGTXHX1YQzM/m2BBHjbK2C3dJvjv7GYxMiaTq/HdWQj1xS6ss+A==} /@tootallnate/once@1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} @@ -1868,25 +2156,25 @@ packages: /@tsconfig/node16@1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - /@types/bn.js@5.1.2: - resolution: {integrity: sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==} + /@types/bn.js@5.1.5: + resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.4 /@types/cli-progress@3.11.5: resolution: {integrity: sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.4 dev: true /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: - '@types/ms': 0.7.32 + '@types/ms': 0.7.34 dev: true - /@types/is-ci@3.0.2: - resolution: {integrity: sha512-9PyP1rgCro6xO3R7zOEoMgx5U9HpLhIg1FFb9p2mWX/x5QI8KMuCWWYtCT1dUQpicp84OsxEAw3iqwIKQY5Pog==} + /@types/is-ci@3.0.4: + resolution: {integrity: sha512-AkCYCmwlXeuH89DagDCzvCAyltI2v9lh3U3DqSg/GrBYoReAaWwxfXCqMx9UV5MajLZ4ZFwZzV4cABGIxk2XRw==} dependencies: ci-info: 3.9.0 dev: true @@ -1903,92 +2191,148 @@ packages: resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} dev: false - /@types/minimist@1.2.3: - resolution: {integrity: sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==} + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true - /@types/ms@0.7.32: - resolution: {integrity: sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==} + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true /@types/node@12.20.55: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@16.18.61: - resolution: {integrity: sha512-k0N7BqGhJoJzdh6MuQg1V1ragJiXTh8VUBAZTWjJ9cUq23SG0F0xavOwZbhiP4J3y20xd6jxKx+xNUhkMAi76Q==} + /@types/node@16.18.64: + resolution: {integrity: sha512-TiY2gIDob8+QOPIcVpS0ZY+H1DVTfplBW6UgL2b4gOYbigIlKVIh6Lcv+7YDUciUTqhVLG91PrZBXW10IoBhtw==} dev: true /@types/node@18.15.13: resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - /@types/node@20.9.0: - resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + /@types/node@20.9.4: + resolution: {integrity: sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==} dependencies: undici-types: 5.26.5 - /@types/normalize-package-data@2.4.2: - resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==} - dev: true - - /@types/semver@7.5.3: - resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true /@types/semver@7.5.5: resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} dev: true - /@types/web-bluetooth@0.0.18: - resolution: {integrity: sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==} + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: true + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + dependencies: + '@types/node': 20.9.4 + dev: false + /@types/ws@8.5.3: resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.9.4 - /@types/yargs-parser@21.0.1: - resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true - /@types/yargs@17.0.31: - resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==} + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: - '@types/yargs-parser': 21.0.1 + '@types/yargs-parser': 21.0.3 + dev: true + + /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color dev: true - /@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==} + /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/type-utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - graphemer: 1.4.0 - ignore: 5.2.4 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) + eslint: 8.54.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} + /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1997,27 +2341,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - typescript: 5.2.2 + eslint: 8.54.0 + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.10.0: - resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} + /@typescript-eslint/scope-manager@6.12.0: + resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 dev: true - /@typescript-eslint/type-utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==} + /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2026,23 +2370,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 + eslint: 8.54.0 ts-api-utils: 1.0.3(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.10.0: - resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} + /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.12.0: + resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.10.0(typescript@5.2.2): - resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} + /@typescript-eslint/typescript-estree@6.12.0(typescript@5.2.2): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2050,8 +2414,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2062,30 +2426,70 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==} + /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - eslint: 8.53.0 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.2.2) + eslint: 8.54.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.10.0: - resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} + /@typescript-eslint/visitor-keys@6.12.0: + resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/types': 6.12.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2093,154 +2497,154 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitest/expect@1.0.0-beta.4: - resolution: {integrity: sha512-JOpNEva2AFxfySH3F+X+hT52Kq/ZdIrGtzWYbj6yRuBuxFqM55n/7/jV4XtQG+XkmehP3OUZGx5zISOU8KHPQw==} + /@vitest/expect@1.0.0-beta.5: + resolution: {integrity: sha512-q/TPdbXuEZZNFKILEVicojSWEq1y8qPLcAiZRQD8DsYUAV2cIjsD5lJWYaAjjUAV4lzovSci3KeISQdjUdfxQQ==} dependencies: - '@vitest/spy': 1.0.0-beta.4 - '@vitest/utils': 1.0.0-beta.4 + '@vitest/spy': 1.0.0-beta.5 + '@vitest/utils': 1.0.0-beta.5 chai: 4.3.10 - /@vitest/runner@1.0.0-beta.4: - resolution: {integrity: sha512-rlXCMp5MxMVVVN5hdhzPL9NpIkfZC0EXwAtN5gwBbCBoVRv9dBQiZ5qTw+LaNmugPl8gm76U4e4/nMZS9s6wyw==} + /@vitest/runner@1.0.0-beta.5: + resolution: {integrity: sha512-o/6ZqQoKCIdI4dmdc4Yb1u3n56dU69SABXyO5yhFZTDjEMJs1DdCQ68JK+UcrpJMQndr6q5lTFrfHEhj4XJy6w==} dependencies: - '@vitest/utils': 1.0.0-beta.4 - p-limit: 4.0.0 + '@vitest/utils': 1.0.0-beta.5 + p-limit: 5.0.0 pathe: 1.1.1 - /@vitest/snapshot@1.0.0-beta.4: - resolution: {integrity: sha512-CzmHLGo4RNEQUojYtuEz8wWKp9/p3hvXskejRRJB1iCRH48uWROmoyb2iEQUhgpQw/+WwI4wRP7jek5lp48pRA==} + /@vitest/snapshot@1.0.0-beta.5: + resolution: {integrity: sha512-fsWoc/mokLawqrLFqK9MHEyzJaGeDzU5gAgky2yZJR58VSsSvW+cesvmdv9ch39xHlTzFTRPgrWkNsmbdm2gbg==} dependencies: magic-string: 0.30.5 pathe: 1.1.1 pretty-format: 29.7.0 - /@vitest/spy@1.0.0-beta.4: - resolution: {integrity: sha512-YvKUUl7KucKzLJb8+RTd8H3G24EVPGk+CVMFawwtD/KuYjBzM8RCh3oJTTba6ktLpB8JLVy8NVTNL4Oeigqs8A==} + /@vitest/spy@1.0.0-beta.5: + resolution: {integrity: sha512-B5dx87eCiJidWGdURMS/etHE9P3JRdFEQj8HQRGI3OhMy5XcSrdAwg5oEADoqXm32GUGc7bC8Dw/q9PiCJSBIQ==} dependencies: tinyspy: 2.2.0 - /@vitest/ui@1.0.0-beta.4(vitest@1.0.0-beta.4): - resolution: {integrity: sha512-aU0EcYvrJPNNyoxnqcza0i1/yqUQ1MW/XC3aM7isOK5h/hNzx/jGmpQiY891yCT/7GTX0pdgC/glDw7ny42osQ==} + /@vitest/ui@1.0.0-beta.5(vitest@1.0.0-beta.5): + resolution: {integrity: sha512-+qnxIATVmI/Mqo4q2Uv1aGpIjCKQxVSY5FOhjx594t75r8xSMGPfjWsReINO/h5+wrHNW9FG2eUwZkjnxHvNxw==} peerDependencies: vitest: ^1.0.0-0 dependencies: - '@vitest/utils': 1.0.0-beta.4 - fast-glob: 3.3.1 + '@vitest/utils': 1.0.0-beta.5 + fast-glob: 3.3.2 fflate: 0.8.1 flatted: 3.2.9 pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 1.0.0-beta.4(@types/node@20.9.0)(@vitest/ui@1.0.0-beta.4) + vitest: 1.0.0-beta.5(@types/node@20.9.4)(@vitest/ui@1.0.0-beta.5) - /@vitest/utils@1.0.0-beta.4: - resolution: {integrity: sha512-YY4bhhVqyTxuNwuZJXiCM4/D0Z7Z3H3JDHNM8gXty7EyRUf4iPDQtXzIWe1r4zdTtoFnzFAeMr+891pWlv4SPA==} + /@vitest/utils@1.0.0-beta.5: + resolution: {integrity: sha512-5ippiVcc6KjnAZiMc5Gz5g1tWTG+21g5scr+cedYC+YxAjqZzOG/ncJuM/Eqq9a+/MAJJc5zOGBcDYl27x62jg==} dependencies: diff-sequences: 29.6.3 loupe: 2.3.7 pretty-format: 29.7.0 - /@vue/compiler-core@3.3.4: - resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} + /@vue/compiler-core@3.3.8: + resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==} dependencies: - '@babel/parser': 7.23.0 - '@vue/shared': 3.3.4 + '@babel/parser': 7.23.3 + '@vue/shared': 3.3.8 estree-walker: 2.0.2 source-map-js: 1.0.2 dev: true - /@vue/compiler-dom@3.3.4: - resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} + /@vue/compiler-dom@3.3.8: + resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==} dependencies: - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/compiler-core': 3.3.8 + '@vue/shared': 3.3.8 dev: true - /@vue/compiler-sfc@3.3.4: - resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} + /@vue/compiler-sfc@3.3.8: + resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==} dependencies: - '@babel/parser': 7.23.0 - '@vue/compiler-core': 3.3.4 - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-ssr': 3.3.4 - '@vue/reactivity-transform': 3.3.4 - '@vue/shared': 3.3.4 + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.3.8 + '@vue/compiler-dom': 3.3.8 + '@vue/compiler-ssr': 3.3.8 + '@vue/reactivity-transform': 3.3.8 + '@vue/shared': 3.3.8 estree-walker: 2.0.2 magic-string: 0.30.5 postcss: 8.4.31 source-map-js: 1.0.2 dev: true - /@vue/compiler-ssr@3.3.4: - resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} + /@vue/compiler-ssr@3.3.8: + resolution: {integrity: sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==} dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/compiler-dom': 3.3.8 + '@vue/shared': 3.3.8 dev: true /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: true - /@vue/reactivity-transform@3.3.4: - resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} + /@vue/reactivity-transform@3.3.8: + resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==} dependencies: - '@babel/parser': 7.23.0 - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.3.8 + '@vue/shared': 3.3.8 estree-walker: 2.0.2 magic-string: 0.30.5 dev: true - /@vue/reactivity@3.3.4: - resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + /@vue/reactivity@3.3.8: + resolution: {integrity: sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==} dependencies: - '@vue/shared': 3.3.4 + '@vue/shared': 3.3.8 dev: true - /@vue/runtime-core@3.3.4: - resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} + /@vue/runtime-core@3.3.8: + resolution: {integrity: sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==} dependencies: - '@vue/reactivity': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/reactivity': 3.3.8 + '@vue/shared': 3.3.8 dev: true - /@vue/runtime-dom@3.3.4: - resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} + /@vue/runtime-dom@3.3.8: + resolution: {integrity: sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==} dependencies: - '@vue/runtime-core': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/runtime-core': 3.3.8 + '@vue/shared': 3.3.8 csstype: 3.1.2 dev: true - /@vue/server-renderer@3.3.4(vue@3.3.4): - resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} + /@vue/server-renderer@3.3.8(vue@3.3.8): + resolution: {integrity: sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==} peerDependencies: - vue: 3.3.4 + vue: 3.3.8 dependencies: - '@vue/compiler-ssr': 3.3.4 - '@vue/shared': 3.3.4 - vue: 3.3.4 + '@vue/compiler-ssr': 3.3.8 + '@vue/shared': 3.3.8 + vue: 3.3.8(typescript@5.3.2) dev: true - /@vue/shared@3.3.4: - resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + /@vue/shared@3.3.8: + resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==} dev: true - /@vueuse/core@10.5.0(vue@3.3.4): - resolution: {integrity: sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==} + /@vueuse/core@10.6.1(vue@3.3.8): + resolution: {integrity: sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==} dependencies: - '@types/web-bluetooth': 0.0.18 - '@vueuse/metadata': 10.5.0 - '@vueuse/shared': 10.5.0(vue@3.3.4) - vue-demi: 0.14.6(vue@3.3.4) + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.6.1 + '@vueuse/shared': 10.6.1(vue@3.3.8) + vue-demi: 0.14.6(vue@3.3.8) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/integrations@10.5.0(focus-trap@7.5.3)(vue@3.3.4): - resolution: {integrity: sha512-fm5sXLCK0Ww3rRnzqnCQRmfjDURaI4xMsx+T+cec0ngQqHx/JgUtm8G0vRjwtonIeTBsH1Q8L3SucE+7K7upJQ==} + /@vueuse/integrations@10.6.1(focus-trap@7.5.4)(vue@3.3.8): + resolution: {integrity: sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA==} peerDependencies: async-validator: '*' axios: '*' @@ -2280,36 +2684,36 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.5.0(vue@3.3.4) - '@vueuse/shared': 10.5.0(vue@3.3.4) - focus-trap: 7.5.3 - vue-demi: 0.14.6(vue@3.3.4) + '@vueuse/core': 10.6.1(vue@3.3.8) + '@vueuse/shared': 10.6.1(vue@3.3.8) + focus-trap: 7.5.4 + vue-demi: 0.14.6(vue@3.3.8) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata@10.5.0: - resolution: {integrity: sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==} + /@vueuse/metadata@10.6.1: + resolution: {integrity: sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==} dev: true - /@vueuse/shared@10.5.0(vue@3.3.4): - resolution: {integrity: sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==} + /@vueuse/shared@10.6.1(vue@3.3.8): + resolution: {integrity: sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==} dependencies: - vue-demi: 0.14.6(vue@3.3.4) + vue-demi: 0.14.6(vue@3.3.8) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@zombienet/orchestrator@0.0.62(@polkadot/util@12.5.1)(@types/node@20.9.0): + /@zombienet/orchestrator@0.0.62(@polkadot/util@12.6.1)(@types/node@20.9.4): resolution: {integrity: sha512-nUX9/UrEv4k2kW7zOPBKIK6opaQ/7/QWQ4ZRfWooihM0k2cZ+HVeJ1AVXeDKnnbvaxfHG2/jrhIx5btuRYvbyQ==} engines: {node: '>=18'} dependencies: - '@polkadot/api': 10.10.1 - '@polkadot/keyring': 12.5.1(@polkadot/util-crypto@12.5.1)(@polkadot/util@12.5.1) - '@polkadot/util-crypto': 12.5.1(@polkadot/util@12.5.1) - '@zombienet/utils': 0.0.24(@types/node@20.9.0)(typescript@5.2.2) + '@polkadot/api': 10.11.1 + '@polkadot/keyring': 12.6.1(@polkadot/util-crypto@12.6.1)(@polkadot/util@12.6.1) + '@polkadot/util-crypto': 12.6.1(@polkadot/util@12.6.1) + '@zombienet/utils': 0.0.24(@types/node@20.9.4)(typescript@5.3.2) JSONStream: 1.3.5 chai: 4.3.10 debug: 4.3.4(supports-color@8.1.1) @@ -2323,7 +2727,7 @@ packages: napi-maybe-compressed-blob: 0.0.11 peer-id: 0.16.0 tmp-promise: 3.0.3 - typescript: 5.2.2 + typescript: 5.3.2 yaml: 2.3.4 transitivePeerDependencies: - '@polkadot/util' @@ -2337,7 +2741,7 @@ packages: - utf-8-validate dev: false - /@zombienet/utils@0.0.24(@types/node@20.9.0)(typescript@5.2.2): + /@zombienet/utils@0.0.24(@types/node@20.9.4)(typescript@5.3.2): resolution: {integrity: sha512-CUHn4u04ryfRqCQQsZHSpMIpMxzdMvSZR86Gp3Hwexf7wZTkHNZ5hsJnQO+J/yl28ny0GcjLJSU1hZ2kMV+hqw==} engines: {node: '>=18'} dependencies: @@ -2346,7 +2750,7 @@ packages: mocha: 10.2.0 nunjucks: 3.2.4 toml: 3.0.0 - ts-node: 10.9.1(@types/node@20.9.0)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.9.4)(typescript@5.3.2) transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -2376,7 +2780,7 @@ packages: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} requiresBuild: true - /abitype@0.7.1(typescript@5.2.2): + /abitype@0.7.1(typescript@5.3.2): resolution: {integrity: sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ==} peerDependencies: typescript: '>=4.9.4' @@ -2385,9 +2789,9 @@ packages: zod: optional: true dependencies: - typescript: 5.2.2 + typescript: 5.3.2 - /abitype@0.9.8(typescript@5.2.2): + /abitype@0.9.8(typescript@5.3.2): resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} peerDependencies: typescript: '>=5.0.4' @@ -2398,7 +2802,7 @@ packages: zod: optional: true dependencies: - typescript: 5.2.2 + typescript: 5.3.2 /abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} @@ -2406,20 +2810,20 @@ packages: dependencies: event-target-shim: 5.0.1 - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true @@ -2574,17 +2978,17 @@ packages: /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 is-array-buffer: 3.0.2 /array-includes@3.1.7: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-string: 1.0.7 dev: true @@ -2597,31 +3001,31 @@ packages: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 dev: true /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true /array.prototype.flatmap@1.3.2: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -2629,10 +3033,10 @@ packages: engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 dev: true @@ -2660,8 +3064,8 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - /axios@1.6.1(debug@4.3.4): - resolution: {integrity: sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==} + /axios@1.6.2(debug@4.3.4): + resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} dependencies: follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 @@ -2761,23 +3165,28 @@ packages: base64-js: 1.5.1 ieee754: 1.2.1 + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.5.4 dev: true - /bun-types@1.0.11: - resolution: {integrity: sha512-XaDwjnBlkdTOtBEAcXhDnPSKFMlwFK/526z0iyairYIDhZJMzZM1QU4D7XRiEI2SpKQWexn0S/LN9Mwx5xSJNg==} + /bun-types@1.0.13: + resolution: {integrity: sha512-QQH6NLAOU+2tWgQuDSAYBFy+kQwVhPJLB0Q38QLjCmFUZJEYCiiq7tzvU784LAIX2onzO6gr+gIGXt8yCt0cJw==} dev: true - /bundle-require@4.0.2(esbuild@0.18.20): + /bundle-require@4.0.2(esbuild@0.19.7): resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' dependencies: - esbuild: 0.18.20 + esbuild: 0.19.7 load-tsconfig: 0.2.5 dev: true @@ -2812,12 +3221,6 @@ packages: - bluebird optional: true - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -2857,7 +3260,7 @@ packages: check-error: 1.0.3 deep-eql: 4.1.3 get-func-name: 2.0.2 - loupe: 2.3.6 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 @@ -3225,13 +3628,14 @@ packages: dependencies: type-detect: 4.0.8 - /deep-equal@2.2.2: - resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 + call-bind: 1.0.5 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 is-arguments: 1.1.1 is-array-buffer: 3.0.2 is-date-object: 1.0.5 @@ -3245,7 +3649,7 @@ packages: side-channel: 1.0.4 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: false /deep-is@0.1.4: @@ -3257,14 +3661,6 @@ packages: dependencies: clone: 1.0.4 - /define-data-property@1.1.0: - resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.1 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} @@ -3277,8 +3673,8 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 - has-property-descriptors: 1.0.0 + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 /delayed-stream@1.0.0: @@ -3348,8 +3744,8 @@ packages: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} - /effect@2.0.0-next.54: - resolution: {integrity: sha512-qROhKMxlm6fpa90YRfWSgKeelDfhaDq2igPK+pIKupGehiCnZH4vd2qrY71HVZ10qZgXxh0VXpGyDQxJC+EQqw==} + /effect@2.0.0-next.56: + resolution: {integrity: sha512-Z6L9rf78OveZorl4pC82hUM/kNhQ8epChuCBVNIjVsookbb6iqTuP9goi3qi6CR7xUZE+HnOKF2bzMIdOOP+Vw==} dev: false /emoji-regex@8.0.0: @@ -3401,26 +3797,26 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.2: - resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has: 1.0.4 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 + hasown: 2.0.0 + internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 @@ -3429,7 +3825,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.1 @@ -3443,14 +3839,14 @@ packages: typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 is-arguments: 1.1.1 is-map: 2.0.2 @@ -3460,19 +3856,19 @@ packages: stop-iteration-iterator: 1.0.0 dev: false - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.4 + get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 + hasown: 2.0.0 dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - has: 1.0.4 + hasown: 2.0.0 dev: true /es-to-primitive@1.2.1: @@ -3515,6 +3911,36 @@ packages: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + dev: true + + /esbuild@0.19.7: + resolution: {integrity: sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.7 + '@esbuild/android-arm64': 0.19.7 + '@esbuild/android-x64': 0.19.7 + '@esbuild/darwin-arm64': 0.19.7 + '@esbuild/darwin-x64': 0.19.7 + '@esbuild/freebsd-arm64': 0.19.7 + '@esbuild/freebsd-x64': 0.19.7 + '@esbuild/linux-arm': 0.19.7 + '@esbuild/linux-arm64': 0.19.7 + '@esbuild/linux-ia32': 0.19.7 + '@esbuild/linux-loong64': 0.19.7 + '@esbuild/linux-mips64el': 0.19.7 + '@esbuild/linux-ppc64': 0.19.7 + '@esbuild/linux-riscv64': 0.19.7 + '@esbuild/linux-s390x': 0.19.7 + '@esbuild/linux-x64': 0.19.7 + '@esbuild/netbsd-x64': 0.19.7 + '@esbuild/openbsd-x64': 0.19.7 + '@esbuild/sunos-x64': 0.19.7 + '@esbuild/win32-arm64': 0.19.7 + '@esbuild/win32-ia32': 0.19.7 + '@esbuild/win32-x64': 0.19.7 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -3534,16 +3960,16 @@ packages: engines: {node: '>=12'} dev: false - /eslint-config-prettier@9.0.0(eslint@8.53.0): + /eslint-config-prettier@9.0.0(eslint@8.54.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true - /eslint-config-standard-with-typescript@39.1.1(@typescript-eslint/eslint-plugin@6.10.0)(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.2.0)(eslint-plugin-promise@6.1.1)(eslint@8.53.0)(typescript@5.2.2): + /eslint-config-standard-with-typescript@39.1.1(@typescript-eslint/eslint-plugin@6.12.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0)(typescript@5.2.2): resolution: {integrity: sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -3553,19 +3979,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.2.0)(eslint-plugin-promise@6.1.1)(eslint@8.53.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint@8.53.0) - eslint-plugin-n: 16.2.0(eslint@8.53.0) - eslint-plugin-promise: 6.1.1(eslint@8.53.0) + '@typescript-eslint/eslint-plugin': 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) + eslint-plugin-n: 16.3.1(eslint@8.54.0) + eslint-plugin-promise: 6.1.1(eslint@8.54.0) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.2.0)(eslint-plugin-promise@6.1.1)(eslint@8.53.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -3574,13 +4000,13 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.53.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint@8.53.0) - eslint-plugin-n: 16.2.0(eslint@8.53.0) - eslint-plugin-promise: 6.1.1(eslint@8.53.0) + eslint: 8.54.0 + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) + eslint-plugin-n: 16.3.1(eslint@8.54.0) + eslint-plugin-promise: 6.1.1(eslint@8.54.0) dev: true - /eslint-config-xo-typescript@1.0.1(@typescript-eslint/eslint-plugin@6.10.0)(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): + /eslint-config-xo-typescript@1.0.1(@typescript-eslint/eslint-plugin@6.12.0)(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): resolution: {integrity: sha512-vPQssnRSUgBFOEfB/KY12CXwltwFSn4RSCfa+w7gjBC2PFQ7Yfgmyei+1XUZ3K+8LRGef2NMJUcxts7PldhDjg==} engines: {node: '>=16'} peerDependencies: @@ -3589,33 +4015,33 @@ packages: eslint: '>=8.0.0' typescript: '>=4.7' dependencies: - '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 - typescript: 5.2.2 + '@typescript-eslint/eslint-plugin': 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 + typescript: 5.3.2 dev: true - /eslint-config-xo@0.43.1(eslint@8.53.0): + /eslint-config-xo@0.43.1(eslint@8.54.0): resolution: {integrity: sha512-azv1L2PysRA0NkZOgbndUpN+581L7wPqkgJOgxxw3hxwXAbJgD6Hqb/SjHRiACifXt/AvxCzE/jIKFAlI7XjvQ==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.27.0' dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.53.0 + eslint: 8.54.0 dev: true /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.0 + is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3636,38 +4062,38 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.53.0 + eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.2.0(eslint@8.53.0): - resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + /eslint-plugin-es-x@7.3.0(eslint@8.54.0): + resolution: {integrity: sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@eslint-community/regexpp': 4.9.1 - eslint: 8.53.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': 4.10.0 + eslint: 8.54.0 dev: true - /eslint-plugin-es@3.0.1(eslint@8.53.0): + /eslint-plugin-es@3.0.1(eslint@8.54.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.10.0)(eslint@8.53.0): - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3676,18 +4102,18 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.53.0 + eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) - has: 1.0.4 - is-core-module: 2.13.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) + hasown: 2.0.0 + is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.7 @@ -3701,32 +4127,33 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.2.0(eslint@8.53.0): - resolution: {integrity: sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==} + /eslint-plugin-n@16.3.1(eslint@8.54.0): + resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) builtins: 5.0.1 - eslint: 8.53.0 - eslint-plugin-es-x: 7.2.0(eslint@8.53.0) + eslint: 8.54.0 + eslint-plugin-es-x: 7.3.0(eslint@8.54.0) get-tsconfig: 4.7.2 ignore: 5.2.4 - is-core-module: 2.13.0 + is-builtin-module: 3.2.1 + is-core-module: 2.13.1 minimatch: 3.1.2 resolve: 1.22.8 semver: 7.5.4 dev: true - /eslint-plugin-node@11.1.0(eslint@8.53.0): + /eslint-plugin-node@11.1.0(eslint@8.54.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.53.0 - eslint-plugin-es: 3.0.1(eslint@8.53.0) + eslint: 8.54.0 + eslint-plugin-es: 3.0.1(eslint@8.54.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -3734,13 +4161,13 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.53.0): + /eslint-plugin-promise@6.1.1(eslint@8.54.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.54.0 dev: true /eslint-scope@7.2.2: @@ -3768,15 +4195,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@eslint-community/regexpp': 4.9.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 + '@eslint/js': 8.54.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -3798,7 +4225,7 @@ packages: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -3819,8 +4246,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true @@ -3919,7 +4346,6 @@ packages: onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 - dev: false /extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -3940,8 +4366,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3992,7 +4418,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.1 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -4023,9 +4449,9 @@ packages: pkg-dir: 4.2.0 dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.9 keyv: 4.5.4 @@ -4040,8 +4466,8 @@ packages: /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - /focus-trap@7.5.3: - resolution: {integrity: sha512-7UsT/eSJcTPF0aZp73u7hBRTABz26knRRTJfoTGFCQD5mUImLIIOwWWCrtoQdmWa7dykBi6H+Cp5i3S/kvsMeA==} + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} dependencies: tabbable: 6.2.0 dev: true @@ -4082,7 +4508,7 @@ packages: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: false /fs-extra@7.0.1: @@ -4119,9 +4545,6 @@ packages: requiresBuild: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -4129,9 +4552,9 @@ packages: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 functions-have-names: 1.2.3 dev: true @@ -4174,14 +4597,6 @@ packages: /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} - dependencies: - function-bind: 1.1.1 - has: 1.0.4 - has-proto: 1.0.1 - has-symbols: 1.0.3 - /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: @@ -4197,14 +4612,13 @@ packages: /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - dev: false /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true /get-tsconfig@4.7.2: @@ -4299,8 +4713,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -4308,7 +4722,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -4342,11 +4756,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.2.1 - /has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: @@ -4369,10 +4778,6 @@ packages: /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - /has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} - /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} @@ -4452,7 +4857,6 @@ packages: /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - dev: false /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -4485,6 +4889,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -4525,7 +4934,7 @@ packages: peerDependencies: inquirer: '>=8.0.0 <10.0.0' dependencies: - deep-equal: 2.2.2 + deep-equal: 2.2.3 inquirer: 9.2.12 ora: 6.3.1 dev: false @@ -4551,12 +4960,12 @@ packages: wrap-ansi: 6.2.0 dev: false - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.4 + get-intrinsic: 1.2.2 + hasown: 2.0.0 side-channel: 1.0.4 /ip@2.0.0: @@ -4568,14 +4977,14 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 /is-arrayish@0.2.1: @@ -4597,9 +5006,16 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -4611,10 +5027,10 @@ packages: ci-info: 3.9.0 dev: true - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - has: 1.0.4 + hasown: 2.0.0 dev: true /is-date-object@1.0.5: @@ -4700,7 +5116,7 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 /is-set@2.0.2: @@ -4710,7 +5126,7 @@ packages: /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} @@ -4719,7 +5135,6 @@ packages: /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -4744,7 +5159,7 @@ packages: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -4763,14 +5178,14 @@ packages: /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: false /is-windows@1.0.2: @@ -4924,7 +5339,7 @@ packages: /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 dev: false @@ -4972,9 +5387,9 @@ packages: uint8arrays: 3.1.1 dev: false - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} dev: true /lines-and-columns@1.2.4: @@ -4996,9 +5411,12 @@ packages: strip-bom: 3.0.0 dev: true - /local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -5048,16 +5466,15 @@ packages: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} dev: false - /loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} - dependencies: - get-func-name: 2.0.2 - /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 + /lru-cache@10.0.3: + resolution: {integrity: sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==} + engines: {node: 14 || >=16.14} + /lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -5141,7 +5558,7 @@ packages: resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} dependencies: - '@types/minimist': 1.2.3 + '@types/minimist': 1.2.5 camelcase-keys: 6.2.2 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 @@ -5185,7 +5602,6 @@ packages: /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - dev: false /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -5284,8 +5700,8 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - /minisearch@6.1.0: - resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==} + /minisearch@6.2.0: + resolution: {integrity: sha512-BECkorDF1TY2rGKt9XHdSeP9TP29yUbrAaCh/C03wpyf1vx3uYcP/+8XlMcpTkgoU0rBVnHMAOaP83Rc9Tm+TQ==} dev: true /minizlib@2.1.2: @@ -5313,10 +5729,10 @@ packages: /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.3.1 + ufo: 1.3.2 /mocha@10.2.0: resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} @@ -5389,8 +5805,8 @@ packages: hasBin: true dev: false - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -5450,13 +5866,12 @@ packages: requiresBuild: true optional: true - /nock@13.3.4: - resolution: {integrity: sha512-DDpmn5oLEdCTclEqweOT4U7bEpuoifBMFUXem9sA4turDAZ5tlbrEoWqCorwXey8CaAw44mst5JOQeVNiwtkhw==} + /nock@13.3.8: + resolution: {integrity: sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==} engines: {node: '>= 10.13'} dependencies: debug: 4.3.4(supports-color@8.1.1) json-stringify-safe: 5.0.1 - lodash: 4.17.21 propagate: 2.0.1 transitivePeerDependencies: - supports-color @@ -5544,7 +5959,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 - dev: false /npmlog@5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} @@ -5588,14 +6002,14 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 dev: false @@ -5607,7 +6021,7 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -5616,27 +6030,27 @@ packages: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /object.groupby@1.0.1: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 dev: true /object.values@1.1.7: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /on-exit-leak-free@2.1.2: @@ -5659,7 +6073,6 @@ packages: engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 - dev: false /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} @@ -5731,9 +6144,9 @@ packages: dependencies: yocto-queue: 0.1.0 - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: yocto-queue: 1.0.0 @@ -5822,7 +6235,6 @@ packages: /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - dev: false /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -5890,8 +6302,8 @@ packages: /pino-std-serializers@6.2.2: resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - /pino@8.16.1: - resolution: {integrity: sha512-3bKsVhBmgPjGV9pyn4fO/8RtoVDR8ssW1ev819FsRXlRNgW8gR/9Kx+gCK4UPWd4JjrRDLWpzd/pb1AyWm3MGA==} + /pino@8.16.2: + resolution: {integrity: sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg==} hasBin: true dependencies: atomic-sleep: 1.0.0 @@ -5925,14 +6337,14 @@ packages: mlly: 1.4.2 pathe: 1.1.1 - /pnpm@8.10.2: - resolution: {integrity: sha512-B4IJPVumx62UYggbwe8HdQFqS0EJ7KHh/tzqbxEBQ69fUJk9s2xCfU+oxivjkgoyJNsS2nGdJGyhndnxgEjDPA==} + /pnpm@8.10.5: + resolution: {integrity: sha512-nBYfQz2FVRxY8bOhCxjMPfcrWgLSyu5lZswFtvIK3e+UfnldkMOQM7+S3lUXfq1p2H9iqdqtyR56LjtY9JNToA==} engines: {node: '>=16.14'} hasBin: true dev: true - /postcss-load-config@4.0.1: - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + /postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' @@ -5943,7 +6355,7 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.1.0 + lilconfig: 3.0.0 yaml: 2.3.4 dev: true @@ -5951,12 +6363,12 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - /preact@10.18.1: - resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==} + /preact@10.19.2: + resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==} dev: true /preferred-pm@3.1.2: @@ -5980,8 +6392,8 @@ packages: hasBin: true dev: true - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} engines: {node: '>=14'} hasBin: true dev: true @@ -6043,7 +6455,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 20.9.0 + '@types/node': 20.9.4 long: 4.0.0 dev: false @@ -6064,8 +6476,8 @@ packages: end-of-stream: 1.4.4 once: 1.4.0 - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} /querystringify@2.2.0: @@ -6105,7 +6517,7 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.2 + '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -6167,7 +6579,7 @@ packages: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 @@ -6206,7 +6618,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -6265,6 +6677,26 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.3 + dev: true + + /rollup@4.5.1: + resolution: {integrity: sha512-0EQribZoPKpb5z1NW/QYm3XSR//Xr8BeEXU49Lc/mQmpmVVG5jPUVrpc2iptup/0WMrY9mzas0fxH+TjYvG2CA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.5.1 + '@rollup/rollup-android-arm64': 4.5.1 + '@rollup/rollup-darwin-arm64': 4.5.1 + '@rollup/rollup-darwin-x64': 4.5.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.5.1 + '@rollup/rollup-linux-arm64-gnu': 4.5.1 + '@rollup/rollup-linux-arm64-musl': 4.5.1 + '@rollup/rollup-linux-x64-gnu': 4.5.1 + '@rollup/rollup-linux-x64-musl': 4.5.1 + '@rollup/rollup-win32-arm64-msvc': 4.5.1 + '@rollup/rollup-win32-ia32-msvc': 4.5.1 + '@rollup/rollup-win32-x64-msvc': 4.5.1 + fsevents: 2.3.3 /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} @@ -6289,8 +6721,8 @@ packages: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -6301,8 +6733,8 @@ packages: /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-regex: 1.1.4 dev: true @@ -6321,8 +6753,8 @@ packages: xmlchars: 2.2.0 dev: false - /search-insights@2.8.3: - resolution: {integrity: sha512-W9rZfQ9XEfF0O6ntgQOTI7Txc8nkZrO4eJ/pTHK0Br6wWND2sPGPoWg+yGhdIW7wMbLqk8dc23IyEtLlNGpeNw==} + /search-insights@2.10.0: + resolution: {integrity: sha512-pQGrOE56QuTRmq4NzliRZe9rv914hBMBjOviuDliDHoIhmBGoyZRlFsPd4RprGGNC4PKdD2Jz54YN4Cmkb44mA==} /secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} @@ -6374,9 +6806,9 @@ packages: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 + define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -6422,9 +6854,9 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -6435,7 +6867,6 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: false /sirv@2.0.3: resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} @@ -6469,8 +6900,8 @@ packages: yargs: 15.4.1 dev: true - /smoldot@2.0.1: - resolution: {integrity: sha512-Wqw2fL/sELQByLSeeTX1Z/d0H4McmphPMx8vh6UZS/bIIDx81oU7s/drmx2iL/ME36uk++YxpRuJey8/MOyfOA==} + /smoldot@2.0.7: + resolution: {integrity: sha512-VAOBqEen6vises36/zgrmAT1GWk2qE3X8AGnO7lmQFdskbKx8EovnwS22rtPAG+Y1Rk23/S22kDJUdPANyPkBA==} requiresBuild: true dependencies: ws: 8.14.2 @@ -6613,8 +7044,8 @@ packages: /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - /std-env@3.4.3: - resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + /std-env@3.5.0: + resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} /stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} @@ -6627,7 +7058,7 @@ packages: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} dependencies: - internal-slot: 1.0.5 + internal-slot: 1.0.6 dev: false /stream-transform@2.1.3: @@ -6648,25 +7079,25 @@ packages: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /string_decoder@1.3.0: @@ -6699,7 +7130,6 @@ packages: /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - dev: false /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -6715,7 +7145,7 @@ packages: /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 /sucrase@3.34.0: resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} @@ -6857,7 +7287,7 @@ packages: engines: {node: '>=6'} dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 dev: false @@ -6868,14 +7298,14 @@ packages: /tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /tr46@4.1.1: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: false /tree-kill@1.2.2: @@ -6897,11 +7327,20 @@ packages: typescript: 5.2.2 dev: true + /ts-api-utils@1.0.3(typescript@5.3.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.2 + dev: true + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-node@10.9.1(@types/node@16.18.61)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@16.18.64)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6920,9 +7359,9 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 16.18.61 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@types/node': 16.18.64 + acorn: 8.11.2 + acorn-walk: 8.3.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -6932,7 +7371,7 @@ packages: yn: 3.1.1 dev: true - /ts-node@10.9.1(@types/node@20.9.0)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.9.4)(typescript@5.3.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6951,14 +7390,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.9.0 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@types/node': 20.9.4 + acorn: 8.11.2 + acorn-walk: 8.3.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.2.2 + typescript: 5.3.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: false @@ -6978,15 +7417,18 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsup@7.2.0(typescript@5.2.2): - resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} - engines: {node: '>=16.14'} + /tsup@8.0.1(typescript@5.3.2): + resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + engines: {node: '>=18'} hasBin: true peerDependencies: + '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 postcss: ^8.4.12 - typescript: '>=4.1.0' + typescript: '>=4.5.0' peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true '@swc/core': optional: true postcss: @@ -6994,28 +7436,28 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.2(esbuild@0.18.20) + bundle-require: 4.0.2(esbuild@0.19.7) cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4(supports-color@8.1.1) - esbuild: 0.18.20 + esbuild: 0.19.7 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.1 + postcss-load-config: 4.0.2 resolve-from: 5.0.0 - rollup: 3.29.4 + rollup: 4.5.1 source-map: 0.8.0-beta.0 sucrase: 3.34.0 tree-kill: 1.2.2 - typescript: 5.2.2 + typescript: 5.3.2 transitivePeerDependencies: - supports-color - ts-node dev: true - /tsx@4.1.0: - resolution: {integrity: sha512-u4l17Yd63Wsk2fzNn1wZCmcS9kwJ/2ysl7wuoVggv2hd3NjLA5JQPpyJMXoWSXOwOvoQUzNcu/sf/35HEsnXsg==} + /tsx@4.2.0: + resolution: {integrity: sha512-hvAXAz4KUYNyjXOjJJgyjT7YOGFUNLC8jnODI6Omc/wGKaZ7z0FvW5d2haqg1GLfX49H3nZOpLYRlHMYGI8Wbw==} engines: {node: '>=18.0.0'} hasBin: true dependencies: @@ -7026,8 +7468,8 @@ packages: fsevents: 2.3.3 dev: true - /tty-table@4.2.2: - resolution: {integrity: sha512-2gvCArMZLxgvpZ2NvQKdnYWIFLe7I/z5JClMuhrDXunmKgSZcQKcZRjN9XjAFiToMz2pUo1dEIXyrm0AwgV5Tw==} + /tty-table@4.2.3: + resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} engines: {node: '>=8.0.0'} hasBin: true dependencies: @@ -7079,8 +7521,8 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 dev: true @@ -7088,7 +7530,7 @@ packages: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -7099,7 +7541,7 @@ packages: engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -7108,7 +7550,7 @@ packages: /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 dev: true @@ -7195,11 +7637,11 @@ packages: hasBin: true dependencies: '@types/json-schema': 7.0.15 - '@types/node': 16.18.61 + '@types/node': 16.18.64 glob: 7.2.3 path-equal: 1.2.5 safe-stable-stringify: 2.4.3 - ts-node: 10.9.1(@types/node@16.18.61)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@16.18.64)(typescript@5.1.6) typescript: 5.1.6 yargs: 17.7.2 transitivePeerDependencies: @@ -7217,9 +7659,15 @@ packages: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true + dev: true + + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + engines: {node: '>=14.17'} + hasBin: true - /ufo@1.3.1: - resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} /uint8arrays@3.1.1: resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} @@ -7230,7 +7678,7 @@ packages: /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -7263,15 +7711,15 @@ packages: engines: {node: '>= 4.0.0'} dev: false - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} dev: false /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /url-parse@1.5.10: @@ -7307,39 +7755,38 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /viem@1.18.9(typescript@5.2.2): - resolution: {integrity: sha512-eAXtoTwAFA3YEgjTYMb5ZTQrDC0UPx5qyZ4sv90TirVKepcM9mBPksTkC1SSWya0UdxhBmhEBL/CiYMjmGCTWg==} + /viem@1.19.6(typescript@5.3.2): + resolution: {integrity: sha512-WSBHBMurWIWQk2yisOD8hqSA5S56cZu6onty3hzauVjiHMildtVWujF7YT0xjoU40GpFODvJASRR2RFdzgvUUg==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@adraffy/ens-normalize': 1.9.4 + '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 '@scure/bip39': 1.2.1 - abitype: 0.9.8(typescript@5.2.2) + abitype: 0.9.8(typescript@5.3.2) isows: 1.0.3(ws@8.13.0) - typescript: 5.2.2 + typescript: 5.3.2 ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod - /vite-node@1.0.0-beta.4(@types/node@20.9.0): - resolution: {integrity: sha512-YODjVvHd2Jih+TGMG3B99ktSyvET9w2cMevorAjcuQ3KKiPhDxEf2bRia2KsDHfnUGIfSpwoUdbcDdJ5xR7epg==} + /vite-node@1.0.0-beta.5(@types/node@20.9.4): + resolution: {integrity: sha512-iXm+GTJbR9R6V/bCM1+LQqIohL/tncZVNGIcTtzpYThBD8yiTkDPvEjy1Mf7KFACtG3qY/0VDMrkuMtqG/JFhg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@8.1.1) - mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.11(@types/node@20.9.0) + vite: 5.0.2(@types/node@20.9.4) transitivePeerDependencies: - '@types/node' - less @@ -7350,8 +7797,8 @@ packages: - supports-color - terser - /vite@4.4.11(@types/node@20.9.0): - resolution: {integrity: sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==} + /vite@4.5.0: + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -7378,28 +7825,63 @@ packages: terser: optional: true dependencies: - '@types/node': 20.9.0 esbuild: 0.18.20 postcss: 8.4.31 rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 + dev: true + + /vite@5.0.2(@types/node@20.9.4): + resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.9.4 + esbuild: 0.19.7 + postcss: 8.4.31 + rollup: 4.5.1 + optionalDependencies: + fsevents: 2.3.3 - /vitepress@1.0.0-rc.10(@algolia/client-search@4.20.0)(search-insights@2.8.3): + /vitepress@1.0.0-rc.10(@algolia/client-search@4.20.0)(search-insights@2.10.0)(typescript@5.3.2): resolution: {integrity: sha512-+MsahIWqq5WUEmj6MR4obcKYbT7im07jZPCQPdNJExkeOSbOAJ4xypSLx88x7rvtzWHhHc5aXbOhCRvGEGjFrw==} hasBin: true dependencies: '@docsearch/css': 3.5.2 - '@docsearch/js': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.8.3) + '@docsearch/js': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0) '@vue/devtools-api': 6.5.1 - '@vueuse/core': 10.5.0(vue@3.3.4) - '@vueuse/integrations': 10.5.0(focus-trap@7.5.3)(vue@3.3.4) - focus-trap: 7.5.3 + '@vueuse/core': 10.6.1(vue@3.3.8) + '@vueuse/integrations': 10.6.1(focus-trap@7.5.4)(vue@3.3.8) + focus-trap: 7.5.4 mark.js: 8.11.1 - minisearch: 6.1.0 + minisearch: 6.2.0 shiki: 0.14.5 - vite: 4.4.11(@types/node@20.9.0) - vue: 3.3.4 + vite: 4.5.0 + vue: 3.3.8(typescript@5.3.2) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -7424,11 +7906,12 @@ packages: - stylus - sugarss - terser + - typescript - universal-cookie dev: true - /vitest@1.0.0-beta.4(@types/node@20.9.0)(@vitest/ui@1.0.0-beta.4): - resolution: {integrity: sha512-WOJTqxY3hWqn4yy26SK+cx+BlPBeK/KtY9ALWkD6FLWLhSGY0QFEmarc8sdb/UGZQ8xs5pOvcQQS9JJSV8HH8g==} + /vitest@1.0.0-beta.5(@types/node@20.9.4)(@vitest/ui@1.0.0-beta.5): + resolution: {integrity: sha512-wmrGmXMKysR+JBvIwy0COgLrRSsZTR00dN+IpWBxGC4ACF5Mt/uYyrPLJZ0ixK4P3bxI16vd92JXMsuGnm9gQQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7452,28 +7935,28 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.9.0 - '@vitest/expect': 1.0.0-beta.4 - '@vitest/runner': 1.0.0-beta.4 - '@vitest/snapshot': 1.0.0-beta.4 - '@vitest/spy': 1.0.0-beta.4 - '@vitest/ui': 1.0.0-beta.4(vitest@1.0.0-beta.4) - '@vitest/utils': 1.0.0-beta.4 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@types/node': 20.9.4 + '@vitest/expect': 1.0.0-beta.5 + '@vitest/runner': 1.0.0-beta.5 + '@vitest/snapshot': 1.0.0-beta.5 + '@vitest/spy': 1.0.0-beta.5 + '@vitest/ui': 1.0.0-beta.5(vitest@1.0.0-beta.5) + '@vitest/utils': 1.0.0-beta.5 + acorn-walk: 8.3.0 cac: 6.7.14 chai: 4.3.10 debug: 4.3.4(supports-color@8.1.1) - local-pkg: 0.4.3 + execa: 8.0.1 + local-pkg: 0.5.0 magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.4.3 + std-env: 3.5.0 strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.8.1 - vite: 4.4.11(@types/node@20.9.0) - vite-node: 1.0.0-beta.4(@types/node@20.9.0) + vite: 5.0.2(@types/node@20.9.4) + vite-node: 1.0.0-beta.5(@types/node@20.9.4) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -7492,7 +7975,7 @@ packages: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: true - /vue-demi@0.14.6(vue@3.3.4): + /vue-demi@0.14.6(vue@3.3.8): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true @@ -7504,17 +7987,23 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.3.4 + vue: 3.3.8(typescript@5.3.2) dev: true - /vue@3.3.4: - resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} + /vue@3.3.8(typescript@5.3.2): + resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-sfc': 3.3.4 - '@vue/runtime-dom': 3.3.4 - '@vue/server-renderer': 3.3.4(vue@3.3.4) - '@vue/shared': 3.3.4 + '@vue/compiler-dom': 3.3.8 + '@vue/compiler-sfc': 3.3.8 + '@vue/runtime-dom': 3.3.8 + '@vue/server-renderer': 3.3.8(vue@3.3.8) + '@vue/shared': 3.3.8 + typescript: 5.3.2 dev: true /w3c-xmlserializer@4.0.0: @@ -7551,24 +8040,17 @@ packages: - encoding - utf-8-validate - /web3-errors@1.1.3: - resolution: {integrity: sha512-3GA4leG6XsKLmFWe62mIjVgW4GhkJmvd4IaRLgnKtNnqNmx6L9YWysYwgQ09BaD/NmhKN+AtalSVRds8gU+N0w==} - engines: {node: '>=14', npm: '>=6.12.0'} - requiresBuild: true - dependencies: - web3-types: 1.3.0 - /web3-errors@1.1.4: resolution: {integrity: sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ==} engines: {node: '>=14', npm: '>=6.12.0'} dependencies: web3-types: 1.3.1 - /web3-eth-abi@4.1.4(typescript@5.2.2): + /web3-eth-abi@4.1.4(typescript@5.3.2): resolution: {integrity: sha512-YLOBVVxxxLYKXjaiwZjEWYEnkMmmrm0nswZsvzSsINy/UgbWbzfoiZU+zn4YNWIEhORhx1p37iS3u/dP6VyC2w==} engines: {node: '>=14', npm: '>=6.12.0'} dependencies: - abitype: 0.7.1(typescript@5.2.2) + abitype: 0.7.1(typescript@5.3.2) web3-errors: 1.1.4 web3-types: 1.3.1 web3-utils: 4.0.7 @@ -7589,14 +8071,14 @@ packages: web3-utils: 4.0.7 web3-validator: 2.0.3 - /web3-eth-contract@4.1.3(typescript@5.2.2): + /web3-eth-contract@4.1.3(typescript@5.3.2): resolution: {integrity: sha512-F6e3eyetUDiNOb78EDVJtNOb0H1GPz3xAZH8edSfYdhaxI9tTutP2V3p++kh2ZJ/RrdE2+xil7H/nPLgHymBvg==} engines: {node: '>=14', npm: '>=6.12.0'} dependencies: web3-core: 4.3.1 web3-errors: 1.1.4 - web3-eth: 4.3.1(typescript@5.2.2) - web3-eth-abi: 4.1.4(typescript@5.2.2) + web3-eth: 4.3.1(typescript@5.3.2) + web3-eth-abi: 4.1.4(typescript@5.3.2) web3-types: 1.3.1 web3-utils: 4.0.7 web3-validator: 2.0.3 @@ -7607,15 +8089,15 @@ packages: - utf-8-validate - zod - /web3-eth-ens@4.0.8(typescript@5.2.2): + /web3-eth-ens@4.0.8(typescript@5.3.2): resolution: {integrity: sha512-nj0JfeD45BbzVJcVYpUJnSo8iwDcY9CQ7CZhhIVVOFjvpMAPw0zEwjTvZEIQyCW61OoDG9xcBzwxe2tZoYhMRw==} engines: {node: '>=14', npm: '>=6.12.0'} dependencies: '@adraffy/ens-normalize': 1.10.0 web3-core: 4.3.1 web3-errors: 1.1.4 - web3-eth: 4.3.1(typescript@5.2.2) - web3-eth-contract: 4.1.3(typescript@5.2.2) + web3-eth: 4.3.1(typescript@5.3.2) + web3-eth-contract: 4.1.3(typescript@5.3.2) web3-net: 4.0.7 web3-types: 1.3.1 web3-utils: 4.0.7 @@ -7636,12 +8118,12 @@ packages: web3-utils: 4.0.7 web3-validator: 2.0.3 - /web3-eth-personal@4.0.8(typescript@5.2.2): + /web3-eth-personal@4.0.8(typescript@5.3.2): resolution: {integrity: sha512-sXeyLKJ7ddQdMxz1BZkAwImjqh7OmKxhXoBNF3isDmD4QDpMIwv/t237S3q4Z0sZQamPa/pHebJRWVuvP8jZdw==} engines: {node: '>=14', npm: '>=6.12.0'} dependencies: web3-core: 4.3.1 - web3-eth: 4.3.1(typescript@5.2.2) + web3-eth: 4.3.1(typescript@5.3.2) web3-rpc-methods: 1.1.3 web3-types: 1.3.1 web3-utils: 4.0.7 @@ -7653,14 +8135,14 @@ packages: - utf-8-validate - zod - /web3-eth@4.3.1(typescript@5.2.2): + /web3-eth@4.3.1(typescript@5.3.2): resolution: {integrity: sha512-zJir3GOXooHQT85JB8SrufE+Voo5TtXdjhf1D8IGXmxM8MrhI8AT+Pgt4siBTupJcu5hF17iGmTP/Nj2XnaibQ==} engines: {node: '>=14', npm: '>=6.12.0'} dependencies: setimmediate: 1.0.5 web3-core: 4.3.1 web3-errors: 1.1.4 - web3-eth-abi: 4.1.4(typescript@5.2.2) + web3-eth-abi: 4.1.4(typescript@5.3.2) web3-eth-accounts: 4.1.0 web3-net: 4.0.7 web3-providers-ws: 4.0.7 @@ -7715,8 +8197,8 @@ packages: dependencies: '@types/ws': 8.5.3 isomorphic-ws: 5.0.0(ws@8.14.2) - web3-errors: 1.1.3 - web3-types: 1.3.0 + web3-errors: 1.1.4 + web3-types: 1.3.1 web3-utils: 4.0.7 ws: 8.14.2 transitivePeerDependencies: @@ -7735,11 +8217,6 @@ packages: - encoding - utf-8-validate - /web3-types@1.3.0: - resolution: {integrity: sha512-ReRq6D0w6Mr6PkC8mtn6JwBgbVAobPFYNWFO994C7LzTNweYQegb0peri5KMpEHQm2iG2tQbiIyAAeseIohc2Q==} - engines: {node: '>=14', npm: '>=6.12.0'} - requiresBuild: true - /web3-types@1.3.1: resolution: {integrity: sha512-8fXi7h/t95VKRtgU4sxprLPZpsTh3jYDfSghshIDBgUD/OoGe5S+syP24SUzBZYllZ/L+hMr2gdp/0bGJa8pYQ==} engines: {node: '>=14', npm: '>=6.12.0'} @@ -7765,19 +8242,19 @@ packages: web3-types: 1.3.1 zod: 3.22.4 - /web3@4.2.2(typescript@5.2.2): + /web3@4.2.2(typescript@5.3.2): resolution: {integrity: sha512-im7weoHY7TW87nhFk10ysupZnsDJEO/xDpz985AgrTd/7KxExlzjjKd+4nue0WskUF0th0mgoMs1YaA8xUjCjw==} engines: {node: '>=14.0.0', npm: '>=6.12.0'} dependencies: web3-core: 4.3.1 web3-errors: 1.1.4 - web3-eth: 4.3.1(typescript@5.2.2) - web3-eth-abi: 4.1.4(typescript@5.2.2) + web3-eth: 4.3.1(typescript@5.3.2) + web3-eth-abi: 4.1.4(typescript@5.3.2) web3-eth-accounts: 4.1.0 - web3-eth-contract: 4.1.3(typescript@5.2.2) - web3-eth-ens: 4.0.8(typescript@5.2.2) + web3-eth-contract: 4.1.3(typescript@5.3.2) + web3-eth-ens: 4.0.8(typescript@5.3.2) web3-eth-iban: 4.0.7 - web3-eth-personal: 4.0.8(typescript@5.2.2) + web3-eth-personal: 4.0.8(typescript@5.3.2) web3-net: 4.0.7 web3-providers-http: 4.1.0 web3-providers-ws: 4.0.7 @@ -7868,16 +8345,6 @@ packages: path-exists: 4.0.0 dev: true - /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - /which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} diff --git a/test/configs/moonbeamChopsticks.yml b/test/configs/moonbeamChopsticks.yml index 3d16d4da..b856d745 100644 --- a/test/configs/moonbeamChopsticks.yml +++ b/test/configs/moonbeamChopsticks.yml @@ -1,6 +1,6 @@ endpoint: wss://wss.api.moonbeam.network mock-signature-host: true -port: 12000 +port: 10000 db: ./tmp/db_mb.sqlite import-storage: diff --git a/test/moonwall.config.json b/test/moonwall.config.json index d4cb23f1..a4739568 100644 --- a/test/moonwall.config.json +++ b/test/moonwall.config.json @@ -226,7 +226,7 @@ "name": "mb", "type": "parachain", "buildBlockMode": "manual", - "configPath": "./configs/moonriverChopsticks.yml" + "configPath": "./configs/moonbeamChopsticks.yml" } ] }, @@ -573,7 +573,10 @@ "name": "web3_test", "testFileDir": ["suites/web3_test/"], "foundation": { - "type": "read_only" + "type": "read_only", + "launchSpec": { + "disableRuntimeVersionCheck": true + } }, "connections": [ { @@ -646,7 +649,7 @@ "name": "dev_test", "testFileDir": ["suites/dev_tests"], "envVars": ["DEBUG_COLORS=1", "TIMBO_TEST_ENV='TIMBO timbo timbo'"], - "reporters": ["default", "html", "json"], + "reporters": ["basic", "html", "json"], "reportFile": { "json": "tmp/testResults.json" }, "contracts": "contracts/", "runScripts": ["compile-contracts.ts compile -p contracts/precompiles"], diff --git a/test/package.json b/test/package.json index 194a1305..04da41f8 100644 --- a/test/package.json +++ b/test/package.json @@ -9,32 +9,32 @@ "clean": "rm -rf node_modules", "test-dev": "bun moonwall test 'dev_test dev_seq dev_mult'", "test": "bun moonwall test 'basic chopsticks'", - "node_test": "node --no-warnings --loader tsx --test suites/node_test/*.ts", + "node_test": "node --loader tsx --test suites/node_test/*.ts", "bun_test": "bun test suites/bun_test/*" }, "devDependencies": { - "@acala-network/chopsticks": "^0.9.1", + "@acala-network/chopsticks": "^0.9.2", "@moonbeam-network/api-augment": "^0.2600.0", "@moonwall/cli": "workspace:*", "@moonwall/types": "workspace:*", "@moonwall/util": "workspace:*", "@openzeppelin/contracts": "^5.0.0", - "@polkadot/api": "^10.10.1", - "@polkadot/api-augment": "^10.10.1", - "@polkadot/util": "^12.5.1", - "@types/node": "^20.9.0", - "@vitest/ui": "1.0.0-beta.4", - "bun-types": "^1.0.11", + "@polkadot/api": "^10.11.1", + "@polkadot/api-augment": "^10.11.1", + "@polkadot/util": "^12.6.1", + "@types/node": "^20.9.4", + "@vitest/ui": "1.0.0-beta.5", + "bun-types": "^1.0.13", "chai": "^4.3.10", "chalk": "^5.3.0", - "ethers": "^6.8.1", - "pnpm": "8.10.2", - "prettier": "^3.0.3", + "ethers": "6.8.1", + "pnpm": "8.10.5", + "prettier": "^3.1.0", "solc": "^0.8.23", - "tsx": "^4.1.0", - "typescript": "^5.2.2", - "viem": "^1.18.9", - "vitest": "1.0.0-beta.4", + "tsx": "^4.2.0", + "typescript": "^5.3.2", + "viem": "^1.19.6", + "vitest": "1.0.0-beta.5", "web3": "4.2.2", "yargs": "^17.7.2" } diff --git a/test/suites/basic/test_apis.ts b/test/suites/basic/test_apis.ts index 5f51d766..56ceb791 100644 --- a/test/suites/basic/test_apis.ts +++ b/test/suites/basic/test_apis.ts @@ -1,10 +1,10 @@ -import { beforeAll, describeSuite, expect } from "@moonwall/cli"; +import { describeSuite, expect } from "@moonwall/cli"; describeSuite({ id: "B01", title: "Tests that are using the production APIs", foundationMethods: "read_only", - testCases: ({ context, it }) => { + testCases: ({ it }) => { it({ id: "T01", title: "Passing Test", diff --git a/test/suites/basic/test_basic.ts b/test/suites/basic/test_basic.ts index 7cefccee..fd4b9960 100644 --- a/test/suites/basic/test_basic.ts +++ b/test/suites/basic/test_basic.ts @@ -46,5 +46,15 @@ describeSuite({ }).to.throw("ERROR THROWN"); }, }); + + it({ + id: "T05", + title: "This test case can read globals", + modifier: "skip", + test: function () { + log("Printing Global config", globalThis.config); + expect(globalThis.config).to.be.an("object"); + }, + }); }, }); diff --git a/test/suites/chopsticks/test-chopsticks-basic.ts b/test/suites/chopsticks/test-chopsticks-basic.ts index d8517a2a..17c30eb2 100644 --- a/test/suites/chopsticks/test-chopsticks-basic.ts +++ b/test/suites/chopsticks/test-chopsticks-basic.ts @@ -25,7 +25,7 @@ describeSuite({ const currentBlockHeight = (await api.rpc.chain.getHeader()).number.toNumber(); log(`You are now connected to ${chainName} at height #${currentBlockHeight}`); expect(currentBlockHeight).toBeGreaterThan(0); - expect(["dancebox", "moonriver"].includes(chainName)).toBe(true); + expect(["dancebox", "moonriver", "moonbeam"].includes(chainName)).toBe(true); log(JSON.stringify(await api.rpc.state.getStorage(":code")).slice(0, 20)); log(`This chain is an Ethereum chain: ${context.isEthereumChain}`); log(`Alith Address is: ${context.keyring.alice.address}`); diff --git a/tsconfig.json b/tsconfig.json index ad14d36a..f1316b42 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,7 @@ "module": "esnext", "baseUrl": "./", "lib": ["ESNext"], + "types": ["node"], "declaration": true, "outDir": "./dist", "moduleResolution": "Bundler", @@ -16,7 +17,6 @@ "sourceMap": true, "esModuleInterop": true, "resolveJsonModule": true, - "noEmit": true, "noUncheckedIndexedAccess": true, "strict": false //renable this oneday },