From 0d964b09871b09fa5ce441d3339254d171ecae62 Mon Sep 17 00:00:00 2001 From: Paul <41552663+molecula451@users.noreply.github.com> Date: Thu, 14 Mar 2024 02:06:20 -0400 Subject: [PATCH] feat: Web3 RPC Handler (npm package) (#1) (#4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: web3 rpc handler npm package * feat: web3 rpc handler npm package * chore: configurable, add kebab, remove dist * chore: readme * chore: add workflow scripts * chore: remove build workflow * Delete .github/workflows/scripts/kebabalize.sh This is destructive and renames files so lets not use it. * chore: improved race, tests and readme, removed ubq rpcs * chore: script permission * chore: type the constants remove bad else * fix: type out path to src * chore: type the promises, add ts config and jest workflow * chore: final touch ups * chore: export all from index * fix: readme * Update package.json * Update README.md --------- Co-authored-by: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Co-authored-by: アレクサンダー.eth <4975670+pavlovcik@users.noreply.github.com> --- .babelrc | 3 + .cspell.json | 5 +- .env.example | 1 - .eslintrc | 155 +- .github/workflows/build.yml | 42 - .github/workflows/jest-testing.yml | 33 + .github/workflows/kebab-case.yml | 15 + .github/workflows/knip.yml | 2 +- .github/workflows/scripts/kebab-case.sh | 30 + .gitignore | 5 +- .gitmodules | 3 + README.md | 91 +- babel.config.js | 3 + build/esbuild-build.ts | 71 +- build/esbuild-server.ts | 18 - build/index.ts | 4 - jest.config.ts | 12 + knip.ts | 2 +- lib/chainlist | 1 + package.json | 33 +- src/constants.ts | 69 + src/handler.ts | 50 + src/index.ts | 31 + src/rpc-handler.ts | 186 ++ src/services/rpc-service.ts | 112 + src/services/storage-service.ts | 28 + static/fonts/ubiquity-nova-standard.eot | Bin 56807 -> 0 bytes static/fonts/ubiquity-nova-standard.ttf | Bin 187128 -> 0 bytes static/fonts/ubiquity-nova-standard.woff | Bin 77756 -> 0 bytes static/index.html | 13 - static/main.ts | 10 - static/style.css | 16 - tests/env.test.ts | 40 + tests/rpc-handler.test.ts | 88 + tests/script-test.ts | 23 + tsconfig.json | 120 +- tsconfig.node.json | 8 + tsconfig.web.json | 10 + yarn.lock | 2769 +++++++++++++++++++++- 39 files changed, 3813 insertions(+), 289 deletions(-) create mode 100644 .babelrc delete mode 100644 .env.example delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/jest-testing.yml create mode 100644 .github/workflows/kebab-case.yml create mode 100755 .github/workflows/scripts/kebab-case.sh create mode 100644 .gitmodules create mode 100644 babel.config.js delete mode 100644 build/esbuild-server.ts delete mode 100644 build/index.ts create mode 100644 jest.config.ts create mode 160000 lib/chainlist create mode 100644 src/constants.ts create mode 100644 src/handler.ts create mode 100644 src/index.ts create mode 100644 src/rpc-handler.ts create mode 100644 src/services/rpc-service.ts create mode 100644 src/services/storage-service.ts delete mode 100644 static/fonts/ubiquity-nova-standard.eot delete mode 100644 static/fonts/ubiquity-nova-standard.ttf delete mode 100644 static/fonts/ubiquity-nova-standard.woff delete mode 100644 static/index.html delete mode 100644 static/main.ts delete mode 100644 static/style.css create mode 100644 tests/env.test.ts create mode 100644 tests/rpc-handler.test.ts create mode 100644 tests/script-test.ts create mode 100644 tsconfig.node.json create mode 100644 tsconfig.web.json diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..3313ff9 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env", "@babel/preset-typescript"] +} diff --git a/.cspell.json b/.cspell.json index dfd6093..ad8efe2 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,11 +1,12 @@ { "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", - "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"], + "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log", "lib", "dist"], "useGitignore": true, "language": "en", "words": ["dataurl", "devpool", "outdir", "servedir"], "dictionaries": ["typescript", "node", "software-terms"], "import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"], - "ignoreRegExpList": ["[0-9a-fA-F]{6}"] + "ignoreRegExpList": ["[0-9a-fA-F]{6}"], + "ignoreWords": ["Rpcs", "ethersproject", "publicnode", "WXDAI", "XDAI", "chainlist", "Knip"] } diff --git a/.env.example b/.env.example deleted file mode 100644 index e49d79a..0000000 --- a/.env.example +++ /dev/null @@ -1 +0,0 @@ -MY_SECRET="MY_SECRET" diff --git a/.eslintrc b/.eslintrc index 5996f04..702bb05 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,20 +2,55 @@ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { - "project": ["./tsconfig.json"] + "project": [ + "./tsconfig.json" + ] }, - "plugins": ["@typescript-eslint", "sonarjs"], - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:sonarjs/recommended"], - "ignorePatterns": ["**/*.js"], + "plugins": [ + "@typescript-eslint", + "sonarjs" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:sonarjs/recommended" + ], + "ignorePatterns": [ + "**/*.js", + "**/*.d.ts", + "**/*.test.ts", + "**/*-test.ts", + "jest.config.ts", + "knip.ts", + "build", + "./lib", + "./dist" + ], "rules": { - "prefer-arrow-callback": ["warn", { "allowNamedFunctions": true }], - "func-style": ["warn", "declaration", { "allowArrowFunctions": false }], + "prefer-arrow-callback": [ + "warn", + { + "allowNamedFunctions": true + } + ], + "func-style": [ + "warn", + "declaration", + { + "allowArrowFunctions": false + } + ], "@typescript-eslint/no-floating-promises": "error", "@typescript-eslint/no-non-null-assertion": "error", "constructor-super": "error", "no-invalid-this": "off", - "@typescript-eslint/no-invalid-this": ["error"], - "no-restricted-syntax": ["error", "ForInStatement"], + "@typescript-eslint/no-invalid-this": [ + "error" + ], + "no-restricted-syntax": [ + "error", + "ForInStatement" + ], "use-isnan": "error", "@typescript-eslint/no-unused-vars": [ "error", @@ -38,16 +73,98 @@ "sonarjs/no-identical-expressions": "error", "@typescript-eslint/naming-convention": [ "error", - { "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false } }, - { "selector": "memberLike", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require" }, - { "selector": "typeLike", "format": ["PascalCase"] }, - { "selector": "typeParameter", "format": ["PascalCase"], "prefix": ["T"] }, - { "selector": "variable", "format": ["camelCase", "UPPER_CASE"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, - { "selector": "variable", "format": ["camelCase"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, - { "selector": "variable", "modifiers": ["destructured"], "format": null }, - { "selector": "variable", "types": ["boolean"], "format": ["PascalCase"], "prefix": ["is", "should", "has", "can", "did", "will", "does"] }, - { "selector": "variableLike", "format": ["camelCase"] }, - { "selector": ["function", "variable"], "format": ["camelCase"] } + { + "selector": "interface", + "format": [ + "PascalCase" + ], + "custom": { + "regex": "^I[A-Z]", + "match": false + } + }, + { + "selector": "memberLike", + "modifiers": [ + "private" + ], + "format": [ + "camelCase" + ], + "leadingUnderscore": "require" + }, + { + "selector": "typeLike", + "format": [ + "PascalCase" + ] + }, + { + "selector": "typeParameter", + "format": [ + "PascalCase" + ], + "prefix": [ + "T" + ] + }, + { + "selector": "variable", + "format": [ + "camelCase", + "UPPER_CASE" + ], + "leadingUnderscore": "allow", + "trailingUnderscore": "allow" + }, + { + "selector": "variable", + "format": [ + "camelCase" + ], + "leadingUnderscore": "allow", + "trailingUnderscore": "allow" + }, + { + "selector": "variable", + "modifiers": [ + "destructured" + ], + "format": null + }, + { + "selector": "variable", + "types": [ + "boolean" + ], + "format": [ + "PascalCase" + ], + "prefix": [ + "is", + "should", + "has", + "can", + "did", + "will", + "does" + ] + }, + { + "selector": "variableLike", + "format": [ + "camelCase" + ] + }, + { + "selector": [ + "function", + "variable" + ], + "format": [ + "camelCase" + ] + } ] } -} +} \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 899707c..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Build & Deploy - -on: - push: - pull_request: - workflow_dispatch: - -permissions: - contents: read - -jobs: - build: - runs-on: ubuntu-22.04 - - steps: - - name: Check out repository - uses: actions/checkout@v4 - # with: - # submodules: "recursive" # Ensures submodules are checked out - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: 20.10.0 - - - name: Build - run: | - yarn - yarn build - # env: # Set environment variables for the build - # SUPABASE_URL: "https://wfzpewmlyiozupulbuur.supabase.co" - # SUPABASE_ANON_KEY: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6IndmenBld21seWlvenVwdWxidXVyIiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTU2NzQzMzksImV4cCI6MjAxMTI1MDMzOX0.SKIL3Q0NOBaMehH0ekFspwgcu3afp3Dl9EDzPqs1nKs" - - - name: Deploy to Cloudflare - uses: ubiquity/cloudflare-deploy-action@main - with: - repository: ${{ github.repository }} - production_branch: ${{ github.event.repository.default_branch }} - output_directory: "static" - current_branch: ${{ github.ref_name }} - pull_request_number: ${{ github.event.pull_request.number }} - commit_sha: ${{ github.event.pull_request.head.sha }} diff --git a/.github/workflows/jest-testing.yml b/.github/workflows/jest-testing.yml new file mode 100644 index 0000000..f2bd356 --- /dev/null +++ b/.github/workflows/jest-testing.yml @@ -0,0 +1,33 @@ +name: Run Jest testing suite +on: + workflow_dispatch: + pull_request_target: + types: [opened, synchronize] + +env: + NODE_ENV: "test" + +jobs: + testing: + permissions: write-all + runs-on: ubuntu-latest + steps: + - uses: actions/setup-node@v4 + with: + node-version: "20.10.0" + - uses: actions/checkout@master + with: + fetch-depth: 0 + - name: Build & Run test suite + run: | + yarn && yarn build + yarn test | tee ./coverage.txt && exit ${PIPESTATUS[0]} + - name: Jest Coverage Comment + # Ensures this step is run even on previous step failure (e.g. test failed) + if: always() + uses: MishaKav/jest-coverage-comment@main + with: + coverage-summary-path: coverage/coverage-summary.json + junitxml-path: junit.xml + junitxml-title: JUnit + coverage-path: ./coverage.txt diff --git a/.github/workflows/kebab-case.yml b/.github/workflows/kebab-case.yml new file mode 100644 index 0000000..1adda49 --- /dev/null +++ b/.github/workflows/kebab-case.yml @@ -0,0 +1,15 @@ +name: Enforce kebab-case + +on: + push: + pull_request: + +jobs: + check-filenames: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Check For Non Kebab-Cased TypeScript Files + run: .github/workflows/scripts/kebab-case.sh diff --git a/.github/workflows/knip.yml b/.github/workflows/knip.yml index df68bda..a16c31f 100644 --- a/.github/workflows/knip.yml +++ b/.github/workflows/knip.yml @@ -27,4 +27,4 @@ jobs: comment_id: ${{ github.workflow }}-reporter command_script_name: knip-ci annotations: true - ignore_results: false \ No newline at end of file + ignore_results: false diff --git a/.github/workflows/scripts/kebab-case.sh b/.github/workflows/scripts/kebab-case.sh new file mode 100755 index 0000000..fa93d7f --- /dev/null +++ b/.github/workflows/scripts/kebab-case.sh @@ -0,0 +1,30 @@ +#!/bin/bash +non_compliant_files=() +ignoreList=("^\.\/.git" "^\.\/\..*" "^\.\/[^\/]*$") +ignoreList+=("^\.\/node_modules") +while IFS= read -r line; do +ignoreList+=(".*$line") +done < .gitignore +while read -r file; do +basefile=$(basename "$file") +ignoreFile=false +for pattern in "${ignoreList[@]}"; do + if [[ "$file" =~ $pattern ]]; then + ignoreFile=true + break + fi +done +if $ignoreFile; then + continue +elif ! echo "$basefile" | grep -q -E "^([a-z0-9]+-)*[a-z0-9]+(\.[a-zA-Z0-9]+)?$|^([a-z0-9]+_)*[a-z0-9]+(\.[a-zA-Z0-9]+)?$"; then + non_compliant_files+=("$file") + echo "::warning file=$file::This file is not in kebab-case or snake_case" +fi +done < <(find . -type f -name '*.ts' -print | grep -E '/[a-z]+[a-zA-Z]*\.ts$') +if [ ${#non_compliant_files[@]} -ne 0 ]; then +echo "The following files are not in kebab-case or snake_case:" +for file in "${non_compliant_files[@]}"; do + echo " - $file" +done +exit 1 +fi \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7791818..929f603 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,7 @@ node_modules .pnp.cjs .pnp.loader.mjs .env -static/dist \ No newline at end of file +dist + +coverage +junit.xml \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..cb712ca --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/chainlist"] + path = lib/chainlist + url = https://github.com/DefiLlama/chainlist.git diff --git a/README.md b/README.md index f5bdeee..fd0fbef 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,87 @@ -# `@ubiquity/ts-template` +# `@ubiquity/rpc-handler` -This template repository includes support for the following: +This packages leverages [Chainlist's](https://github.com/DefiLlama/chainlist) network RPC list to return the lowest latency provider from the list for any given network ID. -- TypeScript -- Environment Variables -- Conventional Commits -- Automatic deployment to Cloudflare Pages +## Features + +- Returns the lowest latency provider for a given network ID +- Drops bad endpoints from the list and creates a runtime/local storage cache +- Can re-test the cached RPCs by calling `handler.getFastestRpcProvider()` +- Can be used in both the browser and Node.js +- Fully configurable and extendable +- Only uses endpoints which Chainlist report as tracking _no_ data (see [`extraRpcs.js`](https://github.com/DefiLlama/chainlist/blob/main/constants/extraRpcs.js)) + +## Installation + +```bash +yarn add @ubiquitydao/rpc-handler +``` + +## Usage + +- Import the handler for your environment + +###### Browser + +```typescript +import { HandlerConstructorConfig } from "@ubiquity/rpc-handler/dist/esm/src/handler"; +import { RPCHandler } from "@ubiquity/rpc-handler/dist/esm/src/rpc-handler"; + +export function useHandler(networkId: number) { + const config: HandlerConstructorConfig = { + networkId, + autoStorage: true, + cacheRefreshCycles: 5, + }; + // No RPCs are tested at this point + return new RPCHandler(config); +} +``` + +```typescript +import { useHandler } from "./rpc-handler"; +const handler = useHandler(networkId); + +// Now the RPCs are tested +app.provider = await handler.getFastestRpcProvider(); +``` + +###### Node.js + +```typescript +import { HandlerConstructorConfig } from "@ubiquity/rpc-handler/dist/cjs/src/handler"; +import { RPCHandler } from "@ubiquity/rpc-handler/dist/cjs/src/rpc-handler"; + +const config: HandlerConstructorConfig = { + networkId: 100; + autoStorage: false, // only applies to local storage + cacheRefreshCycles: 5, +}; + +async function main() { + const handler = new RPCHandler(config); + return await handler.getFastestRpcProvider(); +} + +main().then(console.log).catch(console.error); +``` + +#### Notes + +- The RPCs are not tested on instantiation, but are tested on each call to `handler.getFastestRpcProvider()` or `handler.testRpcPerformance()` + +- `networkId` is the only required configuration option + +- See the full [config](src\handler.ts) object (optionally passed in the constructor) for more options + +- Local storage is not enabled by default, but can be enabled by passing `autoStorage: true` in the config object + +- The `cacheRefreshCycles` is the number of roundtrips made before clearing the cache and re-testing all RPCs again + +## Testing + +- In order to run the tests the package must first be built, this is required otherwise `networkRpcs` will be empty as the RPCs are injected at build time + +```bash +yarn test +``` diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..2afcfd2 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [["@babel/preset-env", { targets: { node: "current" } }], "@babel/preset-typescript"], +}; diff --git a/build/esbuild-build.ts b/build/esbuild-build.ts index 3004b1d..d2c4934 100644 --- a/build/esbuild-build.ts +++ b/build/esbuild-build.ts @@ -1,33 +1,66 @@ import esbuild from "esbuild"; -const typescriptEntries = ["static/main.ts"]; -// const cssEntries = ["static/style.css"]; -const entries = [ - ...typescriptEntries, - // ...cssEntries -]; +import chainlist from "../lib/chainlist/constants/extraRpcs"; +import chainIDList from "../lib/chainlist/constants/chainIds.json"; + +const typescriptEntries = ["src/rpc-handler.ts", "src/constants.ts", "src/handler.ts", "src/services/rpc-service.ts", "src/services/storage-service.ts"]; +export const entries = [...typescriptEntries]; +const extraRpcs: Record = {}; +// this flattens all the rpcs into a single object, with key names that match the networkIds. The arrays are just of URLs per network ID. + +Object.keys(chainlist).forEach((networkId) => { + const officialUrls = chainlist[networkId].rpcs.filter((rpc) => typeof rpc === "string"); + const extraUrls: string[] = chainlist[networkId].rpcs.filter((rpc) => rpc.url !== undefined && rpc.tracking === "none").map((rpc) => rpc.url); + + extraRpcs[networkId] = [...officialUrls, ...extraUrls].filter((rpc) => rpc.startsWith("https://")); +}); export const esBuildContext: esbuild.BuildOptions = { - sourcemap: true, entryPoints: entries, bundle: true, - minify: false, - loader: { - ".png": "dataurl", - ".woff": "dataurl", - ".woff2": "dataurl", - ".eot": "dataurl", - ".ttf": "dataurl", - ".svg": "dataurl", - }, - outdir: "static/dist", + minify: true, + + outdir: "dist", + define: createEnvDefines({ extraRpcs, chainIDList }), }; esbuild - .build(esBuildContext) + .build({ + ...esBuildContext, + tsconfig: "tsconfig.node.json", + platform: "node", + outdir: "dist/cjs/src", + format: "cjs", + }) + .then(() => { + console.log("Node.js esbuild complete"); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); + +esbuild + .build({ + ...esBuildContext, + tsconfig: "tsconfig.web.json", + platform: "browser", + outdir: "dist/esm/src", + format: "esm", + }) .then(() => { - console.log("\tesbuild complete"); + console.log("Frontend esbuild complete"); }) .catch((err) => { console.error(err); process.exit(1); }); + +function createEnvDefines(generatedAtBuild: Record): Record { + const defines: Record = {}; + + Object.keys(generatedAtBuild).forEach((key) => { + defines[key] = JSON.stringify(generatedAtBuild[key]); + }); + + return defines; +} diff --git a/build/esbuild-server.ts b/build/esbuild-server.ts deleted file mode 100644 index bb992ae..0000000 --- a/build/esbuild-server.ts +++ /dev/null @@ -1,18 +0,0 @@ -import esbuild from "esbuild"; -import { esBuildContext } from "./esbuild-build"; - -(async () => { - await server(); -})().catch((error) => { - console.error("Unhandled error:", error); - process.exit(1); -}); - -export async function server() { - const _context = await esbuild.context(esBuildContext); - const { port } = await _context.serve({ - servedir: "static", - port: 8080, - }); - console.log(`http://localhost:${port}`); -} diff --git a/build/index.ts b/build/index.ts deleted file mode 100644 index e1cf0b8..0000000 --- a/build/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as dotenv from "dotenv"; -// load environment variables (if you have them) -dotenv.config(); -console.log("Welcome to ts-template"); diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 0000000..4737055 --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,12 @@ +import { JestConfigWithTsJest } from "ts-jest"; + +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + roots: ["./tests"], + coveragePathIgnorePatterns: ["node_modules", "mocks"], + collectCoverage: true, + coverageReporters: ["json", "lcov", "text", "clover", "json-summary"], + reporters: ["default", "jest-junit"], + coverageDirectory: "coverage", +} as JestConfigWithTsJest; diff --git a/knip.ts b/knip.ts index 57b5e39..a749511 100644 --- a/knip.ts +++ b/knip.ts @@ -8,4 +8,4 @@ const config: KnipConfig = { ignoreDependencies: [], }; -export default config; \ No newline at end of file +export default config; diff --git a/lib/chainlist b/lib/chainlist new file mode 160000 index 0000000..b00e30a --- /dev/null +++ b/lib/chainlist @@ -0,0 +1 @@ +Subproject commit b00e30a86ea131a895ece42d07a7c250bacc2243 diff --git a/package.json b/package.json index 73e995c..9896332 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,32 @@ { - "name": "ts-template", + "name": "@ubiquitydao/rpc-handler", "version": "1.0.0", - "description": "Template repository with TypeScript support.", - "main": "build/index.ts", - "author": "Ubiquity DAO", + "description": "Uses Chainlist's RPC collection racing them returning the lowest latency RPC", + "main": "dist/cjs/rpc-handler.js", + "module": "dist/esm/rpc-handler.js", + "types": "src/index.ts", + "author": "Ubiquity", "license": "MIT", + "files": [ + "dist" + ], "engines": { "node": ">=20.10.0" }, "scripts": { - "start": "tsx build/esbuild-server.ts", - "build": "tsx build/esbuild-build.ts", "format": "run-s format:lint format:prettier format:cspell", "format:lint": "eslint --fix .", "format:prettier": "prettier --write .", "format:cspell": "cspell **/*", "knip": "knip", "knip-ci": "knip --no-exit-code --reporter json", - "prepare": "husky install" + "prepare": "husky install", + "build:cjs": "tsc --emitDeclarationOnly --outDir dist/cjs/src", + "build:esm": "tsc --emitDeclarationOnly --outDir dist/esm/src", + "build": "tsx build/esbuild-build.ts", + "postbuild": "yarn build:cjs && yarn build:esm", + "postinstall": "git submodule update --init --recursive", + "test": "jest" }, "keywords": [ "typescript", @@ -27,14 +36,18 @@ "open-source" ], "dependencies": { - "dotenv": "^16.4.4" + "@ethersproject/providers": "5.7.2" }, "devDependencies": { + "@babel/core": "^7.24.0", + "@babel/preset-env": "^7.24.0", + "@babel/preset-typescript": "^7.23.3", "@commitlint/cli": "^18.6.1", "@commitlint/config-conventional": "^18.6.2", "@cspell/dict-node": "^4.0.3", "@cspell/dict-software-terms": "^3.3.18", "@cspell/dict-typescript": "^3.1.2", + "@types/jest": "^29.5.12", "@types/node": "^20.11.19", "@typescript-eslint/eslint-plugin": "^7.0.1", "@typescript-eslint/parser": "^7.0.1", @@ -45,10 +58,14 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-sonarjs": "^0.24.0", "husky": "^9.0.11", + "jest": "^29.7.0", + "jest-junit": "16.0.0", "knip": "^5.0.1", "lint-staged": "^15.2.2", "npm-run-all": "^4.1.5", "prettier": "^3.2.5", + "ts-jest": "^29.1.2", + "ts-node": "10.9.2", "tsx": "^4.7.1", "typescript": "^5.3.3" }, diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..42daff3 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,69 @@ +import { ChainNames, NativeToken, Token } from "./handler"; + +export declare const chainIDList: Record; +export declare const extraRpcs: Record; + +export type ChainId = T extends keyof typeof chainIDList ? (typeof chainIDList)[T] : T; + +export const permit2Address = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; +export const nftAddress = "0xAa1bfC0e51969415d64d6dE74f27CDa0587e645b"; +export const LOCAL_HOST = "http://127.0.0.1:8545"; + +export const networkIds: Record = Object.fromEntries( + Object.entries(chainIDList).map(([id, name]) => { + const chainId = parseInt(id); + const chain = name.charAt(0).toUpperCase() + name.slice(1); + return [chain, chainId]; + }) +); + +export const networkNames: ChainNames = Object.fromEntries( + Object.entries(networkIds).map(([name, id]) => { + const chainName = name.charAt(0).toUpperCase() + name.slice(1); + return [id, chainName]; + }) +); + +export const networkRpcs: Record = Object.fromEntries( + Object.entries(networkIds).map(([, value]) => { + const chainRpcs = extraRpcs[value] || []; + return [value, chainRpcs]; + }) +); + +export const tokens: Record> = { + [networkIds.Mainnet]: { + DAI: { + address: "0x6b175474e89094c44da98b954eedeac495271d0f", + decimals: 18, + }, + }, + [networkIds.Gnosis]: { + WXDAI: { + address: "0xe91d153e0b41518a2ce8dd3d7944fa863463a97d", + decimals: 18, + }, + }, +}; + +export const networkCurrencies: Record = { + [networkIds.Mainnet]: { symbol: "ETH", decimals: 18 }, + [networkIds.Goerli]: { symbol: "GoerliETH", decimals: 18 }, + [networkIds.Gnosis]: { symbol: "XDAI", decimals: 18 }, + [networkIds.Anvil]: { symbol: "XDAI", decimals: 18 }, +}; + +export const networkExplorers: Record = { + [networkIds.Mainnet]: "https://etherscan.io", + [networkIds.Goerli]: "https://goerli.etherscan.io", + [networkIds.Gnosis]: "https://gnosisscan.io", + [networkIds.Anvil]: "https://gnosisscan.io", +}; + +export function getNetworkName(networkId?: number) { + const networkName = networkNames[networkId ?? 0]; + if (!networkName) { + console.error(`Unknown network ID: ${networkId}`); + } + return networkName ?? "Unknown Network"; +} diff --git a/src/handler.ts b/src/handler.ts new file mode 100644 index 0000000..b108839 --- /dev/null +++ b/src/handler.ts @@ -0,0 +1,50 @@ +import { JsonRpcProvider } from "@ethersproject/providers"; +import { ChainId, networkCurrencies, networkExplorers, networkIds, networkNames, networkRpcs, tokens } from "./constants"; + +export type ValidBlockData = { + jsonrpc: string; + id: number; + result: { + number: string; + timestamp: string; + hash: string; + }; +}; + +export type Token = { + decimals: number; + address: string; +}; + +export type NativeToken = { + symbol: string; + decimals: number; +}; + +export type HandlerInterface = { + getProvider(): JsonRpcProvider | undefined; + clearInstance(): void; + getFastestRpcProvider(): Promise; + testRpcPerformance(): Promise; +}; + +export type HandlerConstructorConfig = { + networkId: number; + networkName?: string; + networkRpcs?: string[]; + autoStorage?: boolean; + cacheRefreshCycles?: number; + runtimeRpcs?: string[]; +}; + +export type NetworkRPCs = typeof networkRpcs; +export type NetworkNames = typeof networkNames; +export type NetworkCurrencies = typeof networkCurrencies; +export type Tokens = typeof tokens; +export type NetworkExplorers = typeof networkExplorers; +export type NetworkIds = typeof networkIds; +export type { ChainId }; + +export type ChainNames = { + [key in TChainID]: string; +}; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..274a411 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,31 @@ +import { nftAddress, permit2Address, tokens, networkCurrencies, networkExplorers, networkRpcs, getNetworkName, networkNames, networkIds } from "./constants"; +import type { + HandlerConstructorConfig, + HandlerInterface, + ChainNames, + NativeToken, + NetworkCurrencies, + NetworkExplorers, + NetworkIds, + NetworkNames, + NetworkRPCs, + ChainId, +} from "./handler"; + +import { RPCHandler } from "./rpc-handler"; + +export type { + ChainNames, + NativeToken, + NetworkCurrencies, + NetworkExplorers, + NetworkIds, + NetworkNames, + NetworkRPCs, + HandlerConstructorConfig, + HandlerInterface, + ChainId, + RPCHandler, +}; + +export { networkIds, networkNames, networkCurrencies, networkExplorers, tokens, nftAddress, permit2Address, getNetworkName, networkRpcs }; diff --git a/src/rpc-handler.ts b/src/rpc-handler.ts new file mode 100644 index 0000000..92e5ad7 --- /dev/null +++ b/src/rpc-handler.ts @@ -0,0 +1,186 @@ +import { JsonRpcProvider } from "@ethersproject/providers"; +import { LOCAL_HOST, networkRpcs, networkNames } from "./constants"; +import { HandlerInterface, HandlerConstructorConfig } from "./handler"; + +import { RPCService } from "./services/rpc-service"; +import { StorageService } from "./services/storage-service"; + +export class RPCHandler implements HandlerInterface { + private static _instance: RPCHandler | null = null; + private _provider: JsonRpcProvider | null = null; + private _networkId: number; + private _networkName: string; + private _env: string = "node"; + + private _cacheRefreshCycles: number = 10; + private _refreshLatencies: number = 0; + private _autoStorage: boolean = false; + + private _runtimeRpcs: string[] = []; + private _latencies: Record = {}; + + private _networkRpcs: string[] = []; + + constructor(config: HandlerConstructorConfig) { + this._networkId = config.networkId; + this._networkRpcs = networkRpcs[this._networkId]; + this._networkName = networkNames[this._networkId]; + this._initialize(config); + } + + public async getFastestRpcProvider(): Promise { + if (this._networkId === 31337) { + this._provider = new JsonRpcProvider(LOCAL_HOST, this._networkId); + } else if (!this._provider) { + this._provider = await this.testRpcPerformance(); + } + + if (this._provider && this._provider?.connection.url.includes("localhost") && this._networkId !== 31337) { + /** + * The JsonRpcProvider is the culprit for it. + * static defaultUrl(): string { + * return "http:/\/localhost:8545"; + * } + */ + this._provider = await this.testRpcPerformance(); + } + + return this._provider; + } + + public async testRpcPerformance(): Promise { + const shouldRefreshRpcs = + Object.keys(this._latencies).filter((rpc) => rpc.endsWith(`_${this._networkId}`)).length <= 1 || this._refreshLatencies >= this._cacheRefreshCycles; + + if (shouldRefreshRpcs) { + this._runtimeRpcs = networkRpcs[this._networkId]; + this._refreshLatencies = 0; + } else { + this._runtimeRpcs = Object.keys(this._latencies).map((rpc) => { + if (rpc.includes("api_key") && rpc.endsWith(`_${this._networkId}`)) { + return rpc.replace(`_${this._networkId}`, ""); + } + + if ((this._networkId !== 31337 && rpc.includes("localhost")) || rpc.includes("127.0.0.1:8545")) { + return rpc; + } + + return rpc.split("_")[0]; + }); + } + + await this._testRpcPerformance(); + + const fastestRpcUrl = await RPCService.findFastestRpc(this._latencies, this._networkId); + const provider = new JsonRpcProvider(fastestRpcUrl, this._networkId); + this._provider = provider; + + if (this._autoStorage) { + StorageService.setLatencies(this._env, this._latencies); + StorageService.setRefreshLatencies(this._env, this._refreshLatencies); + } + + if (!this._provider) { + throw new Error("Provider could not be initialized"); + } + + return this._provider; + } + + public getProvider(): JsonRpcProvider { + if (!this._provider) { + throw new Error("Provider is not initialized"); + } + return this._provider; + } + + public static getInstance(config: HandlerConstructorConfig): RPCHandler { + if (!RPCHandler._instance) { + if (!config) { + throw new Error("Config is required to initialize RPCHandler"); + } + + RPCHandler._instance = new RPCHandler(config); + } + return RPCHandler._instance; + } + public clearInstance(): void { + RPCHandler._instance = null; + } + + public getRuntimeRpcs(): string[] { + return this._runtimeRpcs; + } + + public getNetworkId(): number { + return this._networkId; + } + + public getNetworkName(): string { + return this._networkName; + } + + public getNetworkRpcs(): string[] { + return this._networkRpcs; + } + + public getLatencies(): Record { + return this._latencies; + } + + public getRefreshLatencies(): number { + return this._refreshLatencies; + } + + public getCacheRefreshCycles(): number { + return this._cacheRefreshCycles; + } + + private async _testRpcPerformance(): Promise { + const { latencies, runtimeRpcs } = await RPCService.testRpcPerformance( + this._networkId, + this._latencies, + this._runtimeRpcs, + { "Content-Type": "application/json" }, + JSON.stringify({ + jsonrpc: "2.0", + method: "eth_getBlockByNumber", + params: ["latest", false], + id: 1, + }), + this._env + ); + + this._runtimeRpcs = runtimeRpcs; + this._latencies = latencies; + this._refreshLatencies++; + } + private _updateConfig(config: HandlerConstructorConfig): void { + if (config.networkName) { + this._networkName = config.networkName; + } + + if (config.networkRpcs) { + this._networkRpcs = [...this._networkRpcs, ...config.networkRpcs]; + } + + if (config.runtimeRpcs) { + this._runtimeRpcs = config.runtimeRpcs; + } + + if (config.cacheRefreshCycles) { + this._cacheRefreshCycles = config.cacheRefreshCycles; + } + + if (config.autoStorage) { + this._autoStorage = true; + this._latencies = StorageService.getLatencies(this._env); + this._refreshLatencies = StorageService.getRefreshLatencies(this._env); + } + } + + private _initialize(config: HandlerConstructorConfig): void { + this._env = typeof window === "undefined" ? "node" : "browser"; + this._updateConfig(config); + } +} diff --git a/src/services/rpc-service.ts b/src/services/rpc-service.ts new file mode 100644 index 0000000..1d36a52 --- /dev/null +++ b/src/services/rpc-service.ts @@ -0,0 +1,112 @@ +import { ValidBlockData } from "../handler"; +import { StorageService } from "./storage-service"; +type PromiseResult = { success: boolean; rpcUrl: string; duration: number }; + +export class RPCService { + static async testRpcPerformance( + networkId: number, + latencies: Record, + runtimeRpcs: string[], + rpcHeader: object, + rpcBody: string, + env: string + ): Promise<{ latencies: Record; runtimeRpcs: string[] }> { + const successfulPromises = runtimeRpcs.map>( + (rpcUrl) => + new Promise((resolve) => { + const abortController = new AbortController(); + const startTime = performance.now(); + const timeoutId = setTimeout(() => { + abortController.abort(); + resolve({ rpcUrl, success: false, duration: 0 }); + }, 500); + + fetch(rpcUrl, { + method: "POST", + headers: Object.assign({}, rpcHeader, { "Content-Type": "application/json" }), + body: rpcBody, + signal: abortController.signal, + }) + .then(() => { + clearTimeout(timeoutId); + const endTime = performance.now(); + resolve({ + rpcUrl, + duration: endTime - startTime, + success: true, + } as PromiseResult); + }) + .catch(() => { + clearTimeout(timeoutId); + resolve({ rpcUrl, success: false, duration: 0 }); + }); + }) + ); + + const fastest = await Promise.race(successfulPromises); + + if (fastest.success) { + latencies[`${fastest.rpcUrl}_${networkId}`] = fastest.duration; + } + + try { + const allResults = await Promise.allSettled(successfulPromises); + + allResults.forEach((result) => { + if (result.status === "fulfilled" && (result.value as PromiseResult).success) { + latencies[`${(result.value as PromiseResult).rpcUrl}_${networkId}`] = (result.value as PromiseResult).duration; + } else if (result.status === "fulfilled") { + const fulfilledResult = result.value as PromiseResult; + const index = runtimeRpcs.indexOf(fulfilledResult.rpcUrl); + if (index > -1) { + runtimeRpcs.splice(index, 1); + } + } + }); + + StorageService.setLatencies(env, latencies); + + return { latencies, runtimeRpcs }; + } catch (err) { + console.error("[RPCService] Failed to test RPC performance"); + } + return { latencies, runtimeRpcs }; + } + + static async findFastestRpc(latencies: Record, networkId: number): Promise { + if (Object.keys(latencies).length === 0) { + console.error("[RPCService] Latencies object is empty"); + } + + try { + const validLatencies: Record = Object.entries(latencies) + .filter(([key]) => key.endsWith(`_${networkId}`)) + .reduce( + (acc, [key, value]) => { + acc[key] = value; + return acc; + }, + {} as Record + ); // Add index signature for validLatencies object + + return Object.keys(validLatencies) + .reduce((a, b) => (validLatencies[a] < validLatencies[b] ? a : b)) + .split("_")[0]; + } catch (error) { + console.error("[RPCService] Failed to find fastest RPC"); + return ""; + } + } + + static _verifyBlock(data: ValidBlockData): boolean { + try { + const { jsonrpc, id, result } = data; + const { number, timestamp, hash } = result; + return ( + jsonrpc === "2.0" && id === 1 && parseInt(number, 16) > 0 && parseInt(timestamp, 16) > 0 && hash.match(/[0-9|a-f|A-F|x]/gm)?.join("").length === 66 + ); + } catch (error) { + return false; + } + } +} diff --git a/src/services/storage-service.ts b/src/services/storage-service.ts new file mode 100644 index 0000000..ff486f5 --- /dev/null +++ b/src/services/storage-service.ts @@ -0,0 +1,28 @@ +export class StorageService { + static getLatencies(env: string): Record { + if (env === "browser") { + return JSON.parse(localStorage.getItem("rpcLatencies") || "{}"); + } + + return {}; + } + + static getRefreshLatencies(env: string): number { + if (env === "browser") { + return JSON.parse(localStorage.getItem("refreshLatencies") || "0"); + } + return 0; + } + + static setLatencies(env: string, latencies: Record): void { + if (env === "browser") { + localStorage.setItem("rpcLatencies", JSON.stringify(latencies)); + } + } + + static setRefreshLatencies(env: string, refreshLatencies: number): void { + if (env === "browser") { + localStorage.setItem("refreshLatencies", JSON.stringify(refreshLatencies)); + } + } +} diff --git a/static/fonts/ubiquity-nova-standard.eot b/static/fonts/ubiquity-nova-standard.eot deleted file mode 100644 index 1e46099c15e2689320d5364ce9efe044a746c4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56807 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

+B!4@fPXK=MbH20b9;y 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 diff --git a/static/fonts/ubiquity-nova-standard.ttf b/static/fonts/ubiquity-nova-standard.ttf deleted file mode 100644 index d95348697ee4708a002df1f2d5f7651779a32347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187128 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�o)%n5Ro>)+X{RQp&#yU;IxEBgJqng`uq=ux+O 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 Qg*sdCOSBq--N{P*KZNstwg3PC diff --git a/static/fonts/ubiquity-nova-standard.woff b/static/fonts/ubiquity-nova-standard.woff deleted file mode 100644 index 0c2691e4352e99afb2390b0cee6734d71d5aa035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77756 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 EMtAR8XaE2J diff --git a/static/index.html b/static/index.html deleted file mode 100644 index dbae5f4..0000000 --- a/static/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Ubiquity TypeScript Template - - - -

Ubiquity TypeScript Template

- - - diff --git a/static/main.ts b/static/main.ts deleted file mode 100644 index b19bfa7..0000000 --- a/static/main.ts +++ /dev/null @@ -1,10 +0,0 @@ -export async function mainModule() { - console.log(`Hello from mainModule`); -} -mainModule() - .then(() => { - console.log("mainModule loaded"); - }) - .catch((error) => { - console.error(error); - }); diff --git a/static/style.css b/static/style.css deleted file mode 100644 index 3bbb3f0..0000000 --- a/static/style.css +++ /dev/null @@ -1,16 +0,0 @@ -body { - font-family: "Proxima Nova", "Ubiquity Nova", sans-serif; - background-color: #06061aff; - color: #fff; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABYWlDQ1BrQ0dDb2xvclNwYWNlRGlzcGxheVAzAAAokWNgYFJJLCjIYWFgYMjNKykKcndSiIiMUmB/yMAOhLwMYgwKicnFBY4BAT5AJQwwGhV8u8bACKIv64LMOiU1tUm1XsDXYqbw1YuvRJsw1aMArpTU4mQg/QeIU5MLikoYGBhTgGzl8pICELsDyBYpAjoKyJ4DYqdD2BtA7CQI+whYTUiQM5B9A8hWSM5IBJrB+API1klCEk9HYkPtBQFul8zigpzESoUAYwKuJQOUpFaUgGjn/ILKosz0jBIFR2AopSp45iXr6SgYGRiaMzCAwhyi+nMgOCwZxc4gxJrvMzDY7v////9uhJjXfgaGjUCdXDsRYhoWDAyC3AwMJ3YWJBYlgoWYgZgpLY2B4dNyBgbeSAYG4QtAPdHFacZGYHlGHicGBtZ7//9/VmNgYJ/MwPB3wv//vxf9//93MVDzHQaGA3kAFSFl7jXH0fsAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAwf1XlwAAACNJREFUSA3t0IEAAAAMBKFHm7/UTaQQWnXDgAEDBgwYMGDgAXaJAz4RVVHYAAAAAElFTkSuQmCC"); -} -@font-face { - font-family: "Ubiquity Nova"; - font-style: normal; - font-weight: 400; - src: url(./fonts/ubiquity-nova-standard.eot); - src: - url(./fonts/ubiquity-nova-standard.eot#iefix) format("embedded-opentype"), - url(./fonts/ubiquity-nova-standard.woff) format("woff"), - url(./fonts/ubiquity-nova-standard.ttf) format("truetype"); -} diff --git a/tests/env.test.ts b/tests/env.test.ts new file mode 100644 index 0000000..6971d2b --- /dev/null +++ b/tests/env.test.ts @@ -0,0 +1,40 @@ +import { RPCHandler } from "../dist/cjs/src/rpc-handler"; +import { testConfig } from "./rpc-handler.test"; + +describe("Browser env detection", () => { + // @ts-expect-error globalThis + const windowMock: Window & typeof globalThis = { + ...globalThis, + name: "Window", + }; + Object.defineProperty(global, "window", { + value: windowMock, + }); + + it("should detect a browser environment", () => { + // This will fail with the following error: + // localStorage is not defined + // proving that the test is not running in a browser environment + // but has bypassed the env === browser check + jest.mock("../dist/cjs/src/rpc-handler", () => { + return { + _latencies: { + 1: { + "http://localhost:8545": 100, + }, + }, + RPCHandler: jest.fn().mockImplementation(() => { + return { + getFastestRpcProvider: jest.fn(), + }; + }), + }; + }); + expect(() => { + RPCHandler.getInstance({ + ...testConfig, + autoStorage: true, + }); + }).toThrow("localStorage is not defined"); + }); +}); diff --git a/tests/rpc-handler.test.ts b/tests/rpc-handler.test.ts new file mode 100644 index 0000000..54fc341 --- /dev/null +++ b/tests/rpc-handler.test.ts @@ -0,0 +1,88 @@ +import { RPCHandler } from "../dist/cjs/src/rpc-handler"; +import { HandlerConstructorConfig } from "../src/handler"; +import { networkRpcs } from "../dist/cjs/src/constants"; +import { JsonRpcProvider } from "@ethersproject/providers"; + +export const testConfig: HandlerConstructorConfig = { + networkId: 100, + autoStorage: false, + cacheRefreshCycles: 3, +}; + +describe("RPCHandler", () => { + const rpcHandler = new RPCHandler(testConfig); + let provider: JsonRpcProvider; + + afterAll(() => { + jest.restoreAllMocks(); + }); + + describe("Initialization", () => { + it("should be instance of RPCHandler", () => { + expect(rpcHandler).toBeInstanceOf(RPCHandler); + }); + + it("should initialize with correct networkId", () => { + expect(rpcHandler["_networkId"]).toBe(testConfig.networkId); + }); + + it(`should initialize with correct env`, () => { + expect(rpcHandler["_env"]).toBe("node"); + }); + + it("should initialize with correct cacheRefreshCycles", () => { + expect(rpcHandler["_cacheRefreshCycles"]).toBe(testConfig.cacheRefreshCycles); + }); + + it("should initialize with correct autoStorage", () => { + expect(rpcHandler["_autoStorage"]).toBe(false); + }); + + it("should initialize with correct runtimeRpcs", () => { + expect(rpcHandler["_runtimeRpcs"]).toEqual([]); + }); + + it("should initialize with correct latencies", () => { + expect(rpcHandler["_latencies"]).toEqual({}); + }); + + it("should initialize with correct networkRpcs", () => { + expect(rpcHandler["_networkRpcs"]).toEqual(networkRpcs[testConfig.networkId]); + }); + + it("should initialize with null provider", () => { + const provider = rpcHandler["_provider"]; + expect(provider).toBeNull(); + }); + }); + + describe("getFastestRpcProvider", () => { + it("should return the fastest RPC compared to the latencies", async () => { + provider = await rpcHandler.getFastestRpcProvider(); + const fastestRpc = rpcHandler.getProvider(); + const latencies = rpcHandler.getLatencies(); + + console.log(`latencies: `, latencies); + console.log(`fastestRpc: `, fastestRpc); + + expect(provider._network.chainId).toBe(testConfig.networkId); + expect(provider.connection.url).toMatch("https://"); + const latArrLen = Array.from(Object.entries(latencies)).length; + const runtime = rpcHandler.getRuntimeRpcs(); + expect(runtime.length).toBeGreaterThan(0); + expect(runtime.length).toBe(latArrLen); + expect(runtime.length).toBeLessThan(networkRpcs[testConfig.networkId].length); + + expect(runtime).not.toBe(networkRpcs[testConfig.networkId]); + expect(latArrLen).toBeGreaterThan(1); + + const sorted = Object.entries(latencies).sort((a, b) => a[1] - b[1]); + const first = sorted[0]; + const last = sorted[sorted.length - 1]; + + expect(first[1]).toBeLessThan(last[1]); + + expect(fastestRpc.connection.url).toBe(provider.connection.url); + }, 10000); + }); +}); diff --git a/tests/script-test.ts b/tests/script-test.ts new file mode 100644 index 0000000..456c517 --- /dev/null +++ b/tests/script-test.ts @@ -0,0 +1,23 @@ +import { HandlerConstructorConfig } from "../dist/cjs/src/handler"; +import { RPCHandler } from "../dist/cjs/src/rpc-handler"; + +const config: HandlerConstructorConfig = { + networkId: 100, + autoStorage: false, +}; + +async function main() { + const handler = new RPCHandler(config); + const provider = await handler.getFastestRpcProvider(); + console.trace(provider); + + if (!provider) { + console.error("Provider not available"); + return; + } else { + console.log("Provider available"); + console.log("Block number:", (await provider.getBlockNumber()).toString()); + } +} + +main(); diff --git a/tsconfig.json b/tsconfig.json index bb2f7f6..b8fd578 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,109 +1,17 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } + "target": "ESNext", + "module": "commonjs", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "baseUrl": ".", + "paths": {}, + "outDir": "./dist", + "declaration": true, + "resolveJsonModule": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "build", "tests/**/*", "lib", "dist", "jest.config.ts"] } diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..3327adf --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "ES2020", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/tsconfig.web.json b/tsconfig.web.json new file mode 100644 index 0000000..0b74d09 --- /dev/null +++ b/tsconfig.web.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "lib": ["DOM", "ESNext"], + "outDir": "./dist/esm", + "moduleResolution": "node" + } +} diff --git a/yarn.lock b/yarn.lock index 9be1cc3..b5ef5ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,7 +7,15 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@babel/code-frame@^7.0.0": +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== @@ -15,11 +23,231 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" + integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.0" + "@babel/parser" "^7.24.0" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz#fc7554141bdbfa2d17f7b4b80153b9b090e5d158" + integrity sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== + +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" + +"@babel/helpers@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" + integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.0" + "@babel/types" "^7.24.0" + "@babel/highlight@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" @@ -29,6 +257,743 @@ chalk "^2.4.2" js-tokens "^4.0.0" +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" + integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-async-generator-functions@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" + integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" + +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-modules-systemjs@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" + integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz#7b836ad0088fdded2420ce96d4e1d3ed78b71df1" + integrity sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" + +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.0.tgz#11536a7f4b977294f0bdfad780f01a8ac8e183fc" + integrity sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.9" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.8" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.9" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.24.0" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.8" + babel-plugin-polyfill-corejs3 "^0.9.0" + babel-plugin-polyfill-regenerator "^0.5.5" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.8.4": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.0.tgz#584c450063ffda59697021430cb47101b085951e" + integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" + integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + "@commitlint/cli@^18.6.1": version "18.6.1" resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-18.6.1.tgz#78bffdfa00d6f01425d53096954993d83f2b343d" @@ -529,6 +1494,13 @@ resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-8.4.0.tgz#5ec08fd969dea90fb2da4bda903e943f63740041" integrity sha512-R/fWW9S3oypKOTkxRZeJqcWl4f+v5w8Bejaj5rcRwztwAM/xdOGSelGhPdNnTazciINegbmTa4XiurUCN9E8Mg== +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@ericcornelissen/bash-parser@0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@ericcornelissen/bash-parser/-/bash-parser-0.5.2.tgz#5eb3bc52020d97fbaebc63b5168ca0aa0b2e8418" @@ -816,6 +1788,219 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@humanwhocodes/config-array@^0.11.13": version "0.11.14" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" @@ -847,6 +2032,254 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz#9b18145d26cf33d08576cf4c7665b28554480ed7" + integrity sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.0.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.23" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz#afc96847f3f07841477f303eed687707a5aacd80" + integrity sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1055,6 +2488,25 @@ "@pnpm/resolve-workspace-range" "5.0.1" ramda "npm:@pnpm/ramda@0.28.1" +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@snyk/github-codeowners@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@snyk/github-codeowners/-/github-codeowners-1.1.0.tgz#45b99732c3c38b5f5b47e43d2b0c9db67a6d2bcc" @@ -1064,6 +2516,93 @@ ignore "^5.1.8" p-map "^4.0.0" +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.12": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + "@types/json-schema@^7.0.12": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" @@ -1074,6 +2613,13 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== +"@types/node@*": + version "20.11.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792" + integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== + dependencies: + undici-types "~5.26.4" + "@types/node@^20.11.19": version "20.11.19" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" @@ -1096,6 +2642,23 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.7.tgz#326f5fdda70d13580777bcaa1bc6fa772a5aef0e" integrity sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg== +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + "@typescript-eslint/eslint-plugin@^7.0.1": version "7.0.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz#407daffe09d964d57aceaf3ac51846359fbe61b0" @@ -1212,7 +2775,12 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: +acorn-walk@^8.1.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^8.4.1, acorn@^8.9.0: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== @@ -1245,6 +2813,13 @@ ajv@^8.11.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-escapes@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" @@ -1276,11 +2851,36 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== +anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -1345,6 +2945,90 @@ available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" + integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.5.0" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" + integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + core-js-compat "^3.34.0" + +babel-plugin-polyfill-regenerator@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + babylon@^6.9.1: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1355,6 +3039,21 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +bech32@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + bole@^5.0.0: version "5.0.11" resolved "https://registry.yarnpkg.com/bole/-/bole-5.0.11.tgz#c4a165975422daee6f576360e882a425c8e40617" @@ -1385,6 +3084,40 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browserslist@^4.22.2, browserslist@^4.22.3: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + builtins@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" @@ -1422,6 +3155,16 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001587: + version "1.0.30001591" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz#16745e50263edc9f395895a7cd468b9f3767cf33" + integrity sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ== + chalk-template@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" @@ -1451,6 +3194,21 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cjs-module-lexer@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -1493,6 +3251,16 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1603,6 +3371,18 @@ conventional-commits-parser@^5.0.0: meow "^12.0.1" split2 "^4.0.0" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +core-js-compat@^3.31.0, core-js-compat@^3.34.0: + version "3.36.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" + integrity sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw== + dependencies: + browserslist "^4.22.3" + core-util-is@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -1625,6 +3405,24 @@ cosmiconfig@^8.3.6: parse-json "^5.2.0" path-type "^4.0.0" +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1777,7 +3575,7 @@ data-uri-to-buffer@^3.0.1: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== -debug@4.3.4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1797,6 +3595,11 @@ decamelize@^1.1.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + deep-freeze@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" @@ -1807,6 +3610,11 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -1832,6 +3640,21 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -1860,11 +3683,6 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" -dotenv@^16.4.4: - version "16.4.4" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" - integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== - eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" @@ -1879,6 +3697,29 @@ easy-table@1.2.0: optionalDependencies: wcwidth "^1.0.1" +electron-to-chromium@^1.4.668: + version "1.4.688" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.688.tgz#a5dade91d948c4ec1e3b5ab0e9dea95c3b787294" + integrity sha512-3/tHg2ChPF00eukURIB8cSVt3/9oeS1oTUIEt3ivngBInUaEcBhG2VdyEDejhwQdR6SLqaiEAEc0dHS0V52pOw== + +elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + emoji-regex@^10.3.0: version "10.3.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" @@ -2058,6 +3899,11 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -2147,7 +3993,7 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -2211,6 +4057,22 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2237,7 +4099,7 @@ fast-glob@3.3.2, fast-glob@^3.2.9, fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -2259,6 +4121,13 @@ fastq@^1.15.0, fastq@^1.6.0: dependencies: reusify "^1.0.4" +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + fetch-blob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-2.1.2.tgz#a7805db1361bd44c1ef62bb57fb5fe8ea173ef3c" @@ -2300,7 +4169,7 @@ find-up-simple@^1.0.0: resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368" integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw== -find-up@^4.1.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -2368,7 +4237,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.3: +fsevents@^2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -2398,6 +4267,11 @@ gensequence@^6.0.0: resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-6.0.0.tgz#ae46a0f89ebd7cc334e45cfb8f1c99a65248694e" integrity sha512-8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2419,6 +4293,11 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-stdin@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" @@ -2486,7 +4365,7 @@ glob@^10.2.2, glob@^10.3.7: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" -glob@^7.1.3: +glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2512,6 +4391,11 @@ global-dirs@^0.1.1: dependencies: ini "^1.3.4" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^13.19.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" @@ -2545,7 +4429,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6: +graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2609,6 +4493,14 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: dependencies: has-symbols "^1.0.3" +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + hasown@^2.0.0, hasown@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" @@ -2616,6 +4508,15 @@ hasown@^2.0.0, hasown@^2.0.1: dependencies: function-bind "^1.1.2" +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -2635,6 +4536,11 @@ hosted-git-info@^7.0.0: dependencies: lru-cache "^10.0.1" +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -2668,6 +4574,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + import-meta-resolve@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz#0b1195915689f60ab00f830af0f15cc841e8919e" @@ -2696,7 +4610,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3: +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2789,6 +4703,11 @@ is-fullwidth-code-point@^5.0.0: dependencies: get-east-asian-width "^1.0.0" +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -2918,6 +4837,59 @@ isexe@^3.1.1: resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + iterable-lookahead@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/iterable-lookahead/-/iterable-lookahead-1.0.0.tgz#896dfcb78680bdb50036e97edb034c8b68a9737f" @@ -2932,11 +4904,384 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-junit@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785" + integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ== + dependencies: + mkdirp "^1.0.4" + strip-ansi "^6.0.1" + uuid "^8.3.2" + xml "^1.0.1" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^29.0.0, jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + jiti@1.21.0, jiti@^1.19.1: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== +js-sha3@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -2949,6 +5294,24 @@ js-yaml@4.1.0, js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -2989,6 +5352,11 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -3015,6 +5383,11 @@ kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + knip@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/knip/-/knip-5.0.1.tgz#8967bf4ba179f2c3227e87610ca9a73dd97212f4" @@ -3044,6 +5417,11 @@ knip@^5.0.1: zod "3.22.4" zod-validation-error "3.0.0" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -3134,6 +5512,11 @@ lodash.curry@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + lodash.isfunction@^3.0.9: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" @@ -3149,6 +5532,11 @@ lodash.kebabcase@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -3200,6 +5588,13 @@ lru-cache@^10.0.1, lru-cache@^10.0.2, "lru-cache@^9.1.1 || ^10.0.0": resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3214,6 +5609,25 @@ magic-string@^0.16.0: dependencies: vlq "^0.2.1" +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -3317,6 +5731,16 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -3350,6 +5774,11 @@ minimist@1.2.8, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -3384,6 +5813,16 @@ node-fetch@3.0.0-beta.9: data-uri-to-buffer "^3.0.1" fetch-blob "^2.1.1" +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -3697,7 +6136,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@1.0.0: +picocolors@1.0.0, picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== @@ -3707,7 +6146,7 @@ picomatch@4.0.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.1.tgz#68c26c8837399e5819edce48590412ea07f17a07" integrity sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg== -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -3727,6 +6166,18 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -3744,6 +6195,15 @@ prettier@^3.2.5: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-ms@9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-9.0.0.tgz#53c57f81171c53be7ce3fd20bdd4265422bc5929" @@ -3769,11 +6229,24 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +pure-rand@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -3789,6 +6262,11 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/@pnpm/ramda/-/ramda-0.28.1.tgz#0f32abc5275d586a03e0dc1dd90a009ac668ff33" integrity sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw== +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + read-package-json-fast@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" @@ -3842,6 +6320,30 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + regexp.prototype.flags@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" @@ -3852,6 +6354,25 @@ regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.1" +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + rename-overwrite@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/rename-overwrite/-/rename-overwrite-5.0.0.tgz#ccd1f85aef47d41647ccc1c681d9b6d054cf5fc8" @@ -3875,6 +6396,13 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -3897,7 +6425,12 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.10.0: +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -3991,7 +6524,7 @@ semver@7.6.0, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver dependencies: lru-cache "^6.0.0" -semver@^6.1.0: +semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -4061,7 +6594,7 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -4071,6 +6604,11 @@ signal-exit@^4.0.1, signal-exit@^4.1.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -4097,6 +6635,19 @@ smol-toml@1.1.4: resolved "https://registry.yarnpkg.com/smol-toml/-/smol-toml-1.1.4.tgz#08c23b105f56f17e57b0a77c7edcb10b75a62c5c" integrity sha512-Y0OT8HezWsTNeEOSVxDnKOW/AyNXHQ4BwJNbAXlLTF5wWsBvrcHhIkE5Rf8kQMLmgf7nDX3PVOlgC6/Aiggu3Q== +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -4135,6 +6686,11 @@ split2@^4.0.0: resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + ssri@10.0.5: version "10.0.5" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" @@ -4142,11 +6698,26 @@ ssri@10.0.5: dependencies: minipass "^7.0.3" +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + string-argv@0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -4292,6 +6863,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -4305,6 +6883,15 @@ synckit@^0.8.6: "@pkgr/core" "^0.1.0" tslib "^2.6.2" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-extensions@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" @@ -4327,6 +6914,16 @@ through2@^4.0.0: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-no-case@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz#c722907164ef6b178132c8e69930212d1b4aa16a" @@ -4363,6 +6960,39 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== +ts-jest@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.2.tgz#7613d8c81c43c8cb312c6904027257e814c40e09" + integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^29.0.0" + json5 "^2.2.3" + lodash.memoize "4.x" + make-error "1.x" + semver "^7.5.3" + yargs-parser "^21.0.1" + +ts-node@10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -4385,6 +7015,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -4395,6 +7030,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -4488,6 +7128,29 @@ unescape-js@^1.0.5: dependencies: string.fromcodepoint "^0.2.1" +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -4507,6 +7170,14 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -4519,6 +7190,25 @@ util-deprecate@^1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -4563,6 +7253,13 @@ vscode-uri@^3.0.8: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -4655,16 +7352,39 @@ write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + xdg-basedir@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== +xml@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" + integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -4680,12 +7400,12 @@ yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: +yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.0.0: +yargs@^17.0.0, yargs@^17.3.1: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -4698,6 +7418,11 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"