From be59c0eb43566f5d7ae02d72bded000a0b639b03 Mon Sep 17 00:00:00 2001 From: alirehmani Date: Fri, 10 May 2024 17:51:20 +0500 Subject: [PATCH] update --- src/Managing.WebApp/.env | 6 + src/Managing.WebApp/.eslintignore | 2 + src/Managing.WebApp/.eslintrc | 98 + src/Managing.WebApp/.gitattributes | 3 + .../.github/workflows/build.yml | 18 + .../.github/workflows/lint.yml | 18 + .../.github/workflows/test.yml | 18 + .../.github/workflows/typecheck.yml | 18 + src/Managing.WebApp/.gitignore | 5 + src/Managing.WebApp/.prettierignore | 5 + src/Managing.WebApp/.prettierrc | 4 + src/Managing.WebApp/Dockerfile | 39 + src/Managing.WebApp/Dockerfile-web-ui-dev | 43 + src/Managing.WebApp/LICENSE | 21 + src/Managing.WebApp/README.md | 94 + src/Managing.WebApp/index.html | 16 + .../install_problematic_packages.sh | 32 + src/Managing.WebApp/jest.config.js | 35 + src/Managing.WebApp/mockServiceWorker.js | 338 + src/Managing.WebApp/package.json | 104 + src/Managing.WebApp/postcss.config.js | 6 + src/Managing.WebApp/prettier.config.js | 4 + src/Managing.WebApp/scripts/validate | 11 + src/Managing.WebApp/src/app/index.tsx | 13 + .../src/app/providers/Hubs.tsx | 18 + src/Managing.WebApp/src/app/routes/index.tsx | 118 + .../src/app/store/accountStore.tsx | 22 + .../src/app/store/apiStore.tsx | 28 + .../src/app/store/flowStore.tsx | 28 + .../app/store/selectors/workflowSelector.tsx | 13 + .../src/app/store/workflowStore.tsx | 113 + src/Managing.WebApp/src/assets/img/logo.png | Bin 0 -> 33041 bytes .../src/assets/img/tradingview.png | Bin 0 -> 95197 bytes .../src/components/atoms/List/List.tsx | 7 + .../src/components/atoms/Loader/Loader.tsx | 16 + .../src/components/atoms/MyLink/MyLink.tsx | 42 + .../src/components/atoms/Select/Select.tsx | 7 + .../src/components/atoms/Slider/Slider.tsx | 30 + .../src/components/atoms/index.tsx | 5 + .../src/components/mollecules/Card/Card.tsx | 45 + .../mollecules/CardText/CardText.tsx | 77 + .../mollecules/FormInput/FormInput.tsx | 24 + .../mollecules/GridTile/GridTile.tsx | 38 + .../src/components/mollecules/LogIn/LogIn.tsx | 101 + .../components/mollecules/LogIn/Profile.tsx | 26 + .../src/components/mollecules/Modal/Modal.tsx | 34 + .../mollecules/Modal/ModalHeader.tsx | 19 + .../components/mollecules/NavBar/NavBar.tsx | 130 + .../components/mollecules/NavItem/NavItem.tsx | 33 + .../mollecules/PieChart/PieChart.tsx | 46 + .../mollecules/Table/SelectColumnFilter.tsx | 36 + .../src/components/mollecules/Table/Table.tsx | 231 + .../src/components/mollecules/Tabs/Tabs.tsx | 77 + .../ThemeSelector/ThemeSelector.tsx | 21 + .../src/components/mollecules/Toast/Toast.tsx | 31 + .../src/components/mollecules/index.tsx | 14 + .../components/organism/Account/Account.tsx | 13 + .../organism/ActiveBots/ActiveBots.tsx | 211 + .../organism/Backtest/backtestCards.tsx | 309 + .../organism/Backtest/backtestModal.tsx | 361 + .../organism/Backtest/backtestRowDetails.tsx | 47 + .../organism/Backtest/backtestTable.tsx | 275 + .../CustomMoneyManagement.tsx | 104 + .../organism/Positions/PositionList.tsx | 128 + .../Positions/PositionStatusBadge.tsx | 30 + .../SpotLightBadge/SpotLightBadge.tsx | 31 + .../organism/StatusBadge/StatusBadge.tsx | 14 + .../organism/Trading/CardPositionItem.tsx | 34 + .../components/organism/Trading/Summary.tsx | 133 + .../Trading/TradeChart/TradeChart.tsx | 302 + .../components/organism/Workflow/flowItem.tsx | 22 + .../organism/Workflow/flows/Flow.tsx | 40 + .../Workflow/flows/feed/feedTicker.tsx | 62 + .../flows/strategies/RsiDivergenceFlow.tsx | 58 + .../flows/trading/OpenPositionFlow.tsx | 96 + .../organism/Workflow/flows/trading/test.tsx | 24 + .../organism/Workflow/workflowCanvas.tsx | 255 + .../organism/Workflow/workflowForm.tsx | 69 + .../organism/Workflow/workflowSidebar.tsx | 35 + .../src/components/organism/index.tsx | 10 + src/Managing.WebApp/src/favicon.svg | 15 + .../src/generated/AuthorizedApiBase.ts | 30 + src/Managing.WebApp/src/generated/IConfig.ts | 7 + .../src/generated/ManagingApi.ts | 2310 +++ .../src/generated/ManagingWorkerApi.tsx | 158 + src/Managing.WebApp/src/global/enum.tsx | 0 src/Managing.WebApp/src/global/helpers.tsx | 9 + src/Managing.WebApp/src/global/type.tsx | 289 + src/Managing.WebApp/src/hooks/useAccounts.tsx | 27 + src/Managing.WebApp/src/hooks/useCookie.ts | 40 + .../src/hooks/useCustomEffect.tsx | 6 + .../src/hooks/useDidUpdateEffect.ts | 21 + .../src/hooks/useLocalStorage.tsx | 39 + src/Managing.WebApp/src/hooks/useModal.tsx | 11 + .../src/hooks/useOutsideClick.tsx | 38 + .../src/hooks/usePositionHub.tsx | 47 + src/Managing.WebApp/src/hooks/useTheme.tsx | 149 + src/Managing.WebApp/src/hooks/useToggle.tsx | 9 + src/Managing.WebApp/src/layouts/index.tsx | 31 + src/Managing.WebApp/src/logo.svg | 7 + src/Managing.WebApp/src/main.tsx | 38 + .../src/pages/authPage/auth.tsx | 30 + .../src/pages/backtestPage/backtest.tsx | 40 + .../src/pages/backtestPage/backtestLoop.tsx | 36 + .../pages/backtestPage/backtestPlayground.tsx | 35 + .../pages/backtestPage/backtestScanner.tsx | 189 + .../src/pages/botsPage/botList.tsx | 265 + .../src/pages/botsPage/bots.tsx | 280 + .../dashboardPage/analytics/analytics.tsx | 52 + .../src/pages/dashboardPage/analytics/cme.tsx | 46 + .../pages/dashboardPage/analytics/futures.tsx | 46 + .../pages/dashboardPage/analytics/options.tsx | 37 + .../pages/dashboardPage/analytics/prices.tsx | 37 + .../pages/dashboardPage/analytics/spot.tsx | 28 + .../src/pages/dashboardPage/dashboard.tsx | 35 + .../src/pages/dashboardPage/monitoring.tsx | 16 + .../src/pages/desk/deskWidget.tsx | 23 + .../pages/desk/widgets/OpenPositionWidget.tsx | 163 + .../pages/desk/widgets/PositionsWidget.tsx | 32 + .../pages/desk/widgets/TradeChartWidget.tsx | 91 + .../src/pages/desk/widgets/WorkersWidget.tsx | 246 + .../src/pages/scenarioPage/scenario.tsx | 38 + .../src/pages/scenarioPage/scenarioList.tsx | 110 + .../src/pages/scenarioPage/scenarioTable.tsx | 83 + .../src/pages/scenarioPage/strategyList.tsx | 401 + .../src/pages/scenarioPage/strategyTable.tsx | 94 + .../settingsPage/account/accountModal.tsx | 178 + .../account/accountRowDetails.tsx | 63 + .../settingsPage/account/accountSettings.tsx | 47 + .../settingsPage/account/accountTable.tsx | 163 + .../moneymanagement/moneyManagement.tsx | 52 + .../moneymanagement/moneyManagementModal.tsx | 190 + .../moneymanagement/moneymanagementTable.tsx | 133 + .../src/pages/settingsPage/settings.tsx | 46 + .../src/pages/settingsPage/theme.tsx | 14 + .../src/pages/toolsPage/rektFees.tsx | 158 + .../pages/toolsPage/spotlight/spotlight.tsx | 76 + .../toolsPage/spotlight/spotlightSummary.tsx | 210 + .../toolsPage/spotlight/spotlightTable.tsx | 94 + .../src/pages/toolsPage/tools.tsx | 36 + .../src/pages/web3Page/web3.tsx | 104 + .../src/pages/workflow/workflows.tsx | 98 + src/Managing.WebApp/src/polyfills.ts | 4 + .../src/smartcontracts/courses/mood.sol | 16 + .../src/smartcontracts/courses/odaNFT.sol | 14 + .../src/smartcontracts/courses/odaToken.sol | 10 + src/Managing.WebApp/src/stores/store.tsx | 3 + src/Managing.WebApp/src/styles/app.css | 46 + src/Managing.WebApp/src/styles/globals.css | 23 + src/Managing.WebApp/src/vite-env.d.ts | 3 + src/Managing.WebApp/tailwind.config.js | 12 + src/Managing.WebApp/tsconfig.json | 21 + src/Managing.WebApp/vite.config.ts | 20 + src/Managing.WebApp/yarn.lock | 13517 ++++++++++++++++ 154 files changed, 26129 insertions(+) create mode 100644 src/Managing.WebApp/.env create mode 100644 src/Managing.WebApp/.eslintignore create mode 100644 src/Managing.WebApp/.eslintrc create mode 100644 src/Managing.WebApp/.gitattributes create mode 100644 src/Managing.WebApp/.github/workflows/build.yml create mode 100644 src/Managing.WebApp/.github/workflows/lint.yml create mode 100644 src/Managing.WebApp/.github/workflows/test.yml create mode 100644 src/Managing.WebApp/.github/workflows/typecheck.yml create mode 100644 src/Managing.WebApp/.gitignore create mode 100644 src/Managing.WebApp/.prettierignore create mode 100644 src/Managing.WebApp/.prettierrc create mode 100644 src/Managing.WebApp/Dockerfile create mode 100644 src/Managing.WebApp/Dockerfile-web-ui-dev create mode 100644 src/Managing.WebApp/LICENSE create mode 100644 src/Managing.WebApp/README.md create mode 100644 src/Managing.WebApp/index.html create mode 100644 src/Managing.WebApp/install_problematic_packages.sh create mode 100644 src/Managing.WebApp/jest.config.js create mode 100644 src/Managing.WebApp/mockServiceWorker.js create mode 100644 src/Managing.WebApp/package.json create mode 100644 src/Managing.WebApp/postcss.config.js create mode 100644 src/Managing.WebApp/prettier.config.js create mode 100644 src/Managing.WebApp/scripts/validate create mode 100644 src/Managing.WebApp/src/app/index.tsx create mode 100644 src/Managing.WebApp/src/app/providers/Hubs.tsx create mode 100644 src/Managing.WebApp/src/app/routes/index.tsx create mode 100644 src/Managing.WebApp/src/app/store/accountStore.tsx create mode 100644 src/Managing.WebApp/src/app/store/apiStore.tsx create mode 100644 src/Managing.WebApp/src/app/store/flowStore.tsx create mode 100644 src/Managing.WebApp/src/app/store/selectors/workflowSelector.tsx create mode 100644 src/Managing.WebApp/src/app/store/workflowStore.tsx create mode 100644 src/Managing.WebApp/src/assets/img/logo.png create mode 100644 src/Managing.WebApp/src/assets/img/tradingview.png create mode 100644 src/Managing.WebApp/src/components/atoms/List/List.tsx create mode 100644 src/Managing.WebApp/src/components/atoms/Loader/Loader.tsx create mode 100644 src/Managing.WebApp/src/components/atoms/MyLink/MyLink.tsx create mode 100644 src/Managing.WebApp/src/components/atoms/Select/Select.tsx create mode 100644 src/Managing.WebApp/src/components/atoms/Slider/Slider.tsx create mode 100644 src/Managing.WebApp/src/components/atoms/index.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/Card/Card.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/CardText/CardText.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/FormInput/FormInput.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/GridTile/GridTile.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/LogIn/LogIn.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/LogIn/Profile.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/Modal/Modal.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/Modal/ModalHeader.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/NavBar/NavBar.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/NavItem/NavItem.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/PieChart/PieChart.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/Table/SelectColumnFilter.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/Table/Table.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/Tabs/Tabs.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/ThemeSelector/ThemeSelector.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/Toast/Toast.tsx create mode 100644 src/Managing.WebApp/src/components/mollecules/index.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Account/Account.tsx create mode 100644 src/Managing.WebApp/src/components/organism/ActiveBots/ActiveBots.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Backtest/backtestCards.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Backtest/backtestModal.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Backtest/backtestRowDetails.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Backtest/backtestTable.tsx create mode 100644 src/Managing.WebApp/src/components/organism/CustomMoneyManagement/CustomMoneyManagement.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Positions/PositionList.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Positions/PositionStatusBadge.tsx create mode 100644 src/Managing.WebApp/src/components/organism/SpotLightBadge/SpotLightBadge.tsx create mode 100644 src/Managing.WebApp/src/components/organism/StatusBadge/StatusBadge.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Trading/CardPositionItem.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Trading/Summary.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Trading/TradeChart/TradeChart.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/flowItem.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/flows/Flow.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/flows/feed/feedTicker.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/flows/strategies/RsiDivergenceFlow.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/flows/trading/OpenPositionFlow.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/flows/trading/test.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/workflowCanvas.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/workflowForm.tsx create mode 100644 src/Managing.WebApp/src/components/organism/Workflow/workflowSidebar.tsx create mode 100644 src/Managing.WebApp/src/components/organism/index.tsx create mode 100644 src/Managing.WebApp/src/favicon.svg create mode 100644 src/Managing.WebApp/src/generated/AuthorizedApiBase.ts create mode 100644 src/Managing.WebApp/src/generated/IConfig.ts create mode 100644 src/Managing.WebApp/src/generated/ManagingApi.ts create mode 100644 src/Managing.WebApp/src/generated/ManagingWorkerApi.tsx create mode 100644 src/Managing.WebApp/src/global/enum.tsx create mode 100644 src/Managing.WebApp/src/global/helpers.tsx create mode 100644 src/Managing.WebApp/src/global/type.tsx create mode 100644 src/Managing.WebApp/src/hooks/useAccounts.tsx create mode 100644 src/Managing.WebApp/src/hooks/useCookie.ts create mode 100644 src/Managing.WebApp/src/hooks/useCustomEffect.tsx create mode 100644 src/Managing.WebApp/src/hooks/useDidUpdateEffect.ts create mode 100644 src/Managing.WebApp/src/hooks/useLocalStorage.tsx create mode 100644 src/Managing.WebApp/src/hooks/useModal.tsx create mode 100644 src/Managing.WebApp/src/hooks/useOutsideClick.tsx create mode 100644 src/Managing.WebApp/src/hooks/usePositionHub.tsx create mode 100644 src/Managing.WebApp/src/hooks/useTheme.tsx create mode 100644 src/Managing.WebApp/src/hooks/useToggle.tsx create mode 100644 src/Managing.WebApp/src/layouts/index.tsx create mode 100644 src/Managing.WebApp/src/logo.svg create mode 100644 src/Managing.WebApp/src/main.tsx create mode 100644 src/Managing.WebApp/src/pages/authPage/auth.tsx create mode 100644 src/Managing.WebApp/src/pages/backtestPage/backtest.tsx create mode 100644 src/Managing.WebApp/src/pages/backtestPage/backtestLoop.tsx create mode 100644 src/Managing.WebApp/src/pages/backtestPage/backtestPlayground.tsx create mode 100644 src/Managing.WebApp/src/pages/backtestPage/backtestScanner.tsx create mode 100644 src/Managing.WebApp/src/pages/botsPage/botList.tsx create mode 100644 src/Managing.WebApp/src/pages/botsPage/bots.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/analytics/analytics.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/analytics/cme.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/analytics/futures.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/analytics/options.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/analytics/prices.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/analytics/spot.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/dashboard.tsx create mode 100644 src/Managing.WebApp/src/pages/dashboardPage/monitoring.tsx create mode 100644 src/Managing.WebApp/src/pages/desk/deskWidget.tsx create mode 100644 src/Managing.WebApp/src/pages/desk/widgets/OpenPositionWidget.tsx create mode 100644 src/Managing.WebApp/src/pages/desk/widgets/PositionsWidget.tsx create mode 100644 src/Managing.WebApp/src/pages/desk/widgets/TradeChartWidget.tsx create mode 100644 src/Managing.WebApp/src/pages/desk/widgets/WorkersWidget.tsx create mode 100644 src/Managing.WebApp/src/pages/scenarioPage/scenario.tsx create mode 100644 src/Managing.WebApp/src/pages/scenarioPage/scenarioList.tsx create mode 100644 src/Managing.WebApp/src/pages/scenarioPage/scenarioTable.tsx create mode 100644 src/Managing.WebApp/src/pages/scenarioPage/strategyList.tsx create mode 100644 src/Managing.WebApp/src/pages/scenarioPage/strategyTable.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/account/accountModal.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/account/accountRowDetails.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/account/accountSettings.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/account/accountTable.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagement.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagementModal.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneymanagementTable.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/settings.tsx create mode 100644 src/Managing.WebApp/src/pages/settingsPage/theme.tsx create mode 100644 src/Managing.WebApp/src/pages/toolsPage/rektFees.tsx create mode 100644 src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlight.tsx create mode 100644 src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightSummary.tsx create mode 100644 src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightTable.tsx create mode 100644 src/Managing.WebApp/src/pages/toolsPage/tools.tsx create mode 100644 src/Managing.WebApp/src/pages/web3Page/web3.tsx create mode 100644 src/Managing.WebApp/src/pages/workflow/workflows.tsx create mode 100644 src/Managing.WebApp/src/polyfills.ts create mode 100644 src/Managing.WebApp/src/smartcontracts/courses/mood.sol create mode 100644 src/Managing.WebApp/src/smartcontracts/courses/odaNFT.sol create mode 100644 src/Managing.WebApp/src/smartcontracts/courses/odaToken.sol create mode 100644 src/Managing.WebApp/src/stores/store.tsx create mode 100644 src/Managing.WebApp/src/styles/app.css create mode 100644 src/Managing.WebApp/src/styles/globals.css create mode 100644 src/Managing.WebApp/src/vite-env.d.ts create mode 100644 src/Managing.WebApp/tailwind.config.js create mode 100644 src/Managing.WebApp/tsconfig.json create mode 100644 src/Managing.WebApp/vite.config.ts create mode 100644 src/Managing.WebApp/yarn.lock diff --git a/src/Managing.WebApp/.env b/src/Managing.WebApp/.env new file mode 100644 index 0000000..a673da2 --- /dev/null +++ b/src/Managing.WebApp/.env @@ -0,0 +1,6 @@ +VITE_API_URL_LOCAL=https://localhost:5001 +VITE_API_URL_SERVER=https://localhost +VITE_WORKER_URL_LOCAL=https://localhost:5002 +VITE_WORKER_URL_SERVER=https://localhost:444 +ALCHEMY_ID=Bao7OirVe4bmYiDbPh0l8cs5gYb5D4_9 +WALLET_CONNECT_PROJECT_ID=363bf09c10fec2293b21ee199b2ce8d5 \ No newline at end of file diff --git a/src/Managing.WebApp/.eslintignore b/src/Managing.WebApp/.eslintignore new file mode 100644 index 0000000..f06235c --- /dev/null +++ b/src/Managing.WebApp/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/src/Managing.WebApp/.eslintrc b/src/Managing.WebApp/.eslintrc new file mode 100644 index 0000000..2d7c78b --- /dev/null +++ b/src/Managing.WebApp/.eslintrc @@ -0,0 +1,98 @@ +{ + "root": true, + "extends": [ + "plugin:@typescript-eslint/recommended", + "plugin:jsx-a11y/recommended" + ], + "parser": "@typescript-eslint/parser", + "plugins": [ + "jsx-a11y", + "import", + "sort-keys-fix", + "react-hooks", + "@typescript-eslint", + "prettier" + ], + "env": { + "browser": true, + "node": true, + "es6": true, + "jest": true + }, + "globals": { + "JSX": "readonly" + }, + "settings": { + "react": { + "version": "detect" + }, + "import/parsers": { + "@typescript-eslint/parser": [".ts", ".tsx"] + }, + "import/resolver": { + "node": { + "extensions": [".js", ".jsx", ".ts", ".tsx"] + }, + "typescript": { + "alwaysTryTypes": true, + // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` + "project": ["tsconfig.json"] + } + } + }, + "rules": { + "no-alert": "error", + "no-console": "error", + "react-hooks/rules-of-hooks": "error", + "prettier/prettier": [ + "warn", + {}, + { + "properties": { + "usePrettierrc": true + } + } + ], + "import/order": [ + "warn", + { + "groups": [ + "builtin", + "external", + "internal", + "parent", + "sibling", + "index", + "object" + ], + "newlines-between": "always", + "alphabetize": { + "order": "asc", + "caseInsensitive": true + } + } + ], + "import/named": "error", + "import/default": "error", + "import/export": "error", + "import/no-named-as-default": "warn", + "import/no-duplicates": "error", + "sort-keys-fix/sort-keys-fix": "warn", + "@import/no-named-as-default-member": "off", + "@typescript-eslint/consistent-type-imports": "warn", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-empty-function": "off" + }, + "overrides": [ + { + "files": ["*.js"], + "rules": { + "@typescript-eslint/explicit-module-boundary-types": ["off"], + "@typescript-eslint/no-var-requires": ["off"] + } + } + ] +} diff --git a/src/Managing.WebApp/.gitattributes b/src/Managing.WebApp/.gitattributes new file mode 100644 index 0000000..2dd6f4d --- /dev/null +++ b/src/Managing.WebApp/.gitattributes @@ -0,0 +1,3 @@ +.jest/* linguist-vendored +mocks/* linguist-vendored +mockServiceWorker.js linguist-vendored diff --git a/src/Managing.WebApp/.github/workflows/build.yml b/src/Managing.WebApp/.github/workflows/build.yml new file mode 100644 index 0000000..cf9565c --- /dev/null +++ b/src/Managing.WebApp/.github/workflows/build.yml @@ -0,0 +1,18 @@ +name: Build +on: + push: + branches: + - main + pull_request: + branches: + - main +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: '18.1.0' + - run: yarn install + - run: yarn build diff --git a/src/Managing.WebApp/.github/workflows/lint.yml b/src/Managing.WebApp/.github/workflows/lint.yml new file mode 100644 index 0000000..d84f5b7 --- /dev/null +++ b/src/Managing.WebApp/.github/workflows/lint.yml @@ -0,0 +1,18 @@ +name: Lint +on: + push: + branches: + - main + pull_request: + branches: + - main +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: '18.1.0' + - run: yarn install + - run: yarn lint diff --git a/src/Managing.WebApp/.github/workflows/test.yml b/src/Managing.WebApp/.github/workflows/test.yml new file mode 100644 index 0000000..c409935 --- /dev/null +++ b/src/Managing.WebApp/.github/workflows/test.yml @@ -0,0 +1,18 @@ +name: Test +on: + push: + branches: + - main + pull_request: + branches: + - main +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: '18.1.0' + - run: yarn install + - run: yarn test diff --git a/src/Managing.WebApp/.github/workflows/typecheck.yml b/src/Managing.WebApp/.github/workflows/typecheck.yml new file mode 100644 index 0000000..eeb1640 --- /dev/null +++ b/src/Managing.WebApp/.github/workflows/typecheck.yml @@ -0,0 +1,18 @@ +name: Typecheck +on: + push: + branches: + - main + pull_request: + branches: + - main +jobs: + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: '18.1.0' + - run: yarn install + - run: yarn typecheck diff --git a/src/Managing.WebApp/.gitignore b/src/Managing.WebApp/.gitignore new file mode 100644 index 0000000..d451ff1 --- /dev/null +++ b/src/Managing.WebApp/.gitignore @@ -0,0 +1,5 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local diff --git a/src/Managing.WebApp/.prettierignore b/src/Managing.WebApp/.prettierignore new file mode 100644 index 0000000..4969764 --- /dev/null +++ b/src/Managing.WebApp/.prettierignore @@ -0,0 +1,5 @@ +.git +node_modules +.eslintignore +.gitignore +LICENSE diff --git a/src/Managing.WebApp/.prettierrc b/src/Managing.WebApp/.prettierrc new file mode 100644 index 0000000..fd496a8 --- /dev/null +++ b/src/Managing.WebApp/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "semi": false +} diff --git a/src/Managing.WebApp/Dockerfile b/src/Managing.WebApp/Dockerfile new file mode 100644 index 0000000..9301ac7 --- /dev/null +++ b/src/Managing.WebApp/Dockerfile @@ -0,0 +1,39 @@ +# Use an official Node.js runtime as a parent image +FROM node:18 + +# Set the working directory inside the container +WORKDIR /app + + +# Install xsel for clipboard access (useful for some applications) +RUN apt-get update && apt-get install -y xsel + +# Copy only package.json and package-lock.json (or yarn.lock) initially +# This takes advantage of cached Docker layers +COPY package*.json ./ + +# Install dependencies +# npm ci is used instead of npm install when you want a clean, exact installation +#RUN npm ci --verbose +# Try to install dependencies with a retry mechanism +RUN for i in 1 2 3; do npm ci --verbose && break || sleep 15; done + +# Copy the rest of your application code +COPY . . + +# Set necessary environment variables (if they are not secrets) +ENV NODE_ENV=development +ENV VITE_API_URL_LOCAL=https://localhost:5001 +ENV VITE_API_URL_SERVER=https://localhost + +# Expose port 3000 for the application +EXPOSE 3000 + +# Install global dependencies if absolutely necessary (generally not recommended to do globally) +RUN npm install -g serve vite + +# Build the application +RUN node --max-old-space-size=4096 node_modules/.bin/vite build + +# Command to run the application +CMD ["npm", "run", "serve"] diff --git a/src/Managing.WebApp/Dockerfile-web-ui-dev b/src/Managing.WebApp/Dockerfile-web-ui-dev new file mode 100644 index 0000000..791953d --- /dev/null +++ b/src/Managing.WebApp/Dockerfile-web-ui-dev @@ -0,0 +1,43 @@ +ο»ΏARG NODE_VERSION=21.4.0 +ARG ALPINE_VERSION=3.19.0 + +FROM node:${NODE_VERSION}-alpine AS node + +FROM alpine:${ALPINE_VERSION} AS builder + +COPY --from=node /usr/lib /usr/lib +COPY --from=node /usr/local/lib /usr/local/lib +COPY --from=node /usr/local/include /usr/local/include +COPY --from=node /usr/local/bin /usr/local/bin + +RUN node -v + +# Set the working directory in the container +WORKDIR /app + +# Copy the package.json and package-lock.json first to leverage Docker's cache +COPY ./src/Managing.WebApp/package*.json ./ + +# Install dependencies +#RUN npm ci --production --loglevel=verbose +RUN npm i --omit=dev --loglevel=verbose +# Copy the application code +COPY . . + +# Build the Vite application +RUN npm run build + +# Stage 2: Create the runtime image +FROM nginx:alpine + +# Copy the built Vite application from the builder stage +COPY --from=builder /app/dist /usr/share/nginx/html + +# Copy a custom Nginx configuration file (if you need one) +# COPY nginx.conf /etc/nginx/nginx.conf + +# Expose port 80 +EXPOSE 80 + +# Start the Nginx server +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/src/Managing.WebApp/LICENSE b/src/Managing.WebApp/LICENSE new file mode 100644 index 0000000..b229c5f --- /dev/null +++ b/src/Managing.WebApp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Managing + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/Managing.WebApp/README.md b/src/Managing.WebApp/README.md new file mode 100644 index 0000000..5be74be --- /dev/null +++ b/src/Managing.WebApp/README.md @@ -0,0 +1,94 @@ +# vite-react-ts-extended [![Typecheck](https://github.com/laststance/vite-react-ts-extended/actions/workflows/typecheck.yml/badge.svg)](https://github.com/laststance/vite-react-ts-extended/actions/workflows/typecheck.yml) [![Test](https://github.com/laststance/vite-react-ts-extended/actions/workflows/test.yml/badge.svg)](https://github.com/laststance/vite-react-ts-extended/actions/workflows/test.yml) [![Build](https://github.com/laststance/vite-react-ts-extended/actions/workflows/build.yml/badge.svg)](https://github.com/laststance/vite-react-ts-extended/actions/workflows/build.yml) [![Lint](https://github.com/laststance/vite-react-ts-extended/actions/workflows/lint.yml/badge.svg)](https://github.com/laststance/vite-react-ts-extended/actions/workflows/lint.yml) [![Depfu](https://badges.depfu.com/badges/6c7775918ccc8647160750e168617a65/overview.svg)](https://depfu.com/github/laststance/vite-react-ts-extended?project_id=32682) + +> My CRA alternative. +> Create plain and lightweight React+TS programming environment with familiar pre-setup tooling +> eslint/prettier, jest/TS/react-testing-library/msw, tailwindcss, CI. + +## [Trying this Online!](https://codesandbox.io/s/vite-react-ts-extended-cbgyfz?file=/src/App.tsx) + + + +This is the official [Vite](https://vitejs.dev/) template(`npm init vite@latest myapp -- --template react-ts`) and some extended setup. + +- [eslint-typescript](https://github.com/typescript-eslint/typescript-eslint) and [Prettier](https://prettier.io/) integration. Rules are 100% my personal setup πŸ’… +- [jest](https://jestjs.io/), [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/), [react-hooks-testing-library](https://github.com/testing-library/react-hooks-testing-library), [MSW](https://mswjs.io/) +- [tailwindcss](https://tailwindcss.com/) +- [Github Actions](https://github.com/features/actions) + +All npm package are keeping least release version powered by [Depfu](https://depfu.com/). + +# Installation + +``` +npx degit laststance/vite-react-ts-extended myapp +``` + +### yarn + +```sh +cd myapp +yarn install +yarn validate # The installation was successful if no error occurs after running 'validate'. +yarn dev +``` + +### npm + +```sh +cd myapp +npm install +npm run validate # The installation was successful if no error occurs after running 'validate'. +npm run dev +``` + +### Commands + +```sh +yarn dev # start development server +yarn validate # run test,lint,build,typecheck concurrently +yarn test # run jest +yarn lint # run eslint +yarn lint:fix # run eslint with --fix option +yarn typecheck # run TypeScript compiler check +yarn build # build production bundle to 'dist' directly +yarn prettier # run prettier for json|yml|css|md|mdx files +yarn clean # remove 'node_modules' 'yarn.lock' 'dist' completely +yarn serve # launch server for production bundle in local +``` + +# Background + +The evolution of the React framework is accelerating more than ever before. +[Next.js](https://nextjs.org/), [Remix](https://remix.run/), [RedwoodJS](https://redwoodjs.com/), [Gatsby](https://www.gatsbyjs.com/), [Blitz](https://blitzjs.com/) etc... + +Ahthough I still need plain React programming starter some reason. (.e.g Demo, Experiment like Deep Dive React Core.) +So far, [create-react-app](https://github.com/facebook/create-react-app) **was** it. +In short, [create-react-app](https://github.com/facebook/create-react-app) development couldn't say active. Please read the [Issue](https://github.com/facebook/create-react-app/issues/11180) in details. + +So I created an alternative to [create-react-app](https://github.com/facebook/create-react-app) for myself, based on [Vite](https://github.com/facebook/create-react-app). +This project contains my very opinionted setup, +but I hope it will be a useful tool for people who have similar needs to mine! πŸ˜€ + +# License + +MIT + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + +

ryota-murakami

πŸ’» πŸ“– ⚠️
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! diff --git a/src/Managing.WebApp/index.html b/src/Managing.WebApp/index.html new file mode 100644 index 0000000..c6488fe --- /dev/null +++ b/src/Managing.WebApp/index.html @@ -0,0 +1,16 @@ + + + + + + + Managing + + +
+ + + + diff --git a/src/Managing.WebApp/install_problematic_packages.sh b/src/Managing.WebApp/install_problematic_packages.sh new file mode 100644 index 0000000..62a600e --- /dev/null +++ b/src/Managing.WebApp/install_problematic_packages.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Array of known potentially hanging packages +hanging_packages=("xmlhttprequest-ssl@latest" "engine.io-parser@latest") + +# Timeout in seconds for each package installation attempt + + +install_with_timeout() { + package=$1 + echo "Attempting to install $package with a timeout of $timeout_duration seconds." + # Start npm install in the background + npm install $package --verbose &> $package.log & + + # Get PID of the npm process + pid=$! + + # Wait for the npm process to finish or timeout + (sleep $timeout_duration && kill -0 $pid 2>/dev/null && kill -9 $pid && echo "Timeout reached for $package, process killed." && echo $package >> exclude.log) & + waiter_pid=$! + + # Wait for the npm process to complete + wait $pid + + # Kill the waiter process in case npm finished before the timeout + kill -0 $waiter_pid 2>/dev/null && kill -9 $waiter_pid +} + +# Install potentially hanging packages first with a timeout +for package in "${hanging_packages[@]}"; do + install_with_timeout $package +done diff --git a/src/Managing.WebApp/jest.config.js b/src/Managing.WebApp/jest.config.js new file mode 100644 index 0000000..dd7f4d9 --- /dev/null +++ b/src/Managing.WebApp/jest.config.js @@ -0,0 +1,35 @@ +const config = { + collectCoverageFrom: ['/src/**/*.{js,jsx,ts,tsx}', '!src/**/*.d.ts'], + moduleDirectories: ['node_modules'], + moduleFileExtensions: ['js', 'mjs', 'jsx', 'ts', 'tsx', 'json'], + moduleNameMapper: { + '^.+\\.module\\.(css|sass|scss)$': 'identity-obj-proxy', + }, + notify: true, + notifyMode: 'success-change', + resetMocks: true, + roots: [''], + setupFilesAfterEnv: ['/jest/setupTests.ts'], + testEnvironment: 'jsdom', + testMatch: [ + '/src/**/*.{spec,test}.{js,jsx,ts,tsx}', + '/src/**/__tests__/**/*.{js,jsx,ts,tsx}', + ], + transform: { + '^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)': + '/jest/fileTransform.js', + '^.+\\.[jt]sx?$': 'esbuild-jest', + '^.+\\.css$': '/jest/cssTransform.js', + }, + transformIgnorePatterns: [ + '[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$', + '^.+\\.module\\.(css|sass|scss)$', + ], + verbose: true, + watchPlugins: [ + 'jest-watch-typeahead/filename', + 'jest-watch-typeahead/testname', + ], +} + +module.exports = config diff --git a/src/Managing.WebApp/mockServiceWorker.js b/src/Managing.WebApp/mockServiceWorker.js new file mode 100644 index 0000000..4e18b44 --- /dev/null +++ b/src/Managing.WebApp/mockServiceWorker.js @@ -0,0 +1,338 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker (0.36.5). + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + * - Please do NOT serve this file on production. + */ + +const INTEGRITY_CHECKSUM = '02f4ad4a2797f85668baf196e553d929' +const bypassHeaderName = 'x-msw-bypass' +const activeClientIds = new Set() + +self.addEventListener('install', function () { + return self.skipWaiting() +}) + +self.addEventListener('activate', async function (event) { + return self.clients.claim() +}) + +self.addEventListener('message', async function (event) { + const clientId = event.source.id + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll() + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: INTEGRITY_CHECKSUM, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: true, + }) + break + } + + case 'MOCK_DEACTIVATE': { + activeClientIds.delete(clientId) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +// Resolve the "main" client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (client.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll() + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const clonedResponse = response.clone() + sendToClient(client, { + type: 'RESPONSE', + payload: { + requestId, + type: clonedResponse.type, + ok: clonedResponse.ok, + status: clonedResponse.status, + statusText: clonedResponse.statusText, + body: + clonedResponse.body === null ? null : await clonedResponse.text(), + headers: serializeHeaders(clonedResponse.headers), + redirected: clonedResponse.redirected, + }, + }) + })() + } + + return response +} + +async function getResponse(event, client, requestId) { + const { request } = event + const requestClone = request.clone() + const getOriginalResponse = () => fetch(requestClone) + + // Bypass mocking when the request client is not active. + if (!client) { + return getOriginalResponse() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return await getOriginalResponse() + } + + // Bypass requests with the explicit bypass header + if (requestClone.headers.get(bypassHeaderName) === 'true') { + const cleanRequestHeaders = serializeHeaders(requestClone.headers) + + // Remove the bypass header to comply with the CORS preflight check. + delete cleanRequestHeaders[bypassHeaderName] + + const originalRequest = new Request(requestClone, { + headers: new Headers(cleanRequestHeaders), + }) + + return fetch(originalRequest) + } + + // Send the request to the client-side MSW. + const reqHeaders = serializeHeaders(request.headers) + const body = await request.text() + + const clientMessage = await sendToClient(client, { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + method: request.method, + headers: reqHeaders, + cache: request.cache, + mode: request.mode, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body, + bodyUsed: request.bodyUsed, + keepalive: request.keepalive, + }, + }) + + switch (clientMessage.type) { + case 'MOCK_SUCCESS': { + return delayPromise( + () => respondWithMock(clientMessage), + clientMessage.payload.delay, + ) + } + + case 'MOCK_NOT_FOUND': { + return getOriginalResponse() + } + + case 'NETWORK_ERROR': { + const { name, message } = clientMessage.payload + const networkError = new Error(message) + networkError.name = name + + // Rejecting a request Promise emulates a network error. + throw networkError + } + + case 'INTERNAL_ERROR': { + const parsedBody = JSON.parse(clientMessage.payload.body) + + console.error( + `\ +[MSW] Uncaught exception in the request handler for "%s %s": + +${parsedBody.location} + +This exception has been gracefully handled as a 500 response, however, it's strongly recommended to resolve this error, as it indicates a mistake in your code. If you wish to mock an error response, please see this guide: https://mswjs.io/docs/recipes/mocking-error-responses\ +`, + request.method, + request.url, + ) + + return respondWithMock(clientMessage) + } + } + + return getOriginalResponse() +} + +self.addEventListener('fetch', function (event) { + const { request } = event + const accept = request.headers.get('accept') || '' + + // Bypass server-sent events. + if (accept.includes('text/event-stream')) { + return + } + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + const requestId = uuidv4() + + return event.respondWith( + handleRequest(event, requestId).catch((error) => { + if (error.name === 'NetworkError') { + console.warn( + '[MSW] Successfully emulated a network error for the "%s %s" request.', + request.method, + request.url, + ) + return + } + + // At this point, any exception indicates an issue with the original request/response. + console.error( + `\ +[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, + request.method, + request.url, + `${error.name}: ${error.message}`, + ) + }), + ) +}) + +function serializeHeaders(headers) { + const reqHeaders = {} + headers.forEach((value, name) => { + reqHeaders[name] = reqHeaders[name] + ? [].concat(reqHeaders[name]).concat(value) + : value + }) + return reqHeaders +} + +function sendToClient(client, message) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(JSON.stringify(message), [channel.port2]) + }) +} + +function delayPromise(cb, duration) { + return new Promise((resolve) => { + setTimeout(() => resolve(cb()), duration) + }) +} + +function respondWithMock(clientMessage) { + return new Response(clientMessage.payload.body, { + ...clientMessage.payload, + headers: clientMessage.payload.headers, + }) +} + +function uuidv4() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + const r = (Math.random() * 16) | 0 + const v = c == 'x' ? r : (r & 0x3) | 0x8 + return v.toString(16) + }) +} diff --git a/src/Managing.WebApp/package.json b/src/Managing.WebApp/package.json new file mode 100644 index 0000000..e808132 --- /dev/null +++ b/src/Managing.WebApp/package.json @@ -0,0 +1,104 @@ +{ + "name": "managing", + "version": "2.0.0", + "license": "MIT", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "serve": "serve -s dist -p 3000", + "test": "jest", + "lint": "eslint . --ext .ts,.tsx,.js,jsx", + "lint:fix": "eslint . --ext .ts,.tsx,.js,jsx --fix", + "typecheck": "tsc --noEmit", + "prettier": "prettier --write \"**/*.+(json|yml|css|md|mdx)\"", + "clean": "rimraf node_modules yarn.lock dist", + "validate": "./scripts/validate" + }, + "dependencies": { + "@heroicons/react": "^1.0.6", + "@microsoft/signalr": "^6.0.5", + "@tanstack/react-query": "^5.0.0", + "@wagmi/chains": "^0.2.9", + "@wagmi/connectors": "^4.3.2", + "@wagmi/core": "^2.9.0", + "@walletconnect/universal-provider": "^2.8.6", + "axios": "^0.27.2", + "classnames": "^2.3.1", + "connectkit": "^1.7.3", + "date-fns": "^2.30.0", + "jotai": "^1.6.7", + "latest-version": "^9.0.0", + "lightweight-charts": "git+https://github.com/ntf/lightweight-charts.git", + "moment": "^2.29.3", + "plotly.js": "^2.18.1", + "react": "^18.1.0", + "react-cookie": "^4.1.1", + "react-dom": "^18.1.0", + "react-grid-layout": "^1.3.4", + "react-hook-form": "^7.31.2", + "react-hot-toast": "^2.2.0", + "react-icons": "^4.3.1", + "react-iframe": "^1.8.0", + "react-plotly.js": "^2.6.0", + "react-router-dom": "^6.3.0", + "react-slider": "^2.0.1", + "react-table": "^7.8.0", + "react-toastify": "^9.0.1", + "reactflow": "^11.8.3", + "viem": "^2.0.6", + "wagmi": "^2.2.1", + "web3": "^4.0.2", + "zustand": "^4.4.1" + }, + "devDependencies": { + "@tailwindcss/aspect-ratio": "^0.4.0", + "@tailwindcss/forms": "^0.5.1", + "@tailwindcss/line-clamp": "^0.4.0", + "@tailwindcss/typography": "^0.5.2", + "@tanstack/eslint-plugin-query": "^4.34.1", + "@testing-library/dom": "^8.13.0", + "@testing-library/react": "^13.2.0", + "@types/jest": "^27.5.1", + "@types/react": "^18.0.9", + "@types/react-dom": "^18.0.4", + "@types/react-grid-layout": "^1.3.2", + "@types/react-plotly.js": "^2.6.0", + "@types/react-slider": "^1.3.1", + "@types/react-table": "^7.7.12", + "@types/signalr": "^2.2.37", + "@types/testing-library__jest-dom": "^5.14.3", + "@typescript-eslint/eslint-plugin": "^5.23.0", + "@typescript-eslint/parser": "^5.23.0", + "@vitejs/plugin-react": "^1.3.2", + "all-contributors-cli": "^6.20.0", + "autoprefixer": "^10.4.7", + "daisyui": "^3.5.1", + "esbuild-jest": "^0.4.0", + "eslint": "^8.15.0", + "eslint-config-prettier": "^8.5.0", + "eslint-config-typescript": "^3.0.0", + "eslint-import-resolver-typescript": "^2.7.1", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react-hooks": "^4.5.0", + "eslint-plugin-sort-keys-fix": "^1.1.2", + "identity-obj-proxy": "^3.0.0", + "jest": "^28.0.0", + "jest-watch-typeahead": "^1.1.0", + "node-notifier": "^10.0.1", + "postcss": "^8.4.13", + "prettier": "^2.6.1", + "prettier-plugin-tailwind-css": "^1.5.0", + "rimraf": "^3.0.2", + "serve": "^14.2.0", + "tailwindcss": "^3.0.23", + "typescript": "^5.0.4", + "vite": "^4.4.9", + "whatwg-fetch": "^3.6.2" + }, + "msw": { + "workerDirectory": "" + } +} diff --git a/src/Managing.WebApp/postcss.config.js b/src/Managing.WebApp/postcss.config.js new file mode 100644 index 0000000..6e41d95 --- /dev/null +++ b/src/Managing.WebApp/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + autoprefixer: {}, + tailwindcss: {}, + }, +} diff --git a/src/Managing.WebApp/prettier.config.js b/src/Managing.WebApp/prettier.config.js new file mode 100644 index 0000000..9280030 --- /dev/null +++ b/src/Managing.WebApp/prettier.config.js @@ -0,0 +1,4 @@ +module.exports = { + plugins: [require('prettier-plugin-tailwindcss')], + tailwindConfig: './tailwind.config.js', +} diff --git a/src/Managing.WebApp/scripts/validate b/src/Managing.WebApp/scripts/validate new file mode 100644 index 0000000..738fceb --- /dev/null +++ b/src/Managing.WebApp/scripts/validate @@ -0,0 +1,11 @@ +#!/bin/sh + +npx concurrently \ + --kill-others-on-fail \ + --prefix "[{name}]" \ + --names "test,lint:fix,typecheck,build" \ + --prefix-colors "bgRed.bold.white,bgGreen.bold.white,bgBlue.bold.white,bgMagenta.bold.white" \ + "npm run test --silent -- --watch=false" \ + "npm run lint:fix --silent" \ + "npm run typecheck --silent" \ + "npm run build --silent" diff --git a/src/Managing.WebApp/src/app/index.tsx b/src/Managing.WebApp/src/app/index.tsx new file mode 100644 index 0000000..96e64a1 --- /dev/null +++ b/src/Managing.WebApp/src/app/index.tsx @@ -0,0 +1,13 @@ +import { Auth } from '../pages/authPage/auth' + +import MyRoutes from './routes' + +const App = () => { + return ( + + + + ) +} + +export default App diff --git a/src/Managing.WebApp/src/app/providers/Hubs.tsx b/src/Managing.WebApp/src/app/providers/Hubs.tsx new file mode 100644 index 0000000..f837f26 --- /dev/null +++ b/src/Managing.WebApp/src/app/providers/Hubs.tsx @@ -0,0 +1,18 @@ +import type { HubConnection } from '@microsoft/signalr' +import { HubConnectionBuilder } from '@microsoft/signalr' +// https://www.abrahamberg.com/blog/aspnet-signalr-and-react/ +export class Hub { + public hub: HubConnection + constructor(name: string, baseUrl: string) { + this.hub = new HubConnectionBuilder() + .withUrl(baseUrl + '/' + name) + .withAutomaticReconnect() + .build() + try { + this.hub.start() + } catch (err) { + // eslint-disable-next-line no-console + console.log(err) + } + } +} diff --git a/src/Managing.WebApp/src/app/routes/index.tsx b/src/Managing.WebApp/src/app/routes/index.tsx new file mode 100644 index 0000000..da67c32 --- /dev/null +++ b/src/Managing.WebApp/src/app/routes/index.tsx @@ -0,0 +1,118 @@ +import { Suspense, lazy } from 'react' +import { Route, Routes } from 'react-router-dom' + +import LayoutMain from '../../layouts' +import DeskWidget from '../../pages/desk/deskWidget' +import Scenario from '../../pages/scenarioPage/scenario' +import Tools from '../../pages/toolsPage/tools' +import Workflows from '../../pages/workflow/workflows' + +const Backtest = lazy(() => import('../../pages/backtestPage/backtest')) +const Bots = lazy(() => import('../../pages/botsPage/bots')) +const Dashboard = lazy(() => import('../../pages/dashboardPage/dashboard')) +const Settings = lazy(() => import('../../pages/settingsPage/settings')) + +const MyRoutes = () => { + return ( + + }> + + + + } + /> + + + }> + + + + } + /> + + + }> + + + + } + /> + + + }> + + + + } + /> + + + }> + + + + } + /> + + + }> + + + + } + /> + + }> + + + + } + /> + + + }> + + + + } + /> + + {/* }> + + + + } + /> + */} + + ) +} + +export default MyRoutes diff --git a/src/Managing.WebApp/src/app/store/accountStore.tsx b/src/Managing.WebApp/src/app/store/accountStore.tsx new file mode 100644 index 0000000..b264119 --- /dev/null +++ b/src/Managing.WebApp/src/app/store/accountStore.tsx @@ -0,0 +1,22 @@ +import { create } from 'zustand' + +import type { AccountStore } from '../../global/type' + +export const useAuthStore = create((set) => ({ + accounts: [], + onInitialize: () => { + console.log('useFlowStore onInitialize') + + // const accountClient = new AccountClient({}, apiUrl) + // const accounts = await accountClient.account_GetAccounts() + // if (accounts.length > 0) { + // get().setAccounts(accounts) + // } + }, + setAccounts: (accounts) => { + set((state) => ({ + ...state, + accounts: accounts, + })) + }, +})) diff --git a/src/Managing.WebApp/src/app/store/apiStore.tsx b/src/Managing.WebApp/src/app/store/apiStore.tsx new file mode 100644 index 0000000..632fb70 --- /dev/null +++ b/src/Managing.WebApp/src/app/store/apiStore.tsx @@ -0,0 +1,28 @@ +import create from 'zustand' + +type ApiStore = { + isProd: boolean + apiUrl: string + workerUrl: string + toggleApiUrl: () => void +} + +const useApiUrlStore = create((set) => ({ + // Mettez la valeur initiale de isProd ici + apiUrl: import.meta.env.VITE_API_URL_SERVER, + isProd: true, + toggleApiUrl: () => { + set((state) => ({ + apiUrl: state.isProd + ? import.meta.env.VITE_API_URL_LOCAL + : import.meta.env.VITE_API_URL_SERVER, + isProd: !state.isProd, + workerUrl: state.isProd + ? import.meta.env.VITE_WORKER_URL_LOCAL + : import.meta.env.VITE_WORKER_URL_SERVER, + })) + }, + workerUrl: import.meta.env.VITE_WORKER_URL_SERVER, +})) + +export default useApiUrlStore diff --git a/src/Managing.WebApp/src/app/store/flowStore.tsx b/src/Managing.WebApp/src/app/store/flowStore.tsx new file mode 100644 index 0000000..f176552 --- /dev/null +++ b/src/Managing.WebApp/src/app/store/flowStore.tsx @@ -0,0 +1,28 @@ +import { create } from 'zustand' + +import type { IFlow } from '../../generated/ManagingApi' +import { WorkflowClient } from '../../generated/ManagingApi' + +type FlowStore = { + setFlows: (flows: IFlow[]) => void + getFlows: (apiUrl: string) => void + flows: IFlow[] +} + +export const useFlowStore = create((set) => ({ + flows: [] as IFlow[], + getFlows: async (apiUrl) => { + const client = new WorkflowClient({}, apiUrl) + await client.workflow_GetAvailableFlows().then((data) => { + set(() => ({ + flows: data, + })) + }) + }, + setFlows: (flows) => { + set((state) => ({ + ...state, + flows: flows, + })) + }, +})) diff --git a/src/Managing.WebApp/src/app/store/selectors/workflowSelector.tsx b/src/Managing.WebApp/src/app/store/selectors/workflowSelector.tsx new file mode 100644 index 0000000..5f8f754 --- /dev/null +++ b/src/Managing.WebApp/src/app/store/selectors/workflowSelector.tsx @@ -0,0 +1,13 @@ +import type { IWorkflowStore } from '../workflowStore' + +export const WorkflowSelector = (state: IWorkflowStore) => ({ + edges: state.edges, + initWorkFlow: state.initWorkFlow, + nodes: state.nodes, + onConnect: state.onConnect, + onEdgesChange: state.onEdgesChange, + onNodesChange: state.onNodesChange, + resetWorkflow: state.resetWorkflow, + setNodes: state.setNodes, + updateNodeData: state.updateNodeData, +}) diff --git a/src/Managing.WebApp/src/app/store/workflowStore.tsx b/src/Managing.WebApp/src/app/store/workflowStore.tsx new file mode 100644 index 0000000..834b72a --- /dev/null +++ b/src/Managing.WebApp/src/app/store/workflowStore.tsx @@ -0,0 +1,113 @@ +import type { + Connection, + Edge, + EdgeChange, + Node, + NodeChange, + OnNodesChange, + OnEdgesChange, + OnConnect, +} from 'reactflow' +import { addEdge, applyNodeChanges, applyEdgeChanges } from 'reactflow' +import { create } from 'zustand' + +import type { + SyntheticFlowParameter, + FlowParameter, + IFlow, +} from '../../generated/ManagingApi' + +export type IWorkflowStore = { + nodes: Node[] + initialNodes: Node[] + edges: Edge[] + initialEdges: Edge[] + onNodesChange: OnNodesChange + onEdgesChange: OnEdgesChange + onConnect: OnConnect + updateNodeData: (nodeId: string, parameterName: string, value: string) => void + initWorkFlow: (nodes: Node[], edges: Edge[]) => void + setNodes: (nodes: Node[]) => void + resetWorkflow: () => void +} + +// this is our useStore hook that we can use in our components to get parts of the store and call actions +const useWorkflowStore = create((set, get) => ({ + edges: [], + initWorkFlow: (nodes: Node[], edges: Edge[]) => { + set({ + edges: edges, + initialEdges: edges, + initialNodes: nodes, + nodes: nodes, + }) + }, + initialEdges: [], + initialNodes: [], + nodes: [], + onConnect: (connection: Connection, callback: void) => { + set({ + edges: addEdge(connection, get().edges), + }) + }, + onEdgesChange: (changes: EdgeChange[]) => { + set({ + edges: applyEdgeChanges(changes, get().edges), + }) + }, + onNodesChange: (changes: NodeChange[]) => { + set({ + nodes: applyNodeChanges(changes, get().nodes), + }) + }, + resetWorkflow: () => { + set({ + edges: get().initialEdges, + initialEdges: get().initialEdges, + initialNodes: get().initialNodes, + nodes: get().initialNodes, + }) + }, + setNodes: (nodes: Node[]) => { + set({ + nodes: nodes, + }) + }, + updateNodeData: (nodeId: string, parameterName: string, value: string) => { + set({ + nodes: get().nodes.map((node) => { + if (node.id === nodeId) { + node.data.parameters = updateParameters( + node.data.parameters, + parameterName, + value + ) + } + return node + }), + }) + }, +})) + +const updateParameters = ( + parameters: FlowParameter[], + name: string, + value: string +) => { + if (!parameters.find((parameter) => parameter.name === name)) { + parameters.push({ + name: name, + value: value, + } as SyntheticFlowParameter) + } else { + parameters = parameters.map((parameter) => { + if (parameter.name === name) { + parameter.value = value + } + return parameter + }) + } + return parameters +} + +export default useWorkflowStore diff --git a/src/Managing.WebApp/src/assets/img/logo.png b/src/Managing.WebApp/src/assets/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c4ccd58aeb4f358143206b57d4390129e29da723 GIT binary patch literal 33041 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 ( +

  • {prop.children}
  • +) + +export default List diff --git a/src/Managing.WebApp/src/components/atoms/Loader/Loader.tsx b/src/Managing.WebApp/src/components/atoms/Loader/Loader.tsx new file mode 100644 index 0000000..3ddfea1 --- /dev/null +++ b/src/Managing.WebApp/src/components/atoms/Loader/Loader.tsx @@ -0,0 +1,16 @@ +import type { ILoader } from '../../../global/type' + +const defaultClasses = 'loading loading-ring ' + +const loaderSize = { + lg: defaultClasses + 'loading-lg', + md: defaultClasses + 'loading-md', + sm: defaultClasses + 'loading-sm', + xs: defaultClasses + 'loading-xs', +} + +const Loader = ({ size = 'md' }: ILoader) => { + return +} + +export default Loader diff --git a/src/Managing.WebApp/src/components/atoms/MyLink/MyLink.tsx b/src/Managing.WebApp/src/components/atoms/MyLink/MyLink.tsx new file mode 100644 index 0000000..c979720 --- /dev/null +++ b/src/Managing.WebApp/src/components/atoms/MyLink/MyLink.tsx @@ -0,0 +1,42 @@ +import { Link, NavLink } from 'react-router-dom' + +import type { IMyLinkProps } from '../../../global/type' + +const MyLink = ({ + children, + href, + as: asof = 'link', + ...props +}: IMyLinkProps): JSX.Element => { + const navLink = asof === 'navlink' + const onlyLink = asof === 'link' + + if (navLink) { + return ( + + {children} + + ) + } + + if (onlyLink) { + return ( + + {children} + + ) + } + + return ( + + {children} + + ) +} + +export default MyLink diff --git a/src/Managing.WebApp/src/components/atoms/Select/Select.tsx b/src/Managing.WebApp/src/components/atoms/Select/Select.tsx new file mode 100644 index 0000000..f31dcf8 --- /dev/null +++ b/src/Managing.WebApp/src/components/atoms/Select/Select.tsx @@ -0,0 +1,7 @@ +import type { IListProp } from '../../../global/type' + +const Select = (prop: IListProp): JSX.Element => ( + +) + +export default Select diff --git a/src/Managing.WebApp/src/components/atoms/Slider/Slider.tsx b/src/Managing.WebApp/src/components/atoms/Slider/Slider.tsx new file mode 100644 index 0000000..a19e1e8 --- /dev/null +++ b/src/Managing.WebApp/src/components/atoms/Slider/Slider.tsx @@ -0,0 +1,30 @@ +import type { FunctionComponent } from 'react' + +import type { IPropsComponent } from '../../../global/type' + +const Slider: FunctionComponent = (props: IPropsComponent) => { + return ( + <> +
    + +
    +
    + {props.prefixValue} + {props.value} + {props.suffixValue} +
    + + ) +} + +export default Slider diff --git a/src/Managing.WebApp/src/components/atoms/index.tsx b/src/Managing.WebApp/src/components/atoms/index.tsx new file mode 100644 index 0000000..77ced26 --- /dev/null +++ b/src/Managing.WebApp/src/components/atoms/index.tsx @@ -0,0 +1,5 @@ +export { default as List } from './List/List' +export { default as MyLink } from './MyLink/MyLink' +export { default as Select } from './Select/Select' +export { default as Slider } from './Slider/Slider' +export { default as Loader } from './Loader/Loader' diff --git a/src/Managing.WebApp/src/components/mollecules/Card/Card.tsx b/src/Managing.WebApp/src/components/mollecules/Card/Card.tsx new file mode 100644 index 0000000..7c5c677 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/Card/Card.tsx @@ -0,0 +1,45 @@ +import type { CardProps } from '../../../global/type' + +const Card = ({ name, children, showCloseButton, info }: CardProps) => { + return ( +
    +
    +
    + {name} + {info && ( +
    + i +
    + )} +
    + +
    + {showCloseButton && ( + + )} +
    +
    +
    {children}
    +
    + ) +} + +export default Card diff --git a/src/Managing.WebApp/src/components/mollecules/CardText/CardText.tsx b/src/Managing.WebApp/src/components/mollecules/CardText/CardText.tsx new file mode 100644 index 0000000..64f51a3 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/CardText/CardText.tsx @@ -0,0 +1,77 @@ +import ArrowDownIcon from '@heroicons/react/solid/ArrowDownIcon' +import ArrowUpIcon from '@heroicons/react/solid/ArrowUpIcon' + +import { Position, TradeDirection } from '../../../generated/ManagingApi' +import type { ICardPosition, ICardSignal, ICardText } from '../../../global/type' + +function getItemTextHeaderClass() { + return 'text-xs ' +} +function getItemTextValueClass() { + return 'text-md ' +} + +export function CardText({ title, content }: ICardText) { + return ( +
    +

    {title}

    +

    {content}

    +
    + ) +} + +export function CardPosition({ positions, positivePosition }: ICardPosition) { + return ( + <> +
    +

    + {positivePosition ? 'Winning position' : 'Losing position'} +

    +

    + { + positions.filter((p: Position) => p.originDirection == TradeDirection.Long) + .length + }{' '} + {' '} + { + positions.filter((p) => p.originDirection == TradeDirection.Short) + .length + }{' '} + +

    +
    + + ) +} + +export function CardSignal({ signals }: ICardSignal) { + return ( + <> +
    +

    Signals

    +

    + {signals.filter((p) => p.direction == TradeDirection.Long).length}{' '} + {' '} + {signals.filter((p) => p.direction == TradeDirection.Short).length}{' '} + +

    +
    + + ) +} diff --git a/src/Managing.WebApp/src/components/mollecules/FormInput/FormInput.tsx b/src/Managing.WebApp/src/components/mollecules/FormInput/FormInput.tsx new file mode 100644 index 0000000..beb18c1 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/FormInput/FormInput.tsx @@ -0,0 +1,24 @@ +import React from 'react' + +import type { IFormInput } from '../../../global/type' + +const FormInput: React.FC = ({ + children, + label, + htmlFor, + inline = false, +}) => { + const groupStyle = inline ? 'flex-wrap' : '' + return ( +
    +
    + + {children} +
    +
    + ) +} + +export default FormInput diff --git a/src/Managing.WebApp/src/components/mollecules/GridTile/GridTile.tsx b/src/Managing.WebApp/src/components/mollecules/GridTile/GridTile.tsx new file mode 100644 index 0000000..a59d89f --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/GridTile/GridTile.tsx @@ -0,0 +1,38 @@ +import type { IGridTile } from '../../../global/type' + +const GridTile = ({ children, title }: IGridTile) => { + return ( +
    +
    +
    + {title} +
    + +
    + +
    +
    +
    {children}
    +
    + ) +} + +export default GridTile diff --git a/src/Managing.WebApp/src/components/mollecules/LogIn/LogIn.tsx b/src/Managing.WebApp/src/components/mollecules/LogIn/LogIn.tsx new file mode 100644 index 0000000..b80ff7a --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/LogIn/LogIn.tsx @@ -0,0 +1,101 @@ +import { StatusOfflineIcon } from '@heroicons/react/solid' +import type { SubmitHandler } from 'react-hook-form' +import { useForm } from 'react-hook-form' +import { useAccount, useDisconnect, useSignMessage } from 'wagmi' + +import useApiUrlStore from '../../../app/store/apiStore' +import { UserClient } from '../../../generated/ManagingApi' +import type { ILoginFormInput } from '../../../global/type' +import useCookie from '../../../hooks/useCookie' +import { SecondaryNavbar } from '../NavBar/NavBar' + +const LogIn = () => { + const { apiUrl } = useApiUrlStore() + const { register, handleSubmit } = useForm() + const { disconnect } = useDisconnect() + const { address } = useAccount() + const { isLoading, signMessageAsync } = useSignMessage({}) + const { setCookie } = useCookie() + + const onSubmit: SubmitHandler = async (form) => { + const message = 'wagmi' + const signature = await signMessageAsync({ message }) + + if (signature && address) { + const userClient = new UserClient({}, apiUrl) + await userClient + .user_CreateToken({ + address: address.toString(), + message: message, + name: form.name, + signature: signature, + }) + .then((data) => { + setCookie('token', data, 1) + location.reload() + }) + .catch((err) => { + // eslint-disable-next-line no-console + console.error(err) + }) + } else { + } + } + + return ( + <> +
    + +
    + +
    +
    +
    +
    +

    + Login +

    +
    +
    + + +
    + + +
    +
    +
    +
    +
    + + ) +} + +export default LogIn diff --git a/src/Managing.WebApp/src/components/mollecules/LogIn/Profile.tsx b/src/Managing.WebApp/src/components/mollecules/LogIn/Profile.tsx new file mode 100644 index 0000000..6292525 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/LogIn/Profile.tsx @@ -0,0 +1,26 @@ +import { useConnect } from 'wagmi' + +// export function Profile() { +// const { connect, connectors, error, isLoading, pendingConnector } = +// useConnect() + +// return ( +//
    +// {connectors.map((connector) => ( +// +// ))} + +// {error &&
    {error.message}
    } +//
    +// ) +// } diff --git a/src/Managing.WebApp/src/components/mollecules/Modal/Modal.tsx b/src/Managing.WebApp/src/components/mollecules/Modal/Modal.tsx new file mode 100644 index 0000000..752bc3b --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/Modal/Modal.tsx @@ -0,0 +1,34 @@ +import React from 'react' + +import type { IModalProps } from '../../../global/type' + +import ModalHeader from './ModalHeader' + +const Modal: React.FC = ({ + showModal, + onSubmit, + onClose, + titleHeader, + children, +}) => { + return ( +
    + {showModal ? ( +
    +
    +
    + + {children} +
    +
    +
    + ) : null} +
    + ) +} + +export default Modal diff --git a/src/Managing.WebApp/src/components/mollecules/Modal/ModalHeader.tsx b/src/Managing.WebApp/src/components/mollecules/Modal/ModalHeader.tsx new file mode 100644 index 0000000..688ff90 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/Modal/ModalHeader.tsx @@ -0,0 +1,19 @@ +import React from 'react' + +import type { IModalProps } from '../../../global/type' + +const ModalHeader: React.FC = ({ onClose, titleHeader }: any) => { + return ( +
    + +
    {titleHeader}
    +
    + ) +} + +export default ModalHeader diff --git a/src/Managing.WebApp/src/components/mollecules/NavBar/NavBar.tsx b/src/Managing.WebApp/src/components/mollecules/NavBar/NavBar.tsx new file mode 100644 index 0000000..fd8bc49 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/NavBar/NavBar.tsx @@ -0,0 +1,130 @@ +import { useIsFetching } from '@tanstack/react-query' +import { ConnectKitButton } from 'connectkit' +import type { ReactNode } from 'react' +import { useState } from 'react' +import { Link } from 'react-router-dom' + +import { NavItem } from '..' +import useApiUrlStore from '../../../app/store/apiStore' +import Logo from '../../../assets/img/logo.png' +import { Loader } from '../../atoms' + +const navigation = [ + { href: '/desk', name: 'Desk' }, + { href: '/bots', name: 'Bots' }, + { href: '/workflow', name: 'Workflows' }, + { href: '/scenarios', name: 'Scenarios' }, + { href: '/backtest', name: 'Backtest' }, + { href: '/tools', name: 'Tools' }, + { href: '/settings', name: 'Settings' }, +] + +function navItems(isMobile = false) { + return navigation.map((item) => ( + + {item.name} + + )) +} + +function PrimaryNavbar() { + return ( +
    + + logo + + {/* */} +
    {navItems()}
    +
    + ) +} + +const GlobalLoader = () => { + const isFetching = useIsFetching() + return isFetching ? : null +} + +export function SecondaryNavbar() { + const { toggleApiUrl, isProd } = useApiUrlStore() + + return ( +
    + +
    + +
    + +
    + ) +} + +type MobileMenuButtonProps = { + onClick: VoidFunction +} + +function MobileMenuButton({ onClick }: MobileMenuButtonProps) { + return ( +
    + +
    + ) +} +type MobileMenuProps = { + isOpen: boolean +} + +function MobileMenu({ isOpen }: MobileMenuProps) { + return ( +
    +
      {navItems(true)}
    +
    + ) +} +type NavContainerProps = { + children: ReactNode + isMenuOpen: boolean +} + +function NavContainer({ children, isMenuOpen }: NavContainerProps) { + return ( + + ) +} +export default function NavBar() { + const [isMenuOpen, setIsMenuOpen] = useState(false) + + return ( + + + + setIsMenuOpen(!isMenuOpen)} /> + + ) +} diff --git a/src/Managing.WebApp/src/components/mollecules/NavItem/NavItem.tsx b/src/Managing.WebApp/src/components/mollecules/NavItem/NavItem.tsx new file mode 100644 index 0000000..a492973 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/NavItem/NavItem.tsx @@ -0,0 +1,33 @@ +import { NavLink } from 'react-router-dom' + +import type { INavItemProps } from '../../../global/interface' + +function navLinkClasses(isActive: boolean, isMobile: boolean) { + let commonClasses = 'block text-sm px-2 py-4' + if (isMobile) { + return `${commonClasses} ${ + isActive + ? 'text-base-content bg-primary font-semibold' + : 'hover:bg-primary transition duration-300' + }` + } + commonClasses = + 'py-4 px-2 font-semibold hover:text-primary transition duration-300' + return `${commonClasses} ${isActive ? 'text-primary' : 'text-base-content'}` +} + +export default function NavItem({ + children, + href, + isMobile = false, +}: INavItemProps) { + const item = ( + navLinkClasses(isActive, isMobile)} + > + {children} + + ) + return isMobile ?
  • {item}
  • : item +} diff --git a/src/Managing.WebApp/src/components/mollecules/PieChart/PieChart.tsx b/src/Managing.WebApp/src/components/mollecules/PieChart/PieChart.tsx new file mode 100644 index 0000000..51c6c3b --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/PieChart/PieChart.tsx @@ -0,0 +1,46 @@ +import * as React from 'react' +import Plot from 'react-plotly.js' + +type IPieChart = { + data: number[] + labels: string[] + colors: string[] +} + +const PieChart: React.FC = ({ data, labels, colors }) => { + return ( + <> + + + ) +} + +export default PieChart diff --git a/src/Managing.WebApp/src/components/mollecules/Table/SelectColumnFilter.tsx b/src/Managing.WebApp/src/components/mollecules/Table/SelectColumnFilter.tsx new file mode 100644 index 0000000..f011b60 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/Table/SelectColumnFilter.tsx @@ -0,0 +1,36 @@ +// This is a custom filter UI for selecting + +import React from 'react' + +// a unique option from a list +export default function SelectColumnFilter({ + column: { filterValue, setFilter, preFilteredRows, id }, +}: any) { + // Calculate the options for filtering + // using the preFilteredRows + const options = React.useMemo(() => { + const options = new Set() + preFilteredRows.forEach((row: any) => { + options.add(row.values[id]) + }) + return [...options.values()] + }, [id, preFilteredRows]) + + // Render a multi-select box + return ( + + ) +} diff --git a/src/Managing.WebApp/src/components/mollecules/Table/Table.tsx b/src/Managing.WebApp/src/components/mollecules/Table/Table.tsx new file mode 100644 index 0000000..c562ad9 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/Table/Table.tsx @@ -0,0 +1,231 @@ +import { ArrowDownIcon, ArrowUpIcon } from '@heroicons/react/solid' +import React from 'react' +import { + useTable, + usePagination, + useSortBy, + useFilters, + useExpanded, +} from 'react-table' + +import type { TableInstanceWithHooks } from '../../../global/type' + +// Define a default UI for filtering +function DefaultColumnFilter({ + column: { filterValue, preFilteredRows, setFilter }, +}: any) { + const count = preFilteredRows.length + + return ( + { + setFilter(e.target.value || undefined) // Set undefined to remove the filter entirely + }} + placeholder={`Search ${count} records...`} + /> + ) +} + +export default function Table({ + columns, + data, + renderRowSubCompontent, + showPagination, + hiddenColumns, + showTotal = false, +}: any) { + const defaultColumn = React.useMemo( + () => ({ + // Let's set up our default Filter UI + Filter: DefaultColumnFilter, + }), + [] + ) + // Use the state and functions returned from useTable to build your UI + const { + getTableProps, + getTableBodyProps, + headerGroups, + prepareRow, + visibleColumns, + page, // Instead of using 'rows', we'll use page, + // which has only the rows for the active page + + // The rest of these things are super handy, too ;) + canPreviousPage, + canNextPage, + pageOptions, + pageCount, + gotoPage, + nextPage, + previousPage, + setPageSize, + state: { pageIndex, pageSize }, + } = useTable( + { + columns, + data, + defaultColumn, // Be sure to pass the defaultColumn option + initialState: { + hiddenColumns: hiddenColumns ? hiddenColumns : [], + }, + }, + useFilters, + useSortBy, + useExpanded, + usePagination + ) as TableInstanceWithHooks + + // Calculez le total des valeurs dans la colonne USD + const total = data + ? data + .reduce((sum: number, row: any) => { + return sum + (row.value || 0) // Si la valeur est undefined = 0 + }, 0) + .toFixed(2) + ' $' + : '0.00 $' + + // Render the UI for your table + return ( + <> +
    + + + {headerGroups.map((headerGroup: any) => ( + + {headerGroup.headers.map((column: any) => ( + + ))} + + ))} + + + {page.map((row: any) => { + prepareRow(row) + return ( + <> + + {row.cells.map((cell: any) => { + return ( + + ) + })} + + {row.isExpanded ? ( + + + + ) : null} + + ) + })} + + {/* Afficher le total ici */} + {showTotal ? ( + + + + ) : null} +
    +

    + {column.render('Header')} +

    + + {column.isSorted ? ( + column.isSortedDesc ? ( + + ) : ( + + ) + ) : ( + '' + )} + +
    + {column.canFilter ? column.render('Filter') : null} +
    +
    {cell.render('Cell')}
    + {/* + Inside it, call our renderRowSubComponent function. In reality, + you could pass whatever you want as props to + a component like this, including the entire + table instance. But for this example, we'll just + pass the row + */} + {renderRowSubCompontent({ row })} +
    + Total: {total} +
    +
    + {/* + Pagination can be built however you'd like. + This is just a very basic UI implementation: + */} +
    + {showPagination ? ( +
    + {' '} + {' '} + {' '} + {' '} + + Page{' '} + + {pageIndex + 1} of {pageOptions.length} + {' '} + + {/* + | Go to page:{' '} + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + gotoPage(page) + }} + style={{ width: '100px' }} + /> + {' '} */} + +
    + ) : null} + + ) +} diff --git a/src/Managing.WebApp/src/components/mollecules/Tabs/Tabs.tsx b/src/Managing.WebApp/src/components/mollecules/Tabs/Tabs.tsx new file mode 100644 index 0000000..1f06e88 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/Tabs/Tabs.tsx @@ -0,0 +1,77 @@ +import type { FC } from 'react' + +import type { ITabsProps } from '../../../global/type' + +/** + * Avalible Props + * @param className string + * @param tab Array of object + * @param selectedTab number + * @param onClick Function to set the active tab + * @param orientation Tab orientation Vertical | Horizontal + */ +const Tabs: FC = ({ + className = 'tabs-component', + tabs = [], + selectedTab = 0, + onClick, + orientation = 'horizontal', + addButton = false, + onAddButton, +}) => { + const Panel = tabs && tabs.find((tab) => tab.index === selectedTab) + + return ( +
    +
    + {tabs.map((tab) => ( + + ))} + {addButton && ( + + )} +
    +
    + {Panel && ( + + )} +
    +
    + ) +} +export default Tabs diff --git a/src/Managing.WebApp/src/components/mollecules/ThemeSelector/ThemeSelector.tsx b/src/Managing.WebApp/src/components/mollecules/ThemeSelector/ThemeSelector.tsx new file mode 100644 index 0000000..a526acf --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/ThemeSelector/ThemeSelector.tsx @@ -0,0 +1,21 @@ +import useTheme from '../../../hooks/useTheme' +const themes = ['black', 'coffee', 'cyberpunk', 'lofi', 'retro'] + +const ThemeSelector = (): JSX.Element => { + const { setTheme } = useTheme() + + return ( + + ) +} + +export default ThemeSelector diff --git a/src/Managing.WebApp/src/components/mollecules/Toast/Toast.tsx b/src/Managing.WebApp/src/components/mollecules/Toast/Toast.tsx new file mode 100644 index 0000000..2a6c044 --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/Toast/Toast.tsx @@ -0,0 +1,31 @@ +import type { Id, TypeOptions, UpdateOptions } from 'react-toastify' +import { toast } from 'react-toastify' + +const baseOptions: UpdateOptions = { + autoClose: 5000, + closeOnClick: true, + draggable: true, + hideProgressBar: false, + isLoading: false, + position: 'top-right', + progress: undefined, + theme: 'dark', +} + +class Toast { + private id: Id + + constructor(content: string) { + this.id = toast.loading(content) + } + + update(type: TypeOptions, content: string, opts?: any) { + const options = { ...baseOptions, ...opts } + options.type = type + options.render = content + options.isLoading = false + + toast.update(this.id, options) + } +} +export default Toast diff --git a/src/Managing.WebApp/src/components/mollecules/index.tsx b/src/Managing.WebApp/src/components/mollecules/index.tsx new file mode 100644 index 0000000..15228eb --- /dev/null +++ b/src/Managing.WebApp/src/components/mollecules/index.tsx @@ -0,0 +1,14 @@ +export { CardText, CardPosition, CardSignal } from './CardText/CardText' +export { default as NavItem } from './NavItem/NavItem' +export { default as Tabs } from './Tabs/Tabs' +export { default as Modal } from './Modal/Modal' +export { default as Toast } from './Toast/Toast' +export { default as ThemeSelector } from './ThemeSelector/ThemeSelector' +export { default as Table } from './Table/Table' +export { default as NavBar } from './NavBar/NavBar' +export { default as PieChart } from './PieChart/PieChart' +export { default as FormInput } from './FormInput/FormInput' +export { default as LogIn } from './LogIn/LogIn' +export { default as GridTile } from './GridTile/GridTile' +export { default as SelectColumnFilter } from './Table/SelectColumnFilter' +export { default as Card } from './Card/Card' diff --git a/src/Managing.WebApp/src/components/organism/Account/Account.tsx b/src/Managing.WebApp/src/components/organism/Account/Account.tsx new file mode 100644 index 0000000..0fe15c4 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Account/Account.tsx @@ -0,0 +1,13 @@ +import { useAccount, useEnsName } from 'wagmi' + +export function Account() { + const { address } = useAccount() + const { data: ensName } = useEnsName({ address }) + + return ( +
    + {ensName ?? address?.slice(0, -35)} + {ensName ? ` (${address})` : null} +
    + ) +} diff --git a/src/Managing.WebApp/src/components/organism/ActiveBots/ActiveBots.tsx b/src/Managing.WebApp/src/components/organism/ActiveBots/ActiveBots.tsx new file mode 100644 index 0000000..4814f8a --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/ActiveBots/ActiveBots.tsx @@ -0,0 +1,211 @@ +import { + ArrowDownIcon, + ArrowUpIcon, + ChevronDownIcon, + ChevronRightIcon, + PlayIcon, +} from '@heroicons/react/solid' +import React, { useEffect, useState } from 'react' + +import { Hub } from '../../../app/providers/Hubs' +import useApiUrlStore from '../../../app/store/apiStore' +import type { Account, TradingBot } from '../../../generated/ManagingApi' +import { + AccountClient, + BotClient, + TradeDirection, + TradeStatus, +} from '../../../generated/ManagingApi' +import { SelectColumnFilter, Table } from '../../mollecules' +import BacktestRowDetails from '../Backtest/backtestRowDetails' +import StatusBadge from '../StatusBadge/StatusBadge' +import Summary from '../Trading/Summary' + +export default function ActiveBots() { + const [bots, setBots] = useState([]) + const [accounts, setAccounts] = useState([]) + const { apiUrl } = useApiUrlStore() + + const columns = React.useMemo( + () => [ + { + Cell: ({ row }: any) => ( + // Use Cell to render an expander for each row. + // We can use the getToggleRowExpandedProps prop-getter + // to build the expander. + + {row.isExpanded ? ( + + ) : ( + + )} + + ), + + // Make sure it has an ID + Header: ({ getToggleAllRowsExpandedProps, isAllRowsExpanded }: any) => ( + + {isAllRowsExpanded ? 'v' : '>'} + + ), + // Build our expander column + id: 'expander', + }, + { + Cell: ({ cell }: any) => ( + <> + + + ), + Header: 'Status', + accessor: 'status', + disableFilters: true, + sortType: 'basic', + }, + { + accessor: 'isForWatchingOnly', + }, + { + Filter: SelectColumnFilter, + Header: 'Ticker', + accessor: 'ticker', + disableSortBy: true, + }, + { + Header: 'Account', + accessor: 'accountName', + }, + { + Filter: SelectColumnFilter, + Header: 'Timeframe', + accessor: 'timeframe', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Scenario', + accessor: 'scenario', + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <> + { + <> + { + cell.row.values.positions.filter( + (p: any) => p.originDirection == TradeDirection.Long + ).length + }{' '} + + {' | '} + { + cell.row.values.positions.filter( + (p: any) => p.originDirection == TradeDirection.Short + ).length + }{' '} + {' '} + { + cell.row.values.positions.filter( + (p: any) => p.status == TradeStatus.Filled + ).length + }{' '} + {' '} + + } + + ), + Header: 'Positions', + accessor: 'positions', + disableFilters: true, + }, + { + Cell: ({ cell }) => <>{cell.row.values.winRate} %, + Header: 'Winrate', + accessor: 'winRate', + disableFilters: true, + }, + { + Cell: ({ cell }) => <>{cell.row.values.profitAndLoss} $, + Header: 'PNL', + accessor: 'profitAndLoss', + disableFilters: true, + }, + ], + [] + ) + + useEffect(() => { + setupHubConnection().then(() => { + if (bots.length == 0) { + const client = new BotClient({}, apiUrl) + client.bot_GetActiveBots().then((data) => { + setBots(data) + }) + } + }) + const client = new AccountClient({}, apiUrl) + client.account_GetAccounts().then((data) => { + setAccounts(data) + }) + }, []) + + const setupHubConnection = async () => { + const hub = new Hub('bothub', apiUrl).hub + + hub.on('BotsSubscription', (data: TradingBot[]) => { + // eslint-disable-next-line no-console + console.log( + 'bot List', + bots.map((bot) => { + return bot.name + }) + ) + setBots(data) + }) + + return hub + } + + const renderRowSubComponent = React.useCallback( + ({ row }: any) => ( + <> + + + ), + [] + ) + + return ( + <> +
    + +
    +
    + + + + ) +} diff --git a/src/Managing.WebApp/src/components/organism/Backtest/backtestCards.tsx b/src/Managing.WebApp/src/components/organism/Backtest/backtestCards.tsx new file mode 100644 index 0000000..4bb97e0 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Backtest/backtestCards.tsx @@ -0,0 +1,309 @@ +import { DotsVerticalIcon, TrashIcon } from '@heroicons/react/solid' +import moment from 'moment' +import React from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import type { + Backtest, + MoneyManagement, + StartBotRequest, + Ticker, +} from '../../../generated/ManagingApi' +import { + BacktestClient, + BotClient, + BotType, +} from '../../../generated/ManagingApi' +import type { IBacktestCards } from '../../../global/type' +import MoneyManagementModal from '../../../pages/settingsPage/moneymanagement/moneyManagementModal' +import { CardPosition, CardText, Toast } from '../../mollecules' +import CardPositionItem from '../Trading/CardPositionItem' +import TradeChart from '../Trading/TradeChart/TradeChart' + +function baseBadgeClass(isOutlined = false) { + let classes = 'text-xs badge ' + + if (isOutlined) { + classes += 'badge-outline ' + } + return classes +} + +function botStatusResult( + growthPercentage: number | undefined, + hodlPercentage: number | undefined +) { + if (growthPercentage != undefined && hodlPercentage != undefined) { + const isWinning = growthPercentage > hodlPercentage + const classes = + baseBadgeClass() + (isWinning ? 'badge-success' : 'badge-content') + return
    {isWinning ? 'Winning' : 'Losing'}
    + } +} + +// function that return the number of day between a date and today +function daysBetween(date: Date) { + const oneDay = 24 * 60 * 60 * 1000 // hours*minutes*seconds*milliseconds + const firstDate = new Date(date) + const secondDate = new Date() + const diffDays = Math.round( + Math.abs((firstDate.getTime() - secondDate.getTime()) / oneDay) + ) + return diffDays +} + +const BacktestCards: React.FC = ({ list, setBacktests }) => { + const { apiUrl } = useApiUrlStore() + const [showMoneyManagementModal, setShowMoneyManagementModal] = + React.useState(false) + const [selectedMoneyManagement, setSelectedMoneyManagement] = + React.useState() + + async function runBot(backtest: Backtest, isForWatchOnly: boolean) { + const t = new Toast('Bot is starting') + const client = new BotClient({}, apiUrl) + + const request: StartBotRequest = { + accountName: backtest.accountName, + botName: backtest.ticker + '-' + backtest.timeframe.toString(), + botType: BotType.ScalpingBot, + isForWatchOnly: isForWatchOnly, + moneyManagementName: backtest.moneyManagement?.name, + scenario: backtest.scenario, + ticker: backtest.ticker as Ticker, + timeframe: backtest.timeframe, + } + + await client + .bot_Start(request) + .then((botStatus: string) => { + t.update('info', 'Bot status :' + botStatus) + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + + async function runOptimizedBacktest(backtest: Backtest) { + const t = new Toast('Optimized backtest is running') + const client = new BacktestClient({}, apiUrl) + + await client + .backtest_Run( + backtest.accountName, + backtest.botType, + backtest.ticker as Ticker, + backtest.scenario, + backtest.timeframe, + false, + daysBetween(backtest.candles[0].date), + backtest.walletBalances[0].value, + '', + false, + backtest.optimizedMoneyManagement + ) + .then((backtest: Backtest) => { + t.update('success', `${backtest.ticker} Backtest Succeeded`) + setBacktests((arr) => [...arr, backtest]) + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + + function saveMoneyManagement(moneyManagement: MoneyManagement) { + setSelectedMoneyManagement(moneyManagement) + setShowMoneyManagementModal(true) + } + + return ( +
    + {list.map((backtest: Backtest, index) => ( +
    +
    +
    + +
    + +
    +
    + { + + } +
    + +
    +

    +
    + +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + {backtest.ticker} + {botStatusResult( + backtest.growthPercentage, + backtest.hodlPercentage + )} +

    +
    +
    + + + + +
    +
    +
    + + {/* */} + { + const realized = p.profitAndLoss?.realized ?? 0 + return realized > 0 ? p : null + })} + > + { + const realized = p.profitAndLoss?.realized ?? 0 + return realized <= 0 ? p : null + })} + > + +
    + +
    +
    + + + + +
    +
    +
    +
    + WR {backtest.winRate?.toFixed(2).toString()} % +
    +
    + PNL {backtest.growthPercentage?.toFixed(2).toString()} % +
    +
    +
    +
    +
    +
    + ))} + + setShowMoneyManagementModal(false)} + /> +
    + ) +} + +export default BacktestCards diff --git a/src/Managing.WebApp/src/components/organism/Backtest/backtestModal.tsx b/src/Managing.WebApp/src/components/organism/Backtest/backtestModal.tsx new file mode 100644 index 0000000..f8c2f75 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Backtest/backtestModal.tsx @@ -0,0 +1,361 @@ +import { useQuery } from '@tanstack/react-query' +import React, { useEffect, useState } from 'react' +import { useForm, type SubmitHandler } from 'react-hook-form' + +import useApiUrlStore from '../../../app/store/apiStore' +import type { + Backtest, + MoneyManagement, + Ticker, +} from '../../../generated/ManagingApi' +import { + AccountClient, + BacktestClient, + BotType, + DataClient, + MoneyManagementClient, + ScenarioClient, + Timeframe, +} from '../../../generated/ManagingApi' +import type { + BacktestModalProps, + IBacktestsFormInput, +} from '../../../global/type' +import { Loader, Slider } from '../../atoms' +import { Modal, Toast } from '../../mollecules' +import FormInput from '../../mollecules/FormInput/FormInput' +import CustomMoneyManagement from '../CustomMoneyManagement/CustomMoneyManagement' + +const BacktestModal: React.FC = ({ + showModal, + closeModal, + setBacktests, + showLoopSlider = false, +}) => { + const [selectedAccount, setSelectedAccount] = React.useState() + const [selectedTimeframe, setSelectedTimeframe] = React.useState() + const [selectedLoopQuantity, setLoopQuantity] = React.useState( + showLoopSlider ? 3 : 1 + ) + const [balance, setBalance] = React.useState(10000) + const [days, setDays] = React.useState(-10) + + const [customMoneyManagement, setCustomMoneyManagement] = + React.useState() + const [selectedMoneyManagement, setSelectedMoneyManagement] = + useState() + const [showCustomMoneyManagement, setShowCustomMoneyManagement] = + useState(false) + + const { apiUrl } = useApiUrlStore() + + const scenarioClient = new ScenarioClient({}, apiUrl) + const accountClient = new AccountClient({}, apiUrl) + const dataClient = new DataClient({}, apiUrl) + const moneyManagementClient = new MoneyManagementClient({}, apiUrl) + const backtestClient = new BacktestClient({}, apiUrl) + + const { register, handleSubmit } = useForm() + const onSubmit: SubmitHandler = async (form) => { + const { scenarioName, tickers } = form + closeModal() + for (let sIndex = 0; sIndex < scenarioName.length; sIndex++) { + for (let tIndex = 0; tIndex < tickers.length; tIndex++) { + await runBacktest( + form, + form.tickers[tIndex], + form.scenarioName[sIndex], + customMoneyManagement, + 1 + ) + } + } + } + + async function runBacktest( + form: IBacktestsFormInput, + ticker: string, + scenarioName: string, + moneyManagement: MoneyManagement | undefined, + loopCount: number + ) { + const t = new Toast(ticker + ' is running') + await backtestClient + .backtest_Run( + form.accountName, + form.botType, + ticker as Ticker, + scenarioName, + form.timeframe, + false, + days, + balance, + selectedMoneyManagement, + form.save, + selectedMoneyManagement ? undefined : moneyManagement + ) + .then((backtest: Backtest) => { + t.update('success', `${backtest.ticker} Backtest Succeeded`) + setBacktests((arr) => [...arr, backtest]) + + if (showLoopSlider && selectedLoopQuantity > loopCount) { + const nextCount = loopCount + 1 + const mm: MoneyManagement = { + balanceAtRisk: backtest.optimizedMoneyManagement.balanceAtRisk, + leverage: backtest.optimizedMoneyManagement.leverage, + name: backtest.optimizedMoneyManagement.name + nextCount, + stopLoss: backtest.optimizedMoneyManagement.stopLoss, + takeProfit: backtest.optimizedMoneyManagement.takeProfit, + timeframe: backtest.optimizedMoneyManagement.timeframe, + } + runBacktest(form, ticker, scenarioName, mm, nextCount) + } + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + + function setSelectedAccountEvent(e: React.ChangeEvent) { + setSelectedAccount(e.target.value) + } + + function setSelectedTimeframeEvent(e: any) { + setSelectedTimeframe(e.target.value) + } + + function onMoneyManagementChange(e: any) { + if (e.target.value == 'Custom') { + setShowCustomMoneyManagement(true) + setSelectedMoneyManagement(e.target.value) + } else { + setShowCustomMoneyManagement(false) + setCustomMoneyManagement(undefined) + setSelectedMoneyManagement(undefined) + } + } + + const { data: scenarios } = useQuery({ + queryFn: () => scenarioClient.scenario_GetScenarios(), + queryKey: ['scenarios'], + }) + + const { data: accounts } = useQuery({ + onSuccess: () => { + if (accounts) { + setSelectedAccount(accounts[0].name) + } + setSelectedTimeframe(Timeframe.FiveMinutes) + }, + queryFn: () => accountClient.account_GetAccounts(), + queryKey: ['accounts'], + }) + + const { data: tickers, refetch: refetchTickers } = useQuery({ + enabled: !!selectedAccount && !!selectedTimeframe, + queryFn: () => { + if (selectedAccount && selectedTimeframe) { + return dataClient.data_GetTickers(selectedAccount, selectedTimeframe) + } + }, + queryKey: ['tickers', selectedAccount, selectedTimeframe], + }) + + const { data: moneyManagements } = useQuery({ + enabled: !!selectedTimeframe, + onSuccess: (data) => { + if (data) { + setSelectedMoneyManagement(data[0].name) + } + }, + queryFn: async () => { + if (selectedTimeframe) { + const mm = + await moneyManagementClient.moneyManagement_GetMoneyManagements() + mm.push({ + balanceAtRisk: 1, + leverage: 1, + name: 'Custom', + stopLoss: 1, + takeProfit: 1, + timeframe: selectedTimeframe, + }) + return mm + } + }, + queryKey: ['moneyManagements', selectedTimeframe], + }) + + useEffect(() => { + if (selectedAccount && selectedTimeframe) { + refetchTickers() + } + }, [selectedAccount, selectedTimeframe]) + + if (!accounts || !scenarios || !moneyManagements) { + return + } + + return ( + + + + + + + + + + + + + + + + + + + + setDays(e.target.value)} + step="1" + min="-360" + max="-1" + > + + + + setBalance(e.target.value)} + step="1000" + min="1000" + max="100000" + > + + + + + + + + + + + {/* Loop Quantity */} + {showLoopSlider ? ( + + setLoopQuantity(e.target.value)} + step="1" + min="1" + max="20" + > + + ) : null} + +
    + +
    + +
    + +
    +
    + ) +} +export default BacktestModal diff --git a/src/Managing.WebApp/src/components/organism/Backtest/backtestRowDetails.tsx b/src/Managing.WebApp/src/components/organism/Backtest/backtestRowDetails.tsx new file mode 100644 index 0000000..1ce93dd --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Backtest/backtestRowDetails.tsx @@ -0,0 +1,47 @@ +import { TradeChart, CardPositionItem } from '..' +import type { IBotRowDetails } from '../../../global/interface' +import { CardPosition } from '../../mollecules' + +const BacktestRowDetails: React.FC = ({ + candles, + positions, + walletBalances, +}) => { + return ( + <> +
    +
    + { + const realized = p.profitAndLoss?.realized ?? 0 + return realized > 0 ? p : null + })} + > + { + const realized = p.profitAndLoss?.realized ?? 0 + return realized <= 0 ? p : null + })} + > + +
    +
    +
    + +
    +
    +
    + + ) +} + +export default BacktestRowDetails diff --git a/src/Managing.WebApp/src/components/organism/Backtest/backtestTable.tsx b/src/Managing.WebApp/src/components/organism/Backtest/backtestTable.tsx new file mode 100644 index 0000000..4289a33 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Backtest/backtestTable.tsx @@ -0,0 +1,275 @@ +import { + ChevronDownIcon, + ChevronRightIcon, + PlayIcon, + TrashIcon, +} from '@heroicons/react/solid' +import React, { useEffect, useState } from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import type { + Backtest, + StartBotRequest, + Ticker, +} from '../../../generated/ManagingApi' +import { BacktestClient, BotClient } from '../../../generated/ManagingApi' +import type { IBacktestCards } from '../../../global/type' +import { Toast, SelectColumnFilter, Table } from '../../mollecules' + +import BacktestRowDetails from './backtestRowDetails' + +const BacktestTable: React.FC = ({ list, isFetching }) => { + const [rows, setRows] = useState([]) + const { apiUrl } = useApiUrlStore() + + async function runBot(backtest: Backtest, isForWatchOnly: boolean) { + const t = new Toast('Bot is starting') + const client = new BotClient({}, apiUrl) + + const request: StartBotRequest = { + accountName: backtest.accountName, + botName: backtest.ticker + '-' + backtest.timeframe.toString(), + botType: backtest.botType, + isForWatchOnly: isForWatchOnly, + moneyManagementName: '', + scenario: backtest.scenario, + ticker: backtest.ticker as Ticker, + timeframe: backtest.timeframe, + } + + await client + .bot_Start(request) + .then((botStatus: string) => { + t.update('info', 'Bot status :' + botStatus) + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + + async function deleteBacktest(id: string) { + const t = new Toast('Deleting backtest') + const client = new BacktestClient({}, apiUrl) + + await client + .backtest_DeleteBacktest(id) + .then(() => { + t.update('success', 'Backtest deleted') + }) + .catch((err) => { + t.update('error', err) + }) + } + + const columns = React.useMemo( + () => [ + { + Header: 'Informations', + columns: [ + { + Cell: ({ row }: any) => ( + // Use Cell to render an expander for each row. + // We can use the getToggleRowExpandedProps prop-getter + // to build the expander. + + {row.isExpanded ? ( + + ) : ( + + )} + + ), + + // Make sure it has an ID + Header: ({ + getToggleAllRowsExpandedProps, + isAllRowsExpanded, + }: any) => ( + + {isAllRowsExpanded ? 'v' : '>'} + + ), + // Build our expander column + id: 'expander', + }, + { + Filter: SelectColumnFilter, + Header: 'Ticker', + accessor: 'ticker', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Timeframe', + accessor: 'timeframe', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Scenario', + accessor: 'scenario', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'BotType', + accessor: 'botType', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Account', + accessor: 'accountName', + disableSortBy: true, + }, + ], + }, + { + Header: 'Results', + columns: [ + { + Cell: ({ cell }: any) => ( + <>{cell.row.values.finalPnl.toFixed(2)} $ + ), + Header: 'Pnl $', + accessor: 'finalPnl', + disableFilters: true, + sortType: 'basic', + }, + { + Cell: ({ cell }: any) => ( + <>{cell.row.values.hodlPercentage.toFixed(2)} % + ), + Header: 'Hodl %', + accessor: 'hodlPercentage', + disableFilters: true, + sortType: 'basic', + }, + { + Cell: ({ cell }: any) => <>{cell.row.values.winRate} %, + Header: 'Winrate', + accessor: 'winRate', + disableFilters: true, + }, + { + Cell: ({ cell }: any) => ( + <>{cell.row.values.growthPercentage.toFixed(2)} % + ), + Header: 'Pnl %', + accessor: 'growthPercentage', + disableFilters: true, + sortType: 'basic', + }, + { + Cell: ({ cell }: any) => ( + <> + {( + cell.row.values.growthPercentage - + cell.row.values.hodlPercentage + ).toFixed(2)} + + ), + Header: 'H/P', + accessor: 'diff', + disableFilters: true, + sortType: 'basic', + }, + ], + }, + { + Header: 'Action', + columns: [ + { + Cell: ({ cell }: any) => ( + <> +
    + +
    + + ), + Header: '', + accessor: 'id', + disableFilters: true, + }, + // { + // Cell: ({ cell }) => ( + // <> + //
    + // + //
    + // + // ), + // Header: '', + // accessor: 'watcher', + // disableFilters: true, + // }, + { + Cell: ({ cell }: any) => ( + <> +
    + +
    + + ), + Header: '', + accessor: 'bot', + disableFilters: true, + }, + ], + }, + ], + [] + ) + + useEffect(() => { + setRows(list) + }, [list]) + + const renderRowSubComponent = React.useCallback( + ({ row }: any) => ( + <> + + + ), + [] + ) + + return ( +
    + {isFetching ? ( + + ) : ( +
    + )} + + ) +} + +export default BacktestTable diff --git a/src/Managing.WebApp/src/components/organism/CustomMoneyManagement/CustomMoneyManagement.tsx b/src/Managing.WebApp/src/components/organism/CustomMoneyManagement/CustomMoneyManagement.tsx new file mode 100644 index 0000000..78f3573 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/CustomMoneyManagement/CustomMoneyManagement.tsx @@ -0,0 +1,104 @@ +import React, { useEffect, useState } from 'react' + +import type { MoneyManagement, Timeframe } from '../../../generated/ManagingApi' +import { Slider } from '../../atoms' +import FormInput from '../../mollecules/FormInput/FormInput' + +type ICustomMoneyManagement = { + onCreateMoneyManagement: (moneyManagement: MoneyManagement) => void + timeframe: Timeframe + showCustomMoneyManagement: boolean +} + +const CustomMoneyManagement: React.FC = ({ + onCreateMoneyManagement, + timeframe, + showCustomMoneyManagement, +}) => { + const [balanceAtRisk, setBalanceAtRisk] = useState(1) + const [leverage, setLeverage] = useState(1) + const [takeProfit, setTakeProfit] = useState(1) + const [stopLoss, setStopLoss] = useState(1) + + const handleCreateMoneyManagement = () => { + const moneyManagement: MoneyManagement = { + balanceAtRisk, + leverage, + name: 'custom', + stopLoss, + takeProfit, + timeframe, + } + onCreateMoneyManagement(moneyManagement) + } + + useEffect(() => { + handleCreateMoneyManagement() + }, [balanceAtRisk, leverage, takeProfit, stopLoss]) + + return ( + <> + {showCustomMoneyManagement ? ( +
    + +
    + Custom MoneyManagement +
    +
    + + setBalanceAtRisk(parseInt(e.target.value))} + min="1" + max="100" + step="1" + suffixValue=" %" + > + + + + setLeverage(e.target.value)} + prefixValue="x " + > + + + + setTakeProfit(e.target.value)} + step="0.01" + max="20" + suffixValue=" %" + > + + + + setStopLoss(e.target.value)} + step="0.01" + max="20" + suffixValue=" %" + > + +
    +
    + ) : null} + + ) +} + +export default CustomMoneyManagement diff --git a/src/Managing.WebApp/src/components/organism/Positions/PositionList.tsx b/src/Managing.WebApp/src/components/organism/Positions/PositionList.tsx new file mode 100644 index 0000000..af7231d --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Positions/PositionList.tsx @@ -0,0 +1,128 @@ +import { StopIcon } from '@heroicons/react/solid' +import moment from 'moment' +import React from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import { + TradeDirection, + type Position, + Ticker, + PositionStatus, + TradingClient, +} from '../../../generated/ManagingApi' +import { Toast, Table } from '../../mollecules' + +import PositionStatusBadge from './PositionStatusBadge' + +type IPositionList = { + positions: Position[] + isFetching: boolean +} + +const PositionsList: React.FC = ({ positions, isFetching }) => { + const { apiUrl } = useApiUrlStore() + + async function closePosition(identifier: string) { + const t = new Toast('Closing position') + const client = new TradingClient({}, apiUrl) + await client + .trading_ClosePosition(identifier) + .then(() => { + t.update('success', 'Position closed') + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + + const columns = React.useMemo( + () => [ + { + Cell: ({ cell }: any) => ( + <> +
    + +
    + + ), + Header: 'Status', + accessor: 'status', + disableFilters: true, + sortType: 'basic', + }, + + { + Cell: ({ cell }: any) =>
    {Object.values(Ticker)[cell.value]}
    , + Header: 'Ticker', + accessor: 'ticker', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( +
    {Object.values(TradeDirection)[cell.value]}
    + ), + Header: 'Direction', + accessor: 'originDirection', + disableFilters: true, + disableSortBy: true, + }, + { + Header: 'Account', + accessor: 'accountName', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => moment(cell.value).fromNow(), + Header: 'Date', + accessor: 'date', + disableFilters: true, + }, + { + Cell: ({ cell }: any) => ( +
    {(cell.value.realized as number).toFixed(4)} $
    + ), + Header: 'uPNL', + accessor: 'profitAndLoss', + disableFilters: true, + }, + { + Cell: ({ cell }) => ( + <> +
    + +
    + + ), + Header: 'Actions', + accessor: 'identifier', + disableFilters: true, + }, + ], + [] + ) + return ( +
    + {isFetching ? ( +
    + +
    + ) : ( +
    + )} + + ) +} + +export default PositionsList diff --git a/src/Managing.WebApp/src/components/organism/Positions/PositionStatusBadge.tsx b/src/Managing.WebApp/src/components/organism/Positions/PositionStatusBadge.tsx new file mode 100644 index 0000000..2ac4f64 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Positions/PositionStatusBadge.tsx @@ -0,0 +1,30 @@ +import { PositionStatus } from '../../../generated/ManagingApi' + +type IPositionStatusBadge = { + status: PositionStatus +} +function statusClasses(status: PositionStatus) { + let commonClasses = 'badge badge-xs ' + switch (status) { + case PositionStatus.Canceled: + case PositionStatus.Rejected: + commonClasses += 'bg-red-100' + break + case PositionStatus.New: + commonClasses += 'bg-blue-100' + break + case PositionStatus.PartiallyFilled: + commonClasses += 'bg-orange-100' + break + case PositionStatus.Filled: + commonClasses += 'bg-green-100' + break + default: + break + } + return commonClasses +} + +export default function PositionStatusBadge({ status }: IPositionStatusBadge) { + return +} diff --git a/src/Managing.WebApp/src/components/organism/SpotLightBadge/SpotLightBadge.tsx b/src/Managing.WebApp/src/components/organism/SpotLightBadge/SpotLightBadge.tsx new file mode 100644 index 0000000..c1e260a --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/SpotLightBadge/SpotLightBadge.tsx @@ -0,0 +1,31 @@ +import moment from 'moment' + +import { TradeDirection } from '../../../generated/ManagingApi' +import type { ISpotlightBadge } from '../../../global/type' + +function GetBadgeColor(direction: TradeDirection | undefined) { + switch (direction) { + case TradeDirection.Long: + return 'badge bg-success' + case TradeDirection.Short: + return 'badge bg-error' + case TradeDirection.None: + return 'badge bg-warning' + default: + return 'badge' + } +} + +export default function SpotLightBadge({ + direction, + date, + price, +}: ISpotlightBadge) { + const tooltipText = + date == undefined ? 'No signal' : moment(date).fromNow() + ' @ ' + price + return ( +
    +
    +
    + ) +} diff --git a/src/Managing.WebApp/src/components/organism/StatusBadge/StatusBadge.tsx b/src/Managing.WebApp/src/components/organism/StatusBadge/StatusBadge.tsx new file mode 100644 index 0000000..4c44184 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/StatusBadge/StatusBadge.tsx @@ -0,0 +1,14 @@ +import type { IStatusBadge } from '../../../global/type' + +function statusClasses(status: string, isForWatchOnly: boolean) { + const commonClasses = 'badge badge-xs' + if (isForWatchOnly) { + return `${commonClasses} 'bg-blue-500'` + } + + return `${commonClasses} ${status == 'Up' ? 'bg-green-500' : 'bg-red-500'}` +} + +export default function StatusBadge({ status, isForWatchOnly }: IStatusBadge) { + return +} diff --git a/src/Managing.WebApp/src/components/organism/Trading/CardPositionItem.tsx b/src/Managing.WebApp/src/components/organism/Trading/CardPositionItem.tsx new file mode 100644 index 0000000..8a8e192 --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Trading/CardPositionItem.tsx @@ -0,0 +1,34 @@ +import { PositionStatus } from '../../../generated/ManagingApi' +import type { ICardPositionFlipped } from '../../../global/type' +import { CardText } from '../../mollecules' + +const CardPositionFlipped: React.FC = ({ positions }) => { + return ( + <> + { + const realized = p.profitAndLoss?.realized ?? 0 + return realized > 0 && p.status == PositionStatus.Flipped + ? p + : null + }) + .length.toString() + + ' | ' + + positions + .filter((p) => { + const realized = p.profitAndLoss?.realized ?? 0 + return realized <= 0 && p.status == PositionStatus.Flipped + ? p + : null + }) + .length.toString() + } + > + + ) +} + +export default CardPositionFlipped diff --git a/src/Managing.WebApp/src/components/organism/Trading/Summary.tsx b/src/Managing.WebApp/src/components/organism/Trading/Summary.tsx new file mode 100644 index 0000000..021531d --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Trading/Summary.tsx @@ -0,0 +1,133 @@ +import { ArrowDownIcon, ArrowUpIcon } from '@heroicons/react/solid' +import React, { useEffect, useState } from 'react' + +import type { TradingBot } from '../../../generated/ManagingApi' +import { PositionStatus, TradeDirection } from '../../../generated/ManagingApi' +import type { IAccountBalanceProps } from '../../../global/type' + +function GetGlobalWinrate(bots: TradingBot[]) { + if (bots == null || bots == undefined || bots.length == 0) { + return 0 + } + + let totalPositions = 0 + let winningPosition = 0 + + bots.forEach((bot) => { + totalPositions += bot.positions.filter( + (p) => p.status != PositionStatus.New + ).length + winningPosition += bot.positions.filter((p) => { + const realized = p.profitAndLoss?.realized ?? 0 + return realized > 0 && + (p.status == PositionStatus.Finished || + p.status == PositionStatus.Flipped) + ? p + : null + }).length + }) + + if (totalPositions == 0) return 0 + + return (winningPosition * 100) / totalPositions +} + +function GetPositionCount( + bots: TradingBot[], + direction: TradeDirection, + status: PositionStatus +) { + let totalPositions = 0 + + if (bots == null || bots == undefined) { + return 0 + } + + bots.forEach((bot) => { + totalPositions += bot.positions.filter( + (p) => p.status == status && p.originDirection == direction + ).length + }) + + return totalPositions +} + +const Summary: React.FC = ({ bots }) => { + const [globalPnl, setGlobalPnl] = useState(0) + const [globalWinrate, setGlobalWinrate] = useState(0) + + const [openLong, setLong] = useState(0) + const [openShort, setShort] = useState(0) + + const [closedLong, setClosedLong] = useState(0) + const [closedShort, setClosedShort] = useState(0) + + useEffect(() => { + if (bots) { + const pnl = bots.reduce((acc, bot) => { + return acc + bot.profitAndLoss + }, 0) + setGlobalPnl(pnl) + setGlobalWinrate(GetGlobalWinrate(bots)) + setLong( + GetPositionCount(bots, TradeDirection.Long, PositionStatus.Filled) + ) + setShort( + GetPositionCount(bots, TradeDirection.Short, PositionStatus.Filled) + ) + setClosedLong( + GetPositionCount(bots, TradeDirection.Long, PositionStatus.Finished) + + GetPositionCount(bots, TradeDirection.Long, PositionStatus.Flipped) + ) + setClosedShort( + GetPositionCount(bots, TradeDirection.Short, PositionStatus.Finished) + + GetPositionCount(bots, TradeDirection.Short, PositionStatus.Flipped) + ) + } + }, [bots]) + + return ( +
    +
    + +
    +
    +
    Bots running
    +
    {bots.length}
    +
    + +
    +
    Total Profit
    +
    {globalPnl.toFixed(4)} $
    +
    + +
    +
    Global Winrate
    +
    + {globalWinrate ? globalWinrate.toFixed(2) : 0} % +
    +
    + +
    +
    Positions Openend
    +
    + {openLong} {' '} + {openShort}{' '} + {' '} +
    +
    +
    +
    Positions Closed
    +
    + {closedLong}{' '} + {' '} + {closedShort}{' '} + {' '} +
    +
    +
    +
    + ) +} + +export default Summary diff --git a/src/Managing.WebApp/src/components/organism/Trading/TradeChart/TradeChart.tsx b/src/Managing.WebApp/src/components/organism/Trading/TradeChart/TradeChart.tsx new file mode 100644 index 0000000..60d4daa --- /dev/null +++ b/src/Managing.WebApp/src/components/organism/Trading/TradeChart/TradeChart.tsx @@ -0,0 +1,302 @@ +import type { + CandlestickData, + IChartApi, + ISeriesApi, + PriceLineOptions, + SeriesMarker, + SeriesMarkerShape, + Time, + UTCTimestamp, +} from 'lightweight-charts' +import { LineStyle, createChart, CrosshairMode } from 'lightweight-charts' +import moment from 'moment' +import * as React from 'react' +import { useEffect, useRef, useState } from 'react' + +import type { + Candle, + KeyValuePairOfDateTimeAndDecimal, + Position, + Signal, +} from '../../../../generated/ManagingApi' +import { + PositionStatus, + TradeDirection, +} from '../../../../generated/ManagingApi' +import useTheme from '../../../../hooks/useTheme' + +type ITradeChartProps = { + candles: Candle[] + positions: Position[] + signals: Signal[] + walletBalances?: KeyValuePairOfDateTimeAndDecimal[] | null + stream?: Candle | null + width: number + height: number +} + +const TradeChart = ({ + candles, + positions, + signals, + walletBalances, + stream, + width, + height, +}: ITradeChartProps) => { + const chartRef = React.useRef(null) + const chart = useRef() + const { themeProperty } = useTheme() + const theme = themeProperty() + const series1 = useRef>() + const [timeDiff, setTimeDiff] = useState(0) + const [candleCount, setCandleCount] = useState(candles.length) + + function buildLine( + color: string, + price: number, + title: string + ): PriceLineOptions { + return { + axisLabelVisible: true, + color: color, + lineStyle: LineStyle.Dotted, + lineVisible: true, + lineWidth: 1, + price: price, + title: title, + } + } + + function buildMarker( + shape: SeriesMarkerShape, + color: string, + direction: TradeDirection, + date: Date, + text?: string + ): SeriesMarker
    + + ) +} + +export default ScenarioTable diff --git a/src/Managing.WebApp/src/pages/scenarioPage/strategyList.tsx b/src/Managing.WebApp/src/pages/scenarioPage/strategyList.tsx new file mode 100644 index 0000000..e75e916 --- /dev/null +++ b/src/Managing.WebApp/src/pages/scenarioPage/strategyList.tsx @@ -0,0 +1,401 @@ +import React, { useEffect, useState } from 'react' +import type { SubmitHandler } from 'react-hook-form' +import { useForm } from 'react-hook-form' +import 'react-toastify/dist/ReactToastify.css' + +import useApiUrlStore from '../../app/store/apiStore' +import { Toast } from '../../components/mollecules' +import type { Strategy } from '../../generated/ManagingApi' +import { + StrategyType, + ScenarioClient, + Timeframe, +} from '../../generated/ManagingApi' + +import StrategyTable from './strategyTable' + +interface IStrategyFormInput { + type: StrategyType + timeframe: Timeframe + name: string + period: number + fastPeriods: number + slowPeriods: number + signalPeriods: number + multiplier: number + stochPeriods: number + smoothPeriods: number + cyclePeriods: number +} + +const StrategyList: React.FC = () => { + const [strategyType, setStrategyType] = useState( + StrategyType.RsiDivergence + ) + const [strategies, setStrategies] = useState([]) + const [showModal, setShowModal] = useState(false) + const { register, handleSubmit } = useForm() + const { apiUrl } = useApiUrlStore() + const scenarioClient = new ScenarioClient({}, apiUrl) + + async function createStrategy(form: IStrategyFormInput) { + const t = new Toast('Creating strategy') + await scenarioClient + .scenario_CreateStrategy( + form.type, + form.timeframe, + form.name, + form.period, + form.fastPeriods, + form.slowPeriods, + form.signalPeriods, + form.multiplier, + form.stochPeriods, + form.smoothPeriods, + form.cyclePeriods + ) + .then((strategy: Strategy) => { + t.update('success', 'Strategy created') + setStrategies((arr) => [...arr, strategy]) + }) + .catch((err) => { + t.update('error', err) + }) + } + + function setStrategyTypeEvent(e: any) { + setStrategyType(e.target.value) + } + + const onSubmit: SubmitHandler = async (form) => { + closeModal() + await createStrategy(form) + } + + useEffect(() => { + scenarioClient.scenario_GetStrategies().then((data) => { + setStrategies(data) + }) + }, []) + + function openModal() { + setShowModal(true) + } + + function closeModal() { + setShowModal(false) + } + + return ( +
    +
    + + + {showModal ? ( + <> +
    +
    +
    +
    + +
    + Strategy builder +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + {strategyType == StrategyType.EmaTrend || + strategyType == StrategyType.RsiDivergence || + strategyType == StrategyType.StDev || + strategyType == StrategyType.EmaCross || + strategyType == StrategyType.RsiDivergenceConfirm ? ( + <> +
    +
    + + +
    +
    + + ) : null} + + {strategyType == StrategyType.MacdCross ? ( + <> +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + ) : null} + + {strategyType == StrategyType.Stc ? ( + <> +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + ) : null} + + {strategyType == StrategyType.SuperTrend || + strategyType == StrategyType.ChandelierExit ? ( + <> +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + ) : null} + + {strategyType == StrategyType.StochRsiTrend ? ( + <> +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + ) : null} +
    + +
    +
    +
    + +
    + + ) : null} +
    +
    + ) +} + +export default StrategyList diff --git a/src/Managing.WebApp/src/pages/scenarioPage/strategyTable.tsx b/src/Managing.WebApp/src/pages/scenarioPage/strategyTable.tsx new file mode 100644 index 0000000..6743d86 --- /dev/null +++ b/src/Managing.WebApp/src/pages/scenarioPage/strategyTable.tsx @@ -0,0 +1,94 @@ +import { TrashIcon } from '@heroicons/react/solid' +import React, { useEffect, useState } from 'react' + +import useApiUrlStore from '../../app/store/apiStore' +import { SelectColumnFilter, Table, Toast } from '../../components/mollecules' +import type { Strategy } from '../../generated/ManagingApi' +import { ScenarioClient } from '../../generated/ManagingApi' + +interface IStrategyList { + list: Strategy[] +} + +const StrategyTable: React.FC = ({ list }) => { + const [rows, setRows] = useState([]) + const { apiUrl } = useApiUrlStore() + + async function deleteBacktest(id: string) { + const t = new Toast('Deleting strategy') + const client = new ScenarioClient({}, apiUrl) + + await client + .scenario_DeleteStrategy(id) + .then(() => { + t.update('info', 'Strategy deleted') + }) + .catch((err) => { + t.update('error', err) + }) + } + + const columns = React.useMemo( + () => [ + { + Header: 'Name', + accessor: 'name', + disableFilters: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Type', + accessor: 'type', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Timeframe', + accessor: 'timeframe', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Signal', + accessor: 'signalType', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Period', + accessor: 'period', + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <> +
    + +
    + + ), + Header: '', + accessor: 'id', + disableFilters: true, + }, + ], + [] + ) + + useEffect(() => { + setRows(list) + }, [list]) + + return ( +
    +
    + + ) +} + +export default StrategyTable diff --git a/src/Managing.WebApp/src/pages/settingsPage/account/accountModal.tsx b/src/Managing.WebApp/src/pages/settingsPage/account/accountModal.tsx new file mode 100644 index 0000000..84681f0 --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/account/accountModal.tsx @@ -0,0 +1,178 @@ +import { useState } from 'react' +import type { SubmitHandler } from 'react-hook-form' +import { useForm } from 'react-hook-form' + +import useApiUrlStore from '../../../app/store/apiStore' +import { Modal, Toast } from '../../../components/mollecules' +import type { Account } from '../../../generated/ManagingApi' +import { + AccountType, + AccountClient, + TradingExchanges, +} from '../../../generated/ManagingApi' +import type { IAccountFormInput, IModalProps } from '../../../global/type' + +const AccountModal: React.FC = ({ showModal, toggleModal }) => { + const [selectedExchange, setSelectedExchange] = useState() + const [selectedType, setSelectedType] = useState() + const { register, handleSubmit } = useForm() + const { apiUrl } = useApiUrlStore() + + async function createMoneyManagement(form: IAccountFormInput) { + const t = new Toast('Creating account') + const client = new AccountClient({}, apiUrl) + const a: Account = { + exchange: form.exchange, + key: form.key, + name: form.name, + secret: form.secret, + type: form.type, + } + await client + .account_PostAccount(a) + .then(() => { + t.update('success', 'Account created') + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + const onSubmit: SubmitHandler = async (form) => { + // @ts-ignore + toggleModal() + await createMoneyManagement(form) + } + + function setSelectedExchangeEvent(e: any) { + setSelectedExchange(e.target.value) + } + + function setSelectedTypeEvent(e: any) { + setSelectedType(e.target.value) + } + + return ( +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + + {selectedExchange != TradingExchanges.Evm && + selectedType != AccountType.Trader ? ( + <> +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + + ) : null} + + {selectedExchange == TradingExchanges.Evm && + selectedType == AccountType.Watch ? ( + <> +
    +
    + + +
    +
    + + ) : null} + +
    + +
    +
    +
    + ) +} + +export default AccountModal diff --git a/src/Managing.WebApp/src/pages/settingsPage/account/accountRowDetails.tsx b/src/Managing.WebApp/src/pages/settingsPage/account/accountRowDetails.tsx new file mode 100644 index 0000000..47d8415 --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/account/accountRowDetails.tsx @@ -0,0 +1,63 @@ +import React from 'react' + +import { SelectColumnFilter, Table } from '../../../components/mollecules' +import { IAccountRowDetail } from '../../../global/type' + +const columns = [ + { + Header: 'Chain', + accessor: 'chain.name', + disableFilters: true, + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Assets', + accessor: 'tokenName', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <> +
    + {cell.row.values.amount.toFixed(4)} +
    + + ), + Header: 'Quantity', + accessor: 'amount', + disableFilters: true, + }, + { + Cell: ({ cell }: any) => <>{cell.row.values.value.toFixed(2)} $, + Header: 'USD', + accessor: 'value', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => <> {cell.row.values.price} $, + Header: 'Price', + accessor: 'price', + disableFilters: true, + }, +] + +const AccountRowDetails: React.FC = ({ + balances, + showTotal, +}) => { + return ( + <> +
    + + ) +} + +export default AccountRowDetails diff --git a/src/Managing.WebApp/src/pages/settingsPage/account/accountSettings.tsx b/src/Managing.WebApp/src/pages/settingsPage/account/accountSettings.tsx new file mode 100644 index 0000000..708dde6 --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/account/accountSettings.tsx @@ -0,0 +1,47 @@ +import React, { useEffect, useState } from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import type { Account } from '../../../generated/ManagingApi' +import { AccountClient } from '../../../generated/ManagingApi' + +import AccountModal from './accountModal' +import AccountTable from './accountTable' + +const AccountSettings: React.FC = () => { + const [accounts, setAccounts] = useState([]) + const [showModal, setShowModal] = useState(false) + const { apiUrl } = useApiUrlStore() + const [isFetching, setIsFetching] = useState(false) + + useEffect(() => { + const client = new AccountClient({}, apiUrl) + setIsFetching(true) + client + .account_GetAccountsBalances() + .then((data) => { + setAccounts(data) + }) + .finally(() => setIsFetching(false)) + }, []) + + function toggleModal() { + setShowModal(!showModal) + } + + function openModal() { + setShowModal(true) + } + + return ( +
    +
    + + + +
    +
    + ) +} +export default AccountSettings diff --git a/src/Managing.WebApp/src/pages/settingsPage/account/accountTable.tsx b/src/Managing.WebApp/src/pages/settingsPage/account/accountTable.tsx new file mode 100644 index 0000000..5574e3c --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/account/accountTable.tsx @@ -0,0 +1,163 @@ +import { + ChevronDownIcon, + ChevronRightIcon, + ClipboardCopyIcon, + TrashIcon, +} from '@heroicons/react/solid' +import React, { useEffect, useState, useMemo } from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import { + SelectColumnFilter, + Table, + Toast, +} from '../../../components/mollecules' +import type { Account } from '../../../generated/ManagingApi' +import { AccountClient } from '../../../generated/ManagingApi' + +import AccountRowDetails from './accountRowDetails' + +interface IAccountList { + list: Account[] + isFetching: boolean +} + +const AccountTable: React.FC = ({ list, isFetching }) => { + const [rows, setRows] = useState([]) + const { apiUrl } = useApiUrlStore() + + async function deleteAcount(accountName: string) { + const t = new Toast('Deleting money management') + const client = new AccountClient({}, apiUrl) + + await client + .account_DeleteAccount(accountName) + .then(() => { + t.update('success', 'Account deleted') + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + + const columns = useMemo( + () => [ + { + Cell: ({ row }: any) => ( + + {row.isExpanded ? ( + + ) : ( + + )} + + ), + + // Make sure it has an ID + Header: ({ getToggleAllRowsExpandedProps, isAllRowsExpanded }: any) => ( + + {isAllRowsExpanded ? 'v' : '>'} + + ), + // Build our expander column + id: 'expander', + }, + { + Header: 'Name', + accessor: 'name', + disableFilters: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Exchange', + accessor: 'exchange', + disableSortBy: true, + }, + { + Filter: SelectColumnFilter, + Header: 'Type', + accessor: 'type', + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <> +
    + {cell.row.values.key.substring(0, 6)}... + {cell.row.values.key.slice(-4)} +
    + + ), + Header: 'Key', + accessor: 'key', + disableFilters: true, + }, + { + Cell: ({ cell }: any) => ( + <> +
    + +
    +
    + +
    + + ), + Header: 'Actions', + accessor: 'id', + disableFilters: true, + }, + ], + [] + ) + + useEffect(() => { + setRows(list) + }, [list]) + + const renderRowSubComponent = React.useCallback( + ({ row }: any) => ( + <> + {row.original.balances != undefined ? ( + + ) : ( +
    No balances
    + )} + + ), + [] + ) + + return ( + <> + {isFetching ? ( +
    + +
    + ) : ( +
    + )} + + ) +} + +export default AccountTable diff --git a/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagement.tsx b/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagement.tsx new file mode 100644 index 0000000..7e5bbda --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagement.tsx @@ -0,0 +1,52 @@ +import React, { useEffect, useState } from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import type { MoneyManagement } from '../../../generated/ManagingApi' +import { MoneyManagementClient } from '../../../generated/ManagingApi' + +import MoneyManagementModal from './moneyManagementModal' +import MoneyManagementTable from './moneymanagementTable' + +const MoneyManagementSettings: React.FC = () => { + const [moneyManagements, setMoneyManagements] = useState( + [] + ) + const [showModal, setShowModal] = useState(false) + const { apiUrl } = useApiUrlStore() + + useEffect(() => { + const client = new MoneyManagementClient({}, apiUrl) + client.moneyManagement_GetMoneyManagements().then((data) => { + setMoneyManagements(data) + }) + }, []) + + function toggleModal() { + setShowModal(!showModal) + } + + function openModal() { + setShowModal(true) + } + + function closeModal() { + setShowModal(false) + } + + return ( +
    +
    + + + +
    +
    + ) +} +export default MoneyManagementSettings diff --git a/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagementModal.tsx b/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagementModal.tsx new file mode 100644 index 0000000..79043dd --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneyManagementModal.tsx @@ -0,0 +1,190 @@ +import { useEffect, useState } from 'react' +import type { SubmitHandler } from 'react-hook-form' +import { useForm } from 'react-hook-form' + +import useApiUrlStore from '../../../app/store/apiStore' +import { Slider } from '../../../components/atoms' +import { FormInput, Modal, Toast } from '../../../components/mollecules' +import type { MoneyManagement } from '../../../generated/ManagingApi' +import { + MoneyManagementClient, + Timeframe, +} from '../../../generated/ManagingApi' +import type { + IMoneyManagementModalProps, + IMoneyManagementFormInput, +} from '../../../global/type' + +const MoneyManagementModal: React.FC = ({ + showModal, + onClose, + moneyManagement, + disableInputs = false, +}) => { + const [balanceAtRisk, setBalanceAtRisk] = useState(5) + const [takeProfit, setTakeProfit] = useState(20) + const [name, setName] = useState('') + const [stopLoss, setStopLoss] = useState(10) + const [leverage, setLeverage] = useState(1) + const [timeframe, setTimeframe] = useState( + Timeframe.FifteenMinutes + ) + const { reset, register, handleSubmit } = useForm() + const { apiUrl } = useApiUrlStore() + + async function createMoneyManagement(form: IMoneyManagementFormInput) { + const t = new Toast('Creating settings') + const client = new MoneyManagementClient({}, apiUrl) + const mm: MoneyManagement = { + balanceAtRisk: balanceAtRisk / 100, + leverage: leverage, + name: name, + stopLoss: stopLoss / 100, + takeProfit: takeProfit / 100, + timeframe: form.timeframe, + } + + await client + .moneyManagement_PostMoneyManagement(mm) + .then(() => { + t.update('success', 'Settings created') + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + const onSubmit: SubmitHandler = async (form) => { + // @ts-ignore + await createMoneyManagement(form) + onClose() + } + + function onChangeName(e: any) { + setName(e.target.value) + } + + function onTakeProfitChange(e: any) { + setTakeProfit(e.target.value) + } + + function onStopLossChange(e: any) { + setStopLoss(e.target.value) + } + + function onLeverageChange(e: any) { + setLeverage(e.target.value) + } + + useEffect(() => { + if (moneyManagement) { + setBalanceAtRisk(moneyManagement.balanceAtRisk * 100) + setTakeProfit(moneyManagement.takeProfit * 100) + setStopLoss(moneyManagement.stopLoss * 100) + setLeverage(moneyManagement.leverage) + setTimeframe(moneyManagement.timeframe) + setName(moneyManagement.name) + + const defaultValues: MoneyManagement = { + balanceAtRisk: moneyManagement.balanceAtRisk, + leverage: moneyManagement.leverage, + name: moneyManagement.name || '', + stopLoss: moneyManagement.stopLoss, + takeProfit: moneyManagement.takeProfit, + timeframe: moneyManagement.timeframe, + } + reset({ ...defaultValues }) + } + }, [showModal, moneyManagement]) + + return ( + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    {(takeProfit / stopLoss).toFixed(2)}
    +
    +
    + {disableInputs ? null : ( +
    + +
    + )} +
    + ) +} + +export default MoneyManagementModal diff --git a/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneymanagementTable.tsx b/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneymanagementTable.tsx new file mode 100644 index 0000000..7cfea9e --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/moneymanagement/moneymanagementTable.tsx @@ -0,0 +1,133 @@ +import { PencilAltIcon, TrashIcon } from '@heroicons/react/solid' +import React, { useEffect, useState } from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import { + Toast, + SelectColumnFilter, + Table, +} from '../../../components/mollecules' +import type { MoneyManagement } from '../../../generated/ManagingApi' +import { MoneyManagementClient } from '../../../generated/ManagingApi' +import type { IMoneyManagementList } from '../../../global/type' + +import MoneyManagementModal from './moneyManagementModal' + +const MoneyManagementTable: React.FC = ({ list }) => { + const [rows, setRows] = useState([]) + const [showModal, setShowModal] = useState(false) + const [selectedRow, setSelectedRow] = useState() + const { apiUrl } = useApiUrlStore() + + async function deleteMoneyManagement(name: string) { + const t = new Toast('Deleting money management') + const client = new MoneyManagementClient({}, apiUrl) + + await client + .moneyManagement_DeleteMoneyManagement(name) + .then(() => { + t.update('success', 'Configuration deleted') + }) + .catch((err) => { + t.update('error', 'Error :' + err) + }) + } + + function toggleModal() { + setShowModal(!showModal) + } + + function openModal(mm: MoneyManagement) { + setSelectedRow(mm) + setShowModal(true) + } + + const columns = React.useMemo( + () => [ + { + Filter: SelectColumnFilter, + Header: 'Timeframe', + accessor: 'timeframe', + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => <>x{cell.row.values.leverage}, + Header: 'Leverage', + accessor: 'leverage', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => <>{cell.row.values.balanceAtRisk * 100} %, + Header: 'Balance used', + accessor: 'balanceAtRisk', + disableFilters: true, + }, + { + Cell: ({ cell }) => <>{cell.row.values.stopLoss * 100} %, + Header: 'SL', + accessor: 'stopLoss', + disableFilters: true, + }, + { + Cell: ({ cell }) => <>{cell.row.values.takeProfit * 100} %, + Header: 'TP', + accessor: 'takeProfit', + disableFilters: true, + }, + { + Cell: ({ cell }) => ( + <> + {(cell.row.values.takeProfit / cell.row.values.stopLoss).toFixed(2)} + + ), + Header: 'R/R', + accessor: 'riskReward', + disableFilters: true, + }, + { + Cell: ({ cell }) => ( + <> +
    + +
    +
    + +
    + + ), + Header: 'Actions', + accessor: 'id', + disableFilters: true, + }, + ], + [] + ) + + useEffect(() => { + setRows(list) + }, [list]) + + return ( +
    +
    + + + ) +} + +export default MoneyManagementTable diff --git a/src/Managing.WebApp/src/pages/settingsPage/settings.tsx b/src/Managing.WebApp/src/pages/settingsPage/settings.tsx new file mode 100644 index 0000000..404d069 --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/settings.tsx @@ -0,0 +1,46 @@ +import { useState } from 'react' + +import { Tabs } from '../../components/mollecules' + +import AccountSettings from './account/accountSettings' +import MoneyManagementSettings from './moneymanagement/moneyManagement' +import Theme from './theme' + +type TabsType = { + label: string + index: number + Component: React.FC<{}> +}[] + +// Tabs Array +const tabs: TabsType = [ + { + Component: MoneyManagementSettings, + index: 1, + label: 'Money Management', + }, + { + Component: AccountSettings, + index: 2, + label: 'Account Settings', + }, + { + Component: Theme, + index: 3, + label: 'Theme', + }, +] + +const Settings: React.FC = () => { + const [selectedTab, setSelectedTab] = useState(tabs[0].index) + + return ( +
    +
    + +
    +
    + ) +} + +export default Settings diff --git a/src/Managing.WebApp/src/pages/settingsPage/theme.tsx b/src/Managing.WebApp/src/pages/settingsPage/theme.tsx new file mode 100644 index 0000000..a4b4515 --- /dev/null +++ b/src/Managing.WebApp/src/pages/settingsPage/theme.tsx @@ -0,0 +1,14 @@ +import { ThemeSelector } from '../../components/mollecules' + +const Theme: React.FC = () => { + return ( +
    +

    Settings

    +

    +

    Theme

    + +
    + ) +} + +export default Theme diff --git a/src/Managing.WebApp/src/pages/toolsPage/rektFees.tsx b/src/Managing.WebApp/src/pages/toolsPage/rektFees.tsx new file mode 100644 index 0000000..24f8f3c --- /dev/null +++ b/src/Managing.WebApp/src/pages/toolsPage/rektFees.tsx @@ -0,0 +1,158 @@ +import { useEffect, useState } from 'react' +import type { SubmitHandler } from 'react-hook-form' +import { useForm } from 'react-hook-form' +import Plot from 'react-plotly.js' + +import useTheme from '../../hooks/useTheme' + +interface IRektToolInput { + fundingFeeRate: number + feePerTx: number + averageTradeTime: number +} + +const RektFees = () => { + const { register, handleSubmit } = useForm() + const [amountPerPosition, setAmountPerPosition] = useState([]) + const [z, setZ] = useState([]) + const [fundingFeesRate, setFundingFeesRate] = useState(0.0051) + const [feePerTx, setFeePerTx] = useState(0.13) + const [averageTradeTime, setAverageTradeTime] = useState(960) + const { themeProperty } = useTheme() + const theme = themeProperty() + const onSubmit: SubmitHandler = async (form) => { + setFundingFeesRate(form.fundingFeeRate) + setFeePerTx(form.feePerTx) + setAverageTradeTime(form.averageTradeTime) + } + + useEffect(() => { + updateAmountPerPosition() + updateAxis() + }, [fundingFeesRate, feePerTx, averageTradeTime]) + + function updateAmountPerPosition() { + const array: number[] = [] + for (let i = 300; i < 3500; i += 10) { + array.push(i) + } + setAmountPerPosition(array) + } + + function updateAxis() { + const tempZ: number[][] = [] + for (let i = 0; i < amountPerPosition.length; i++) { + const feePerPosition = getFeesForPosition(amountPerPosition[i]) + const zAxis: number[] = [] + + for (let t = 1; t < 1000; t++) { + const totalFees = feePerPosition * t + zAxis.push((totalFees * 100) / amountPerPosition[i]) + } + + tempZ.push(zAxis) + } + setZ(tempZ) + } + + function getFeesForPosition(amountPerPosition: number): number { + const tradeTime = averageTradeTime / 60 + const fundingFees = amountPerPosition * tradeTime * (fundingFeesRate / 100) + const positionFees = amountPerPosition * 0.0001 + const txFees = feePerTx * 2 // Open + SL or TP + + return fundingFees + txFees + positionFees + } + + return ( +
    +
    + + + + + + + +
    + ) +} +export default RektFees diff --git a/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlight.tsx b/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlight.tsx new file mode 100644 index 0000000..027928a --- /dev/null +++ b/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlight.tsx @@ -0,0 +1,76 @@ +import moment from 'moment' +import { useEffect, useState } from 'react' + +import useApiUrlStore from '../../../app/store/apiStore' +import type { + Spotlight, + SpotlightOverview, +} from '../../../generated/ManagingApi' +import { DataClient } from '../../../generated/ManagingApi' + +import SpotlightSummary from './spotlightSummary' +import SpotlightTable from './spotlightTable' + +interface ISpotlightOverview { + overview: SpotlightOverview | undefined +} +const Overview: React.FC = ({ overview }) => { + return ( + <> +
    Last update : {moment(overview?.dateTime).fromNow()}
    +
    + +
    +
    + {overview?.spotlights.map((s) => ( + + ))} +
    + + ) +} + +interface ISpotlight { + spotlight: Spotlight +} +const SpotlightDetail: React.FC = ({ spotlight }) => { + return ( + <> +
    + +
    + + ) +} + +const SpotlightView = () => { + const [overview, setOverview] = useState() + const [isFetching, setIsFetching] = useState(true) + + const { apiUrl } = useApiUrlStore() + const dataClient = new DataClient({}, apiUrl) + + useEffect(() => { + dataClient + .data_GetSpotlight() + .then((data) => { + setOverview(data) + }) + .finally(() => { + setIsFetching(false) + }) + }, []) + + return ( + <> +
    + {isFetching ? ( + + ) : ( + + )} +
    + + ) +} +export default SpotlightView diff --git a/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightSummary.tsx b/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightSummary.tsx new file mode 100644 index 0000000..68557e9 --- /dev/null +++ b/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightSummary.tsx @@ -0,0 +1,210 @@ +import React from 'react' + +import { PieChart } from '../../../components/mollecules' +import type { Signal, Spotlight } from '../../../generated/ManagingApi' +import { TradeDirection } from '../../../generated/ManagingApi' +import useTheme from '../../../hooks/useTheme' + +interface ISpotlightSummary { + spotlights: Spotlight[] | undefined +} + +interface ISummaryChart { + fiveMinutes: ISummaryChartItem + fifteenMinutes: ISummaryChartItem + oneHour: ISummaryChartItem + fourHours: ISummaryChartItem + oneDay: ISummaryChartItem +} + +interface ISummaryChartItem { + long: number + short: number + none: number +} + +const SpotlightSummary: React.FC = ({ spotlights }) => { + const { themeProperty } = useTheme() + const theme = themeProperty() + const labels = ['Long', 'Short', 'None'] + const colors = [theme.success, theme.error, 'grey'] + + function GetSummaryChartItem(signal: Signal) { + const summary: ISummaryChartItem = { + long: 0, + none: 0, + short: 0, + } + if (signal) { + switch (signal.direction) { + case TradeDirection.Long: + summary.long++ + break + case TradeDirection.Short: + summary.short++ + break + case TradeDirection.None: + summary.none++ + break + default: + summary.none++ + break + } + } else { + summary.none++ + } + return summary + } + + function GetSignalChart(): React.ReactNode { + const summary: ISummaryChart = { + fifteenMinutes: { + long: 0, + none: 0, + short: 0, + }, + fiveMinutes: { + long: 0, + none: 0, + short: 0, + }, + fourHours: { + long: 0, + none: 0, + short: 0, + }, + oneDay: { + long: 0, + none: 0, + short: 0, + }, + oneHour: { + long: 0, + none: 0, + short: 0, + }, + } + + if (spotlights) { + spotlights?.forEach((s) => { + s.tickerSignals.forEach((t) => { + const fiveMinutesSummary = GetSummaryChartItem( + t.fiveMinutes[t.fiveMinutes.length - 1] + ) + summary.fiveMinutes.long += fiveMinutesSummary.long + summary.fiveMinutes.short += fiveMinutesSummary.short + summary.fiveMinutes.none += fiveMinutesSummary.none + const fifteenMinutesSummary = GetSummaryChartItem( + t.fifteenMinutes[t.fifteenMinutes.length - 1] + ) + summary.fifteenMinutes.long += fifteenMinutesSummary.long + summary.fifteenMinutes.short += fifteenMinutesSummary.short + summary.fifteenMinutes.none += fifteenMinutesSummary.none + + const oneHour = GetSummaryChartItem(t.oneHour[t.oneHour.length - 1]) + summary.oneHour.long += oneHour.long + summary.oneHour.short += oneHour.short + summary.oneHour.none += oneHour.none + + const fourHours = GetSummaryChartItem( + t.fourHour[t.fourHour.length - 1] + ) + summary.fourHours.long += fourHours.long + summary.fourHours.short += fourHours.short + summary.fourHours.none += fourHours.none + + const oneDay = GetSummaryChartItem(t.oneDay[t.oneDay.length - 1]) + summary.oneDay.long += oneDay.long + summary.oneDay.short += oneDay.short + summary.oneDay.none += oneDay.none + }) + }) + } + + return ( + <> +
    +
    +
    5min
    +
    + +
    +
    +
    +
    15min
    +
    + +
    +
    +
    +
    1h
    +
    + +
    +
    +
    +
    4h
    +
    + +
    +
    +
    +
    1d
    +
    + +
    +
    +
    + + ) + } + + return ( +
    +
    + {GetSignalChart()} +
    + ) +} + +export default SpotlightSummary diff --git a/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightTable.tsx b/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightTable.tsx new file mode 100644 index 0000000..cfd3f5c --- /dev/null +++ b/src/Managing.WebApp/src/pages/toolsPage/spotlight/spotlightTable.tsx @@ -0,0 +1,94 @@ +import React from 'react' + +import { Table } from '../../../components/mollecules' +import { SpotLightBadge } from '../../../components/organism' +import type { Signal, Spotlight } from '../../../generated/ManagingApi' +import { TradeDirection } from '../../../generated/ManagingApi' + +interface ISpotlightTable { + spotlight: Spotlight +} +const GetBadgeForTimeframe = (signals: Signal[]) => { + const lastSignal = signals[signals.length > 1 ? signals.length - 1 : 0] + return lastSignal ? ( + + ) : ( + + ) +} + +const SpotlightTable: React.FC = ({ spotlight }) => { + const columns = React.useMemo( + () => [ + { + Header: spotlight.scenario.name, + columns: [ + { + Header: 'Ticker', + accessor: 'ticker', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <>{GetBadgeForTimeframe(cell.row.values.fiveMinutes)} + ), + Header: '5m', + accessor: 'fiveMinutes', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <>{GetBadgeForTimeframe(cell.row.values.fifteenMinutes)} + ), + Header: '15m', + accessor: 'fifteenMinutes', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <>{GetBadgeForTimeframe(cell.row.values.oneHour)} + ), + Header: '1h', + accessor: 'oneHour', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <>{GetBadgeForTimeframe(cell.row.values.fourHour)} + ), + Header: '4h', + accessor: 'fourHour', + disableFilters: true, + disableSortBy: true, + }, + { + Cell: ({ cell }: any) => ( + <>{GetBadgeForTimeframe(cell.row.values.oneDay)} + ), + Header: '1D', + accessor: 'oneDay', + disableFilters: true, + disableSortBy: true, + }, + ], + }, + ], + [] + ) + + return ( +
    +
    + + ) +} + +export default SpotlightTable diff --git a/src/Managing.WebApp/src/pages/toolsPage/tools.tsx b/src/Managing.WebApp/src/pages/toolsPage/tools.tsx new file mode 100644 index 0000000..94c9839 --- /dev/null +++ b/src/Managing.WebApp/src/pages/toolsPage/tools.tsx @@ -0,0 +1,36 @@ +import { useState, useEffect } from 'react' + +import { Tabs } from '../../components/mollecules' +import type { ITabsType } from '../../global/type' + +import RektFees from './rektFees' +import SpotlightView from './spotlight/spotlight' + +const tabs: ITabsType = [ + { + Component: SpotlightView, + index: 1, + label: 'Spotlight', + }, + { + Component: RektFees, + index: 2, + label: 'RektFees', + }, +] + +const Tools: React.FC = () => { + const [selectedTab, setSelectedTab] = useState(tabs[0].index) + + useEffect(() => {}, []) + + return ( +
    +
    + +
    +
    + ) +} + +export default Tools diff --git a/src/Managing.WebApp/src/pages/web3Page/web3.tsx b/src/Managing.WebApp/src/pages/web3Page/web3.tsx new file mode 100644 index 0000000..fb60113 --- /dev/null +++ b/src/Managing.WebApp/src/pages/web3Page/web3.tsx @@ -0,0 +1,104 @@ +import type { Contract } from 'ethers' +import { ethers } from 'ethers' +import { useRef, useState } from 'react' + +const Web3 = () => { + const moodInputRef = useRef() + const [mood, setMood] = useState() + //@ts-ignore + const provider = new ethers.providers.Web3Provider(window.ethereum, 'ropsten') + const contractAddress = '0x0335e801159Af04b3067bED0aeeaCC86Ece51e19' + const moodAbi = [ + { + constant: true, + inputs: [], + name: 'getMood', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + signature: '0x9d0c1397', + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '_mood', + type: 'string', + }, + ], + name: 'setMood', + outputs: [], + signature: '0x5f3cbff5', + stateMutability: 'nonpayable', + type: 'function', + }, + ] + + let contract: Contract + let signer + + provider.send('eth_requestAccounts', []).then(() => { + provider.listAccounts().then(function (accounts) { + signer = provider.getSigner(accounts[0]) + contract = new ethers.Contract(contractAddress, moodAbi, signer) + }) + }) + + async function getMoodAbi() { + const getMoodPromise = contract.getMood() + const currentMood = await getMoodPromise + setMood(currentMood) + } + + async function setMoodAbi() { + //@ts-ignore + const setMoodPromise = contract.setMood(moodInputRef.current.value) + await setMoodPromise + } + + return ( +
    +
    +

    Web3 Playground

    +
    +
    +

    dApp

    + + + + +
    +
    +

    {mood}

    +
    + +
    +
    +
    +
    +
    +

    NFT

    +
    +
    +
    +
    + ) +} + +export default Web3 diff --git a/src/Managing.WebApp/src/pages/workflow/workflows.tsx b/src/Managing.WebApp/src/pages/workflow/workflows.tsx new file mode 100644 index 0000000..205b728 --- /dev/null +++ b/src/Managing.WebApp/src/pages/workflow/workflows.tsx @@ -0,0 +1,98 @@ +import { useQuery } from '@tanstack/react-query' +import { useEffect, useState } from 'react' +import type { Edge, Node } from 'reactflow' + +import useApiUrlStore from '../../app/store/apiStore' +import { Loader } from '../../components/atoms' +import { Tabs } from '../../components/mollecules' +import { WorkflowCanvas } from '../../components/organism' +import type { + IFlow, + SyntheticFlow, + SyntheticWorkflow, +} from '../../generated/ManagingApi' +import { WorkflowClient } from '../../generated/ManagingApi' +import type { ITabsType, IWorkflow } from '../../global/type' + +const mapWorkflowToTabs = (workflows: SyntheticWorkflow[]): ITabsType => { + return workflows.map((workflow: SyntheticWorkflow, index: number) => { + return { + Component: WorkflowCanvas, + index: index, + label: workflow.name, + props: mapFlowsToNodes(workflow.flows, workflow.name), + } + }) +} + +const mapFlowsToNodes = (flows: SyntheticFlow[], name: string): IWorkflow => { + const nodes: Node[] = [] + const edges: Edge[] = [] + + flows.forEach((flow: SyntheticFlow) => { + nodes.push(mapFlowToNode(flow)) + }) + + for (const node of nodes) { + const childrenNodes = nodes.filter((n) => n.data.parentId == node.data.id) + + if (childrenNodes.length > 0) { + childrenNodes.forEach((childNode) => { + edges.push({ + id: `${node.id}-${childNode.id}`, + source: node.id, + target: childNode.id, + }) + }) + } + } + + return { edges, name: name, nodes } as IWorkflow +} + +const mapFlowToNode = (flow: SyntheticFlow): Node => { + return { + data: flow, + id: flow.id, + position: { x: 0, y: 0 }, + type: flow.type, + } +} + +const Workflows: React.FC = () => { + const [selectedTab, setSelectedTab] = useState(1) + const { apiUrl } = useApiUrlStore() + const client = new WorkflowClient({}, apiUrl) + + const { data, isLoading } = useQuery({ + onSuccess: () => { + setSelectedTab(0) + }, + queryFn: () => client.workflow_GetWorkflows(), + queryKey: ['workflows'], + }) + + useEffect(() => {}, [isLoading]) + + if (isLoading || data == null) { + return + } + + return ( +
    +
    + { + console.log('add button clicked') + }} + /> +
    +
    + ) +} + +export default Workflows diff --git a/src/Managing.WebApp/src/polyfills.ts b/src/Managing.WebApp/src/polyfills.ts new file mode 100644 index 0000000..dc3665c --- /dev/null +++ b/src/Managing.WebApp/src/polyfills.ts @@ -0,0 +1,4 @@ +window.global = window.global ?? window +window.process = window.process ?? { env: {} } + +export {} diff --git a/src/Managing.WebApp/src/smartcontracts/courses/mood.sol b/src/Managing.WebApp/src/smartcontracts/courses/mood.sol new file mode 100644 index 0000000..68f90b7 --- /dev/null +++ b/src/Managing.WebApp/src/smartcontracts/courses/mood.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.1; + +contract MoodDiary{ + string mood; + + //create a function that writes a mood to the smart contract + function setMood(string memory _mood) public{ + mood = _mood; + } + + //create a function the reads the mood from the smart contract + function getMood() public view returns(string memory){ + return mood; + } + } \ No newline at end of file diff --git a/src/Managing.WebApp/src/smartcontracts/courses/odaNFT.sol b/src/Managing.WebApp/src/smartcontracts/courses/odaNFT.sol new file mode 100644 index 0000000..378a154 --- /dev/null +++ b/src/Managing.WebApp/src/smartcontracts/courses/odaNFT.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +// Import the openzepplin contracts +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + +// GameItem is ERC721 signifies that the contract we are creating imports ERC721 and follows ERC721 contract from openzeppelin +contract GameItem is ERC721 { + + constructor() ERC721("GameItem", "ITM") { + // mint an NFT to yourself + _mint(msg.sender, 1); + } +} \ No newline at end of file diff --git a/src/Managing.WebApp/src/smartcontracts/courses/odaToken.sol b/src/Managing.WebApp/src/smartcontracts/courses/odaToken.sol new file mode 100644 index 0000000..64743a8 --- /dev/null +++ b/src/Managing.WebApp/src/smartcontracts/courses/odaToken.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; + +contract OdaToken is ERC20 { + constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) { + _mint(msg.sender, 10 * 10 ** 18); + } +} \ No newline at end of file diff --git a/src/Managing.WebApp/src/stores/store.tsx b/src/Managing.WebApp/src/stores/store.tsx new file mode 100644 index 0000000..81c5d23 --- /dev/null +++ b/src/Managing.WebApp/src/stores/store.tsx @@ -0,0 +1,3 @@ +import { atomWithStorage } from 'jotai/utils' + +export const themeAtom = atomWithStorage('theme', 'black') diff --git a/src/Managing.WebApp/src/styles/app.css b/src/Managing.WebApp/src/styles/app.css new file mode 100644 index 0000000..89065d8 --- /dev/null +++ b/src/Managing.WebApp/src/styles/app.css @@ -0,0 +1,46 @@ +.App-logo { + width: 1.5em; +} + +@media (prefers-reduced-motion: no-preference) { + /* .App-logo { + animation: App-logo-spin infinite 20s linear; + } */ +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +button { + font-size: calc(10px + 2vmin); +} + +.notificationWrapper { + @apply w-96 hover:shadow-none transform-gpu hover:translate-y-1 rounded-xl relative flex flex-row items-center justify-between px-4 py-6 text-white transition-all duration-500 ease-in-out translate-y-0 bg-gray-900 shadow-2xl; +} + +.iconWrapper { + @apply text-xl; +} + +.contentWrapper { + @apply flex flex-col items-start justify-center ml-4 cursor-default; +} + +.contentWrapper h1 { + @apply text-base font-semibold leading-none tracking-wider text-gray-200; +} + +.contentWrapper p { + @apply mt-2 text-sm leading-relaxed tracking-wider text-gray-400; +} + +.closeIcon { + @apply top-2 right-2 absolute text-lg cursor-pointer; +} diff --git a/src/Managing.WebApp/src/styles/globals.css b/src/Managing.WebApp/src/styles/globals.css new file mode 100644 index 0000000..da51981 --- /dev/null +++ b/src/Managing.WebApp/src/styles/globals.css @@ -0,0 +1,23 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + body { + margin: 0; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; + } +} + +@layer utilities { + .layout { + @apply sm:w-11/12 w-10/12 mx-auto; + } +} diff --git a/src/Managing.WebApp/src/vite-env.d.ts b/src/Managing.WebApp/src/vite-env.d.ts new file mode 100644 index 0000000..96204cc --- /dev/null +++ b/src/Managing.WebApp/src/vite-env.d.ts @@ -0,0 +1,3 @@ +/// + +declare type AnyFunction = (...args: any[]) => any diff --git a/src/Managing.WebApp/tailwind.config.js b/src/Managing.WebApp/tailwind.config.js new file mode 100644 index 0000000..c57aa29 --- /dev/null +++ b/src/Managing.WebApp/tailwind.config.js @@ -0,0 +1,12 @@ +module.exports = { + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], + daisyui: { + themes: true, + }, + plugins: [require('@tailwindcss/typography'), require('daisyui')], + theme: { + container: { + center: true, + }, + }, +} diff --git a/src/Managing.WebApp/tsconfig.json b/src/Managing.WebApp/tsconfig.json new file mode 100644 index 0000000..9f749f4 --- /dev/null +++ b/src/Managing.WebApp/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["./src", "hardhat.config.js"], + "exclude": ["node_modules"] +} diff --git a/src/Managing.WebApp/vite.config.ts b/src/Managing.WebApp/vite.config.ts new file mode 100644 index 0000000..449a7b8 --- /dev/null +++ b/src/Managing.WebApp/vite.config.ts @@ -0,0 +1,20 @@ +import react from '@vitejs/plugin-react' +import { defineConfig } from 'vite' + +export default defineConfig({ + build: { + sourcemap: true, + target: 'es2020', + }, + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + }, + }, + plugins: [react()], + publicDir: 'assets', + server: { + host: true, + open: true, + }, +}) diff --git a/src/Managing.WebApp/yarn.lock b/src/Managing.WebApp/yarn.lock new file mode 100644 index 0000000..d60df1b --- /dev/null +++ b/src/Managing.WebApp/yarn.lock @@ -0,0 +1,13517 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adraffy/ens-normalize@^1.8.8": + version "1.10.1" + resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@adraffy/ens-normalize@1.10.0": + version "1.10.0" + resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz" + integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2": + version "7.24.2" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + dependencies: + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== + +"@babel/core@*", "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.17.10", "@babel/core@^7.20.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.8.0": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" + integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.24.5" + "@babel/helpers" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + 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.20.0", "@babel/generator@^7.24.5", "@babel/generator@^7.7.2": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz" + integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== + dependencies: + "@babel/types" "^7.24.5" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" + 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.18.6", "@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4", "@babel/helper-create-class-features-plugin@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz" + integrity sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g== + 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.24.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.24.5" + 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.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz" + 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.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + 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.18.9", "@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" + 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.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.23.0", "@babel/helper-member-expression-to-functions@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz" + integrity sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5", "@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" + +"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz" + integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-simple-access" "^7.24.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/helper-validator-identifier" "^7.24.5" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + 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.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz" + integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== + +"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz" + 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.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz" + integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5", "@babel/helper-simple-access@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz" + integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz" + integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-string-parser@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + +"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz" + integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helper-wrap-function@^7.22.20": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz" + integrity sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw== + dependencies: + "@babel/helper-function-name" "^7.23.0" + "@babel/template" "^7.24.0" + "@babel/types" "^7.24.5" + +"@babel/helpers@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz" + integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + +"@babel/highlight@^7.24.2": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz" + integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz" + integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz" + integrity sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz" + integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz" + integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.24.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz" + integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-proposal-async-generator-functions@^7.0.0": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.0": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-export-default-from@^7.0.0": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.24.1.tgz" + integrity sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-export-default-from" "^7.24.1" + +"@babel/plugin-proposal-logical-assignment-operators@^7.18.0": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.0.0": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.20.0": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.0.0": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.0": + version "7.21.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@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.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + 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.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + 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.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.24.1.tgz" + integrity sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz" + integrity sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-assertions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz" + integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-attributes@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz" + integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@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.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + 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.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + 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.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + 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.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + 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.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + 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.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.24.1", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz" + integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-async-generator-functions@^7.24.3": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz" + integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz" + integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== + dependencies: + "@babel/helper-module-imports" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" + +"@babel/plugin-transform-block-scoped-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz" + integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz" + integrity sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-class-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz" + integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-class-static-block@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz" + integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz" + integrity sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q== + 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.24.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-split-export-declaration" "^7.24.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz" + integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/template" "^7.24.0" + +"@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz" + integrity sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-dotall-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz" + integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-duplicate-keys@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz" + integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-dynamic-import@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz" + integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz" + integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-export-namespace-from@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz" + integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz" + integrity sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-flow" "^7.24.1" + +"@babel/plugin-transform-for-of@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz" + integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz" + integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-json-strings@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz" + integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz" + integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz" + integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz" + integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-modules-amd@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz" + integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz" + integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-modules-systemjs@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz" + integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/plugin-transform-modules-umd@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz" + integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-new-target@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz" + integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz" + integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz" + integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz" + integrity sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.5" + +"@babel/plugin-transform-object-super@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz" + integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" + +"@babel/plugin-transform-optional-catch-binding@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz" + integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.1", "@babel/plugin-transform-optional-chaining@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz" + integrity sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz" + integrity sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz" + integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz" + integrity sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz" + integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz" + integrity sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-react-jsx-development@^7.16.7": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.22.5" + +"@babel/plugin-transform-react-jsx-self@^7.0.0", "@babel/plugin-transform-react-jsx-self@^7.16.7": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.5.tgz" + integrity sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-react-jsx-source@^7.0.0", "@babel/plugin-transform-react-jsx-source@^7.16.7": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz" + integrity sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.17.3", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" + +"@babel/plugin-transform-regenerator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz" + integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz" + integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-runtime@^7.0.0": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz" + integrity sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ== + dependencies: + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-plugin-utils" "^7.24.0" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz" + integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz" + integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz" + integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-template-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz" + integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-typeof-symbol@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz" + integrity sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-typescript@^7.24.1", "@babel/plugin-transform-typescript@^7.5.0": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz" + integrity sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-typescript" "^7.24.1" + +"@babel/plugin-transform-unicode-escapes@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz" + integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-property-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz" + integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz" + integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz" + integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/preset-env@^7.1.6": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz" + integrity sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ== + dependencies: + "@babel/compat-data" "^7.24.4" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.1" + "@babel/plugin-syntax-import-attributes" "^7.24.1" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.1" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" + "@babel/plugin-transform-async-to-generator" "^7.24.1" + "@babel/plugin-transform-block-scoped-functions" "^7.24.1" + "@babel/plugin-transform-block-scoping" "^7.24.5" + "@babel/plugin-transform-class-properties" "^7.24.1" + "@babel/plugin-transform-class-static-block" "^7.24.4" + "@babel/plugin-transform-classes" "^7.24.5" + "@babel/plugin-transform-computed-properties" "^7.24.1" + "@babel/plugin-transform-destructuring" "^7.24.5" + "@babel/plugin-transform-dotall-regex" "^7.24.1" + "@babel/plugin-transform-duplicate-keys" "^7.24.1" + "@babel/plugin-transform-dynamic-import" "^7.24.1" + "@babel/plugin-transform-exponentiation-operator" "^7.24.1" + "@babel/plugin-transform-export-namespace-from" "^7.24.1" + "@babel/plugin-transform-for-of" "^7.24.1" + "@babel/plugin-transform-function-name" "^7.24.1" + "@babel/plugin-transform-json-strings" "^7.24.1" + "@babel/plugin-transform-literals" "^7.24.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" + "@babel/plugin-transform-member-expression-literals" "^7.24.1" + "@babel/plugin-transform-modules-amd" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-modules-systemjs" "^7.24.1" + "@babel/plugin-transform-modules-umd" "^7.24.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.24.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.5" + "@babel/plugin-transform-object-super" "^7.24.1" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.5" + "@babel/plugin-transform-parameters" "^7.24.5" + "@babel/plugin-transform-private-methods" "^7.24.1" + "@babel/plugin-transform-private-property-in-object" "^7.24.5" + "@babel/plugin-transform-property-literals" "^7.24.1" + "@babel/plugin-transform-regenerator" "^7.24.1" + "@babel/plugin-transform-reserved-words" "^7.24.1" + "@babel/plugin-transform-shorthand-properties" "^7.24.1" + "@babel/plugin-transform-spread" "^7.24.1" + "@babel/plugin-transform-sticky-regex" "^7.24.1" + "@babel/plugin-transform-template-literals" "^7.24.1" + "@babel/plugin-transform-typeof-symbol" "^7.24.5" + "@babel/plugin-transform-unicode-escapes" "^7.24.1" + "@babel/plugin-transform-unicode-property-regex" "^7.24.1" + "@babel/plugin-transform-unicode-regex" "^7.24.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-flow@^7.13.13": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.1.tgz" + integrity sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-transform-flow-strip-types" "^7.24.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-typescript@^7.13.0": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz" + integrity sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-syntax-jsx" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-typescript" "^7.24.1" + +"@babel/register@^7.13.16": + version "7.23.7" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz" + integrity sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ== + dependencies: + clone-deep "^4.0.1" + find-cache-dir "^2.0.0" + make-dir "^2.1.0" + pirates "^4.0.6" + source-map-support "^0.5.16" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz" + integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@*", "@babel/template@^7.0.0", "@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" + 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.20.0", "@babel/traverse@^7.24.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz" + integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== + dependencies: + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@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.24.5" + "@babel/parser" "^7.24.5" + "@babel/types" "^7.24.5" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz" + integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== + dependencies: + "@babel/helper-string-parser" "^7.24.1" + "@babel/helper-validator-identifier" "^7.24.5" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@choojs/findup@^0.2.0": + version "0.2.1" + resolved "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz" + integrity sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw== + dependencies: + commander "^2.15.1" + +"@coinbase/wallet-sdk@3.9.1": + version "3.9.1" + resolved "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.9.1.tgz" + integrity sha512-cGUE8wm1/cMI8irRMVOqbFWYcnNugqCtuy2lnnHfgloBg+GRLs9RsrkOUDMdv/StfUeeKhCDyYudsXXvcL1xIA== + dependencies: + bn.js "^5.2.1" + buffer "^6.0.3" + clsx "^1.2.1" + eth-block-tracker "^7.1.0" + eth-json-rpc-filters "^6.0.0" + eventemitter3 "^5.0.1" + keccak "^3.0.3" + preact "^10.16.0" + sha.js "^2.4.11" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@emotion/is-prop-valid@^0.8.2": + version "0.8.8" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/is-prop-valid@^1.1.0": + version "1.2.2" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz" + integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== + dependencies: + "@emotion/memoize" "^0.8.1" + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4": + version "0.7.5" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@ethereumjs/common@^3.2.0": + version "3.2.0" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz" + integrity sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA== + dependencies: + "@ethereumjs/util" "^8.1.0" + crc-32 "^1.2.0" + +"@ethereumjs/rlp@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz" + integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== + +"@ethereumjs/tx@^4.1.2", "@ethereumjs/tx@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz" + integrity sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw== + dependencies: + "@ethereumjs/common" "^3.2.0" + "@ethereumjs/rlp" "^4.0.1" + "@ethereumjs/util" "^8.1.0" + ethereum-cryptography "^2.0.0" + +"@ethereumjs/util@^8.1.0": + version "8.1.0" + resolved "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" + +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@heroicons/react@^1.0.6": + version "1.0.6" + resolved "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz" + integrity sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@isaacs/ttlcache@^1.4.1": + version "1.4.1" + resolved "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz" + integrity sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + 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": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + +"@jest/core@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz" + integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/reporters" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.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 "^28.1.3" + jest-config "^28.1.3" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-resolve-dependencies "^28.1.3" + jest-runner "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + jest-watcher "^28.1.3" + micromatch "^4.0.4" + pretty-format "^28.1.3" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/create-cache-key-function@^29.6.3": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz" + integrity sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA== + dependencies: + "@jest/types" "^29.6.3" + +"@jest/environment@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz" + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== + dependencies: + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" + 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@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== + dependencies: + jest-get-type "^28.0.2" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz" + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== + dependencies: + expect "^28.1.3" + jest-snapshot "^28.1.3" + +"@jest/fake-timers@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz" + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== + dependencies: + "@jest/types" "^28.1.3" + "@sinonjs/fake-timers" "^9.1.2" + "@types/node" "*" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" + 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@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz" + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" + +"@jest/reporters@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz" + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + "@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 "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + jest-worker "^28.1.3" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + terminal-link "^2.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^28.1.2": + version "28.1.2" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz" + integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== + dependencies: + "@jridgewell/trace-mapping" "^0.3.13" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== + dependencies: + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz" + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== + dependencies: + "@jest/test-result" "^28.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + slash "^3.0.0" + +"@jest/transform@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz" + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.1" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.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" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" + 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.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz" + integrity sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g== + +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.3" + resolved "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz" + integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + +"@mapbox/geojson-rewind@^0.5.2": + version "0.5.2" + resolved "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz" + integrity sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA== + dependencies: + get-stream "^6.0.1" + minimist "^1.2.6" + +"@mapbox/geojson-types@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz" + integrity sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw== + +"@mapbox/jsonlint-lines-primitives@^2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz" + integrity sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ== + +"@mapbox/mapbox-gl-supported@^1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz" + integrity sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg== + +"@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0", "@mapbox/point-geometry@0.1.0": + version "0.1.0" + resolved "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz" + integrity sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ== + +"@mapbox/tiny-sdf@^1.1.1": + version "1.2.5" + resolved "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz" + integrity sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw== + +"@mapbox/unitbezier@^0.0.0": + version "0.0.0" + resolved "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz" + integrity sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA== + +"@mapbox/vector-tile@^1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz" + integrity sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw== + dependencies: + "@mapbox/point-geometry" "~0.1.0" + +"@mapbox/whoots-js@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz" + integrity sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q== + +"@metamask/eth-json-rpc-provider@^1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-1.0.1.tgz" + integrity sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA== + dependencies: + "@metamask/json-rpc-engine" "^7.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^5.0.1" + +"@metamask/json-rpc-engine@^7.0.0", "@metamask/json-rpc-engine@^7.3.2": + version "7.3.3" + resolved "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz" + integrity sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg== + dependencies: + "@metamask/rpc-errors" "^6.2.1" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^8.3.0" + +"@metamask/json-rpc-middleware-stream@^6.0.2": + version "6.0.2" + resolved "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-6.0.2.tgz" + integrity sha512-jtyx3PRfc1kqoLpYveIVQNwsxYKefc64/LCl9h9Da1m3nUKEvypbYuXSIwi237qvOjKmNHQKsDOZg6f4uBf62Q== + dependencies: + "@metamask/json-rpc-engine" "^7.3.2" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^8.3.0" + readable-stream "^3.6.2" + +"@metamask/object-multiplex@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.0.0.tgz" + integrity sha512-+ItrieVZie3j2LfYE0QkdW3dsEMfMEp419IGx1zyeLqjRZ14iQUPRO0H6CGgfAAoC0x6k2PfCAGRwJUA9BMrqA== + dependencies: + once "^1.4.0" + readable-stream "^3.6.2" + +"@metamask/onboarding@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz" + integrity sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ== + dependencies: + bowser "^2.9.0" + +"@metamask/providers@^15.0.0": + version "15.0.0" + resolved "https://registry.npmjs.org/@metamask/providers/-/providers-15.0.0.tgz" + integrity sha512-FXvL1NQNl6I7fMOJTfQYcBlBZ33vSlm6w80cMpmn8sJh0Lb7wcBpe02UwBsNlARnI+Qsr26XeDs6WHUHQh8CuA== + dependencies: + "@metamask/json-rpc-engine" "^7.3.2" + "@metamask/json-rpc-middleware-stream" "^6.0.2" + "@metamask/object-multiplex" "^2.0.0" + "@metamask/rpc-errors" "^6.2.1" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^8.3.0" + detect-browser "^5.2.0" + extension-port-stream "^3.0.0" + fast-deep-equal "^3.1.3" + is-stream "^2.0.0" + readable-stream "^3.6.2" + webextension-polyfill "^0.10.0" + +"@metamask/rpc-errors@^6.2.1": + version "6.2.1" + resolved "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.2.1.tgz" + integrity sha512-VTgWkjWLzb0nupkFl1duQi9Mk8TGT9rsdnQg6DeRrYEFxtFOh0IF8nAwxM/4GWqDl6uIB06lqUBgUrAVWl62Bw== + dependencies: + "@metamask/utils" "^8.3.0" + fast-safe-stringify "^2.0.6" + +"@metamask/safe-event-emitter@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz" + integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== + +"@metamask/safe-event-emitter@^3.0.0": + version "3.1.1" + resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.1.tgz" + integrity sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw== + +"@metamask/sdk-communication-layer@0.18.5": + version "0.18.5" + resolved "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.18.5.tgz" + integrity sha512-WMf9oJa3rAimjCXMAaaRVFPD0Q6dfZR0r9037KCpD5g9SlVh+TeMISfdQCEKAyhXP3d4CGxmp/Kib8C3mn2YLw== + dependencies: + bufferutil "^4.0.8" + date-fns "^2.29.3" + debug "^4.3.4" + utf-8-validate "^6.0.3" + uuid "^8.3.2" + +"@metamask/sdk-install-modal-web@0.18.5": + version "0.18.5" + resolved "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.18.5.tgz" + integrity sha512-Wygc0dgr1PwIA/Sg9WW9QWAsQr4G2GV6iveXt2xw8VKW/9cRORWqYukH1NZLr71hBKzi9AKYBU54Tk5Dfg41zg== + dependencies: + qr-code-styling "^1.6.0-rc.1" + +"@metamask/sdk@0.18.6": + version "0.18.6" + resolved "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.18.6.tgz" + integrity sha512-ZT8e4BrcWrm44apLb412WR0fDsgeaS8UlI1c0wKRUPu1w/UntpXuUVO+EaY8WDlnOPAiAsjyqWKey64/DfvbXQ== + dependencies: + "@metamask/onboarding" "^1.0.1" + "@metamask/providers" "^15.0.0" + "@metamask/sdk-communication-layer" "0.18.5" + "@metamask/sdk-install-modal-web" "0.18.5" + "@types/dom-screen-wake-lock" "^1.0.0" + bowser "^2.9.0" + cross-fetch "^4.0.0" + debug "^4.3.4" + eciesjs "^0.3.15" + eth-rpc-errors "^4.0.3" + eventemitter2 "^6.4.7" + i18next "22.5.1" + i18next-browser-languagedetector "7.1.0" + obj-multiplex "^1.0.0" + pump "^3.0.0" + qrcode-terminal-nooctal "^0.12.1" + react-native-webview "^11.26.0" + readable-stream "^3.6.2" + rollup-plugin-visualizer "^5.9.2" + socket.io-client "^4.5.1" + util "^0.12.4" + uuid "^8.3.2" + +"@metamask/utils@^5.0.1": + version "5.0.2" + resolved "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz" + integrity sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g== + dependencies: + "@ethereumjs/tx" "^4.1.2" + "@types/debug" "^4.1.7" + debug "^4.3.4" + semver "^7.3.8" + superstruct "^1.0.3" + +"@metamask/utils@^8.3.0": + version "8.4.0" + resolved "https://registry.npmjs.org/@metamask/utils/-/utils-8.4.0.tgz" + integrity sha512-dbIc3C7alOe0agCuBHM1h71UaEaEqOk2W8rAtEn8QGz4haH2Qq7MoK6i7v2guzvkJVVh79c+QCzIqphC3KvrJg== + dependencies: + "@ethereumjs/tx" "^4.2.0" + "@noble/hashes" "^1.3.1" + "@scure/base" "^1.1.3" + "@types/debug" "^4.1.7" + debug "^4.3.4" + pony-cause "^2.1.10" + semver "^7.5.4" + superstruct "^1.0.3" + uuid "^9.0.1" + +"@microsoft/signalr@^6.0.5": + version "6.0.25" + resolved "https://registry.npmjs.org/@microsoft/signalr/-/signalr-6.0.25.tgz" + integrity sha512-8AzrpxS+E0yn1tXSlv7+UlURLmSxTQDgbvOT0pGKXjZT7MkhnDP+/GLuk7veRtUjczou/x32d9PHhYlr2NBy6Q== + dependencies: + abort-controller "^3.0.0" + eventsource "^1.0.7" + fetch-cookie "^0.11.0" + node-fetch "^2.6.7" + ws "^7.4.5" + +"@motionone/animation@^10.12.0", "@motionone/animation@^10.15.1", "@motionone/animation@^10.17.0": + version "10.17.0" + resolved "https://registry.npmjs.org/@motionone/animation/-/animation-10.17.0.tgz" + integrity sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg== + dependencies: + "@motionone/easing" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" + tslib "^2.3.1" + +"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": + version "10.17.0" + resolved "https://registry.npmjs.org/@motionone/dom/-/dom-10.17.0.tgz" + integrity sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q== + dependencies: + "@motionone/animation" "^10.17.0" + "@motionone/generators" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/dom@10.12.0": + version "10.12.0" + resolved "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz" + integrity sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw== + dependencies: + "@motionone/animation" "^10.12.0" + "@motionone/generators" "^10.12.0" + "@motionone/types" "^10.12.0" + "@motionone/utils" "^10.12.0" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/easing@^10.17.0": + version "10.17.0" + resolved "https://registry.npmjs.org/@motionone/easing/-/easing-10.17.0.tgz" + integrity sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg== + dependencies: + "@motionone/utils" "^10.17.0" + tslib "^2.3.1" + +"@motionone/generators@^10.12.0", "@motionone/generators@^10.17.0": + version "10.17.0" + resolved "https://registry.npmjs.org/@motionone/generators/-/generators-10.17.0.tgz" + integrity sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ== + dependencies: + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" + tslib "^2.3.1" + +"@motionone/svelte@^10.16.2": + version "10.16.4" + resolved "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz" + integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" + +"@motionone/types@^10.12.0", "@motionone/types@^10.15.1", "@motionone/types@^10.17.0": + version "10.17.0" + resolved "https://registry.npmjs.org/@motionone/types/-/types-10.17.0.tgz" + integrity sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA== + +"@motionone/utils@^10.12.0", "@motionone/utils@^10.15.1", "@motionone/utils@^10.17.0": + version "10.17.0" + resolved "https://registry.npmjs.org/@motionone/utils/-/utils-10.17.0.tgz" + integrity sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg== + dependencies: + "@motionone/types" "^10.17.0" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/vue@^10.16.2": + version "10.16.4" + resolved "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz" + integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" + +"@noble/curves@~1.2.0", "@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/curves@~1.3.0", "@noble/curves@1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz" + integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== + dependencies: + "@noble/hashes" "1.3.3" + +"@noble/hashes@^1.3.1": + version "1.4.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2", "@noble/hashes@1.3.3": + version "1.3.3" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@parcel/watcher-linux-x64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz" + integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== + +"@parcel/watcher-linux-x64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz" + integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== + +"@parcel/watcher-wasm@^2.4.1": + version "2.4.1" + resolved "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.4.1.tgz" + integrity sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA== + dependencies: + is-glob "^4.0.3" + micromatch "^4.0.5" + napi-wasm "^1.1.0" + +"@parcel/watcher@^2.4.1": + version "2.4.1" + resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz" + integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.4.1" + "@parcel/watcher-darwin-arm64" "2.4.1" + "@parcel/watcher-darwin-x64" "2.4.1" + "@parcel/watcher-freebsd-x64" "2.4.1" + "@parcel/watcher-linux-arm-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-musl" "2.4.1" + "@parcel/watcher-linux-x64-glibc" "2.4.1" + "@parcel/watcher-linux-x64-musl" "2.4.1" + "@parcel/watcher-win32-arm64" "2.4.1" + "@parcel/watcher-win32-ia32" "2.4.1" + "@parcel/watcher-win32-x64" "2.4.1" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@plotly/d3-sankey-circular@0.33.1": + version "0.33.1" + resolved "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz" + integrity sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ== + dependencies: + d3-array "^1.2.1" + d3-collection "^1.0.4" + d3-shape "^1.2.0" + elementary-circuits-directed-graph "^1.0.4" + +"@plotly/d3-sankey@0.7.2": + version "0.7.2" + resolved "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz" + integrity sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw== + dependencies: + d3-array "1" + d3-collection "1" + d3-shape "^1.2.0" + +"@plotly/d3@3.8.1": + version "3.8.1" + resolved "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.1.tgz" + integrity sha512-x49ThEu1FRA00kTso4Jdfyf2byaCPLBGmLjAYQz5OzaPyLUhHesX3/Nfv2OHEhynhdy2UB39DLXq6thYe2L2kg== + +"@plotly/mapbox-gl@1.13.4": + version "1.13.4" + resolved "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz" + integrity sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ== + dependencies: + "@mapbox/geojson-rewind" "^0.5.2" + "@mapbox/geojson-types" "^1.0.2" + "@mapbox/jsonlint-lines-primitives" "^2.0.2" + "@mapbox/mapbox-gl-supported" "^1.5.0" + "@mapbox/point-geometry" "^0.1.0" + "@mapbox/tiny-sdf" "^1.1.1" + "@mapbox/unitbezier" "^0.0.0" + "@mapbox/vector-tile" "^1.3.1" + "@mapbox/whoots-js" "^3.1.0" + csscolorparser "~1.0.3" + earcut "^2.2.2" + geojson-vt "^3.2.1" + gl-matrix "^3.2.1" + grid-index "^1.1.0" + murmurhash-js "^1.0.0" + pbf "^3.2.1" + potpack "^1.0.1" + quickselect "^2.0.0" + rw "^1.3.3" + supercluster "^7.1.0" + tinyqueue "^2.0.3" + vt-pbf "^3.1.1" + +"@plotly/point-cluster@^3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz" + integrity sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw== + dependencies: + array-bounds "^1.0.1" + binary-search-bounds "^2.0.4" + clamp "^1.0.1" + defined "^1.0.0" + dtype "^2.0.0" + flatten-vertex-data "^1.0.2" + is-obj "^1.0.1" + math-log2 "^1.0.1" + parse-rect "^1.2.0" + pick-by-alias "^1.2.0" + +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.2.2" + resolved "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + +"@react-native-community/cli-clean@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.6.tgz" + integrity sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ== + dependencies: + "@react-native-community/cli-tools" "13.6.6" + chalk "^4.1.2" + execa "^5.0.0" + fast-glob "^3.3.2" + +"@react-native-community/cli-config@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.6.tgz" + integrity sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg== + dependencies: + "@react-native-community/cli-tools" "13.6.6" + chalk "^4.1.2" + cosmiconfig "^5.1.0" + deepmerge "^4.3.0" + fast-glob "^3.3.2" + joi "^17.2.1" + +"@react-native-community/cli-debugger-ui@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.6.tgz" + integrity sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g== + dependencies: + serve-static "^1.13.1" + +"@react-native-community/cli-doctor@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.6.tgz" + integrity sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg== + dependencies: + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-platform-apple" "13.6.6" + "@react-native-community/cli-platform-ios" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + chalk "^4.1.2" + command-exists "^1.2.8" + deepmerge "^4.3.0" + envinfo "^7.10.0" + execa "^5.0.0" + hermes-profile-transformer "^0.0.6" + node-stream-zip "^1.9.1" + ora "^5.4.1" + semver "^7.5.2" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + yaml "^2.2.1" + +"@react-native-community/cli-hermes@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.6.tgz" + integrity sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg== + dependencies: + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + chalk "^4.1.2" + hermes-profile-transformer "^0.0.6" + +"@react-native-community/cli-platform-android@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.6.tgz" + integrity sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg== + dependencies: + "@react-native-community/cli-tools" "13.6.6" + chalk "^4.1.2" + execa "^5.0.0" + fast-glob "^3.3.2" + fast-xml-parser "^4.2.4" + logkitty "^0.7.1" + +"@react-native-community/cli-platform-apple@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.6.tgz" + integrity sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg== + dependencies: + "@react-native-community/cli-tools" "13.6.6" + chalk "^4.1.2" + execa "^5.0.0" + fast-glob "^3.3.2" + fast-xml-parser "^4.0.12" + ora "^5.4.1" + +"@react-native-community/cli-platform-ios@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.6.tgz" + integrity sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ== + dependencies: + "@react-native-community/cli-platform-apple" "13.6.6" + +"@react-native-community/cli-server-api@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.6.tgz" + integrity sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ== + dependencies: + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + compression "^1.7.1" + connect "^3.6.5" + errorhandler "^1.5.1" + nocache "^3.0.1" + pretty-format "^26.6.2" + serve-static "^1.13.1" + ws "^6.2.2" + +"@react-native-community/cli-tools@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.6.tgz" + integrity sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw== + dependencies: + appdirsjs "^1.2.4" + chalk "^4.1.2" + execa "^5.0.0" + find-up "^5.0.0" + mime "^2.4.1" + node-fetch "^2.6.0" + open "^6.2.0" + ora "^5.4.1" + semver "^7.5.2" + shell-quote "^1.7.3" + sudo-prompt "^9.0.0" + +"@react-native-community/cli-types@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.6.tgz" + integrity sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug== + dependencies: + joi "^17.2.1" + +"@react-native-community/cli@13.6.6": + version "13.6.6" + resolved "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.6.tgz" + integrity sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA== + dependencies: + "@react-native-community/cli-clean" "13.6.6" + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-doctor" "13.6.6" + "@react-native-community/cli-hermes" "13.6.6" + "@react-native-community/cli-server-api" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-types" "13.6.6" + chalk "^4.1.2" + commander "^9.4.1" + deepmerge "^4.3.0" + execa "^5.0.0" + find-up "^4.1.0" + fs-extra "^8.1.0" + graceful-fs "^4.1.3" + prompts "^2.4.2" + semver "^7.5.2" + +"@react-native/assets-registry@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.83.tgz" + integrity sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ== + +"@react-native/babel-plugin-codegen@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.83.tgz" + integrity sha512-+S0st3t4Ro00bi9gjT1jnK8qTFOU+CwmziA7U9odKyWrCoRJrgmrvogq/Dr1YXlpFxexiGIupGut1VHxr+fxJA== + dependencies: + "@react-native/codegen" "0.74.83" + +"@react-native/babel-preset@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.83.tgz" + integrity sha512-KJuu3XyVh3qgyUer+rEqh9a/JoUxsDOzkJNfRpDyXiAyjDRoVch60X/Xa/NcEQ93iCVHAWs0yQ+XGNGIBCYE6g== + dependencies: + "@babel/core" "^7.20.0" + "@babel/plugin-proposal-async-generator-functions" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.18.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" + "@babel/plugin-proposal-numeric-separator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.20.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.18.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.20.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.20.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + "@react-native/babel-plugin-codegen" "0.74.83" + babel-plugin-transform-flow-enums "^0.0.2" + react-refresh "^0.14.0" + +"@react-native/codegen@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.83.tgz" + integrity sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w== + dependencies: + "@babel/parser" "^7.20.0" + glob "^7.1.1" + hermes-parser "0.19.1" + invariant "^2.2.4" + jscodeshift "^0.14.0" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + +"@react-native/community-cli-plugin@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.83.tgz" + integrity sha512-7GAFjFOg1mFSj8bnFNQS4u8u7+QtrEeflUIDVZGEfBZQ3wMNI5ycBzbBGycsZYiq00Xvoc6eKFC7kvIaqeJpUQ== + dependencies: + "@react-native-community/cli-server-api" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + "@react-native/dev-middleware" "0.74.83" + "@react-native/metro-babel-transformer" "0.74.83" + chalk "^4.0.0" + execa "^5.1.1" + metro "^0.80.3" + metro-config "^0.80.3" + metro-core "^0.80.3" + node-fetch "^2.2.0" + querystring "^0.2.1" + readline "^1.3.0" + +"@react-native/debugger-frontend@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.83.tgz" + integrity sha512-RGQlVUegBRxAUF9c1ss1ssaHZh6CO+7awgtI9sDeU0PzDZY/40ImoPD5m0o0SI6nXoVzbPtcMGzU+VO590pRfA== + +"@react-native/dev-middleware@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.83.tgz" + integrity sha512-UH8iriqnf7N4Hpi20D7M2FdvSANwTVStwFCSD7VMU9agJX88Yk0D1T6Meh2RMhUu4kY2bv8sTkNRm7LmxvZqgA== + dependencies: + "@isaacs/ttlcache" "^1.4.1" + "@react-native/debugger-frontend" "0.74.83" + "@rnx-kit/chromium-edge-launcher" "^1.0.0" + chrome-launcher "^0.15.2" + connect "^3.6.5" + debug "^2.2.0" + node-fetch "^2.2.0" + nullthrows "^1.1.1" + open "^7.0.3" + selfsigned "^2.4.1" + serve-static "^1.13.1" + temp-dir "^2.0.0" + ws "^6.2.2" + +"@react-native/gradle-plugin@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.83.tgz" + integrity sha512-Pw2BWVyOHoBuJVKxGVYF6/GSZRf6+v1Ygc+ULGz5t20N8qzRWPa2fRZWqoxsN7TkNLPsECYY8gooOl7okOcPAQ== + +"@react-native/js-polyfills@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.83.tgz" + integrity sha512-/t74n8r6wFhw4JEoOj3bN71N1NDLqaawB75uKAsSjeCwIR9AfCxlzZG0etsXtOexkY9KMeZIQ7YwRPqUdNXuqw== + +"@react-native/metro-babel-transformer@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.83.tgz" + integrity sha512-hGdx5N8diu8y+GW/ED39vTZa9Jx1di2ZZ0aapbhH4egN1agIAusj5jXTccfNBwwWF93aJ5oVbRzfteZgjbutKg== + dependencies: + "@babel/core" "^7.20.0" + "@react-native/babel-preset" "0.74.83" + hermes-parser "0.19.1" + nullthrows "^1.1.1" + +"@react-native/normalize-colors@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.83.tgz" + integrity sha512-jhCY95gRDE44qYawWVvhTjTplW1g+JtKTKM3f8xYT1dJtJ8QWv+gqEtKcfmOHfDkSDaMKG0AGBaDTSK8GXLH8Q== + +"@react-native/virtualized-lists@0.74.83": + version "0.74.83" + resolved "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.83.tgz" + integrity sha512-rmaLeE34rj7py4FxTod7iMTC7BAsm+HrGA8WxYmEJeyTV7WSaxAkosKoYBz8038mOiwnG9VwA/7FrB6bEQvn1A== + dependencies: + invariant "^2.2.4" + nullthrows "^1.1.1" + +"@reactflow/background@11.3.13": + version "11.3.13" + resolved "https://registry.npmjs.org/@reactflow/background/-/background-11.3.13.tgz" + integrity sha512-hkvpVEhgvfTDyCvdlitw4ioKCYLaaiRXnuEG+1QM3Np+7N1DiWF1XOv5I8AFyNoJL07yXEkbECUTsHvkBvcG5A== + dependencies: + "@reactflow/core" "11.11.3" + classcat "^5.0.3" + zustand "^4.4.1" + +"@reactflow/controls@11.2.13": + version "11.2.13" + resolved "https://registry.npmjs.org/@reactflow/controls/-/controls-11.2.13.tgz" + integrity sha512-3xgEg6ALIVkAQCS4NiBjb7ad8Cb3D8CtA7Vvl4Hf5Ar2PIVs6FOaeft9s2iDZGtsWP35ECDYId1rIFVhQL8r+A== + dependencies: + "@reactflow/core" "11.11.3" + classcat "^5.0.3" + zustand "^4.4.1" + +"@reactflow/core@11.11.3": + version "11.11.3" + resolved "https://registry.npmjs.org/@reactflow/core/-/core-11.11.3.tgz" + integrity sha512-+adHdUa7fJSEM93fWfjQwyWXeI92a1eLKwWbIstoCakHpL8UjzwhEh6sn+mN2h/59MlVI7Ehr1iGTt3MsfcIFA== + dependencies: + "@types/d3" "^7.4.0" + "@types/d3-drag" "^3.0.1" + "@types/d3-selection" "^3.0.3" + "@types/d3-zoom" "^3.0.1" + classcat "^5.0.3" + d3-drag "^3.0.0" + d3-selection "^3.0.0" + d3-zoom "^3.0.0" + zustand "^4.4.1" + +"@reactflow/minimap@11.7.13": + version "11.7.13" + resolved "https://registry.npmjs.org/@reactflow/minimap/-/minimap-11.7.13.tgz" + integrity sha512-m2MvdiGSyOu44LEcERDEl1Aj6x//UQRWo3HEAejNU4HQTlJnYrSN8tgrYF8TxC1+c/9UdyzQY5VYgrTwW4QWdg== + dependencies: + "@reactflow/core" "11.11.3" + "@types/d3-selection" "^3.0.3" + "@types/d3-zoom" "^3.0.1" + classcat "^5.0.3" + d3-selection "^3.0.0" + d3-zoom "^3.0.0" + zustand "^4.4.1" + +"@reactflow/node-resizer@2.2.13": + version "2.2.13" + resolved "https://registry.npmjs.org/@reactflow/node-resizer/-/node-resizer-2.2.13.tgz" + integrity sha512-X7ceQ2s3jFLgbkg03n2RYr4hm3jTVrzkW2W/8ANv/SZfuVmF8XJxlERuD8Eka5voKqLda0ywIZGAbw9GoHLfUQ== + dependencies: + "@reactflow/core" "11.11.3" + classcat "^5.0.4" + d3-drag "^3.0.0" + d3-selection "^3.0.0" + zustand "^4.4.1" + +"@reactflow/node-toolbar@1.3.13": + version "1.3.13" + resolved "https://registry.npmjs.org/@reactflow/node-toolbar/-/node-toolbar-1.3.13.tgz" + integrity sha512-aknvNICO10uWdthFSpgD6ctY/CTBeJUMV9co8T9Ilugr08Nb89IQ4uD0dPmr031ewMQxixtYIkw+sSDDzd2aaQ== + dependencies: + "@reactflow/core" "11.11.3" + classcat "^5.0.3" + zustand "^4.4.1" + +"@remix-run/router@1.16.0": + version "1.16.0" + resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.16.0.tgz" + integrity sha512-Quz1KOffeEf/zwkCBM3kBtH4ZoZ+pT3xIXBG4PPW/XFtDP7EGhtTiC2+gpL9GnR7+Qdet5Oa6cYSvwKYg6kN9Q== + +"@rnx-kit/chromium-edge-launcher@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz" + integrity sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg== + dependencies: + "@types/node" "^18.0.0" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@rollup/pluginutils@^4.2.1": + version "4.2.1" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@safe-global/safe-apps-provider@0.18.1": + version "0.18.1" + resolved "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.1.tgz" + integrity sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg== + dependencies: + "@safe-global/safe-apps-sdk" "^8.1.0" + events "^3.3.0" + +"@safe-global/safe-apps-sdk@^8.1.0", "@safe-global/safe-apps-sdk@8.1.0": + version "8.1.0" + resolved "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-8.1.0.tgz" + integrity sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w== + dependencies: + "@safe-global/safe-gateway-typescript-sdk" "^3.5.3" + viem "^1.0.0" + +"@safe-global/safe-gateway-typescript-sdk@^3.5.3": + version "3.21.1" + resolved "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.21.1.tgz" + integrity sha512-7nakIjcRSs6781LkizYpIfXh1DYlkUDqyALciqz/BjFU/S97sVjZdL4cuKsG9NEarytE+f6p0Qbq2Bo1aocVUA== + +"@scure/base@^1.1.3", "@scure/base@~1.1.0", "@scure/base@~1.1.2", "@scure/base@~1.1.4": + version "1.1.6" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz" + integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== + +"@scure/bip32@1.3.2": + version "1.3.2" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz" + integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA== + dependencies: + "@noble/curves" "~1.2.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.2" + +"@scure/bip32@1.3.3": + version "1.3.3" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz" + integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== + dependencies: + "@noble/curves" "~1.3.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" + +"@scure/bip39@1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz" + integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== + dependencies: + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.2.2": + version "1.2.2" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz" + integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== + dependencies: + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" + +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.24.1": + version "0.24.51" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@sinonjs/fake-timers@^9.1.2": + version "9.1.2" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== + +"@stablelib/aead@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/chacha@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/chacha20poly1305@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== + dependencies: + "@stablelib/aead" "^1.0.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/chacha" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/poly1305" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + +"@stablelib/ed25519@^1.0.2": + version "1.0.3" + resolved "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz" + integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== + dependencies: + "@stablelib/random" "^1.0.2" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/hkdf@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz" + integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== + dependencies: + "@stablelib/hash" "^1.0.1" + "@stablelib/hmac" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hmac@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz" + integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha256@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz" + integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@stablelib/x25519@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz" + integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + +"@tailwindcss/aspect-ratio@^0.4.0": + version "0.4.2" + resolved "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz" + integrity sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ== + +"@tailwindcss/forms@^0.5.1": + version "0.5.7" + resolved "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz" + integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== + dependencies: + mini-svg-data-uri "^1.2.3" + +"@tailwindcss/line-clamp@^0.4.0": + version "0.4.4" + resolved "https://registry.npmjs.org/@tailwindcss/line-clamp/-/line-clamp-0.4.4.tgz" + integrity sha512-5U6SY5z8N42VtrCrKlsTAA35gy2VSyYtHWCsg1H87NU1SXnEfekTVlrga9fzUDrrHcGi2Lb5KenUWb4lRQT5/g== + +"@tailwindcss/typography@^0.5.2": + version "0.5.13" + resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz" + integrity sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" + +"@tanstack/eslint-plugin-query@^4.34.1": + version "4.38.0" + resolved "https://registry.npmjs.org/@tanstack/eslint-plugin-query/-/eslint-plugin-query-4.38.0.tgz" + integrity sha512-KmcrnjTQzONBqxNWSVKyPNi5tLq0URvIiWThE9HIK5qePGtB0VqoHfOsn4nuGJD268xDNDpFQjQiko9mMa5iLQ== + +"@tanstack/query-core@>=5.0.0", "@tanstack/query-core@5.34.1": + version "5.34.1" + resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.34.1.tgz" + integrity sha512-/a4yTnX525QUl8rFULrDLIogjqqcY/CiVvS/vWMgl477mO4WIIDxwQsLvEgb7vzlW8FqX/9CiCmaiAUnYVgB1w== + +"@tanstack/react-query@^5.0.0", "@tanstack/react-query@>=5.0.0": + version "5.34.1" + resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.34.1.tgz" + integrity sha512-5DWzrK+ou5maZqVoIY0S26TYNpnA7re6JlviXVOe/4OBPtlvd4WEHJmyeLZhE43piJvrsKMxemp/f6Q2RPfebA== + dependencies: + "@tanstack/query-core" "5.34.1" + +"@testing-library/dom@^8.13.0", "@testing-library/dom@^8.5.0": + version "8.20.1" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz" + integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/react@^13.2.0": + version "13.4.0" + resolved "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz" + integrity sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^8.5.0" + "@types/react-dom" "^18.0.0" + +"@turf/area@^6.4.0": + version "6.5.0" + resolved "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz" + integrity sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg== + dependencies: + "@turf/helpers" "^6.5.0" + "@turf/meta" "^6.5.0" + +"@turf/bbox@^6.4.0": + version "6.5.0" + resolved "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz" + integrity sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw== + dependencies: + "@turf/helpers" "^6.5.0" + "@turf/meta" "^6.5.0" + +"@turf/centroid@^6.0.2": + version "6.5.0" + resolved "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz" + integrity sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A== + dependencies: + "@turf/helpers" "^6.5.0" + "@turf/meta" "^6.5.0" + +"@turf/helpers@^6.5.0": + version "6.5.0" + resolved "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz" + integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw== + +"@turf/meta@^6.5.0": + version "6.5.0" + resolved "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz" + integrity sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA== + dependencies: + "@turf/helpers" "^6.5.0" + +"@types/aria-query@^5.0.1": + version "5.0.4" + resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + 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.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + 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.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/cookie@^0.3.3": + version "0.3.3" + resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz" + integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== + +"@types/d3-array@*": + version "3.2.1" + resolved "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz" + integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz" + integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== + +"@types/d3-drag@*", "@types/d3-drag@^3.0.1": + version "3.0.7" + resolved "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.9" + resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.9.tgz" + integrity sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.0" + resolved "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz" + integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.7" + resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz" + integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.1.0" + resolved "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz" + integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz" + integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== + +"@types/d3-scale-chromatic@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz" + integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== + +"@types/d3-scale@*": + version "4.0.8" + resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz" + integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*", "@types/d3-selection@^3.0.3": + version "3.0.10" + resolved "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz" + integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg== + +"@types/d3-shape@*": + version "3.1.6" + resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz" + integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz" + integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.8" + resolved "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz" + integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*", "@types/d3-zoom@^3.0.1": + version "3.0.8" + resolved "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.0": + version "7.4.3" + resolved "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + +"@types/debug@^4.1.7": + version "4.1.12" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/dom-screen-wake-lock@^1.0.0": + version "1.0.3" + resolved "https://registry.npmjs.org/@types/dom-screen-wake-lock/-/dom-screen-wake-lock-1.0.3.tgz" + integrity sha512-3Iten7X3Zgwvk6kh6/NRdwN7WbZ760YgFCsF5AxDifltUQzW1RaW+WRmcVtgwFzLjaNu64H+0MPJ13yRa8g3Dw== + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.56.10" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/geojson@*": + version "7946.0.14" + resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz" + integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/hoist-non-react-statics@^3.0.1": + version "3.3.5" + resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@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.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + 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.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*": + version "29.5.12" + resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jest@^27.5.1": + version "27.5.2" + resolved "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz" + integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== + dependencies: + jest-matcher-utils "^27.0.0" + pretty-format "^27.0.0" + +"@types/jquery@*": + version "3.5.29" + resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz" + integrity sha512-oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg== + dependencies: + "@types/sizzle" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>= 14": + version "20.12.8" + resolved "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz" + integrity sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w== + dependencies: + undici-types "~5.26.4" + +"@types/node@^18.0.0": + version "18.19.31" + resolved "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz" + integrity sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA== + dependencies: + undici-types "~5.26.4" + +"@types/plotly.js@*": + version "2.29.3" + resolved "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.29.3.tgz" + integrity sha512-TAwVyX4vUWpcEoNfrZV9b9V5jRfeWZP3Tkv0lJvN6xkf0s0qzMdSdXkRavy5+017ZgSWOGbHyQgyOZJozeDEbA== + +"@types/prettier@^2.1.5": + version "2.7.3" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.4": + version "18.3.0" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== + dependencies: + "@types/react" "*" + +"@types/react-grid-layout@^1.3.2": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/react-grid-layout/-/react-grid-layout-1.3.5.tgz" + integrity sha512-WH/po1gcEcoR6y857yAnPGug+ZhkF4PaTUxgAbwfeSH/QOgVSakKHBXoPGad/sEznmkiaK3pqHk+etdWisoeBQ== + dependencies: + "@types/react" "*" + +"@types/react-plotly.js@^2.6.0": + version "2.6.3" + resolved "https://registry.npmjs.org/@types/react-plotly.js/-/react-plotly.js-2.6.3.tgz" + integrity sha512-HBQwyGuu/dGXDsWhnQrhH+xcJSsHvjkwfSRjP+YpOsCCWryIuXF78ZCBjpfgO3sCc0Jo8sYp4NOGtqT7Cn3epQ== + dependencies: + "@types/plotly.js" "*" + "@types/react" "*" + +"@types/react-slider@^1.3.1": + version "1.3.6" + resolved "https://registry.npmjs.org/@types/react-slider/-/react-slider-1.3.6.tgz" + integrity sha512-RS8XN5O159YQ6tu3tGZIQz1/9StMLTg/FCIPxwqh2gwVixJnlfIodtVx+fpXVMZHe7A58lAX1Q4XTgAGOQaCQg== + dependencies: + "@types/react" "*" + +"@types/react-table@^7.7.12": + version "7.7.20" + resolved "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.20.tgz" + integrity sha512-ahMp4pmjVlnExxNwxyaDrFgmKxSbPwU23sGQw2gJK4EhCvnvmib2s/O/+y1dfV57dXOwpr2plfyBol+vEHbi2w== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.0.9", "@types/react@^18.2.6", "@types/react@>=16.8": + version "18.3.1" + resolved "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz" + integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/secp256k1@^4.0.4": + version "4.0.6" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz" + integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== + dependencies: + "@types/node" "*" + +"@types/semver@^7.3.12": + version "7.5.8" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@types/signalr@^2.2.37": + version "2.4.3" + resolved "https://registry.npmjs.org/@types/signalr/-/signalr-2.4.3.tgz" + integrity sha512-W6C1wMRIIhJV9nsw19yhw4h9zlkLnJzsu9dYlH35aHUQblPsDF6UpCcAVu4Ljy4RS3c3uJyV88wf2M2SOWqqZg== + dependencies: + "@types/jquery" "*" + +"@types/sizzle@*": + version "2.3.8" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz" + integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/testing-library__jest-dom@^5.14.3": + version "5.14.9" + resolved "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz" + integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== + dependencies: + "@types/jest" "*" + +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/ws@8.5.3": + version "8.5.3" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^15.0.0": + version "15.0.19" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz" + integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^5.23.0", "@typescript-eslint/eslint-plugin@>=1.8.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.23.0", "@typescript-eslint/parser@>=1.8.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== + dependencies: + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== + dependencies: + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vitejs/plugin-react@^1.3.2": + version "1.3.2" + resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz" + integrity sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA== + dependencies: + "@babel/core" "^7.17.10" + "@babel/plugin-transform-react-jsx" "^7.17.3" + "@babel/plugin-transform-react-jsx-development" "^7.16.7" + "@babel/plugin-transform-react-jsx-self" "^7.16.7" + "@babel/plugin-transform-react-jsx-source" "^7.16.7" + "@rollup/pluginutils" "^4.2.1" + react-refresh "^0.13.0" + resolve "^1.22.0" + +"@wagmi/chains@^0.2.9": + version "0.2.25" + resolved "https://registry.npmjs.org/@wagmi/chains/-/chains-0.2.25.tgz" + integrity sha512-Gah0bgR+14navwxi7xTL2oFB8YgK4qoBPye1b8ucccIwF3Z8Zg1u2gVTDFAyPT4lyB+ZVqwYKs3Y/IkFNG5O4Q== + +"@wagmi/connectors@^4.3.2", "@wagmi/connectors@4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@wagmi/connectors/-/connectors-4.3.3.tgz" + integrity sha512-6u/HbWlIS2MI5lxBYbsqNZIQT4sBleFt8rhzH7mJBrHH6v95LmeZZ3qZFpWdopx4bQ6maNEZOIJnCLhv7k37DQ== + dependencies: + "@coinbase/wallet-sdk" "3.9.1" + "@metamask/sdk" "0.18.6" + "@safe-global/safe-apps-provider" "0.18.1" + "@safe-global/safe-apps-sdk" "8.1.0" + "@walletconnect/ethereum-provider" "2.11.2" + "@walletconnect/modal" "2.6.2" + +"@wagmi/core@^2.9.0", "@wagmi/core@2.9.1": + version "2.9.1" + resolved "https://registry.npmjs.org/@wagmi/core/-/core-2.9.1.tgz" + integrity sha512-VUILlj0qFmZEa9XpNsYhIaQe3jsJdFGSRSbn+xsvGBo+yZpNxQXuaLo3+ntuv1kTFdw8Qzk17fLGy2U9a0XFdA== + dependencies: + eventemitter3 "5.0.1" + mipd "0.0.5" + zustand "4.4.1" + +"@walletconnect/core@2.11.2": + version "2.11.2" + resolved "https://registry.npmjs.org/@walletconnect/core/-/core-2.11.2.tgz" + integrity sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g== + dependencies: + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.11.2" + "@walletconnect/utils" "2.11.2" + events "^3.3.0" + isomorphic-unfetch "3.1.0" + lodash.isequal "4.5.0" + uint8arrays "^3.1.0" + +"@walletconnect/core@2.12.2": + version "2.12.2" + resolved "https://registry.npmjs.org/@walletconnect/core/-/core-2.12.2.tgz" + integrity sha512-7Adv/b3pp9F42BkvReaaM4KS8NEvlkS7AMtwO3uF/o6aRMKtcfTJq9/jgWdKJh4RP8pPRTRFjCw6XQ/RZtT4aQ== + dependencies: + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.1.2" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.12.2" + "@walletconnect/utils" "2.12.2" + events "^3.3.0" + isomorphic-unfetch "3.1.0" + lodash.isequal "4.5.0" + uint8arrays "^3.1.0" + +"@walletconnect/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz" + integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== + dependencies: + tslib "1.14.1" + +"@walletconnect/ethereum-provider@2.11.2": + version "2.11.2" + resolved "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.11.2.tgz" + integrity sha512-BUDqee0Uy2rCZVkW5Ao3q6Ado/3fePYnFdryVF+YL6bPhj+xQZ5OfKodl+uvs7Rwq++O5wTX2RqOTzpW7+v+Mg== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "^1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.3" + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/modal" "^2.6.2" + "@walletconnect/sign-client" "2.11.2" + "@walletconnect/types" "2.11.2" + "@walletconnect/universal-provider" "2.11.2" + "@walletconnect/utils" "2.11.2" + events "^3.3.0" + +"@walletconnect/events@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz" + integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" + +"@walletconnect/heartbeat@1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz" + integrity sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + +"@walletconnect/jsonrpc-http-connection@^1.0.7": + version "1.0.7" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz" + integrity sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.1" + cross-fetch "^3.1.4" + tslib "1.14.1" + +"@walletconnect/jsonrpc-provider@^1.0.13", "@walletconnect/jsonrpc-provider@1.0.13": + version "1.0.13" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz" + integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/safe-json" "^1.0.2" + tslib "1.14.1" + +"@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3", "@walletconnect/jsonrpc-types@1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz" + integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== + dependencies: + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" + +"@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8", "@walletconnect/jsonrpc-utils@1.0.8": + version "1.0.8" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz" + integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== + dependencies: + "@walletconnect/environment" "^1.0.1" + "@walletconnect/jsonrpc-types" "^1.0.3" + tslib "1.14.1" + +"@walletconnect/jsonrpc-ws-connection@1.0.14": + version "1.0.14" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz" + integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" + ws "^7.5.1" + +"@walletconnect/keyvaluestorage@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz" + integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== + dependencies: + "@walletconnect/safe-json" "^1.0.1" + idb-keyval "^6.2.1" + unstorage "^1.9.0" + +"@walletconnect/logger@^2.0.1", "@walletconnect/logger@^2.1.2": + version "2.1.2" + resolved "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz" + integrity sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw== + dependencies: + "@walletconnect/safe-json" "^1.0.2" + pino "7.11.0" + +"@walletconnect/modal-core@2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.6.2.tgz" + integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== + dependencies: + valtio "1.11.2" + +"@walletconnect/modal-ui@2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz" + integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== + dependencies: + "@walletconnect/modal-core" "2.6.2" + lit "2.8.0" + motion "10.16.2" + qrcode "1.5.3" + +"@walletconnect/modal@^2.6.2", "@walletconnect/modal@2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.6.2.tgz" + integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== + dependencies: + "@walletconnect/modal-core" "2.6.2" + "@walletconnect/modal-ui" "2.6.2" + +"@walletconnect/relay-api@^1.0.9": + version "1.0.10" + resolved "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.10.tgz" + integrity sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.2" + +"@walletconnect/relay-auth@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz" + integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== + dependencies: + "@stablelib/ed25519" "^1.0.2" + "@stablelib/random" "^1.0.1" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + uint8arrays "^3.0.0" + +"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz" + integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== + dependencies: + tslib "1.14.1" + +"@walletconnect/sign-client@2.11.2": + version "2.11.2" + resolved "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.11.2.tgz" + integrity sha512-MfBcuSz2GmMH+P7MrCP46mVE5qhP0ZyWA0FyIH6/WuxQ6G+MgKsGfaITqakpRPsykWOJq8tXMs3XvUPDU413OQ== + dependencies: + "@walletconnect/core" "2.11.2" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.11.2" + "@walletconnect/utils" "2.11.2" + events "^3.3.0" + +"@walletconnect/sign-client@2.12.2": + version "2.12.2" + resolved "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.12.2.tgz" + integrity sha512-cM0ualXj6nVvLqS4BDNRk+ZWR+lubcsz/IHreH+3wYrQ2sV+C0fN6ctrd7MMGZss0C0qacWCx0pm62ZBuoKvqA== + dependencies: + "@walletconnect/core" "2.12.2" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "^2.1.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.12.2" + "@walletconnect/utils" "2.12.2" + events "^3.3.0" + +"@walletconnect/time@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz" + integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== + dependencies: + tslib "1.14.1" + +"@walletconnect/types@2.11.2": + version "2.11.2" + resolved "https://registry.npmjs.org/@walletconnect/types/-/types-2.11.2.tgz" + integrity sha512-p632MFB+lJbip2cvtXPBQslpUdiw1sDtQ5y855bOlAGquay+6fZ4h1DcDePeKQDQM3P77ax2a9aNPZxV6y/h1Q== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + +"@walletconnect/types@2.12.2": + version "2.12.2" + resolved "https://registry.npmjs.org/@walletconnect/types/-/types-2.12.2.tgz" + integrity sha512-9CmwTlPbrFTzayTL9q7xM7s3KTJkS6kYFtH2m1/fHFgALs6pIUjf1qAx1TF2E4tv7SEzLAIzU4NqgYUt2vWXTg== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + +"@walletconnect/universal-provider@^2.8.6": + version "2.12.2" + resolved "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.12.2.tgz" + integrity sha512-0k5ZgSkABopQLVhkiwl2gRGG7dAP4SWiI915pIlyN5sRvWV+qX1ALhWAmRcdv0TXWlKHDcDgPJw/q2sCSAHuMQ== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.7" + "@walletconnect/logger" "^2.1.2" + "@walletconnect/sign-client" "2.12.2" + "@walletconnect/types" "2.12.2" + "@walletconnect/utils" "2.12.2" + events "^3.3.0" + +"@walletconnect/universal-provider@2.11.2": + version "2.11.2" + resolved "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.11.2.tgz" + integrity sha512-cNtIn5AVoDxKAJ4PmB8m5adnf5mYQMUamEUPKMVvOPscfGtIMQEh9peKsh2AN5xcRVDbgluC01Id545evFyymw== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.7" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/sign-client" "2.11.2" + "@walletconnect/types" "2.11.2" + "@walletconnect/utils" "2.11.2" + events "^3.3.0" + +"@walletconnect/utils@2.11.2": + version "2.11.2" + resolved "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.11.2.tgz" + integrity sha512-LyfdmrnZY6dWqlF4eDrx5jpUwsB2bEPjoqR5Z6rXPiHJKUOdJt7az+mNOn5KTSOlRpd1DmozrBrWr+G9fFLYVw== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "^1.0.3" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.11.2" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.3" + uint8arrays "^3.1.0" + +"@walletconnect/utils@2.12.2": + version "2.12.2" + resolved "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.12.2.tgz" + integrity sha512-zf50HeS3SfoLv1N9GPl2IXTZ9TsXfet4usVAsZmX9P6/Xzq7d/7QakjVQCHH/Wk1O9XkcsfeoZoUhRxoMJ5uJw== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "^1.0.3" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.12.2" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.3" + uint8arrays "^3.1.0" + +"@walletconnect/window-getters@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz" + integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== + dependencies: + tslib "1.14.1" + +"@walletconnect/window-metadata@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz" + integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== + dependencies: + "@walletconnect/window-getters" "^1.0.1" + tslib "1.14.1" + +"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== + +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== + +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"@zeit/schemas@2.36.0": + version "2.36.0" + resolved "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz" + integrity sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg== + +abitype@0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/abitype/-/abitype-0.7.1.tgz" + integrity sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ== + +abitype@0.9.8: + version "0.9.8" + resolved "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz" + integrity sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ== + +abitype@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/abitype/-/abitype-1.0.0.tgz" + integrity sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abs-svg-path@^0.1.1, abs-svg-path@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz" + integrity sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA== + +accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.11.3, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@8.12.0: + version "8.12.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +all-contributors-cli@^6.20.0: + version "6.26.1" + resolved "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.26.1.tgz" + integrity sha512-Ymgo3FJACRBEd1eE653FD1J/+uD0kqpUNYfr9zNC1Qby0LgbhDBzB3EF6uvkAbYpycStkk41J+0oo37Lc02yEw== + dependencies: + "@babel/runtime" "^7.7.6" + async "^3.1.0" + chalk "^4.0.0" + didyoumean "^1.2.1" + inquirer "^7.3.3" + json-fixer "^1.6.8" + lodash "^4.11.2" + node-fetch "^2.6.0" + pify "^5.0.0" + yargs "^15.0.1" + optionalDependencies: + prettier "^2" + +almost-equal@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz" + integrity sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A== + +anser@^1.4.9: + version "1.4.10" + resolved "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz" + integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== + +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-fragments@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz" + integrity sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w== + dependencies: + colorette "^1.0.7" + slice-ansi "^2.0.0" + strip-ansi "^5.0.0" + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^3.0.3, anymatch@^3.1.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +appdirsjs@^1.2.4: + version "1.2.7" + resolved "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz" + integrity sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw== + +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +arg@^5.0.2, arg@5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +aria-query@5.1.3: + version "5.1.3" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +array-bounds@^1.0.0, array-bounds@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz" + integrity sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ== + +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-find-index@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== + +array-includes@^3.1.6, array-includes@^3.1.7: + version "3.1.8" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-normalize@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz" + integrity sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg== + dependencies: + array-bounds "^1.0.0" + +array-range@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz" + integrity sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA== + +array-rearrange@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz" + integrity sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +ast-types@0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz" + integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== + dependencies: + tslib "^2.0.1" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-mutex@^0.2.6: + version "0.2.6" + resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz" + integrity sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw== + dependencies: + tslib "^2.0.0" + +async@^3.1.0: + version "3.2.5" + resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +autoprefixer@^10.4.7: + version "10.4.19" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + dependencies: + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== + +axios@^0.27.2: + version "0.27.2" + resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + +babel-core@^7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + +babel-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz" + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== + dependencies: + "@jest/transform" "^28.1.3" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^28.1.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.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + 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@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz" + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== + 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.10: + version "0.4.11" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +"babel-plugin-styled-components@>= 1.12.0": + version "2.1.4" + resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz" + integrity sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + lodash "^4.17.21" + picomatch "^2.3.1" + +babel-plugin-transform-flow-enums@^0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz" + integrity sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ== + dependencies: + "@babel/plugin-syntax-flow" "^7.12.1" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + 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@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz" + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== + dependencies: + babel-plugin-jest-hoist "^28.1.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +binary-search-bounds@^2.0.4: + version "2.0.5" + resolved "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz" + integrity sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA== + +bit-twiddle@^1.0.0, bit-twiddle@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz" + integrity sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA== + +bitmap-sdf@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz" + integrity sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg== + +bl@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz" + integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +bowser@^2.9.0: + version "2.11.0" + resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +boxen@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz" + integrity sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.0" + chalk "^5.0.1" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": + version "4.23.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" + 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" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + 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.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1, bufferutil@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== + dependencies: + node-gyp-build "^4.3.0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelcase@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + +caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: + version "1.0.30001615" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz" + integrity sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ== + +canvas-fit@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz" + integrity sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ== + dependencies: + element-size "^1.1.1" + +chalk-template@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz" + integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg== + dependencies: + chalk "^4.1.2" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.0.1: + version "5.3.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chalk@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz" + integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +char-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz" + integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-launcher@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz" + integrity sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +citty@^0.1.5, citty@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz" + integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== + dependencies: + consola "^3.2.3" + +cjs-module-lexer@^1.0.0: + version "1.3.1" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz" + integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + +clamp@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz" + integrity sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA== + +classcat@^5.0.3, classcat@^5.0.4: + version "5.0.5" + resolved "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz" + integrity sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w== + +classnames@^2.3.1: + version "2.5.1" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clipboardy@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz" + integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== + dependencies: + execa "^8.0.1" + is-wsl "^3.1.0" + is64bit "^2.0.0" + +clipboardy@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz" + integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== + dependencies: + arch "^2.2.0" + execa "^5.1.1" + is-wsl "^2.2.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clsx@^1.1.1, clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +clsx@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +color-alpha@^1.0.4: + version "1.1.3" + resolved "https://registry.npmjs.org/color-alpha/-/color-alpha-1.1.3.tgz" + integrity sha512-krPYBO1RSO5LH4AGb/b6z70O1Ip2o0F0+0cVFN5FN99jfQtZFT08rQyg+9oOBNJYAn3SRwJIFC8jUEOKz7PisA== + dependencies: + color-parse "^1.4.1" + +color-alpha@1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz" + integrity sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A== + dependencies: + color-parse "^1.3.8" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-id@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz" + integrity sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g== + dependencies: + clamp "^1.0.1" + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-normalize@^1.5.0: + version "1.5.2" + resolved "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.2.tgz" + integrity sha512-yYMIoyFJmUoKbCK6sBShljBWfkt8DXVfaZJn9/zvRJkF9eQJDbZhcYC6LdOVy40p4tfVwYYb9cXl8oqpu7pzBw== + dependencies: + color-rgba "^2.2.0" + dtype "^2.0.0" + +color-normalize@1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz" + integrity sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw== + dependencies: + clamp "^1.0.1" + color-rgba "^2.1.1" + dtype "^2.0.0" + +color-parse@^1.3.8, color-parse@^1.4.1, color-parse@^1.4.2: + version "1.4.3" + resolved "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz" + integrity sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A== + dependencies: + color-name "^1.0.0" + +color-parse@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz" + integrity sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg== + dependencies: + color-name "^1.0.0" + +color-rgba@^2.1.1, color-rgba@^2.2.0: + version "2.4.0" + resolved "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz" + integrity sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q== + dependencies: + color-parse "^1.4.2" + color-space "^2.0.0" + +color-rgba@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz" + integrity sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw== + dependencies: + clamp "^1.0.1" + color-parse "^1.3.8" + color-space "^1.14.6" + +color-space@^1.14.6: + version "1.16.0" + resolved "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz" + integrity sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg== + dependencies: + hsluv "^0.0.3" + mumath "^3.3.4" + +color-space@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/color-space/-/color-space-2.0.1.tgz" + integrity sha512-nKqUYlo0vZATVOFHY810BSYjmCARrG7e5R3UE3CQlyjJTvv5kSSmPG1kzm/oDyyqjehM+lW1RnEt9It9GNa5JA== + +colord@^2.9: + version "2.9.3" + resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^1.0.7: + version "1.4.0" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + +colorette@^2.0.14: + version "2.0.20" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-exists@^1.2.8: + version "1.2.9" + resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.15.1, commander@^2.20.0, commander@2: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^9.4.1: + version "9.5.0" + resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.1, compression@1.7.4: + version "1.7.4" + resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confbox@^0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz" + integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect@^3.6.5: + version "3.7.0" + resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +connectkit@^1.7.3: + version "1.7.3" + resolved "https://registry.npmjs.org/connectkit/-/connectkit-1.7.3.tgz" + integrity sha512-q357F3N2I0s+UyTzymWnijJnPp7yZp8z+Qg803OGE/p3TeAv9o9P4uLhiSavgOjeTOxLr0rj1pgPQc3yC7zApw== + dependencies: + buffer "^6.0.3" + detect-browser "^5.3.0" + framer-motion "^6.3.11" + qrcode "^1.5.0" + react-transition-state "^1.1.4" + react-use-measure "^2.1.1" + resize-observer-polyfill "^1.5.1" + styled-components "^5.3.5" + +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + +convert-source-map@^1.4.0: + version "1.9.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-es@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/cookie-es/-/cookie-es-1.1.0.tgz" + integrity sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw== + +cookie@^0.4.0: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-js-compat@^3.31.0, core-js-compat@^3.36.1: + version "3.37.0" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz" + integrity sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA== + dependencies: + browserslist "^4.23.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^5.0.5, cosmiconfig@^5.1.0: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +country-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz" + integrity sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA== + +crc-32@^1.2.0, crc-32@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +cross-fetch@^3.1.4, cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +cross-fetch@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== + dependencies: + node-fetch "^2.6.12" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crossws@^0.2.0, crossws@^0.2.2: + version "0.2.4" + resolved "https://registry.npmjs.org/crossws/-/crossws-0.2.4.tgz" + integrity sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg== + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-font-size-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz" + integrity sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q== + +css-font-stretch-keywords@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz" + integrity sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg== + +css-font-style-keywords@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz" + integrity sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg== + +css-font-weight-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz" + integrity sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA== + +css-font@^1.0.0, css-font@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz" + integrity sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA== + dependencies: + css-font-size-keywords "^1.0.0" + css-font-stretch-keywords "^1.0.1" + css-font-style-keywords "^1.0.1" + css-font-weight-keywords "^1.0.0" + css-global-keywords "^1.0.1" + css-system-font-keywords "^1.0.0" + pick-by-alias "^1.2.0" + string-split-by "^1.0.0" + unquote "^1.1.0" + +css-global-keywords@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz" + integrity sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ== + +css-selector-tokenizer@^0.8: + version "0.8.0" + resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz" + integrity sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + +css-system-font-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz" + integrity sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA== + +css-to-react-native@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +csscolorparser@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz" + integrity sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.0.10, csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +d@^1.0.1, d@^1.0.2, d@1: + version "1.0.2" + resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +d3-array@^1.2.1, d3-array@1: + version "1.2.4" + resolved "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-collection@^1.0.4, d3-collection@1: + version "1.0.7" + resolved "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz" + integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== + +"d3-color@1 - 3": + version "3.1.0" + resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +"d3-dispatch@1 - 3": + version "3.0.1" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +d3-dispatch@1: + version "1.0.6" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz" + integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== + +d3-drag@^3.0.0, "d3-drag@2 - 3": + version "3.0.0" + resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-ease@1 - 3": + version "3.0.1" + resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-force@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz" + integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== + dependencies: + d3-collection "1" + d3-dispatch "1" + d3-quadtree "1" + d3-timer "1" + +d3-format@^1.4.5: + version "1.4.5" + resolved "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz" + integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== + +d3-geo-projection@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz" + integrity sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ== + dependencies: + commander "2" + d3-array "1" + d3-geo "^1.12.0" + resolve "^1.1.10" + +d3-geo@^1.12.0, d3-geo@^1.12.1: + version "1.12.1" + resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz" + integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== + dependencies: + d3-array "1" + +d3-hierarchy@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== + +d3-interpolate@^3.0.1, "d3-interpolate@1 - 3": + version "3.0.1" + resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-quadtree@1: + version "1.0.7" + resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz" + integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== + +d3-selection@^3.0.0, "d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +d3-time-format@^2.2.3: + version "2.3.0" + resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz" + integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== + dependencies: + d3-time "1" + +d3-time@^1.1.0, d3-time@1: + version "1.1.0" + resolved "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz" + integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== + +"d3-timer@1 - 3": + version "3.0.1" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +d3-timer@1: + version "1.0.10" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== + +"d3-transition@2 - 3": + version "3.0.1" + resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +daisyui@^3.5.1: + version "3.9.4" + resolved "https://registry.npmjs.org/daisyui/-/daisyui-3.9.4.tgz" + integrity sha512-fvi2RGH4YV617/6DntOVGcOugOPym9jTGWW2XySb5ZpvdWO4L7bEG77VHirrnbRUEWvIEVXkBpxUz2KFj0rVnA== + dependencies: + colord "^2.9" + css-selector-tokenizer "^0.8" + postcss "^8" + postcss-js "^4" + tailwindcss "^3.1" + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-fns@^2.29.3, date-fns@^2.30.0: + version "2.30.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +dayjs@^1.8.15: + version "1.11.11" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz" + integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@^2.2.0: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@2: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decode-uri-component@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^2.0.5: + version "2.2.3" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2, deepmerge@^4.3.0: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +defu@^6.1.3, defu@^6.1.4: + version "6.1.4" + resolved "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +denodeify@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz" + integrity sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destr@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz" + integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-browser@^5.2.0, detect-browser@^5.3.0, detect-browser@5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + +detect-kerning@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz" + integrity sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +didyoumean@^1.2.1, didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diff-sequences@^28.1.1: + version "28.1.1" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz" + integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +dijkstrajs@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz" + integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +draw-svg-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz" + integrity sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg== + dependencies: + abs-svg-path "~0.1.1" + normalize-svg-path "~0.1.0" + +dtype@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz" + integrity sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg== + +dup@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz" + integrity sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA== + +duplexify@^3.4.5: + version "3.7.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +duplexify@^4.1.2: + version "4.1.3" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" + integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.2" + +earcut@^2.1.5, earcut@^2.2.2: + version "2.2.4" + resolved "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz" + integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +eciesjs@^0.3.15, eciesjs@^0.3.16: + version "0.3.18" + resolved "https://registry.npmjs.org/eciesjs/-/eciesjs-0.3.18.tgz" + integrity sha512-RQhegEtLSyIiGJmFTZfvCTHER/fymipXFVx6OwSRYD6hOuy+6Kjpk0dGvIfP9kxn/smBpxQy71uxpGO406ITCw== + dependencies: + "@types/secp256k1" "^4.0.4" + futoin-hkdf "^1.5.3" + secp256k1 "^5.0.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.668: + version "1.4.756" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.756.tgz" + integrity sha512-RJKZ9+vEBMeiPAvKNWyZjuYyUqMndcP1f335oHqn3BEQbs2NFtVrnK5+6Xg5wSM9TknNNpWghGDUCKGYF+xWXw== + +element-size@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz" + integrity sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ== + +elementary-circuits-directed-graph@^1.0.4: + version "1.3.1" + resolved "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz" + integrity sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ== + dependencies: + strongly-connected-components "^1.0.1" + +elliptic@^6.5.4: + version "6.5.5" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz" + integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== + 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.10.2: + version "0.10.2" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~6.5.2: + version "6.5.3" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz" + integrity sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.11.0" + xmlhttprequest-ssl "~2.0.0" + +engine.io-parser@~5.2.1: + version "5.2.2" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== + +enhanced-resolve@^5.16.0: + version "5.16.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +envinfo@^7.10.0, envinfo@^7.7.3: + version "7.13.0" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.1.4" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +errorhandler@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz" + integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== + dependencies: + accepts "~1.3.7" + escape-html "~1.0.3" + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-iterator-helpers@^1.0.15: + version "1.0.19" + resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.2" + safe-array-concat "^1.1.2" + +es-module-lexer@^1.2.1: + version "1.5.2" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz" + integrity sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +esbuild-jest@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/esbuild-jest/-/esbuild-jest-0.4.0.tgz" + integrity sha512-KpL7u1SyVRme2uBVenAbM4yipDqiy1kjx43EiQQnxz4cEXI4Q6UBRIldaQkBNr3GrqNGDz8xYwb0heUvznxtHA== + +esbuild@^0.18.10, esbuild@>=0.8.36: + version "0.18.20" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@^8.5.0: + version "8.10.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== + +eslint-config-typescript@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eslint-config-typescript/-/eslint-config-typescript-3.0.0.tgz" + integrity sha512-CwC2cQ29OLE1OUw0k+Twpc6wpCdenG8rrErl89sWrzmMpWfkulyeQS1HJhhjU0B3Tb4k41zdei4LtX26x5m60Q== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-import-resolver-typescript@^2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz" + integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== + dependencies: + debug "^4.3.4" + glob "^7.2.0" + is-glob "^4.0.3" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@*, eslint-plugin-import@^2.26.0: + version "2.29.1" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.8.0" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.entries "^1.1.7" + object.fromentries "^2.0.7" + +eslint-plugin-prettier@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^4.5.0: + version "4.6.2" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + +eslint-plugin-sort-keys-fix@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/eslint-plugin-sort-keys-fix/-/eslint-plugin-sort-keys-fix-1.1.2.tgz" + integrity sha512-DNPHFGCA0/hZIsfODbeLZqaGY/+q3vgtshF85r+YWDNCQ2apd9PNs/zL6ttKm0nD1IFwvxyg3YOTI7FHl4unrw== + dependencies: + espree "^6.1.2" + esutils "^2.0.2" + natural-compare "^1.4.0" + requireindex "~1.2.0" + +eslint-scope@^5.1.1, eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.15.0, eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=7.28.0: + version "8.57.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eth-block-tracker@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-7.1.0.tgz" + integrity sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg== + dependencies: + "@metamask/eth-json-rpc-provider" "^1.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^5.0.1" + json-rpc-random-id "^1.0.1" + pify "^3.0.0" + +eth-json-rpc-filters@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-6.0.1.tgz" + integrity sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig== + dependencies: + "@metamask/safe-event-emitter" "^3.0.0" + async-mutex "^0.2.6" + eth-query "^2.1.2" + json-rpc-engine "^6.1.0" + pify "^5.0.0" + +eth-query@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz" + integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== + dependencies: + json-rpc-random-id "^1.0.0" + xtend "^4.0.1" + +eth-rpc-errors@^4.0.2, eth-rpc-errors@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz" + integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== + dependencies: + fast-safe-stringify "^2.0.6" + +ethereum-cryptography@^2.0.0: + version "2.1.3" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz" + integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== + dependencies: + "@noble/curves" "1.3.0" + "@noble/hashes" "1.3.3" + "@scure/bip32" "1.3.3" + "@scure/bip39" "1.2.2" + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0, event-target-shim@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter2@^6.4.7: + version "6.4.9" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz" + integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg== + +eventemitter3@^5.0.1, eventemitter3@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +events@^3.2.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^1.0.7: + version "1.1.2" + resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.1.2.tgz" + integrity sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA== + +execa@^5.0.0, execa@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== + dependencies: + "@jest/expect-utils" "^28.1.3" + jest-get-type "^28.0.2" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + +expect@^29.0.0: + version "29.7.0" + resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz" + 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" + +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extension-port-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/extension-port-stream/-/extension-port-stream-3.0.0.tgz" + integrity sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw== + dependencies: + readable-stream "^3.6.2 || ^4.4.2" + webextension-polyfill ">=0.10.0 <1.0" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +falafel@^2.1.0: + version "2.2.5" + resolved "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz" + integrity sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ== + dependencies: + acorn "^7.1.1" + isarray "^2.0.1" + +fancy-canvas@0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/fancy-canvas/-/fancy-canvas-0.2.2.tgz" + integrity sha512-50qi8xA0QkHbjmb8h7XQ6k2fvD7y/yMfiUw9YTarJ7rWrq6o5/3CCXPouYk+XSLASvvxtjyiQLRBFt3qkE3oyA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-equals@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz" + integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg== + +fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-isnumeric@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz" + integrity sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw== + dependencies: + is-string-blank "^1.0.1" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-redact@^3.0.0: + version "3.5.0" + resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz" + integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== + +fast-safe-stringify@^2.0.6: + version "2.1.1" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fast-xml-parser@^4.0.12, fast-xml-parser@^4.2.4: + version "4.3.6" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz" + integrity sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw== + dependencies: + strnum "^1.0.5" + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fetch-cookie@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz" + integrity sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA== + dependencies: + tough-cookie "^2.3.3 || ^3.0.1 || ^4.0.0" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +flatten-vertex-data@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz" + integrity sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw== + dependencies: + dtype "^2.0.0" + +flow-enums-runtime@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz" + integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== + +flow-parser@0.*: + version "0.235.1" + resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.235.1.tgz" + integrity sha512-s04193L4JE+ntEcQXbD6jxRRlyj9QXcgEl2W6xSjH4l9x4b0eHoCHfbYHjqf9LdZFUiM5LhgpiqsvLj/AyOyYQ== + +follow-redirects@^1.14.9: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +font-atlas@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz" + integrity sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg== + dependencies: + css-font "^1.0.0" + +font-measure@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz" + integrity sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA== + dependencies: + css-font "^1.2.0" + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +framer-motion@^6.3.11: + version "6.5.1" + resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz" + integrity sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw== + dependencies: + "@motionone/dom" "10.12.0" + framesync "6.0.1" + hey-listen "^1.0.8" + popmotion "11.0.3" + style-value-types "5.0.0" + tslib "^2.1.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + +framesync@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz" + integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA== + dependencies: + tslib "^2.1.0" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from2@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +futoin-hkdf@^1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.5.3.tgz" + integrity sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +geojson-vt@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz" + integrity sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-canvas-context@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz" + integrity sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port-please@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz" + integrity sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +gl-mat4@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz" + integrity sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA== + +gl-matrix@^3.2.1: + version "3.4.3" + resolved "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz" + integrity sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA== + +gl-text@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz" + integrity sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ== + dependencies: + bit-twiddle "^1.0.2" + color-normalize "^1.5.0" + css-font "^1.2.0" + detect-kerning "^2.1.2" + es6-weak-map "^2.0.3" + flatten-vertex-data "^1.0.2" + font-atlas "^2.1.0" + font-measure "^1.2.2" + gl-util "^3.1.2" + is-plain-obj "^1.1.0" + object-assign "^4.1.1" + parse-rect "^1.2.0" + parse-unit "^1.0.1" + pick-by-alias "^1.2.0" + regl "^2.0.0" + to-px "^1.0.1" + typedarray-pool "^1.1.0" + +gl-util@^3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz" + integrity sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA== + dependencies: + is-browser "^2.0.1" + is-firefox "^1.0.3" + is-plain-obj "^1.1.0" + number-is-integer "^1.0.1" + object-assign "^4.1.0" + pick-by-alias "^1.2.0" + weak-map "^1.0.5" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^10.3.10: + version "10.3.12" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.10.2" + +glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +glsl-inject-defines@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz" + integrity sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A== + dependencies: + glsl-token-inject-block "^1.0.0" + glsl-token-string "^1.0.1" + glsl-tokenizer "^2.0.2" + +glsl-resolve@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz" + integrity sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA== + dependencies: + resolve "^0.6.1" + xtend "^2.1.2" + +glsl-token-assignments@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz" + integrity sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ== + +glsl-token-defines@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz" + integrity sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ== + dependencies: + glsl-tokenizer "^2.0.0" + +glsl-token-depth@^1.1.0, glsl-token-depth@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz" + integrity sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg== + +glsl-token-descope@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz" + integrity sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw== + dependencies: + glsl-token-assignments "^2.0.0" + glsl-token-depth "^1.1.0" + glsl-token-properties "^1.0.0" + glsl-token-scope "^1.1.0" + +glsl-token-inject-block@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz" + integrity sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA== + +glsl-token-properties@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz" + integrity sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA== + +glsl-token-scope@^1.1.0, glsl-token-scope@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz" + integrity sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A== + +glsl-token-string@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz" + integrity sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg== + +glsl-token-whitespace-trim@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz" + integrity sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ== + +glsl-tokenizer@^2.0.0, glsl-tokenizer@^2.0.2: + version "2.1.5" + resolved "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz" + integrity sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA== + dependencies: + through2 "^0.6.3" + +glslify-bundle@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz" + integrity sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A== + dependencies: + glsl-inject-defines "^1.0.1" + glsl-token-defines "^1.0.0" + glsl-token-depth "^1.1.1" + glsl-token-descope "^1.0.2" + glsl-token-scope "^1.1.1" + glsl-token-string "^1.0.1" + glsl-token-whitespace-trim "^1.0.0" + glsl-tokenizer "^2.0.2" + murmurhash-js "^1.0.0" + shallow-copy "0.0.1" + +glslify-deps@^1.2.5: + version "1.3.2" + resolved "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz" + integrity sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag== + dependencies: + "@choojs/findup" "^0.2.0" + events "^3.2.0" + glsl-resolve "0.0.1" + glsl-tokenizer "^2.0.0" + graceful-fs "^4.1.2" + inherits "^2.0.1" + map-limit "0.0.1" + resolve "^1.0.0" + +glslify@^7.0.0: + version "7.1.1" + resolved "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz" + integrity sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog== + dependencies: + bl "^2.2.1" + concat-stream "^1.5.2" + duplexify "^3.4.5" + falafel "^2.1.0" + from2 "^2.3.0" + glsl-resolve "0.0.1" + glsl-token-whitespace-trim "^1.0.0" + glslify-bundle "^5.0.0" + glslify-deps "^1.2.5" + minimist "^1.2.5" + resolve "^1.1.5" + stack-trace "0.0.9" + static-eval "^2.0.5" + through2 "^2.0.1" + xtend "^4.0.0" + +goober@^2.1.10: + version "2.1.14" + resolved "https://registry.npmjs.org/goober/-/goober-2.1.14.tgz" + integrity sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg== + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +grid-index@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz" + integrity sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + +h3@^1.10.2, h3@^1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/h3/-/h3-1.11.1.tgz" + integrity sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A== + dependencies: + cookie-es "^1.0.0" + crossws "^0.2.2" + defu "^6.1.4" + destr "^2.0.3" + iron-webcrypto "^1.0.0" + ohash "^1.1.3" + radix3 "^1.1.0" + ufo "^1.4.0" + uncrypto "^0.1.3" + unenv "^1.9.0" + +harmony-reflect@^1.4.6: + version "1.6.2" + resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-hover@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz" + integrity sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg== + dependencies: + is-browser "^2.0.1" + +has-passive-events@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz" + integrity sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw== + dependencies: + is-browser "^2.0.1" + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hermes-estree@0.19.1: + version "0.19.1" + resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz" + integrity sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g== + +hermes-estree@0.20.1: + version "0.20.1" + resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz" + integrity sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg== + +hermes-parser@0.19.1: + version "0.19.1" + resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz" + integrity sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A== + dependencies: + hermes-estree "0.19.1" + +hermes-parser@0.20.1: + version "0.20.1" + resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz" + integrity sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA== + dependencies: + hermes-estree "0.20.1" + +hermes-profile-transformer@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz" + integrity sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ== + dependencies: + source-map "^0.7.3" + +hey-listen@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz" + integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hsluv@^0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz" + integrity sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-parse-stringify@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz" + integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== + dependencies: + void-elements "3.1.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-shutdown@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz" + integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +i18next-browser-languagedetector@7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz" + integrity sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA== + dependencies: + "@babel/runtime" "^7.19.4" + +"i18next@>= 23.2.3", i18next@22.5.1: + version "22.5.1" + resolved "https://registry.npmjs.org/i18next/-/i18next-22.5.1.tgz" + integrity sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA== + dependencies: + "@babel/runtime" "^7.20.6" + +iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +idb-keyval@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== + +identity-obj-proxy@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz" + integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.12, ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +image-size@^1.0.2: + version "1.1.1" + resolved "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + dependencies: + queue "6.0.2" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@^7.3.3: + version "7.3.3" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +internal-slot@^1.0.4, internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +invariant@^2.2.4, invariant@2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +iron-webcrypto@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.1.1.tgz" + integrity sha512-5xGwQUWHQSy039rFr+5q/zOmj7GP0Ypzvo34Ep+61bPIhaLduEDp/PvLGlU3awD2mzWUR0weN2vJ1mILydFPEg== + +is-arguments@^1.0.4, is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-browser@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz" + integrity sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + +is-finite@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-firefox@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz" + integrity sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.10, is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-iexplorer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz" + integrity sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg== + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-map@^2.0.2, is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-mobile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz" + integrity sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-port-reachable@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz" + integrity sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.2, is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-string-blank@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz" + integrity sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-svg-path@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz" + integrity sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13, is-typed-array@^1.1.3: + version "1.1.13" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +is64bit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz" + integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== + dependencies: + system-architecture "^0.1.0" + +isarray@^2.0.1, isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-unfetch@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz" + integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== + dependencies: + node-fetch "^2.6.1" + unfetch "^4.2.0" + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +isows@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz" + integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" + 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-report@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + 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.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + 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.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jackspeak@^2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-changed-files@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz" + integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== + dependencies: + execa "^5.0.0" + p-limit "^3.1.0" + +jest-circus@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz" + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + is-generator-fn "^2.0.0" + jest-each "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + p-limit "^3.1.0" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz" + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== + dependencies: + "@jest/core" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + prompts "^2.0.1" + yargs "^17.3.1" + +jest-config@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz" + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^28.1.3" + jest-environment-node "^28.1.3" + jest-get-type "^28.0.2" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-runner "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^28.1.3" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== + dependencies: + chalk "^4.0.0" + diff-sequences "^28.1.1" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz" + 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@^28.1.1: + version "28.1.1" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz" + integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== + dependencies: + detect-newline "^3.0.0" + +jest-each@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz" + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== + dependencies: + "@jest/types" "^28.1.3" + chalk "^4.0.0" + jest-get-type "^28.0.2" + jest-util "^28.1.3" + pretty-format "^28.1.3" + +jest-environment-node@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz" + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + jest-util "^28.1.3" + +jest-environment-node@^29.6.3: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" + 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@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-get-type@^28.0.2: + version "28.0.2" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" + integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz" + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== + dependencies: + "@jest/types" "^28.1.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 "^28.0.2" + jest-util "^28.1.3" + jest-worker "^28.1.3" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz" + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== + dependencies: + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-matcher-utils@^27.0.0: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== + dependencies: + chalk "^4.0.0" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz" + 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@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" + 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@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz" + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" + 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.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^28.0.0, jest-regex-util@^28.0.2: + version "28.0.2" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" + integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== + +jest-resolve-dependencies@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz" + integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== + dependencies: + jest-regex-util "^28.0.2" + jest-snapshot "^28.1.3" + +jest-resolve@*, jest-resolve@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz" + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-pnp-resolver "^1.2.2" + jest-util "^28.1.3" + jest-validate "^28.1.3" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz" + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/environment" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.10.2" + graceful-fs "^4.2.9" + jest-docblock "^28.1.1" + jest-environment-node "^28.1.3" + jest-haste-map "^28.1.3" + jest-leak-detector "^28.1.3" + jest-message-util "^28.1.3" + jest-resolve "^28.1.3" + jest-runtime "^28.1.3" + jest-util "^28.1.3" + jest-watcher "^28.1.3" + jest-worker "^28.1.3" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz" + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/globals" "^28.1.3" + "@jest/source-map" "^28.1.2" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz" + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/babel__traverse" "^7.0.6" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^28.1.3" + graceful-fs "^4.2.9" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + jest-haste-map "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + natural-compare "^1.4.0" + pretty-format "^28.1.3" + semver "^7.3.5" + +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" + 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@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz" + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== + dependencies: + "@jest/types" "^28.1.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^28.0.2" + leven "^3.1.0" + pretty-format "^28.1.3" + +jest-validate@^29.6.3: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" + 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-watch-typeahead@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz" + integrity sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + jest-regex-util "^28.0.0" + jest-watcher "^28.0.0" + slash "^4.0.0" + string-length "^5.0.1" + strip-ansi "^7.0.1" + +jest-watcher@^28.0.0, jest-watcher@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== + dependencies: + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^28.1.3" + string-length "^4.0.1" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.6.3: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" + 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@^27.0.0 || ^28.0.0", jest@^28.0.0: + version "28.1.3" + resolved "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz" + integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== + dependencies: + "@jest/core" "^28.1.3" + "@jest/types" "^28.1.3" + import-local "^3.0.2" + jest-cli "^28.1.3" + +jiti@^1.21.0: + version "1.21.0" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +joi@^17.2.1: + version "17.13.1" + resolved "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz" + integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +jotai@^1.6.7: + version "1.13.1" + resolved "https://registry.npmjs.org/jotai/-/jotai-1.13.1.tgz" + integrity sha512-RUmH1S4vLsG3V6fbGlKzGJnLrDcC/HNb5gH2AeA9DzuJknoVxSGvvg8OBB7lke+gDc4oXmdVsaKn/xDUhWZ0vw== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsc-android@^250231.0.0: + version "250231.0.0" + resolved "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz" + integrity sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw== + +jsc-safe-url@^0.2.2: + version "0.2.4" + resolved "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz" + integrity sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q== + +jscodeshift@^0.14.0: + version "0.14.0" + resolved "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz" + integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== + dependencies: + "@babel/core" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/preset-flow" "^7.13.13" + "@babel/preset-typescript" "^7.13.0" + "@babel/register" "^7.13.16" + babel-core "^7.0.0-bridge.0" + chalk "^4.1.2" + flow-parser "0.*" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + neo-async "^2.5.0" + node-dir "^0.1.17" + recast "^0.21.0" + temp "^0.8.4" + write-file-atomic "^2.3.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-fixer@^1.6.8: + version "1.6.15" + resolved "https://registry.npmjs.org/json-fixer/-/json-fixer-1.6.15.tgz" + integrity sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw== + dependencies: + "@babel/runtime" "^7.18.9" + chalk "^4.1.2" + pegjs "^0.10.0" + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-rpc-engine@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz" + integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== + dependencies: + "@metamask/safe-event-emitter" "^2.0.0" + eth-rpc-errors "^4.0.2" + +json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz" + integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +kdbush@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz" + integrity sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew== + +keccak@^3.0.3: + version "3.0.4" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +keyvaluestorage-interface@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz" + integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +ky@^1.2.0: + version "1.2.4" + resolved "https://registry.npmjs.org/ky/-/ky-1.2.4.tgz" + integrity sha512-CfSrf4a0yj1n6WgPT6kQNQOopIGLkQzqSAXo05oKByaH7G3SiqW4a8jGox0p9whMXqO49H7ljgigivrMyycAVA== + +language-subtag-registry@^0.3.20: + version "0.3.22" + resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + +latest-version@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-9.0.0.tgz" + integrity sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA== + dependencies: + package-json "^10.0.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lighthouse-logger@^1.0.0: + version "1.4.2" + resolved "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz" + integrity sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g== + dependencies: + debug "^2.6.9" + marky "^1.2.2" + +"lightweight-charts@git+https://github.com/ntf/lightweight-charts.git": + version "4.0.0" + resolved "git+ssh://git@github.com/ntf/lightweight-charts.git#a2a2223e7e44fb95b80e7a42796ced0daf79a1cd" + dependencies: + fancy-canvas "0.2.2" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +listhen@^1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/listhen/-/listhen-1.7.2.tgz" + integrity sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g== + dependencies: + "@parcel/watcher" "^2.4.1" + "@parcel/watcher-wasm" "^2.4.1" + citty "^0.1.6" + clipboardy "^4.0.0" + consola "^3.2.3" + crossws "^0.2.0" + defu "^6.1.4" + get-port-please "^3.1.2" + h3 "^1.10.2" + http-shutdown "^1.2.2" + jiti "^1.21.0" + mlly "^1.6.1" + node-forge "^1.3.1" + pathe "^1.1.2" + std-env "^3.7.0" + ufo "^1.4.0" + untun "^0.1.3" + uqr "^0.1.2" + +lit-element@^3.3.0: + version "3.3.3" + resolved "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz" + integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" + "@lit/reactive-element" "^1.3.0" + lit-html "^2.8.0" + +lit-html@^2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz" + integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz" + integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== + dependencies: + "@lit/reactive-element" "^1.6.0" + lit-element "^3.3.0" + lit-html "^2.8.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.isequal@4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + +lodash@^4.11.2, lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +logkitty@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz" + integrity sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ== + dependencies: + ansi-fragments "^0.2.1" + dayjs "^1.8.15" + yargs "^15.1.0" + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-limit@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz" + integrity sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg== + dependencies: + once "~1.3.0" + +"mapbox-gl@>=0.32.1 <2.0.0": + version "1.13.3" + resolved "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz" + integrity sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg== + dependencies: + "@mapbox/geojson-rewind" "^0.5.2" + "@mapbox/geojson-types" "^1.0.2" + "@mapbox/jsonlint-lines-primitives" "^2.0.2" + "@mapbox/mapbox-gl-supported" "^1.5.0" + "@mapbox/point-geometry" "^0.1.0" + "@mapbox/tiny-sdf" "^1.1.1" + "@mapbox/unitbezier" "^0.0.0" + "@mapbox/vector-tile" "^1.3.1" + "@mapbox/whoots-js" "^3.1.0" + csscolorparser "~1.0.3" + earcut "^2.2.2" + geojson-vt "^3.2.1" + gl-matrix "^3.2.1" + grid-index "^1.1.0" + murmurhash-js "^1.0.0" + pbf "^3.2.1" + potpack "^1.0.1" + quickselect "^2.0.0" + rw "^1.3.3" + supercluster "^7.1.0" + tinyqueue "^2.0.3" + vt-pbf "^3.1.1" + +marky@^1.2.2: + version "1.2.5" + resolved "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz" + integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== + +math-log2@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz" + integrity sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA== + +memoize-one@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz" + integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +metro-babel-transformer@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.9.tgz" + integrity sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ== + dependencies: + "@babel/core" "^7.20.0" + hermes-parser "0.20.1" + nullthrows "^1.1.1" + +metro-cache-key@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.9.tgz" + integrity sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg== + +metro-cache@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.9.tgz" + integrity sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w== + dependencies: + metro-core "0.80.9" + rimraf "^3.0.2" + +metro-config@^0.80.3, metro-config@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.80.9.tgz" + integrity sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg== + dependencies: + connect "^3.6.5" + cosmiconfig "^5.0.5" + jest-validate "^29.6.3" + metro "0.80.9" + metro-cache "0.80.9" + metro-core "0.80.9" + metro-runtime "0.80.9" + +metro-core@^0.80.3, metro-core@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.80.9.tgz" + integrity sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg== + dependencies: + lodash.throttle "^4.1.1" + metro-resolver "0.80.9" + +metro-file-map@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.9.tgz" + integrity sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ== + dependencies: + anymatch "^3.0.3" + debug "^2.2.0" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + invariant "^2.2.4" + jest-worker "^29.6.3" + micromatch "^4.0.4" + node-abort-controller "^3.1.1" + nullthrows "^1.1.1" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +metro-minify-terser@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.9.tgz" + integrity sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A== + dependencies: + terser "^5.15.0" + +metro-resolver@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.9.tgz" + integrity sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w== + +metro-runtime@^0.80.3, metro-runtime@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.9.tgz" + integrity sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg== + dependencies: + "@babel/runtime" "^7.0.0" + +metro-source-map@^0.80.3, metro-source-map@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.9.tgz" + integrity sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw== + dependencies: + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + invariant "^2.2.4" + metro-symbolicate "0.80.9" + nullthrows "^1.1.1" + ob1 "0.80.9" + source-map "^0.5.6" + vlq "^1.0.0" + +metro-symbolicate@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.9.tgz" + integrity sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA== + dependencies: + invariant "^2.2.4" + metro-source-map "0.80.9" + nullthrows "^1.1.1" + source-map "^0.5.6" + through2 "^2.0.1" + vlq "^1.0.0" + +metro-transform-plugins@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.9.tgz" + integrity sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + nullthrows "^1.1.1" + +metro-transform-worker@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.9.tgz" + integrity sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/parser" "^7.20.0" + "@babel/types" "^7.20.0" + metro "0.80.9" + metro-babel-transformer "0.80.9" + metro-cache "0.80.9" + metro-cache-key "0.80.9" + metro-minify-terser "0.80.9" + metro-source-map "0.80.9" + metro-transform-plugins "0.80.9" + nullthrows "^1.1.1" + +metro@^0.80.3, metro@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/metro/-/metro-0.80.9.tgz" + integrity sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/parser" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + accepts "^1.3.7" + chalk "^4.0.0" + ci-info "^2.0.0" + connect "^3.6.5" + debug "^2.2.0" + denodeify "^1.2.1" + error-stack-parser "^2.0.6" + graceful-fs "^4.2.4" + hermes-parser "0.20.1" + image-size "^1.0.2" + invariant "^2.2.4" + jest-worker "^29.6.3" + jsc-safe-url "^0.2.2" + lodash.throttle "^4.1.1" + metro-babel-transformer "0.80.9" + metro-cache "0.80.9" + metro-cache-key "0.80.9" + metro-config "0.80.9" + metro-core "0.80.9" + metro-file-map "0.80.9" + metro-resolver "0.80.9" + metro-runtime "0.80.9" + metro-source-map "0.80.9" + metro-symbolicate "0.80.9" + metro-transform-plugins "0.80.9" + metro-transform-worker "0.80.9" + mime-types "^2.1.27" + node-fetch "^2.2.0" + nullthrows "^1.1.1" + rimraf "^3.0.2" + serialize-error "^2.1.0" + source-map "^0.5.6" + strip-ansi "^6.0.0" + throat "^5.0.0" + ws "^7.5.1" + yargs "^17.6.2" + +micro-ftch@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" + integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime@^2.4.1: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2, minimatch@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.1: + version "9.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: + version "7.1.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.0.tgz" + integrity sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig== + +mipd@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/mipd/-/mipd-0.0.5.tgz" + integrity sha512-gbKA784D2WKb5H/GtqEv+Ofd1S9Zj+Z/PGDIl1u1QAbswkxD28BQ5bSXQxkeBzPBABg1iDSbiwGG1XqlOxRspA== + dependencies: + viem "^1.1.4" + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mlly@^1.6.1: + version "1.7.0" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz" + integrity sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.1.0" + ufo "^1.5.3" + +moment@^2.29.3: + version "2.30.1" + resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +motion@10.16.2: + version "10.16.2" + resolved "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz" + integrity sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/dom" "^10.16.2" + "@motionone/svelte" "^10.16.2" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + "@motionone/vue" "^10.16.2" + +mouse-change@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz" + integrity sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ== + dependencies: + mouse-event "^1.0.0" + +mouse-event-offset@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz" + integrity sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w== + +mouse-event@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz" + integrity sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw== + +mouse-wheel@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz" + integrity sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw== + dependencies: + right-now "^1.0.0" + signum "^1.0.0" + to-px "^1.0.1" + +mri@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@^2.1.1, ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +mumath@^3.3.4: + version "3.3.4" + resolved "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz" + integrity sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA== + dependencies: + almost-equal "^1.1.0" + +murmurhash-js@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz" + integrity sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +napi-wasm@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/napi-wasm/-/napi-wasm-1.1.0.tgz" + integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== + +native-promise-only@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz" + integrity sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.5.2: + version "2.9.1" + resolved "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.5.0, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +nocache@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz" + integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== + +node-abort-controller@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-addon-api@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz" + integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== + +node-dir@^0.1.17: + version "0.1.17" + resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" + integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== + dependencies: + minimatch "^3.0.2" + +node-fetch-native@^1.6.1, node-fetch-native@^1.6.2, node-fetch-native@^1.6.3: + version "1.6.4" + resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz" + integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== + +node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^1, node-forge@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.8.1" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-notifier@^10.0.1, "node-notifier@^8.0.1 || ^9.0.0 || ^10.0.0": + version "10.0.1" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz" + integrity sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.5" + shellwords "^0.1.1" + uuid "^8.3.2" + which "^2.0.2" + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +node-stream-zip@^1.9.1: + version "1.15.0" + resolved "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz" + integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-svg-path@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz" + integrity sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg== + dependencies: + svg-arc-to-cubic-bezier "^3.0.0" + +normalize-svg-path@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz" + integrity sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +number-is-integer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz" + integrity sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg== + dependencies: + is-finite "^1.0.1" + +ob1@0.80.9: + version "0.80.9" + resolved "https://registry.npmjs.org/ob1/-/ob1-0.80.9.tgz" + integrity sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA== + +obj-multiplex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/obj-multiplex/-/obj-multiplex-1.0.0.tgz" + integrity sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA== + dependencies: + end-of-stream "^1.4.0" + once "^1.4.0" + readable-stream "^2.3.3" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.7: + version "1.1.8" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.7: + version "2.0.8" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.1.6, object.values@^1.1.7: + version "1.2.0" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +ofetch@^1.3.3: + version "1.3.4" + resolved "https://registry.npmjs.org/ofetch/-/ofetch-1.3.4.tgz" + integrity sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw== + dependencies: + destr "^2.0.3" + node-fetch-native "^1.6.3" + ufo "^1.5.3" + +ohash@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz" + integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== + +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + integrity sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@^6.2.0: + version "6.4.0" + resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +open@^7.0.3: + version "7.4.2" + resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +open@^8.4.0: + version "8.4.2" + resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/package-json/-/package-json-10.0.0.tgz" + integrity sha512-w34pqp733w35nElGG6eH1OnDnHEWud4uxruQ2nKzY/Uy0uOJmWFdjDcAC+xAD4goVuBZStwaAEBS21BANv83HQ== + dependencies: + ky "^1.2.0" + registry-auth-token "^5.0.2" + registry-url "^6.0.1" + semver "^7.6.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parenthesis@^3.1.5: + version "3.1.8" + resolved "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz" + integrity sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw== + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-rect@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz" + integrity sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA== + dependencies: + pick-by-alias "^1.2.0" + +parse-svg-path@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz" + integrity sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ== + +parse-unit@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz" + integrity sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathe@^1.1.1, pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pbf@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz" + integrity sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ== + dependencies: + ieee754 "^1.1.12" + resolve-protobuf-schema "^2.1.0" + +pegjs@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz" + integrity sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +pick-by-alias@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz" + integrity sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pino-abstract-transport@v0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz" + integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== + dependencies: + duplexify "^4.1.2" + split2 "^4.0.0" + +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== + +pino@7.11.0: + version "7.11.0" + resolved "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" + +pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-types@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.0.tgz" + integrity sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA== + dependencies: + confbox "^0.1.7" + mlly "^1.6.1" + pathe "^1.1.2" + +plotly.js@^2.18.1, plotly.js@>1.34.0: + version "2.32.0" + resolved "https://registry.npmjs.org/plotly.js/-/plotly.js-2.32.0.tgz" + integrity sha512-QBYyfVFs1XdoXQBq/f7SoiqQD/BEyDA5WwvN1NwY4ZTrTX6GmJ5jE5ydlt1I4K8i5W6H1atgti31jcSYD6StKA== + dependencies: + "@plotly/d3" "3.8.1" + "@plotly/d3-sankey" "0.7.2" + "@plotly/d3-sankey-circular" "0.33.1" + "@plotly/mapbox-gl" "1.13.4" + "@turf/area" "^6.4.0" + "@turf/bbox" "^6.4.0" + "@turf/centroid" "^6.0.2" + base64-arraybuffer "^1.0.2" + canvas-fit "^1.5.0" + color-alpha "1.0.4" + color-normalize "1.5.0" + color-parse "2.0.0" + color-rgba "2.1.1" + country-regex "^1.1.0" + d3-force "^1.2.1" + d3-format "^1.4.5" + d3-geo "^1.12.1" + d3-geo-projection "^2.9.0" + d3-hierarchy "^1.1.9" + d3-interpolate "^3.0.1" + d3-time "^1.1.0" + d3-time-format "^2.2.3" + fast-isnumeric "^1.1.4" + gl-mat4 "^1.2.0" + gl-text "^1.4.0" + has-hover "^1.0.1" + has-passive-events "^1.0.0" + is-mobile "^4.0.0" + mouse-change "^1.4.0" + mouse-event-offset "^3.0.2" + mouse-wheel "^1.2.0" + native-promise-only "^0.8.1" + parse-svg-path "^0.1.2" + point-in-polygon "^1.1.0" + polybooljs "^1.2.0" + probe-image-size "^7.2.3" + regl "npm:@plotly/regl@^2.1.2" + regl-error2d "^2.0.12" + regl-line2d "^3.1.3" + regl-scatter2d "^3.3.1" + regl-splom "^1.0.14" + strongly-connected-components "^1.0.1" + superscript-text "^1.0.0" + svg-path-sdf "^1.1.3" + tinycolor2 "^1.4.2" + to-px "1.0.1" + topojson-client "^3.1.0" + webgl-context "^2.2.0" + world-calendars "^1.0.3" + +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + +point-in-polygon@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz" + integrity sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw== + +polybooljs@^1.2.0: + version "1.2.2" + resolved "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz" + integrity sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg== + +pony-cause@^2.1.10: + version "2.1.11" + resolved "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz" + integrity sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg== + +popmotion@11.0.3: + version "11.0.3" + resolved "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz" + integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA== + dependencies: + framesync "6.0.1" + hey-listen "^1.0.8" + style-value-types "5.0.0" + tslib "^2.1.0" + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4, postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-selector-parser@^6.0.11: + version "6.0.16" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8, postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.13, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.27, postcss@>=8.0.9: + version "8.4.38" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +potpack@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz" + integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== + +preact@^10.16.0: + version "10.21.0" + resolved "https://registry.npmjs.org/preact/-/preact-10.21.0.tgz" + integrity sha512-aQAIxtzWEwH8ou+OovWVSVNlFImL7xUCwJX3YMqA3U8iKCNC34999fFOnWjYNsylgfPgMexpbk7WYOLtKr/mxg== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-plugin-tailwind-css@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/prettier-plugin-tailwind-css/-/prettier-plugin-tailwind-css-1.5.0.tgz" + integrity sha512-LUbINk8O0l+r7iPO6fUOQtoZdF7lQ0SGZTrlAl6IjW8zc5URMGqdW2QVoIK2de2HQeKvb9X2xv8aUzf+v2UVYw== + dependencies: + prettier "^2.0.5" + +prettier@^2, prettier@^2.0.5, prettier@^2.6.1, prettier@>=2.0.0: + version "2.8.8" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-format@^26.5.2: + version "26.6.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^27.0.0, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +probe-image-size@^7.2.3: + version "7.2.3" + resolved "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz" + integrity sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w== + dependencies: + lodash.merge "^4.6.2" + needle "^2.5.2" + stream-parser "~0.3.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +promise@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +prompts@^2.0.1, prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.8.1, prop-types@15.x: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +protocol-buffers-schema@^3.3.1: + version "3.6.0" + resolved "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz" + integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== + +proxy-compare@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz" + integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +qr-code-styling@^1.6.0-rc.1: + version "1.6.0-rc.1" + resolved "https://registry.npmjs.org/qr-code-styling/-/qr-code-styling-1.6.0-rc.1.tgz" + integrity sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q== + dependencies: + qrcode-generator "^1.4.3" + +qrcode-generator@^1.4.3: + version "1.4.4" + resolved "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz" + integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== + +qrcode-terminal-nooctal@^0.12.1: + version "0.12.1" + resolved "https://registry.npmjs.org/qrcode-terminal-nooctal/-/qrcode-terminal-nooctal-0.12.1.tgz" + integrity sha512-jy/kkD0iIMDjTucB+5T6KBsnirlhegDH47vHgrj5MejchSQmi/EAMM0xMFeePgV9CJkkAapNakpVUWYgHvtdKg== + +qrcode@^1.5.0, qrcode@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz" + integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== + dependencies: + dijkstrajs "^1.0.1" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" + +query-string@7.1.3: + version "7.1.3" + resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz" + integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== + dependencies: + decode-uri-component "^0.2.2" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +querystring@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue@6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +quickselect@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz" + integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== + +radix3@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz" + integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + +rc@^1.0.1, rc@^1.1.6, rc@1.2.8: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-cookie@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/react-cookie/-/react-cookie-4.1.1.tgz" + integrity sha512-ffn7Y7G4bXiFbnE+dKhHhbP+b8I34mH9jqnm8Llhj89zF4nPxPutxHT1suUqMeCEhLDBI7InYwf1tpaSoK5w8A== + dependencies: + "@types/hoist-non-react-statics" "^3.0.1" + hoist-non-react-statics "^3.0.0" + universal-cookie "^4.0.0" + +react-devtools-core@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.1.0.tgz" + integrity sha512-NRtLBqYVLrIY+lOa2oTpFiAhI7Hru0AUXI0tP9neCyaPPAzlZyeH0i+VZ0shIyRTJbpvyqbD/uCsewA2hpfZHw== + dependencies: + shell-quote "^1.6.1" + ws "^7" + +react-dom@^18.0.0, react-dom@^18.1.0, react-dom@^18.2.0, "react-dom@>= 16.3.0", "react-dom@>= 16.8.0", react-dom@>=16, react-dom@>=16.13, react-dom@>=16.8, "react-dom@>=16.8 || ^17.0.0 || ^18.0.0", react-dom@>=16.8.0, react-dom@>=17, "react-dom@17.x || 18.x": + version "18.3.1" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-draggable@^4.0.3, react-draggable@^4.4.5: + version "4.4.6" + resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz" + integrity sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw== + dependencies: + clsx "^1.1.1" + prop-types "^15.8.1" + +react-grid-layout@^1.3.4: + version "1.4.4" + resolved "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.4.4.tgz" + integrity sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ== + dependencies: + clsx "^2.0.0" + fast-equals "^4.0.3" + prop-types "^15.8.1" + react-draggable "^4.4.5" + react-resizable "^3.0.5" + resize-observer-polyfill "^1.5.1" + +react-hook-form@^7.31.2: + version "7.51.4" + resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.4.tgz" + integrity sha512-V14i8SEkh+V1gs6YtD0hdHYnoL4tp/HX/A45wWQN15CYr9bFRmmRdYStSO5L65lCCZRF+kYiSKhm9alqbcdiVA== + +react-hot-toast@^2.2.0: + version "2.4.1" + resolved "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz" + integrity sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ== + dependencies: + goober "^2.1.10" + +react-i18next@^13.2.2: + version "13.5.0" + resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-13.5.0.tgz" + integrity sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA== + dependencies: + "@babel/runtime" "^7.22.5" + html-parse-stringify "^3.0.1" + +react-icons@^4.3.1: + version "4.12.0" + resolved "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz" + integrity sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw== + +react-iframe@^1.8.0: + version "1.8.5" + resolved "https://registry.npmjs.org/react-iframe/-/react-iframe-1.8.5.tgz" + integrity sha512-F4cQJGs3ydaG6fJWfuz9yLwOU0Trzl6kttXuUG+vYwosH8enOOFxZWEDQCSbNVO8ayjfYZeqLxEvdvcsSy4GvA== + dependencies: + object-assign "^4.1.1" + +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^16.13.1, react-is@^16.7.0, "react-is@>= 16.8.0": + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-native-webview@^11.26.0: + version "11.26.1" + resolved "https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.26.1.tgz" + integrity sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw== + dependencies: + escape-string-regexp "2.0.0" + invariant "2.2.4" + +react-native@*: + version "0.74.1" + resolved "https://registry.npmjs.org/react-native/-/react-native-0.74.1.tgz" + integrity sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg== + dependencies: + "@jest/create-cache-key-function" "^29.6.3" + "@react-native-community/cli" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-platform-ios" "13.6.6" + "@react-native/assets-registry" "0.74.83" + "@react-native/codegen" "0.74.83" + "@react-native/community-cli-plugin" "0.74.83" + "@react-native/gradle-plugin" "0.74.83" + "@react-native/js-polyfills" "0.74.83" + "@react-native/normalize-colors" "0.74.83" + "@react-native/virtualized-lists" "0.74.83" + abort-controller "^3.0.0" + anser "^1.4.9" + ansi-regex "^5.0.0" + base64-js "^1.5.1" + chalk "^4.0.0" + event-target-shim "^5.0.1" + flow-enums-runtime "^0.0.6" + invariant "^2.2.4" + jest-environment-node "^29.6.3" + jsc-android "^250231.0.0" + memoize-one "^5.0.0" + metro-runtime "^0.80.3" + metro-source-map "^0.80.3" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + pretty-format "^26.5.2" + promise "^8.3.0" + react-devtools-core "^5.0.0" + react-refresh "^0.14.0" + react-shallow-renderer "^16.15.0" + regenerator-runtime "^0.13.2" + scheduler "0.24.0-canary-efb381bbf-20230505" + stacktrace-parser "^0.1.10" + whatwg-fetch "^3.0.0" + ws "^6.2.2" + yargs "^17.6.2" + +react-plotly.js@^2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz" + integrity sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA== + dependencies: + prop-types "^15.8.1" + +react-refresh@^0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz" + integrity sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg== + +react-refresh@^0.14.0: + version "0.14.2" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" + integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== + +react-resizable@^3.0.5: + version "3.0.5" + resolved "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.5.tgz" + integrity sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w== + dependencies: + prop-types "15.x" + react-draggable "^4.0.3" + +react-router-dom@^6.3.0: + version "6.23.0" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.0.tgz" + integrity sha512-Q9YaSYvubwgbal2c9DJKfx6hTNoBp3iJDsl+Duva/DwxoJH+OTXkxGpql4iUK2sla/8z4RpjAm6EWx1qUDuopQ== + dependencies: + "@remix-run/router" "1.16.0" + react-router "6.23.0" + +react-router@6.23.0: + version "6.23.0" + resolved "https://registry.npmjs.org/react-router/-/react-router-6.23.0.tgz" + integrity sha512-wPMZ8S2TuPadH0sF5irFGjkNLIcRvOSaEe7v+JER8508dyJumm6XZB1u5kztlX0RVq6AzRVndzqcUh6sFIauzA== + dependencies: + "@remix-run/router" "1.16.0" + +react-shallow-renderer@^16.15.0: + version "16.15.0" + resolved "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz" + integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== + dependencies: + object-assign "^4.1.1" + react-is "^16.12.0 || ^17.0.0 || ^18.0.0" + +react-slider@^2.0.1: + version "2.0.6" + resolved "https://registry.npmjs.org/react-slider/-/react-slider-2.0.6.tgz" + integrity sha512-gJxG1HwmuMTJ+oWIRCmVWvgwotNCbByTwRkFZC6U4MBsHqJBmxwbYRJUmxy4Tke1ef8r9jfXjgkmY/uHOCEvbA== + dependencies: + prop-types "^15.8.1" + +react-table@^7.8.0: + version "7.8.0" + resolved "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz" + integrity sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA== + +react-toastify@^9.0.1: + version "9.1.3" + resolved "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.3.tgz" + integrity sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg== + dependencies: + clsx "^1.1.1" + +react-transition-state@^1.1.4: + version "1.1.5" + resolved "https://registry.npmjs.org/react-transition-state/-/react-transition-state-1.1.5.tgz" + integrity sha512-ITY2mZqc2dWG2eitJkYNdcSFW8aKeOlkL2A/vowRrLL8GH3J6Re/SpD/BLvQzrVOTqjsP0b5S9N10vgNNzwMUQ== + +react-use-measure@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz" + integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig== + dependencies: + debounce "^1.2.1" + +react@*, "react@^16 || ^17 || ^18", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.3 || ^17.0.0-0 || ^18.0.0", react@^18.0.0, react@^18.1.0, react@^18.2.0, react@^18.3.1, "react@>= 16", "react@>= 16.3", "react@>= 16.3.0", "react@>= 16.8.0", react@>=16, react@>=16.13, react@>=16.8, "react@>=16.8 || ^17.0.0 || ^18.0.0", react@>=16.8.0, react@>=16.x.x, react@>=17, react@>=18, react@>0.13.0, "react@17.x || 18.x", react@18.2.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +reactflow@^11.8.3: + version "11.11.3" + resolved "https://registry.npmjs.org/reactflow/-/reactflow-11.11.3.tgz" + integrity sha512-wusd1Xpn1wgsSEv7UIa4NNraCwH9syBtubBy4xVNXg3b+CDKM+sFaF3hnMx0tr0et4km9urIDdNvwm34QiZong== + dependencies: + "@reactflow/background" "11.3.13" + "@reactflow/controls" "11.2.13" + "@reactflow/core" "11.11.3" + "@reactflow/minimap" "11.7.13" + "@reactflow/node-resizer" "2.2.13" + "@reactflow/node-toolbar" "1.3.13" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readable-stream@^2.0.0: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^2.2.2: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^2.3.3: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^2.3.5: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0, readable-stream@^3.6.2: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +"readable-stream@^3.6.2 || ^4.4.2": + version "4.5.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +readline@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz" + integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== + +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== + +recast@^0.21.0: + version "0.21.5" + resolved "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz" + integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== + dependencies: + ast-types "0.15.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.2: + version "0.13.11" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" + 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" + +registry-auth-token@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + +registry-auth-token@3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz" + integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + +registry-url@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz" + integrity sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA== + dependencies: + rc "^1.0.1" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +regl-error2d@^2.0.12: + version "2.0.12" + resolved "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz" + integrity sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA== + dependencies: + array-bounds "^1.0.1" + color-normalize "^1.5.0" + flatten-vertex-data "^1.0.2" + object-assign "^4.1.1" + pick-by-alias "^1.2.0" + to-float32 "^1.1.0" + update-diff "^1.1.0" + +regl-line2d@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz" + integrity sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA== + dependencies: + array-bounds "^1.0.1" + array-find-index "^1.0.2" + array-normalize "^1.1.4" + color-normalize "^1.5.0" + earcut "^2.1.5" + es6-weak-map "^2.0.3" + flatten-vertex-data "^1.0.2" + object-assign "^4.1.1" + parse-rect "^1.2.0" + pick-by-alias "^1.2.0" + to-float32 "^1.1.0" + +regl-scatter2d@^3.2.3, regl-scatter2d@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz" + integrity sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ== + dependencies: + "@plotly/point-cluster" "^3.1.9" + array-range "^1.0.1" + array-rearrange "^2.2.2" + clamp "^1.0.1" + color-id "^1.1.0" + color-normalize "^1.5.0" + color-rgba "^2.1.1" + flatten-vertex-data "^1.0.2" + glslify "^7.0.0" + is-iexplorer "^1.0.0" + object-assign "^4.1.1" + parse-rect "^1.2.0" + pick-by-alias "^1.2.0" + to-float32 "^1.1.0" + update-diff "^1.1.0" + +regl-splom@^1.0.14: + version "1.0.14" + resolved "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz" + integrity sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw== + dependencies: + array-bounds "^1.0.1" + array-range "^1.0.1" + color-alpha "^1.0.4" + flatten-vertex-data "^1.0.2" + parse-rect "^1.2.0" + pick-by-alias "^1.2.0" + raf "^3.4.1" + regl-scatter2d "^3.2.3" + +regl@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/regl/-/regl-2.1.0.tgz" + integrity sha512-oWUce/aVoEvW5l2V0LK7O5KJMzUSKeiOwFuJehzpSFd43dO5spP9r+sSUfhKtsky4u6MCqWJaRL+abzExynfTg== + +"regl@npm:@plotly/regl@^2.1.2": + version "2.1.2" + resolved "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz" + integrity sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requireindex@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-protobuf-schema@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz" + integrity sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ== + dependencies: + protocol-buffers-schema "^3.3.1" + +resolve.exports@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== + +resolve@^0.6.1: + version "0.6.3" + resolved "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz" + integrity sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg== + +resolve@^1.0.0, resolve@^1.1.10, resolve@^1.1.5, resolve@^1.1.7, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +right-now@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz" + integrity sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rollup-plugin-visualizer@^5.9.2: + version "5.12.0" + resolved "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz" + integrity sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ== + dependencies: + open "^8.4.0" + picomatch "^2.3.1" + source-map "^0.7.4" + yargs "^17.5.1" + +rollup@^3.27.1, "rollup@2.x || 3.x || 4.x": + version "3.29.4" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +safe-stable-stringify@^2.1.0: + version "2.4.3" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.3.0" + resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +scheduler@0.24.0-canary-efb381bbf-20230505: + version "0.24.0-canary-efb381bbf-20230505" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz" + integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +secp256k1@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz" + integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^5.0.0" + node-gyp-build "^4.2.0" + +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.3.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: + version "7.6.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-error@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" + integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-handler@6.1.5: + version "6.1.5" + resolved "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz" + integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.1.2" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-static@^1.13.1: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +serve@^14.2.0: + version "14.2.3" + resolved "https://registry.npmjs.org/serve/-/serve-14.2.3.tgz" + integrity sha512-VqUFMC7K3LDGeGnJM9h56D3XGKb6KGgOw0cVNtA26yYXHCcpxf3xwCTUaQoWlVS7i8Jdh3GjQkOB23qsXyjoyQ== + dependencies: + "@zeit/schemas" "2.36.0" + ajv "8.12.0" + arg "5.0.2" + boxen "7.0.0" + chalk "5.0.1" + chalk-template "0.4.0" + clipboardy "3.0.0" + compression "1.7.4" + is-port-reachable "4.0.0" + serve-handler "6.1.5" + update-check "1.5.4" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallow-copy@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz" + integrity sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw== + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.6.1, shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +signum@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz" + integrity sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slice-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +socket.io-client@^4.5.1: + version "4.7.5" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz" + integrity sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.5.2" + socket.io-parser "~4.2.4" + +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +sonic-boom@^2.2.1: + version "2.8.0" + resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== + dependencies: + atomic-sleep "^1.0.0" + +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-support@^0.5.16: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-trace@0.0.9: + version "0.0.9" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" + integrity sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +stacktrace-parser@^0.1.10: + version "0.1.10" + resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + +static-eval@^2.0.5: + version "2.1.1" + resolved "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz" + integrity sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA== + dependencies: + escodegen "^2.1.0" + +statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +std-env@^3.7.0: + version "3.7.0" + resolved "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz" + integrity sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ== + dependencies: + debug "2" + +stream-shift@^1.0.0, stream-shift@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== + +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-length@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz" + integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== + dependencies: + char-regex "^2.0.0" + strip-ansi "^7.0.1" + +string-split-by@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz" + integrity sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A== + dependencies: + parenthesis "^3.1.5" + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1: + version "5.1.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +strongly-connected-components@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz" + integrity sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA== + +style-value-types@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz" + integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA== + dependencies: + hey-listen "^1.0.8" + tslib "^2.1.0" + +styled-components@^5.3.5, "styled-components@>= 2": + version "5.3.11" + resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz" + integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^1.1.0" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1.12.0" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +sudo-prompt@^9.0.0: + version "9.2.1" + resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz" + integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== + +supercluster@^7.1.0: + version "7.1.5" + resolved "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz" + integrity sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg== + dependencies: + kdbush "^3.0.0" + +superscript-text@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz" + integrity sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ== + +superstruct@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz" + integrity sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-arc-to-cubic-bezier@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz" + integrity sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g== + +svg-path-bounds@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz" + integrity sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ== + dependencies: + abs-svg-path "^0.1.1" + is-svg-path "^1.0.1" + normalize-svg-path "^1.0.0" + parse-svg-path "^0.1.2" + +svg-path-sdf@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz" + integrity sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg== + dependencies: + bitmap-sdf "^1.0.0" + draw-svg-path "^1.0.0" + is-svg-path "^1.0.1" + parse-svg-path "^0.1.2" + svg-path-bounds "^1.0.1" + +system-architecture@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz" + integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== + +tailwindcss@^3.0.23, tailwindcss@^3.1, "tailwindcss@>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1", "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1", "tailwindcss@>=3.0.0 || insiders": + version "3.4.3" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz" + integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.0" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +temp@^0.8.4: + version "0.8.4" + resolved "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz" + integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== + dependencies: + rimraf "~2.6.2" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.15.0, terser@^5.26.0, terser@^5.4.0: + version "5.31.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz" + integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== + dependencies: + real-require "^0.1.0" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +through2@^0.6.3: + version "0.6.5" + resolved "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz" + integrity sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg== + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +tinycolor2@^1.4.2: + version "1.6.0" + resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz" + integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== + +tinyqueue@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz" + integrity sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-float32@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz" + integrity sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg== + +to-px@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/to-px/-/to-px-1.1.0.tgz" + integrity sha512-bfg3GLYrGoEzrGoE05TAL/Uw+H/qrf2ptr9V3W7U0lkjjyYnIfgxmVLUfhQ1hZpIQwin81uxhDjvUkDYsC0xWw== + dependencies: + parse-unit "^1.0.1" + +to-px@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz" + integrity sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw== + dependencies: + parse-unit "^1.0.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +topojson-client@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz" + integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== + dependencies: + commander "2" + +"tough-cookie@^2.3.3 || ^3.0.1 || ^4.0.0": + version "4.1.4" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +tsconfig-paths@^3.14.1, tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0, tslib@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.0.1: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.1.0, tslib@^2.3.1: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + +type-fest@^2.13.0: + version "2.19.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray-pool@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz" + integrity sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ== + dependencies: + bit-twiddle "^1.0.0" + dup "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typescript@*, typescript@^5.0.4, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=4.9.4, typescript@>=5.0.4: + version "5.4.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +ufo@^1.4.0, ufo@^1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz" + integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw== + +uint8arrays@^3.0.0, uint8arrays@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unenv@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/unenv/-/unenv-1.9.0.tgz" + integrity sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g== + dependencies: + consola "^3.2.3" + defu "^6.1.3" + mime "^3.0.0" + node-fetch-native "^1.6.1" + pathe "^1.1.1" + +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + 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.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +universal-cookie@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz" + integrity sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw== + dependencies: + "@types/cookie" "^0.3.3" + cookie "^0.4.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +unstorage@^1.9.0: + version "1.10.2" + resolved "https://registry.npmjs.org/unstorage/-/unstorage-1.10.2.tgz" + integrity sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ== + dependencies: + anymatch "^3.1.3" + chokidar "^3.6.0" + destr "^2.0.3" + h3 "^1.11.1" + listhen "^1.7.2" + lru-cache "^10.2.0" + mri "^1.2.0" + node-fetch-native "^1.6.2" + ofetch "^1.3.3" + ufo "^1.4.0" + +untun@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz" + integrity sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== + dependencies: + citty "^0.1.5" + consola "^3.2.3" + pathe "^1.1.1" + +update-browserslist-db@^1.0.13: + version "1.0.15" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz" + integrity sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.0" + +update-check@1.5.4: + version "1.5.4" + resolved "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz" + integrity sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ== + dependencies: + registry-auth-token "3.3.2" + registry-url "3.1.0" + +update-diff@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz" + integrity sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A== + +uqr@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz" + integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +use-sync-external-store@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + +utf-8-validate@^6.0.3, utf-8-validate@>=5.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.3.tgz" + integrity sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA== + dependencies: + node-gyp-build "^4.3.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.4, util@^0.12.5: + version "0.12.5" + resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz" + 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" + +valtio@1.11.2: + version "1.11.2" + resolved "https://registry.npmjs.org/valtio/-/valtio-1.11.2.tgz" + integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== + dependencies: + proxy-compare "2.5.1" + use-sync-external-store "1.2.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +viem@^1.0.0: + version "1.21.4" + resolved "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz" + integrity sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ== + dependencies: + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@scure/bip32" "1.3.2" + "@scure/bip39" "1.2.1" + abitype "0.9.8" + isows "1.0.3" + ws "8.13.0" + +viem@^1.1.4: + version "1.21.4" + resolved "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz" + integrity sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ== + dependencies: + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@scure/bip32" "1.3.2" + "@scure/bip39" "1.2.1" + abitype "0.9.8" + isows "1.0.3" + ws "8.13.0" + +viem@^2.0.6, viem@2.x: + version "2.9.31" + resolved "https://registry.npmjs.org/viem/-/viem-2.9.31.tgz" + integrity sha512-8aJ8Dm/591Czwb/nRayo0z8Ls5KxqC4QYE33fmHwhx2tDUWC/hHcPZqjLRSTWFtAfi0aZKvP7BeB6UZ3ZkTRhQ== + dependencies: + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@scure/bip32" "1.3.2" + "@scure/bip39" "1.2.1" + abitype "1.0.0" + isows "1.0.3" + ws "8.13.0" + +vite@^4.4.9: + version "4.5.3" + resolved "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz" + integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vlq@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz" + integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== + +void-elements@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== + +vt-pbf@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz" + integrity sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA== + dependencies: + "@mapbox/point-geometry" "0.1.0" + "@mapbox/vector-tile" "^1.3.1" + pbf "^3.2.1" + +wagmi@^2.2.1, wagmi@2.x: + version "2.8.1" + resolved "https://registry.npmjs.org/wagmi/-/wagmi-2.8.1.tgz" + integrity sha512-ekd9JHryGelHf9qcoZUDomCF4xDjYXjQ7EO+e9oCg89/i49Pr5CfmzgXfHbusyewhuzRAMWT5Db2oTBWRkqHwQ== + dependencies: + "@wagmi/connectors" "4.3.3" + "@wagmi/core" "2.9.1" + use-sync-external-store "1.2.0" + +walker@^1.0.7, walker@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +weak-map@^1.0.5: + version "1.0.8" + resolved "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz" + integrity sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw== + +web3-core@^4.3.0, web3-core@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/web3-core/-/web3-core-4.3.2.tgz" + integrity sha512-uIMVd/j4BgOnwfpY8ZT+QKubOyM4xohEhFZXz9xB8wimXWMMlYVlIK/TbfHqFolS9uOerdSGhsMbcK9lETae8g== + dependencies: + web3-errors "^1.1.4" + web3-eth-accounts "^4.1.0" + web3-eth-iban "^4.0.7" + web3-providers-http "^4.1.0" + web3-providers-ws "^4.0.7" + web3-types "^1.3.1" + web3-utils "^4.1.0" + web3-validator "^2.0.3" + optionalDependencies: + web3-providers-ipc "^4.0.7" + +web3-errors@^1.1.3, web3-errors@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/web3-errors/-/web3-errors-1.1.4.tgz" + integrity sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ== + dependencies: + web3-types "^1.3.1" + +web3-eth-abi@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.2.1.tgz" + integrity sha512-IE91WUhhiDpBtbkl/DHUoZz7z7T5FXvl3zPLkrxT+dNlOT+wni+US/67jQCLvJRbqf9ApQ26lVYry0bovFgyqA== + dependencies: + abitype "0.7.1" + web3-errors "^1.1.4" + web3-types "^1.6.0" + web3-utils "^4.2.3" + web3-validator "^2.0.5" + +web3-eth-accounts@^4.1.0, web3-eth-accounts@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.1.2.tgz" + integrity sha512-y0JynDeTDnclyuE9mShXLeEj+BCrPHxPHOyPCgTchUBQsALF9+0OhP7WiS3IqUuu0Hle5bjG2f5ddeiPtNEuLg== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + crc-32 "^1.2.2" + ethereum-cryptography "^2.0.0" + web3-errors "^1.1.4" + web3-types "^1.6.0" + web3-utils "^4.2.3" + web3-validator "^2.0.5" + +web3-eth-contract@^4.3.0, web3-eth-contract@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.4.0.tgz" + integrity sha512-pZ/w6Lb6ZDUUs7f5GCKXiHDAGGvt2tdwiHkvgmQTRnq9b0MEsUpteDyPYspHxKzQWLgbeK37jPb8zbQe4kE/Hg== + dependencies: + web3-core "^4.3.2" + web3-errors "^1.1.4" + web3-eth "^4.6.0" + web3-eth-abi "^4.2.1" + web3-types "^1.6.0" + web3-utils "^4.2.3" + web3-validator "^2.0.5" + +web3-eth-ens@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-4.2.0.tgz" + integrity sha512-qYj34te2UctoObt8rlEIY/t2MuTMiMiiHhO2JAHRGqSLCQ7b8DM3RpvkiiSB0N0ZyEn+CetZqJCTYb8DNKBS/g== + dependencies: + "@adraffy/ens-normalize" "^1.8.8" + web3-core "^4.3.2" + web3-errors "^1.1.4" + web3-eth "^4.5.0" + web3-eth-contract "^4.3.0" + web3-net "^4.0.7" + web3-types "^1.5.0" + web3-utils "^4.2.2" + web3-validator "^2.0.5" + +web3-eth-iban@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-4.0.7.tgz" + integrity sha512-8weKLa9KuKRzibC87vNLdkinpUE30gn0IGY027F8doeJdcPUfsa4IlBgNC4k4HLBembBB2CTU0Kr/HAOqMeYVQ== + dependencies: + web3-errors "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" + web3-validator "^2.0.3" + +web3-eth-personal@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-4.0.8.tgz" + integrity sha512-sXeyLKJ7ddQdMxz1BZkAwImjqh7OmKxhXoBNF3isDmD4QDpMIwv/t237S3q4Z0sZQamPa/pHebJRWVuvP8jZdw== + dependencies: + web3-core "^4.3.0" + web3-eth "^4.3.1" + web3-rpc-methods "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" + web3-validator "^2.0.3" + +web3-eth@^4.3.1, web3-eth@^4.5.0, web3-eth@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-4.6.0.tgz" + integrity sha512-8KtxlGsomovoFULqEpfixgmCpaJ2YIJGxbXUfezh2coXHjVgEopQhARYtKGClyV5kkdCIqwHS8Gvsm6TVNqH6Q== + dependencies: + setimmediate "^1.0.5" + web3-core "^4.3.2" + web3-errors "^1.1.4" + web3-eth-abi "^4.2.1" + web3-eth-accounts "^4.1.2" + web3-net "^4.0.7" + web3-providers-ws "^4.0.7" + web3-rpc-methods "^1.2.0" + web3-types "^1.6.0" + web3-utils "^4.2.3" + web3-validator "^2.0.5" + +web3-net@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/web3-net/-/web3-net-4.0.7.tgz" + integrity sha512-SzEaXFrBjY25iQGk5myaOfO9ZyfTwQEa4l4Ps4HDNVMibgZji3WPzpjq8zomVHMwi8bRp6VV7YS71eEsX7zLow== + dependencies: + web3-core "^4.3.0" + web3-rpc-methods "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" + +web3-providers-http@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-4.1.0.tgz" + integrity sha512-6qRUGAhJfVQM41E5t+re5IHYmb5hSaLc02BE2MaRQsz2xKA6RjmHpOA5h/+ojJxEpI9NI2CrfDKOAgtJfoUJQg== + dependencies: + cross-fetch "^4.0.0" + web3-errors "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" + +web3-providers-ipc@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-4.0.7.tgz" + integrity sha512-YbNqY4zUvIaK2MHr1lQFE53/8t/ejHtJchrWn9zVbFMGXlTsOAbNoIoZWROrg1v+hCBvT2c9z8xt7e/+uz5p1g== + dependencies: + web3-errors "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" + +web3-providers-ws@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-4.0.7.tgz" + integrity sha512-n4Dal9/rQWjS7d6LjyEPM2R458V8blRm0eLJupDEJOOIBhGYlxw5/4FthZZ/cqB7y/sLVi7K09DdYx2MeRtU5w== + dependencies: + "@types/ws" "8.5.3" + isomorphic-ws "^5.0.0" + web3-errors "^1.1.3" + web3-types "^1.3.0" + web3-utils "^4.0.7" + ws "^8.8.1" + +web3-rpc-methods@^1.1.3, web3-rpc-methods@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/web3-rpc-methods/-/web3-rpc-methods-1.2.0.tgz" + integrity sha512-CWJ/g4I4WyYvLkf21wCZAehdhU/VjX/OAPHnqF5/FPDJlogOsOnGXHqi1Z5AP+ocdt395PNubd8jyMMJoYGSBA== + dependencies: + web3-core "^4.3.2" + web3-types "^1.5.0" + web3-validator "^2.0.4" + +web3-types@^1.3.0, web3-types@^1.3.1, web3-types@^1.5.0, web3-types@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/web3-types/-/web3-types-1.6.0.tgz" + integrity sha512-qgOtADqlD5hw+KPKBUGaXAcdNLL0oh6qTeVgXwewCfbL/lG9R+/GrgMQB1gbTJ3cit8hMwtH8KX2Em6OwO0HRw== + +web3-utils@^4.0.7, web3-utils@^4.1.0, web3-utils@^4.2.2, web3-utils@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-4.2.3.tgz" + integrity sha512-m5plKTC2YtQntHITQRyIePw52UVP1IrShhmA2FACtn4zmc5ADmrXOlQWiPzxFP/18eRJsAaUAw2+CQn1u4WPxQ== + dependencies: + ethereum-cryptography "^2.0.0" + eventemitter3 "^5.0.1" + web3-errors "^1.1.4" + web3-types "^1.6.0" + web3-validator "^2.0.5" + +web3-validator@^2.0.3, web3-validator@^2.0.4, web3-validator@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/web3-validator/-/web3-validator-2.0.5.tgz" + integrity sha512-2gLOSW8XqEN5pw5jVUm20EB7A8SbQiekpAtiI0JBmCIV0a2rp97v8FgWY5E3UEqnw5WFfEqvcDVW92EyynDTyQ== + dependencies: + ethereum-cryptography "^2.0.0" + util "^0.12.5" + web3-errors "^1.1.4" + web3-types "^1.5.0" + zod "^3.21.4" + +web3@^4.0.2: + version "4.8.0" + resolved "https://registry.npmjs.org/web3/-/web3-4.8.0.tgz" + integrity sha512-kQSF2NlHk8yjS3SRiJW3S+U5ibkEmVRhB4/GYsVwGvdAkFC2b+EIE1Ob7J56OmqW9VBZgkx1+SuWqo5JTIJSYQ== + dependencies: + web3-core "^4.3.2" + web3-errors "^1.1.4" + web3-eth "^4.6.0" + web3-eth-abi "^4.2.1" + web3-eth-accounts "^4.1.2" + web3-eth-contract "^4.4.0" + web3-eth-ens "^4.2.0" + web3-eth-iban "^4.0.7" + web3-eth-personal "^4.0.8" + web3-net "^4.0.7" + web3-providers-http "^4.1.0" + web3-providers-ws "^4.0.7" + web3-rpc-methods "^1.2.0" + web3-types "^1.6.0" + web3-utils "^4.2.3" + web3-validator "^2.0.5" + +webextension-polyfill@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz" + integrity sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g== + +"webextension-polyfill@>=0.10.0 <1.0": + version "0.11.0" + resolved "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.11.0.tgz" + integrity sha512-YUBSKQA0iCx2YtM75VFgvvcx1hLKaGGiph6a6UaUdSgk32VT9SzrcDAKBjeGHXoAZTnNBqS5skA4VfoKMXhEBA== + dependencies: + webpack "^5.91.0" + webpack-cli "^5.1.4" + +webgl-context@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz" + integrity sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q== + dependencies: + get-canvas-context "^1.0.1" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webpack-cli@^5.1.4, webpack-cli@5.x.x: + version "5.1.4" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" + colorette "^2.0.14" + commander "^10.0.1" + cross-spawn "^7.0.3" + envinfo "^7.7.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^5.7.3" + +webpack-merge@^5.7.3: + version "5.10.0" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.1.0, webpack@^5.91.0, webpack@5.x.x: + version "5.91.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.16.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +whatwg-fetch@^3.0.0, whatwg-fetch@^3.6.2: + version "3.6.20" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2, which-typed-array@^1.1.9: + version "1.1.15" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +world-calendars@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz" + integrity sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ== + dependencies: + object-assign "^4.1.0" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^2.3.0: + version "2.4.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +ws@*, ws@8.13.0: + version "8.13.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +ws@^6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + +ws@^7: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^7.4.5: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^7.5.1: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.8.1: + version "8.17.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== + +ws@~8.11.0: + version "8.11.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== + +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + +xtend@^2.1.2: + version "2.2.0" + resolved "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz" + integrity sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw== + +xtend@^4.0.0, xtend@^4.0.1, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^2.2.1, yaml@^2.3.4: + version "2.4.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^15.0.1, yargs@^15.1.0, yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^17.5.1: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^17.6.2: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +"zod@^3 >=3.19.1", "zod@^3 >=3.22.0", zod@^3.21.4: + version "3.23.6" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.6.tgz" + integrity sha512-RTHJlZhsRbuA8Hmp/iNL7jnfc4nZishjsanDAfEY1QpDQZCahUp3xDzl+zfweE9BklxMUcgBgS1b7Lvie/ZVwA== + +zustand@^4.4.1: + version "4.5.2" + resolved "https://registry.npmjs.org/zustand/-/zustand-4.5.2.tgz" + integrity sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g== + dependencies: + use-sync-external-store "1.2.0" + +zustand@4.4.1: + version "4.4.1" + resolved "https://registry.npmjs.org/zustand/-/zustand-4.4.1.tgz" + integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw== + dependencies: + use-sync-external-store "1.2.0"