From e5d75eff19e524c0392b726e2010660d06c1280c Mon Sep 17 00:00:00 2001 From: Sacha Weatherstone Date: Sat, 19 Feb 2022 20:40:43 +1100 Subject: [PATCH] Internal cleanup --- package.json | 23 +- pnpm-lock.yaml | 1561 ++++++++++------- src/App.tsx | 13 +- src/components/Connection.tsx | 100 +- src/components/MapBox/MapboxProvider.tsx | 2 +- src/components/connection/BLE.tsx | 28 +- src/components/connection/HTTP.tsx | 32 +- src/components/connection/Serial.tsx | 28 +- src/components/generic/Card.tsx | 21 + src/components/generic/ContextMenu.tsx | 2 +- src/components/generic/Cover.tsx | 10 - src/components/generic/ListItem.tsx | 46 - src/components/generic/Loading.tsx | 9 + .../Sidebar}/CollapsibleSection.tsx | 0 .../Sidebar}/ExternalSection.tsx | 0 .../Sidebar}/SidebarOverlay.tsx | 2 +- src/components/generic/Tooltip.tsx | 19 + src/components/generic/button/Button.tsx | 73 + src/components/generic/button/IconButton.tsx | 35 + src/components/generic/form/Checkbox.tsx | 48 + src/components/generic/form/Form.tsx | 2 +- src/components/generic/form/Input.tsx | 37 + src/components/generic/form/InputWrapper.tsx | 29 + src/components/generic/form/Select.tsx | 68 + src/components/layout/Sidebar/ButtonNav.tsx | 7 +- .../layout/Sidebar/Settings/Channels.tsx | 5 +- .../layout/Sidebar/Settings/Index.tsx | 31 +- .../layout/Sidebar/Settings/Interface.tsx | 2 +- .../layout/Sidebar/Settings/Position.tsx | 7 +- .../layout/Sidebar/Settings/Power.tsx | 4 +- .../layout/Sidebar/Settings/Radio.tsx | 4 +- .../layout/Sidebar/Settings/User.tsx | 5 +- .../layout/Sidebar/Settings/WiFi.tsx | 4 +- .../Channels.tsx} | 9 +- .../panels => channels}/ChannelsGroup.tsx | 9 +- ...gsPlanel.tsx => ExternalNotifications.tsx} | 10 +- .../SettingsPanel.tsx => RangeTest.tsx} | 10 +- .../Serial/SettingsPanel.tsx => Serial.tsx} | 10 +- .../SettingsPanel.tsx => StoreForward.tsx} | 10 +- .../ExternalNotifications/DebugPanel.tsx | 31 - .../plugins/panels/RangeTest/DebugPanel.tsx | 27 - .../plugins/panels/Serial/DebugPanel.tsx | 30 - .../panels/StoreForward/DebugPanel.tsx | 31 - .../radio/channels/panels/DebugPanel.tsx | 21 - .../radio/channels/panels/QRCodePanel.tsx | 20 - src/components/layout/Sidebar/index.tsx | 7 +- src/components/layout/index.tsx | 4 +- src/components/menu/BottomNav.tsx | 4 +- src/components/menu/buttons/CopyButton.tsx | 4 +- src/components/menu/buttons/DeviceStatus.tsx | 56 - src/components/modals/VersionInfo.tsx | 5 +- src/core/slices/mapSlice.ts | 2 +- src/core/slices/meshtasticSlice.ts | 15 - src/core/store.ts | 7 +- src/index.tsx | 6 +- src/pages/Extensions/FileBrowser.tsx | 11 +- src/pages/Extensions/Index.tsx | 11 +- src/pages/Extensions/Info.tsx | 19 +- src/pages/Extensions/Logs.tsx | 199 +-- src/pages/Map/MapContainer.tsx | 7 +- src/pages/Map/index.tsx | 15 +- src/pages/Messages/ChannelChat.tsx | 3 +- src/pages/Messages/DmChat.tsx | 2 +- src/pages/Messages/Message.tsx | 4 +- src/pages/Messages/MessageBar.tsx | 2 +- src/pages/Messages/index.tsx | 21 +- src/pages/Nodes/NodeCard.tsx | 30 +- src/pages/Nodes/index.tsx | 8 +- src/pages/Nodes/panels/DebugPanel.tsx | 21 - src/pages/Nodes/panels/PositionPanel.tsx | 32 - src/pages/NotFound.tsx | 9 +- 71 files changed, 1697 insertions(+), 1282 deletions(-) create mode 100644 src/components/generic/Card.tsx delete mode 100644 src/components/generic/Cover.tsx delete mode 100644 src/components/generic/ListItem.tsx create mode 100644 src/components/generic/Loading.tsx rename src/components/{layout/Sidebar/sections => generic/Sidebar}/CollapsibleSection.tsx (100%) rename src/components/{layout/Sidebar/sections => generic/Sidebar}/ExternalSection.tsx (100%) rename src/components/{layout/Sidebar/sections => generic/Sidebar}/SidebarOverlay.tsx (95%) create mode 100644 src/components/generic/Tooltip.tsx create mode 100644 src/components/generic/button/Button.tsx create mode 100644 src/components/generic/button/IconButton.tsx create mode 100644 src/components/generic/form/Checkbox.tsx create mode 100644 src/components/generic/form/Input.tsx create mode 100644 src/components/generic/form/InputWrapper.tsx create mode 100644 src/components/generic/form/Select.tsx rename src/components/layout/Sidebar/Settings/{radio/channels/panels/SettingsPanel.tsx => channels/Channels.tsx} (92%) rename src/components/layout/Sidebar/Settings/{radio/channels/panels => channels}/ChannelsGroup.tsx (84%) rename src/components/layout/Sidebar/Settings/plugins/{panels/ExternalNotifications/SettingsPlanel.tsx => ExternalNotifications.tsx} (87%) rename src/components/layout/Sidebar/Settings/plugins/{panels/RangeTest/SettingsPanel.tsx => RangeTest.tsx} (84%) rename src/components/layout/Sidebar/Settings/plugins/{panels/Serial/SettingsPanel.tsx => Serial.tsx} (87%) rename src/components/layout/Sidebar/Settings/plugins/{panels/StoreForward/SettingsPanel.tsx => StoreForward.tsx} (87%) delete mode 100644 src/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/DebugPanel.tsx delete mode 100644 src/components/layout/Sidebar/Settings/plugins/panels/RangeTest/DebugPanel.tsx delete mode 100644 src/components/layout/Sidebar/Settings/plugins/panels/Serial/DebugPanel.tsx delete mode 100644 src/components/layout/Sidebar/Settings/plugins/panels/StoreForward/DebugPanel.tsx delete mode 100644 src/components/layout/Sidebar/Settings/radio/channels/panels/DebugPanel.tsx delete mode 100644 src/components/layout/Sidebar/Settings/radio/channels/panels/QRCodePanel.tsx delete mode 100644 src/components/menu/buttons/DeviceStatus.tsx delete mode 100644 src/pages/Nodes/panels/DebugPanel.tsx delete mode 100644 src/pages/Nodes/panels/PositionPanel.tsx diff --git a/package.json b/package.json index 29aaa51f..cc2b4f68 100644 --- a/package.json +++ b/package.json @@ -9,15 +9,16 @@ "preview": "vite preview", "package": "gzipper c -i html,js,css,png,ico,svg,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ $(ls ./dist/output/)", "format": "prettier --write 'src/**/*.{ts,tsx}'", + "check": "unimported", "lint": "eslint 'src/**/*.{ts,tsx}'" }, "dependencies": { "@emeraldpay/hashicon-react": "^0.5.2", - "@floating-ui/react-dom": "^0.4.3", - "@meshtastic/components": "^1.0.23", "@meshtastic/meshtasticjs": "^0.6.45", "@reduxjs/toolkit": "^1.7.2", + "@tippyjs/react": "^4.2.6", "base64-js": "^1.5.1", + "cuid": "^2.1.8", "framer-motion": "^6.2.6", "graphql-request": "^4.0.0", "mapbox-gl": "^2.7.0", @@ -28,25 +29,25 @@ "react-hook-form": "^7.27.0", "react-icons": "^4.3.1", "react-json-pretty": "^2.2.0", - "react-multi-select-component": "^4.2.2", - "react-qr-code": "^2.0.3", + "react-multi-select-component": "^4.2.3", "react-redux": "^7.2.6", "react-use-clipboard": "^1.0.7", "rfc4648": "^1.5.1", - "rollup-plugin-visualizer": "^5.5.4", - "swr": "^1.2.1", + "swr": "^1.2.2", "timeago-react": "^3.0.4", + "tippy.js": "^6.3.7", "type-route": "^0.6.0", "vite-plugin-environment": "^1.1.0" }, "devDependencies": { + "@hookform/devtools": "^4.0.2", "@types/mapbox-gl": "^2.6.1", "@types/react": "^17.0.39", "@types/react-dom": "^17.0.11", "@types/w3c-web-serial": "^1.0.2", "@types/web-bluetooth": "^0.0.12", - "@typescript-eslint/eslint-plugin": "^5.11.0", - "@typescript-eslint/parser": "^5.11.0", + "@typescript-eslint/eslint-plugin": "^5.12.0", + "@typescript-eslint/parser": "^5.12.0", "@verypossible/eslint-config": "^1.6.1", "@vitejs/plugin-react": "^1.2.0", "autoprefixer": "^10.4.2", @@ -63,10 +64,12 @@ "postcss": "^8.4.6", "prettier": "^2.5.1", "prettier-plugin-tailwindcss": "^0.1.7", - "tailwindcss": "^3.0.22", + "rollup-plugin-visualizer": "^5.5.4", + "tailwindcss": "^3.0.23", "tar": "^6.1.11", "typescript": "^4.5.5", - "vite": "^2.8.1", + "unimported": "^1.19.1", + "vite": "^2.8.4", "vite-plugin-cdn-import": "^0.3.5", "vite-plugin-pwa": "^0.11.13", "workbox-window": "^6.4.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa8652f8..a3bf13e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,22 +2,23 @@ lockfileVersion: 5.3 specifiers: '@emeraldpay/hashicon-react': ^0.5.2 - '@floating-ui/react-dom': ^0.4.3 - '@meshtastic/components': ^1.0.23 + '@hookform/devtools': ^4.0.2 '@meshtastic/meshtasticjs': ^0.6.45 '@reduxjs/toolkit': ^1.7.2 + '@tippyjs/react': ^4.2.6 '@types/mapbox-gl': ^2.6.1 '@types/react': ^17.0.39 '@types/react-dom': ^17.0.11 '@types/w3c-web-serial': ^1.0.2 '@types/web-bluetooth': ^0.0.12 - '@typescript-eslint/eslint-plugin': ^5.11.0 - '@typescript-eslint/parser': ^5.11.0 + '@typescript-eslint/eslint-plugin': ^5.12.0 + '@typescript-eslint/parser': ^5.12.0 '@verypossible/eslint-config': ^1.6.1 '@vitejs/plugin-react': ^1.2.0 autoprefixer: ^10.4.2 babel-plugin-module-resolver: ^4.1.0 base64-js: ^1.5.1 + cuid: ^2.1.8 eslint: 8.9.0 eslint-config-prettier: ^8.3.0 eslint-import-resolver-alias: ^1.1.2 @@ -40,19 +41,20 @@ specifiers: react-hook-form: ^7.27.0 react-icons: ^4.3.1 react-json-pretty: ^2.2.0 - react-multi-select-component: ^4.2.2 - react-qr-code: ^2.0.3 + react-multi-select-component: ^4.2.3 react-redux: ^7.2.6 react-use-clipboard: ^1.0.7 rfc4648: ^1.5.1 rollup-plugin-visualizer: ^5.5.4 - swr: ^1.2.1 - tailwindcss: ^3.0.22 + swr: ^1.2.2 + tailwindcss: ^3.0.23 tar: ^6.1.11 timeago-react: ^3.0.4 + tippy.js: ^6.3.7 type-route: ^0.6.0 typescript: ^4.5.5 - vite: ^2.8.1 + unimported: ^1.19.1 + vite: ^2.8.4 vite-plugin-cdn-import: ^0.3.5 vite-plugin-environment: ^1.1.0 vite-plugin-pwa: ^0.11.13 @@ -60,11 +62,11 @@ specifiers: dependencies: '@emeraldpay/hashicon-react': 0.5.2 - '@floating-ui/react-dom': 0.4.3_b8fdba992ce7d797017dc07106486496 - '@meshtastic/components': 1.0.23_@types+react@17.0.39 '@meshtastic/meshtasticjs': 0.6.45 '@reduxjs/toolkit': 1.7.2_react-redux@7.2.6+react@17.0.2 + '@tippyjs/react': 4.2.6_react-dom@17.0.2+react@17.0.2 base64-js: 1.5.1 + cuid: 2.1.8 framer-motion: 6.2.6_react-dom@17.0.2+react@17.0.2 graphql-request: 4.0.0 mapbox-gl: 2.7.0 @@ -75,25 +77,25 @@ dependencies: react-hook-form: 7.27.0_react@17.0.2 react-icons: 4.3.1_react@17.0.2 react-json-pretty: 2.2.0_react-dom@17.0.2+react@17.0.2 - react-multi-select-component: 4.2.2_react-dom@17.0.2+react@17.0.2 - react-qr-code: 2.0.3_react@17.0.2 + react-multi-select-component: 4.2.3_react-dom@17.0.2+react@17.0.2 react-redux: 7.2.6_react-dom@17.0.2+react@17.0.2 react-use-clipboard: 1.0.7_react-dom@17.0.2+react@17.0.2 rfc4648: 1.5.1 - rollup-plugin-visualizer: 5.5.4 - swr: 1.2.1_react@17.0.2 + swr: 1.2.2_react@17.0.2 timeago-react: 3.0.4_react@17.0.2 + tippy.js: 6.3.7 type-route: 0.6.0 - vite-plugin-environment: 1.1.0_vite@2.8.1 + vite-plugin-environment: 1.1.0_vite@2.8.4 devDependencies: + '@hookform/devtools': 4.0.2_da1501d92c160d437c19af0441e08954 '@types/mapbox-gl': 2.6.1 '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/w3c-web-serial': 1.0.2 '@types/web-bluetooth': 0.0.12 - '@typescript-eslint/eslint-plugin': 5.11.0_15a231715447500ed5c06da64c8aef1c - '@typescript-eslint/parser': 5.11.0_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/eslint-plugin': 5.12.0_c467cf9bb49b295941e83ce479a578b7 + '@typescript-eslint/parser': 5.12.0_eslint@8.9.0+typescript@4.5.5 '@verypossible/eslint-config': 1.6.1_typescript@4.5.5 '@vitejs/plugin-react': 1.2.0 autoprefixer: 10.4.2_postcss@8.4.6 @@ -110,18 +112,20 @@ devDependencies: postcss: 8.4.6 prettier: 2.5.1 prettier-plugin-tailwindcss: 0.1.7_prettier@2.5.1 - tailwindcss: 3.0.22_autoprefixer@10.4.2 + rollup-plugin-visualizer: 5.5.4 + tailwindcss: 3.0.23_autoprefixer@10.4.2 tar: 6.1.11 typescript: 4.5.5 - vite: 2.8.1 + unimported: 1.19.1 + vite: 2.8.4 vite-plugin-cdn-import: 0.3.5 - vite-plugin-pwa: 0.11.13_vite@2.8.1 + vite-plugin-pwa: 0.11.13_vite@2.8.4 workbox-window: 6.4.2 packages: - /@ampproject/remapping/2.1.1: - resolution: {integrity: sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==} + /@ampproject/remapping/2.1.2: + resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/trace-mapping': 0.3.4 @@ -157,19 +161,19 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.17.2: - resolution: {integrity: sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==} + /@babel/core/7.17.5: + resolution: {integrity: sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.1.1 + '@ampproject/remapping': 2.1.2 '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.0 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 + '@babel/generator': 7.17.3 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 '@babel/helper-module-transforms': 7.16.7 '@babel/helpers': 7.17.2 - '@babel/parser': 7.17.0 + '@babel/parser': 7.17.3 '@babel/template': 7.16.7 - '@babel/traverse': 7.17.0 + '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 convert-source-map: 1.8.0 debug: 4.3.3 @@ -180,8 +184,8 @@ packages: - supports-color dev: true - /@babel/generator/7.17.0: - resolution: {integrity: sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==} + /@babel/generator/7.17.3: + resolution: {integrity: sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 @@ -204,26 +208,26 @@ packages: '@babel/types': 7.17.0 dev: true - /@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.2: + /@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-validator-option': 7.16.7 - browserslist: 4.19.1 + browserslist: 4.19.3 semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin/7.17.1_@babel+core@7.17.2: + /@babel/helper-create-class-features-plugin/7.17.1_@babel+core@7.17.5: resolution: {integrity: sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.16.7 @@ -235,27 +239,27 @@ packages: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.17.2: + /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.17.5: resolution: {integrity: sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-annotate-as-pure': 7.16.7 regexpu-core: 5.0.1 dev: true - /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.2: + /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.5: resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 - '@babel/traverse': 7.17.0 + '@babel/traverse': 7.17.3 debug: 4.3.3 lodash.debounce: 4.0.8 resolve: 1.22.0 @@ -325,7 +329,7 @@ packages: '@babel/helper-split-export-declaration': 7.16.7 '@babel/helper-validator-identifier': 7.16.7 '@babel/template': 7.16.7 - '@babel/traverse': 7.17.0 + '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color @@ -361,7 +365,7 @@ packages: '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-member-expression-to-functions': 7.16.7 '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/traverse': 7.17.0 + '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color @@ -404,7 +408,7 @@ packages: dependencies: '@babel/helper-function-name': 7.16.7 '@babel/template': 7.16.7 - '@babel/traverse': 7.17.0 + '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color @@ -415,7 +419,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.16.7 - '@babel/traverse': 7.17.0 + '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color @@ -430,373 +434,382 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.17.0: - resolution: {integrity: sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==} + /@babel/parser/7.17.3: + resolution: {integrity: sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==} engines: {node: '>=6.0.0'} hasBin: true dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.17.2: + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.17.2: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.2: + /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-remap-async-to-generator': 7.16.8 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-static-block/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-class-static-block/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-object-rest-spread/7.16.7_@babel+core@7.17.2: - resolution: {integrity: sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==} + /@babel/plugin-proposal-object-rest-spread/7.17.3_@babel+core@7.17.5: + resolution: {integrity: sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.2 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.5 dev: true - /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.2: + /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.5: resolution: {integrity: sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.17.2: + /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.2: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.5: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.2: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.5: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.2: + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.5: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.2: + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.2: + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.2: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.2: + /@babel/plugin-syntax-jsx/7.16.7: resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.2: + /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.5: + resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.5 + '@babel/helper-plugin-utils': 7.16.7 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.5: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.2: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.2: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.5: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.2: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.2: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.2: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.5: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.2: + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.5: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.2: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.5: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.2: + /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-remap-async-to-generator': 7.16.8 @@ -804,33 +817,33 @@ packages: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.16.7 @@ -843,107 +856,107 @@ packages: - supports-color dev: true - /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-destructuring/7.16.7_@babel+core@7.17.2: - resolution: {integrity: sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==} + /@babel/plugin-transform-destructuring/7.17.3_@babel+core@7.17.5: + resolution: {integrity: sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 '@babel/helper-function-name': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 babel-plugin-dynamic-import-node: 2.3.3 @@ -951,13 +964,13 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.17.2: + /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-simple-access': 7.16.7 @@ -966,13 +979,13 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-systemjs/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-modules-systemjs/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 @@ -982,302 +995,302 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.17.2: + /@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.17.5: resolution: {integrity: sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 dev: true - /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-replace-supers': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/plugin-transform-react-jsx': 7.16.7_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.5 dev: true - /@babel/plugin-transform-react-jsx-self/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-react-jsx-self/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx/7.16.7_@babel+core@7.17.2: - resolution: {integrity: sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==} + /@babel/plugin-transform-react-jsx/7.17.3_@babel+core@7.17.5: + resolution: {integrity: sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.5 '@babel/types': 7.17.0 dev: true - /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 regenerator-transform: 0.14.5 dev: true - /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 dev: true - /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.17.2: + /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.17.5: resolution: {integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/preset-env/7.16.11_@babel+core@7.17.2: + /@babel/preset-env/7.16.11_@babel+core@7.17.5: resolution: {integrity: sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.2 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-validator-option': 7.16.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.2 - '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-class-static-block': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-object-rest-spread': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.17.2 - '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.2 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.2 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.2 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.2 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.2 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.2 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.2 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.2 - '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.2 - '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-destructuring': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.17.2 - '@babel/plugin-transform-modules-systemjs': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-named-capturing-groups-regex': 7.16.8_@babel+core@7.17.2 - '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.17.2 - '@babel/preset-modules': 0.1.5_@babel+core@7.17.2 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-class-static-block': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-object-rest-spread': 7.17.3_@babel+core@7.17.5 + '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.17.5 + '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.5 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.5 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.5 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.5 + '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-destructuring': 7.17.3_@babel+core@7.17.5 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-transform-modules-systemjs': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-named-capturing-groups-regex': 7.16.8_@babel+core@7.17.5 + '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.17.5 + '@babel/preset-modules': 0.1.5_@babel+core@7.17.5 '@babel/types': 7.17.0 - babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.2 - babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.2 - babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.2 - core-js-compat: 3.21.0 + babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.5 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.5 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.5 + core-js-compat: 3.21.1 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.17.2: + /@babel/preset-modules/0.1.5_@babel+core@7.17.5: resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.5 '@babel/types': 7.17.0 esutils: 2.0.3 dev: true @@ -1293,21 +1306,21 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/parser': 7.17.0 + '@babel/parser': 7.17.3 '@babel/types': 7.17.0 dev: true - /@babel/traverse/7.17.0: - resolution: {integrity: sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==} + /@babel/traverse/7.17.3: + resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.0 + '@babel/generator': 7.17.3 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.16.7 '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.17.0 + '@babel/parser': 7.17.3 '@babel/types': 7.17.0 debug: 4.3.3 globals: 11.12.0 @@ -1339,19 +1352,38 @@ packages: js-sha3: 0.8.0 dev: false + /@emotion/babel-plugin/11.7.2: + resolution: {integrity: sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/helper-module-imports': 7.16.7 + '@babel/plugin-syntax-jsx': 7.16.7 + '@babel/runtime': 7.17.2 + '@emotion/hash': 0.8.0 + '@emotion/memoize': 0.7.5 + '@emotion/serialize': 1.0.2 + babel-plugin-macros: 2.8.0 + convert-source-map: 1.8.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.0.13 + dev: true + /@emotion/cache/11.7.1: resolution: {integrity: sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==} dependencies: - '@emotion/memoize': 0.7.5 + '@emotion/memoize': 0.7.4 '@emotion/sheet': 1.1.0 '@emotion/utils': 1.0.0 '@emotion/weak-memoize': 0.2.5 stylis: 4.0.13 - dev: false + dev: true /@emotion/hash/0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - dev: false + dev: true /@emotion/is-prop-valid/0.8.8: resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} @@ -1361,14 +1393,18 @@ packages: dev: false optional: true + /@emotion/is-prop-valid/1.1.1: + resolution: {integrity: sha512-bW1Tos67CZkOURLc0OalnfxtSXQJMrAMV0jZTVGJUPSOd4qgjF3+tTD5CwJM13PHA8cltGW1WGbbvV9NpvUZPw==} + dependencies: + '@emotion/memoize': 0.7.4 + dev: true + /@emotion/memoize/0.7.4: resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} - dev: false - optional: true /@emotion/memoize/0.7.5: resolution: {integrity: sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==} - dev: false + dev: true /@emotion/react/11.7.1_a0c521d4794c7ad97f5f4c1c4a7d5818: resolution: {integrity: sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw==} @@ -1391,33 +1427,56 @@ packages: '@types/react': 17.0.39 hoist-non-react-statics: 3.3.2 react: 17.0.2 - dev: false + dev: true /@emotion/serialize/1.0.2: resolution: {integrity: sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==} dependencies: '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.5 + '@emotion/memoize': 0.7.4 '@emotion/unitless': 0.7.5 '@emotion/utils': 1.0.0 csstype: 3.0.10 - dev: false + dev: true /@emotion/sheet/1.1.0: resolution: {integrity: sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==} - dev: false + dev: true + + /@emotion/styled/11.6.0_6051c8b70bfa52211d6f419a3c4413f0: + resolution: {integrity: sha512-mxVtVyIOTmCAkFbwIp+nCjTXJNgcz4VWkOYQro87jE2QBTydnkiYusMrRGFtzuruiGK4dDaNORk4gH049iiQuw==} + peerDependencies: + '@babel/core': ^7.0.0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.17.2 + '@emotion/babel-plugin': 11.7.2 + '@emotion/is-prop-valid': 1.1.1 + '@emotion/react': 11.7.1_a0c521d4794c7ad97f5f4c1c4a7d5818 + '@emotion/serialize': 1.0.2 + '@emotion/utils': 1.0.0 + '@types/react': 17.0.39 + react: 17.0.2 + dev: true /@emotion/unitless/0.7.5: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - dev: false + dev: true /@emotion/utils/1.0.0: resolution: {integrity: sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==} - dev: false + dev: true /@emotion/weak-memoize/0.2.5: resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} - dev: false + dev: true /@eslint/eslintrc/0.4.3: resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} @@ -1430,7 +1489,7 @@ packages: ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 - minimatch: 3.1.0 + minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color @@ -1447,41 +1506,38 @@ packages: ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 4.1.0 - minimatch: 3.1.0 + minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: true - /@floating-ui/core/0.3.1: - resolution: {integrity: sha512-ensKY7Ub59u16qsVIFEo2hwTCqZ/r9oZZFh51ivcLGHfUwTn8l1Xzng8RJUe91H/UP8PeqeBronAGx0qmzwk2g==} - dev: false - - /@floating-ui/dom/0.1.10: - resolution: {integrity: sha512-4kAVoogvQm2N0XE0G6APQJuCNuErjOfPW8Ux7DFxh8+AfugWflwVJ5LDlHOwrwut7z/30NUvdtHzQ3zSip4EzQ==} + /@gfx/zopfli/1.0.15: + resolution: {integrity: sha512-7mBgpi7UD82fsff5ThQKet0uBTl4BYerQuc+/qA1ELTwWEiIedRTcD3JgiUu9wwZ2kytW8JOb165rSdAt8PfcQ==} + engines: {node: '>= 8'} dependencies: - '@floating-ui/core': 0.3.1 - dev: false + base64-js: 1.5.1 + dev: true - /@floating-ui/react-dom/0.4.3_b8fdba992ce7d797017dc07106486496: - resolution: {integrity: sha512-ZL88ryd9p6sFh9jIC/+05JZoNsogcq6U09cygQjiy757QtQqxIVLQwFag+BAWWYqpNEMO0S60fkqmh8KIAV4oA==} + /@hookform/devtools/4.0.2_da1501d92c160d437c19af0441e08954: + resolution: {integrity: sha512-zihsPnUscEt6uERnVdBSqBdotpemQ0EDfC6F1J69o7EsToqHnMmeym5Kb7GnDDHxYsURgotFgQYnkCM4c4QvsA==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: '>=17.0.2' + react-dom: '>=17.0.2' + react-hook-form: ^7.13.0 dependencies: - '@floating-ui/dom': 0.1.10 + '@emotion/react': 11.7.1_a0c521d4794c7ad97f5f4c1c4a7d5818 + '@emotion/styled': 11.6.0_6051c8b70bfa52211d6f419a3c4413f0 + '@types/lodash': 4.14.178 + little-state-machine: 4.2.1_react@17.0.2 + lodash: 4.17.21 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 - use-isomorphic-layout-effect: 1.1.1_a0c521d4794c7ad97f5f4c1c4a7d5818 + react-hook-form: 7.27.0_react@17.0.2 + react-simple-animate: 3.3.12_react-dom@17.0.2+react@17.0.2 transitivePeerDependencies: + - '@babel/core' - '@types/react' - dev: false - - /@gfx/zopfli/1.0.15: - resolution: {integrity: sha512-7mBgpi7UD82fsff5ThQKet0uBTl4BYerQuc+/qA1ELTwWEiIedRTcD3JgiUu9wwZ2kytW8JOb165rSdAt8PfcQ==} - engines: {node: '>= 8'} - dependencies: - base64-js: 1.5.1 dev: true /@humanwhocodes/config-array/0.5.0: @@ -1490,7 +1546,7 @@ packages: dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3 - minimatch: 3.1.0 + minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true @@ -1501,7 +1557,7 @@ packages: dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3 - minimatch: 3.1.0 + minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true @@ -1526,6 +1582,18 @@ packages: '@jridgewell/sourcemap-codec': 1.4.11 dev: true + /@kwsites/file-exists/1.1.1: + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + dependencies: + debug: 4.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@kwsites/promise-deferred/1.1.1: + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + dev: true + /@mapbox/geojson-rewind/0.5.1: resolution: {integrity: sha512-eL7fMmfTBKjrb+VFHXCGv9Ot0zc3C0U+CwXo1IrP+EPwDczLoXv34Tgq3y+2mPSFNVUXgU42ILWJTC7145KPTA==} hasBin: true @@ -1570,23 +1638,6 @@ packages: engines: {node: '>=6.0.0'} dev: false - /@meshtastic/components/1.0.23_@types+react@17.0.39: - resolution: {integrity: sha512-Ef7+QDCJOaDnmwCnNGMziCGTvo1r4+4Dts3HtRu3RuINKyRgfJydbZjt0moXGcsOV4N8sB2m9tf/r+1HQLH0Ug==} - dependencies: - '@tippyjs/react': 4.2.6_react-dom@17.0.2+react@17.0.2 - '@types/cuid': 2.0.1 - cuid: 2.1.8 - inter-ui: 3.19.3 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-icons: 4.3.1_react@17.0.2 - react-select: 5.2.2_b8fdba992ce7d797017dc07106486496 - tippy.js: 6.3.7 - transitivePeerDependencies: - - '@babel/core' - - '@types/react' - dev: false - /@meshtastic/meshtasticjs/0.6.45: resolution: {integrity: sha512-icAGMofpQ3hYqWhjYMLqMyhb0Xtk3GozEgOXScFTKVOaecDY0XIJmuvoBDfgD2lxNxDDPr0Dj77js+3JGxTcRg==} dependencies: @@ -1642,7 +1693,7 @@ packages: reselect: 4.1.5 dev: false - /@rollup/plugin-babel/5.3.0_@babel+core@7.17.2+rollup@2.67.2: + /@rollup/plugin-babel/5.3.0_@babel+core@7.17.5+rollup@2.67.3: resolution: {integrity: sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -1653,38 +1704,38 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.17.2 + '@babel/core': 7.17.5 '@babel/helper-module-imports': 7.16.7 - '@rollup/pluginutils': 3.1.0_rollup@2.67.2 - rollup: 2.67.2 + '@rollup/pluginutils': 3.1.0_rollup@2.67.3 + rollup: 2.67.3 dev: true - /@rollup/plugin-node-resolve/11.2.1_rollup@2.67.2: + /@rollup/plugin-node-resolve/11.2.1_rollup@2.67.3: resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.67.2 + '@rollup/pluginutils': 3.1.0_rollup@2.67.3 '@types/resolve': 1.17.1 builtin-modules: 3.2.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.22.0 - rollup: 2.67.2 + rollup: 2.67.3 dev: true - /@rollup/plugin-replace/2.4.2_rollup@2.67.2: + /@rollup/plugin-replace/2.4.2_rollup@2.67.3: resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.67.2 + '@rollup/pluginutils': 3.1.0_rollup@2.67.3 magic-string: 0.25.7 - rollup: 2.67.2 + rollup: 2.67.3 dev: true - /@rollup/pluginutils/3.1.0_rollup@2.67.2: + /@rollup/pluginutils/3.1.0_rollup@2.67.3: resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -1693,7 +1744,7 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.67.2 + rollup: 2.67.3 dev: true /@rollup/pluginutils/4.1.2: @@ -1750,13 +1801,6 @@ packages: tippy.js: 6.3.7 dev: false - /@types/cuid/2.0.1: - resolution: {integrity: sha512-xKfGHwpYmA49CTknWV5TMovp4oe+BUN/cb2VgVulgJEPnYXsF3fUAwmFiCHuPZAKDU+yXMBJhkW3E79xGhRGMg==} - deprecated: This is a stub types definition. cuid provides its own type definitions, so you do not need this installed. - dependencies: - cuid: 2.1.8 - dev: false - /@types/estree/0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true @@ -1784,14 +1828,22 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true + /@types/lodash/4.14.178: + resolution: {integrity: sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==} + dev: true + /@types/mapbox-gl/2.6.1: resolution: {integrity: sha512-ErM4hS1cAH9eJZ+b0bgrF9JuSN1P5i9jhfiJTZ6uOb2Bib7a8tkUivLz/fA69h51JN2CE3G5RE8EZIslgBzIIA==} dependencies: '@types/geojson': 7946.0.8 dev: true - /@types/node/17.0.17: - resolution: {integrity: sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==} + /@types/node/17.0.18: + resolution: {integrity: sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true /@types/parse-json/4.0.0: @@ -1816,12 +1868,6 @@ packages: redux: 4.1.2 dev: false - /@types/react-transition-group/4.4.4: - resolution: {integrity: sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==} - dependencies: - '@types/react': 17.0.39 - dev: false - /@types/react/17.0.39: resolution: {integrity: sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==} dependencies: @@ -1832,7 +1878,7 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 17.0.17 + '@types/node': 17.0.18 dev: true /@types/scheduler/0.16.2: @@ -1876,8 +1922,8 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.11.0_15a231715447500ed5c06da64c8aef1c: - resolution: {integrity: sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==} + /@typescript-eslint/eslint-plugin/5.12.0_c467cf9bb49b295941e83ce479a578b7: + resolution: {integrity: sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -1887,10 +1933,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.11.0_eslint@8.9.0+typescript@4.5.5 - '@typescript-eslint/scope-manager': 5.11.0 - '@typescript-eslint/type-utils': 5.11.0_eslint@8.9.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.11.0_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.12.0_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.12.0 + '@typescript-eslint/type-utils': 5.12.0_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.12.0_eslint@8.9.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.9.0 functional-red-black-tree: 1.0.1 @@ -1941,8 +1987,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.11.0_eslint@8.9.0+typescript@4.5.5: - resolution: {integrity: sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==} + /@typescript-eslint/parser/5.12.0_eslint@8.9.0+typescript@4.5.5: + resolution: {integrity: sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1951,9 +1997,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.11.0 - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.12.0 + '@typescript-eslint/types': 5.12.0 + '@typescript-eslint/typescript-estree': 5.12.0_typescript@4.5.5 debug: 4.3.3 eslint: 8.9.0 typescript: 4.5.5 @@ -1969,16 +2015,16 @@ packages: '@typescript-eslint/visitor-keys': 4.33.0 dev: true - /@typescript-eslint/scope-manager/5.11.0: - resolution: {integrity: sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==} + /@typescript-eslint/scope-manager/5.12.0: + resolution: {integrity: sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/visitor-keys': 5.11.0 + '@typescript-eslint/types': 5.12.0 + '@typescript-eslint/visitor-keys': 5.12.0 dev: true - /@typescript-eslint/type-utils/5.11.0_eslint@8.9.0+typescript@4.5.5: - resolution: {integrity: sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==} + /@typescript-eslint/type-utils/5.12.0_eslint@8.9.0+typescript@4.5.5: + resolution: {integrity: sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -1987,7 +2033,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.11.0_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.12.0_eslint@8.9.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.9.0 tsutils: 3.21.0_typescript@4.5.5 @@ -2001,8 +2047,8 @@ packages: engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true - /@typescript-eslint/types/5.11.0: - resolution: {integrity: sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==} + /@typescript-eslint/types/5.12.0: + resolution: {integrity: sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -2027,8 +2073,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.11.0_typescript@4.5.5: - resolution: {integrity: sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==} + /@typescript-eslint/typescript-estree/5.12.0_typescript@4.5.5: + resolution: {integrity: sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2036,8 +2082,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/visitor-keys': 5.11.0 + '@typescript-eslint/types': 5.12.0 + '@typescript-eslint/visitor-keys': 5.12.0 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 @@ -2048,16 +2094,16 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.11.0_eslint@8.9.0+typescript@4.5.5: - resolution: {integrity: sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==} + /@typescript-eslint/utils/5.12.0_eslint@8.9.0+typescript@4.5.5: + resolution: {integrity: sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.11.0 - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.12.0 + '@typescript-eslint/types': 5.12.0 + '@typescript-eslint/typescript-estree': 5.12.0_typescript@4.5.5 eslint: 8.9.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.9.0 @@ -2074,11 +2120,11 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /@typescript-eslint/visitor-keys/5.11.0: - resolution: {integrity: sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==} + /@typescript-eslint/visitor-keys/5.12.0: + resolution: {integrity: sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.11.0 + '@typescript-eslint/types': 5.12.0 eslint-visitor-keys: 3.3.0 dev: true @@ -2106,11 +2152,11 @@ packages: resolution: {integrity: sha512-Rywwt0IXXg6yQ0hv3cMT3mtdDcGIw31mGaa+MMMAT651LhoXLF2yFy4LrakiTs7UKs7RPBo9eNgaS8pgl2A6Qw==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.17.2 - '@babel/plugin-transform-react-jsx': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-react-jsx-self': 7.16.7_@babel+core@7.17.2 - '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.5 + '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-react-jsx-self': 7.16.7_@babel+core@7.17.5 + '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.17.5 '@rollup/pluginutils': 4.1.2 react-refresh: 0.11.0 resolve: 1.22.0 @@ -2185,6 +2231,7 @@ packages: /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + dev: true /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -2198,6 +2245,7 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} @@ -2280,8 +2328,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.19.1 - caniuse-lite: 1.0.30001311 + browserslist: 4.19.3 + caniuse-lite: 1.0.30001312 fraction.js: 4.1.3 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -2300,6 +2348,14 @@ packages: object.assign: 4.1.2 dev: true + /babel-plugin-macros/2.8.0: + resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} + dependencies: + '@babel/runtime': 7.17.2 + cosmiconfig: 6.0.0 + resolve: 1.22.0 + dev: true + /babel-plugin-module-resolver/4.1.0: resolution: {integrity: sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==} engines: {node: '>= 8.0.0'} @@ -2311,38 +2367,38 @@ packages: resolve: 1.22.0 dev: true - /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.2: + /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.5: resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.2 - '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.5 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.2: + /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.5: resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.2 - core-js-compat: 3.21.0 + '@babel/core': 7.17.5 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.5 + core-js-compat: 3.21.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.2: + /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.5: resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.2 - '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.5 transitivePeerDependencies: - supports-color dev: true @@ -2359,6 +2415,14 @@ packages: engines: {node: '>=8'} dev: true + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -2373,13 +2437,13 @@ packages: fill-range: 7.0.1 dev: true - /browserslist/4.19.1: - resolution: {integrity: sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==} + /browserslist/4.19.3: + resolution: {integrity: sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001311 - electron-to-chromium: 1.4.68 + caniuse-lite: 1.0.30001312 + electron-to-chromium: 1.4.71 escalade: 3.1.1 node-releases: 2.0.2 picocolors: 1.0.0 @@ -2389,6 +2453,13 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /builtin-modules/3.2.0: resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} engines: {node: '>=6'} @@ -2411,8 +2482,8 @@ packages: engines: {node: '>= 6'} dev: true - /caniuse-lite/1.0.30001311: - resolution: {integrity: sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==} + /caniuse-lite/1.0.30001312: + resolution: {integrity: sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==} dev: true /chalk/2.4.2: @@ -2456,13 +2527,30 @@ packages: resolution: {integrity: sha512-6dK2ke4VEJZOFx2ZfdDAl5OhEL8lvkl6EHF92IfRePfHxQTqir5NlcNVUv+2idjDqCX2NDc8m8YSAI5NI975ZQ==} dev: false + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners/2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} + dev: true + /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: false + dev: true + + /clone/1.0.4: + resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} + engines: {node: '>=0.8'} + dev: true /clsx/1.1.1: resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} @@ -2480,6 +2568,7 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: true /color-name/1.1.3: resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} @@ -2487,6 +2576,7 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -2525,10 +2615,10 @@ packages: toggle-selection: 1.0.6 dev: false - /core-js-compat/3.21.0: - resolution: {integrity: sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==} + /core-js-compat/3.21.1: + resolution: {integrity: sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==} dependencies: - browserslist: 4.19.1 + browserslist: 4.19.3 semver: 7.0.0 dev: true @@ -2536,6 +2626,17 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true + /cosmiconfig/6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + /cosmiconfig/7.0.1: resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} engines: {node: '>=10'} @@ -2704,10 +2805,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /defaults/1.0.3: + resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=} + dependencies: + clone: 1.0.4 + dev: true + /define-lazy-prop/2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} - dev: false + dev: true /define-properties/1.1.3: resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} @@ -2764,13 +2871,6 @@ packages: esutils: 2.0.3 dev: true - /dom-helpers/5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - dependencies: - '@babel/runtime': 7.17.2 - csstype: 3.0.10 - dev: false - /duplex-maker/1.0.0: resolution: {integrity: sha1-FgT4uUPLAGOm0+H+QqplETp52ko=} dev: true @@ -2796,12 +2896,13 @@ packages: jake: 10.8.2 dev: true - /electron-to-chromium/1.4.68: - resolution: {integrity: sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==} + /electron-to-chromium/1.4.71: + resolution: {integrity: sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==} dev: true /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -2870,8 +2971,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.21: - resolution: {integrity: sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ==} + /esbuild-android-arm64/0.14.23: + resolution: {integrity: sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2879,8 +2980,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.21: - resolution: {integrity: sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ==} + /esbuild-darwin-64/0.14.23: + resolution: {integrity: sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2888,8 +2989,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.21: - resolution: {integrity: sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ==} + /esbuild-darwin-arm64/0.14.23: + resolution: {integrity: sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2897,8 +2998,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.21: - resolution: {integrity: sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g==} + /esbuild-freebsd-64/0.14.23: + resolution: {integrity: sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2906,8 +3007,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.21: - resolution: {integrity: sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA==} + /esbuild-freebsd-arm64/0.14.23: + resolution: {integrity: sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2915,8 +3016,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.21: - resolution: {integrity: sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg==} + /esbuild-linux-32/0.14.23: + resolution: {integrity: sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -2924,8 +3025,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.21: - resolution: {integrity: sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA==} + /esbuild-linux-64/0.14.23: + resolution: {integrity: sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2933,8 +3034,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.21: - resolution: {integrity: sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w==} + /esbuild-linux-arm/0.14.23: + resolution: {integrity: sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -2942,8 +3043,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.21: - resolution: {integrity: sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g==} + /esbuild-linux-arm64/0.14.23: + resolution: {integrity: sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -2951,8 +3052,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.21: - resolution: {integrity: sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A==} + /esbuild-linux-mips64le/0.14.23: + resolution: {integrity: sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -2960,8 +3061,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.21: - resolution: {integrity: sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ==} + /esbuild-linux-ppc64le/0.14.23: + resolution: {integrity: sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -2969,8 +3070,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.21: - resolution: {integrity: sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q==} + /esbuild-linux-riscv64/0.14.23: + resolution: {integrity: sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2978,8 +3079,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.21: - resolution: {integrity: sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA==} + /esbuild-linux-s390x/0.14.23: + resolution: {integrity: sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -2987,8 +3088,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.21: - resolution: {integrity: sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g==} + /esbuild-netbsd-64/0.14.23: + resolution: {integrity: sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2996,8 +3097,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.21: - resolution: {integrity: sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA==} + /esbuild-openbsd-64/0.14.23: + resolution: {integrity: sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -3005,8 +3106,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.21: - resolution: {integrity: sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA==} + /esbuild-sunos-64/0.14.23: + resolution: {integrity: sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -3014,8 +3115,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.21: - resolution: {integrity: sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A==} + /esbuild-windows-32/0.14.23: + resolution: {integrity: sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -3023,8 +3124,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.21: - resolution: {integrity: sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA==} + /esbuild-windows-64/0.14.23: + resolution: {integrity: sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -3032,8 +3133,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.21: - resolution: {integrity: sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw==} + /esbuild-windows-arm64/0.14.23: + resolution: {integrity: sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -3041,36 +3142,37 @@ packages: dev: true optional: true - /esbuild/0.14.21: - resolution: {integrity: sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A==} + /esbuild/0.14.23: + resolution: {integrity: sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.21 - esbuild-darwin-64: 0.14.21 - esbuild-darwin-arm64: 0.14.21 - esbuild-freebsd-64: 0.14.21 - esbuild-freebsd-arm64: 0.14.21 - esbuild-linux-32: 0.14.21 - esbuild-linux-64: 0.14.21 - esbuild-linux-arm: 0.14.21 - esbuild-linux-arm64: 0.14.21 - esbuild-linux-mips64le: 0.14.21 - esbuild-linux-ppc64le: 0.14.21 - esbuild-linux-riscv64: 0.14.21 - esbuild-linux-s390x: 0.14.21 - esbuild-netbsd-64: 0.14.21 - esbuild-openbsd-64: 0.14.21 - esbuild-sunos-64: 0.14.21 - esbuild-windows-32: 0.14.21 - esbuild-windows-64: 0.14.21 - esbuild-windows-arm64: 0.14.21 + esbuild-android-arm64: 0.14.23 + esbuild-darwin-64: 0.14.23 + esbuild-darwin-arm64: 0.14.23 + esbuild-freebsd-64: 0.14.23 + esbuild-freebsd-arm64: 0.14.23 + esbuild-linux-32: 0.14.23 + esbuild-linux-64: 0.14.23 + esbuild-linux-arm: 0.14.23 + esbuild-linux-arm64: 0.14.23 + esbuild-linux-mips64le: 0.14.23 + esbuild-linux-ppc64le: 0.14.23 + esbuild-linux-riscv64: 0.14.23 + esbuild-linux-s390x: 0.14.23 + esbuild-netbsd-64: 0.14.23 + esbuild-openbsd-64: 0.14.23 + esbuild-sunos-64: 0.14.23 + esbuild-windows-32: 0.14.23 + esbuild-windows-64: 0.14.23 + esbuild-windows-arm64: 0.14.23 dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + dev: true /escape-string-regexp/1.0.5: resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} @@ -3188,7 +3290,7 @@ packages: has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 - minimatch: 3.1.0 + minimatch: 3.1.2 object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.12.0 @@ -3210,7 +3312,7 @@ packages: has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 - minimatch: 3.1.0 + minimatch: 3.1.2 object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.12.0 @@ -3246,7 +3348,7 @@ packages: eslint: 7.32.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.1 - minimatch: 3.1.0 + minimatch: 3.1.2 object.entries: 1.1.5 object.fromentries: 2.0.5 object.hasown: 1.1.0 @@ -3269,7 +3371,7 @@ packages: eslint: 8.9.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.1 - minimatch: 3.1.0 + minimatch: 3.1.2 object.entries: 1.1.5 object.fromentries: 2.0.5 object.hasown: 1.1.0 @@ -3372,7 +3474,7 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.1.0 + minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 progress: 2.0.3 @@ -3419,7 +3521,7 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.1.0 + minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 regexpp: 3.2.0 @@ -3536,7 +3638,7 @@ packages: /filelist/1.0.2: resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} dependencies: - minimatch: 3.1.0 + minimatch: 3.1.2 dev: true /fill-range/7.0.1: @@ -3554,6 +3656,10 @@ packages: path-exists: 3.0.0 dev: true + /find-root/1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + /find-up/2.1.0: resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} engines: {node: '>=4'} @@ -3568,6 +3674,14 @@ packages: locate-path: 3.0.0 dev: true + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3580,6 +3694,21 @@ packages: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} dev: true + /flow-parser/0.172.0: + resolution: {integrity: sha512-WWqgvuJgD9Y1n2su9D73m0g5kQ4XVl8Dwk6DeW5V6bjt4XMtVLzSHg35s3iiZOvShY+7w7l8FzlK81PGXRcIYQ==} + engines: {node: '>=0.4.0'} + dev: true + + /flow-remove-types/2.172.0: + resolution: {integrity: sha512-EfHtwB48kgwQnU1ucNWVmEh+z2ubek9NWLkNb+9djaxRYijHl/YhuGut590ObHlz1wPaimUZcNyGi3kjBfSWZw==} + engines: {node: '>=4'} + hasBin: true + dependencies: + flow-parser: 0.172.0 + pirates: 3.0.2 + vlq: 0.2.3 + dev: true + /foreach/2.0.5: resolution: {integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=} dev: true @@ -3669,7 +3798,7 @@ packages: /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: false + dev: true /get-intrinsic/1.1.1: resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} @@ -3720,7 +3849,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.0 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 dev: true @@ -3828,7 +3957,10 @@ packages: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 - dev: false + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true /idb/6.1.5: resolution: {integrity: sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==} @@ -3836,7 +3968,6 @@ packages: /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false /ignore/4.0.6: resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} @@ -3876,10 +4007,6 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /inter-ui/3.19.3: - resolution: {integrity: sha512-5FG9fjuYOXocIfjzcCBhICL5cpvwEetseL3FU6tP3d6Bn7g8wODhB+I9RNGRTizCT7CUG4GOK54OPxqq3msQgg==} - dev: false - /internal-slot/1.0.3: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} @@ -3944,7 +4071,7 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - dev: false + dev: true /is-extglob/2.1.1: resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} @@ -3954,6 +4081,7 @@ packages: /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + dev: true /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -3962,6 +4090,11 @@ packages: is-extglob: 2.1.1 dev: true + /is-interactive/1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + /is-map/2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true @@ -4049,6 +4182,11 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + /is-weakmap/2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} dev: true @@ -4071,7 +4209,7 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - dev: false + dev: true /is-zst/1.0.0: resolution: {integrity: sha512-ZA5lvshKAl8z30dX7saXLpVhpsq3d2EHK9uf7qtUjnOtdw4XBpAoWb2RvZ5kyoaebdoidnGI0g2hn9Z7ObPbww==} @@ -4096,14 +4234,14 @@ packages: async: 0.9.2 chalk: 2.4.2 filelist: 1.0.2 - minimatch: 3.1.0 + minimatch: 3.1.2 dev: true /jest-worker/26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 17.0.17 + '@types/node': 17.0.18 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -4228,6 +4366,14 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /little-state-machine/4.2.1_react@17.0.2: + resolution: {integrity: sha512-dJ3GVs2WHFZ9B0tSlqXrDcp7ODj6Yw/gp8aGqFcH998QBOXVH5duO4kP+oAFy0ATfZnzYzT0bwxAV/YtiBLeow==} + peerDependencies: + react: ^16.8.0 || ^17 + dependencies: + react: 17.0.2 + dev: true + /locate-path/2.0.0: resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} engines: {node: '>=4'} @@ -4244,6 +4390,13 @@ packages: path-exists: 3.0.0 dev: true + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + /lodash.debounce/4.0.8: resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} dev: true @@ -4264,6 +4417,14 @@ packages: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + /loose-envify/1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4311,10 +4472,6 @@ packages: vt-pbf: 3.1.3 dev: false - /memoize-one/5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: false - /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -4344,8 +4501,13 @@ packages: mime-db: 1.51.0 dev: false - /minimatch/3.1.0: - resolution: {integrity: sha512-vgmUyWyt2qidcJXdF6e+kf4DgJha4vzf3ctWJ0uGjfvqEgoX2V4GXQt0eZwM2FJWKANfS8VmzpvPKbWYibkHZA==} + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true @@ -4390,10 +4552,11 @@ packages: resolution: {integrity: sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=} dev: false - /nanoid/3.2.0: - resolution: {integrity: sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==} + /nanoid/3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + dev: true /natural-compare/1.4.0: resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} @@ -4411,10 +4574,24 @@ packages: whatwg-url: 5.0.0 dev: false + /node-modules-regexp/1.0.0: + resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} + engines: {node: '>=0.10.0'} + dev: true + /node-releases/2.0.2: resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} dev: true + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -4501,6 +4678,13 @@ packages: wrappy: 1.0.2 dev: true + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + /open/8.4.0: resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} engines: {node: '>=12'} @@ -4508,7 +4692,7 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: false + dev: true /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} @@ -4522,6 +4706,21 @@ packages: word-wrap: 1.2.3 dev: true + /ora/5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + /os-tmpdir/1.0.2: resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} engines: {node: '>=0.10.0'} @@ -4555,6 +4754,13 @@ packages: p-limit: 2.3.0 dev: true + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + /p-try/1.0.0: resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} engines: {node: '>=4'} @@ -4587,6 +4793,11 @@ packages: engines: {node: '>=4'} dev: true + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + /path-is-absolute/1.0.1: resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} engines: {node: '>=0.10.0'} @@ -4631,6 +4842,13 @@ packages: engines: {node: '>=8.6'} dev: true + /pirates/3.0.2: + resolution: {integrity: sha512-c5CgUJq6H2k6MJz72Ak1F5sN9n9wlSlJyEnwvpm9/y3WB4E3pHBDT2c6PEiS1vyJvq2bUxUAIu0EGf8Cx4Ic7Q==} + engines: {node: '>= 4'} + dependencies: + node-modules-regexp: 1.0.0 + dev: true + /pkg-up/3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -4696,7 +4914,7 @@ packages: resolution: {integrity: sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.2.0 + nanoid: 3.3.1 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -4763,10 +4981,6 @@ packages: engines: {node: '>=6'} dev: true - /qr.js/0.0.0: - resolution: {integrity: sha1-ys6GOG9ZoNuAUPqQ2baw6IoeNk8=} - dev: false - /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -4875,8 +5089,8 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /react-multi-select-component/4.2.2_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-FvlHp1a4LzwJr121mq4q8NnO4l9HgDo7Z9gk4uCzhRygc78QmqoEcgKEwfcfaQKJp2HAZw4b31P87ex2mLK38A==} + /react-multi-select-component/4.2.3_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-NM8ZaSRXFxjWXSld41cg2k3AhEQhakTuPTQXpkkJHCfmgfwAkuKOxP7uAeMmBZcx6k12w8g3YsDVgz5mSXZvpA==} peerDependencies: react: ^16 || ^17 react-dom: ^16 || ^17 @@ -4885,17 +5099,6 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /react-qr-code/2.0.3_react@17.0.2: - resolution: {integrity: sha512-6GDH0l53lksf2JgZwwcoS0D60a1OAal/GQRyNFkMBW19HjSqvtD5S20scmSQsKl+BgWM85Wd5DCcUYoHd+PZnQ==} - peerDependencies: - react: ^16.x || ^17.x - react-native-svg: '*' - dependencies: - prop-types: 15.8.1 - qr.js: 0.0.0 - react: 17.0.2 - dev: false - /react-redux/7.2.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==} peerDependencies: @@ -4923,39 +5126,15 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-select/5.2.2_b8fdba992ce7d797017dc07106486496: - resolution: {integrity: sha512-miGS2rT1XbFNjduMZT+V73xbJEeMzVkJOz727F6MeAr2hKE0uUSA8Ff7vD44H32x2PD3SRB6OXTY/L+fTV3z9w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 - dependencies: - '@babel/runtime': 7.17.2 - '@emotion/cache': 11.7.1 - '@emotion/react': 11.7.1_a0c521d4794c7ad97f5f4c1c4a7d5818 - '@types/react-transition-group': 4.4.4 - memoize-one: 5.2.1 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-transition-group: 4.4.2_react-dom@17.0.2+react@17.0.2 - transitivePeerDependencies: - - '@babel/core' - - '@types/react' - dev: false - - /react-transition-group/4.4.2_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==} + /react-simple-animate/3.3.12_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-lFXjxD6ficcpOMsHfcDs1jqdkCve6jNlJnubOCzVOLswFDRANsaLN4KwpezDuliEFz8Q1zyj4J7Tmj3KMRnPcg==} peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' + react: ^16.8.0 || ^17 + react-dom: ^16.8.0 || ^17 dependencies: - '@babel/runtime': 7.17.2 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 - dev: false + dev: true /react-use-clipboard/1.0.7_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-blIprqARyITp0uVw/2Rh87mcujqXdH6vZ5NrcuXEhI5EmjBGxcGnwt/79+vdN7rwM6OliGj481lOj6ZCcsiYEQ==} @@ -4985,6 +5164,25 @@ packages: object-assign: 4.1.1 dev: false + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + /readable-stream/2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} dependencies: @@ -5086,7 +5284,7 @@ packages: /require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} - dev: false + dev: true /require-from-string/2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -5123,6 +5321,14 @@ packages: path-parse: 1.0.7 dev: true + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -5150,14 +5356,14 @@ packages: magic-string: 0.25.7 dev: true - /rollup-plugin-terser/7.0.2_rollup@2.67.2: + /rollup-plugin-terser/7.0.2_rollup@2.67.3: resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} peerDependencies: rollup: ^2.0.0 dependencies: '@babel/code-frame': 7.16.7 jest-worker: 26.6.2 - rollup: 2.67.2 + rollup: 2.67.3 serialize-javascript: 4.0.0 terser: 5.10.0 transitivePeerDependencies: @@ -5171,14 +5377,14 @@ packages: peerDependencies: rollup: ^2.0.0 dependencies: - nanoid: 3.2.0 + nanoid: 3.3.1 open: 8.4.0 source-map: 0.7.3 yargs: 17.3.1 - dev: false + dev: true - /rollup/2.67.2: - resolution: {integrity: sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw==} + /rollup/2.67.3: + resolution: {integrity: sha512-G/x1vUwbGtP6O5ZM8/sWr8+p7YfZhI18pPqMRtMYMWSbHjKZ/ajHGiM+GWNTlWyOR0EHIdT8LHU+Z4ciIZ1oBw==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -5210,6 +5416,11 @@ packages: object-assign: 4.1.1 dev: false + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true @@ -5254,6 +5465,20 @@ packages: object-inspect: 1.12.0 dev: true + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /simple-git/2.48.0: + resolution: {integrity: sha512-z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==} + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /simple-zstd/1.4.0: resolution: {integrity: sha512-9zBNnu7MkwRiZm7voFUX7ehCcLO2d1FmJ2RWEVsN8Exw2tVYK9k/0/8WjPUmSmtoHOyoFTkHHaOLuPSwkgFmrA==} dependencies: @@ -5307,6 +5532,7 @@ packages: /source-map/0.7.3: resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} engines: {node: '>= 8'} + dev: true /source-map/0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} @@ -5319,6 +5545,28 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-license-ids/3.0.11: + resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} + dev: true + /sprintf-js/1.0.3: resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} dev: true @@ -5334,6 +5582,7 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true /string.prototype.matchall/4.0.6: resolution: {integrity: sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==} @@ -5388,6 +5637,7 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true /strip-bom/3.0.0: resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} @@ -5413,7 +5663,7 @@ packages: /stylis/4.0.13: resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} - dev: false + dev: true /sub-events/1.8.9: resolution: {integrity: sha512-RhhA2amqVzL6nO+aiZOqxBCgcA3ZLfp4W9iHFUELwq8132TS7pUReJV+bcRjtNKdqm/Ep1sD/h01eAcTBtgrBQ==} @@ -5445,8 +5695,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /swr/1.2.1_react@17.0.2: - resolution: {integrity: sha512-1cuWXqJqXcFwbgONGCY4PHZ8v05009JdHsC3CIC6u7d00kgbMswNr1sHnnhseOBxtzVqcCNpOHEgVDciRer45w==} + /swr/1.2.2_react@17.0.2: + resolution: {integrity: sha512-ky0BskS/V47GpW8d6RU7CPsr6J8cr7mQD6+do5eky3bM0IyJaoi3vO8UhvrzJaObuTlGhPl2szodeB2dUd76Xw==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: @@ -5464,8 +5714,8 @@ packages: strip-ansi: 6.0.1 dev: true - /tailwindcss/3.0.22_autoprefixer@10.4.2: - resolution: {integrity: sha512-F8lt74RlNZirnkaSk310+vGQta7c0/hgx7/bqxruM4wS9lp8oqV93lzavajC3VT0Lp4UUtUVIt8ifKcmGzkr0A==} + /tailwindcss/3.0.23_autoprefixer@10.4.2: + resolution: {integrity: sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==} engines: {node: '>=12.13.0'} hasBin: true peerDependencies: @@ -5532,6 +5782,11 @@ packages: unique-string: 2.0.0 dev: true + /term-size/2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + /terser/5.10.0: resolution: {integrity: sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==} engines: {node: '>=10'} @@ -5657,6 +5912,16 @@ packages: engines: {node: '>=10'} dev: true + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + /type-route/0.6.0: resolution: {integrity: sha512-uh5bxHxHOKNDNTetGwBgtSP5ba3SUtnKcdj3d5AjbIALVbYBwaix4wwfpyxqrE9ia31LknXUc+359FChcC01jw==} dependencies: @@ -5701,6 +5966,30 @@ packages: engines: {node: '>=4'} dev: true + /unimported/1.19.1: + resolution: {integrity: sha512-p/8XnPnJbL+QhaI5qoBjT4XyJjSz0cXqK6z5JJEIF7HItZLHDldU4XjojnwJEqwghN1fzWJ8bMkPxi614m1/bQ==} + hasBin: true + dependencies: + '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.5.5 + '@typescript-eslint/typescript-estree': 4.33.0_typescript@4.5.5 + chalk: 4.1.2 + debug: 4.3.3 + eslint: 7.32.0 + file-entry-cache: 6.0.1 + flow-remove-types: 2.172.0 + glob: 7.2.0 + json5: 2.2.0 + ora: 5.4.1 + read-pkg-up: 7.0.1 + resolve: 1.22.0 + simple-git: 2.48.0 + term-size: 2.2.1 + typescript: 4.5.5 + yargs: 16.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /unique-string/2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -5724,19 +6013,6 @@ packages: punycode: 2.1.1 dev: true - /use-isomorphic-layout-effect/1.1.1_a0c521d4794c7ad97f5f4c1c4a7d5818: - resolution: {integrity: sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 17.0.39 - react: 17.0.2 - dev: false - /util-deprecate/1.0.2: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} dev: true @@ -5755,6 +6031,13 @@ packages: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + /vite-plugin-cdn-import/0.3.5: resolution: {integrity: sha512-e1raoalfBiIhv+hnMeSp1UNjloDDBhHpeFxkwRRdPBmTdDRqdEEn8owUmT5u8UBSVCs4xN3n/od4a91vXEhXPQ==} dependencies: @@ -5763,15 +6046,15 @@ packages: - rollup dev: true - /vite-plugin-environment/1.1.0_vite@2.8.1: + /vite-plugin-environment/1.1.0_vite@2.8.4: resolution: {integrity: sha512-ay0vYB8DEB7xB5sqVzOgLyTaGH5jbnvghzoDBmHvMx2Y2k1WUl0QQUuyu7oeiKnmIJDc8ciklhVcGc4lXMKyiA==} peerDependencies: vite: ^2.7 dependencies: - vite: 2.8.1 + vite: 2.8.4 dev: false - /vite-plugin-pwa/0.11.13_vite@2.8.1: + /vite-plugin-pwa/0.11.13_vite@2.8.4: resolution: {integrity: sha512-Ssj14m3TRVLfkFEAWSMcFE2d1cSdEZyrVTzfY2lSL+umHYvcIFHVDAY143sygtBCb44OPczsAOmWwBTxwOvh7g==} peerDependencies: vite: ^2.0.0 @@ -5779,8 +6062,8 @@ packages: debug: 4.3.3 fast-glob: 3.2.11 pretty-bytes: 5.6.0 - rollup: 2.67.2 - vite: 2.8.1 + rollup: 2.67.3 + vite: 2.8.4 workbox-build: 6.4.2 workbox-window: 6.4.2 transitivePeerDependencies: @@ -5789,8 +6072,8 @@ packages: - supports-color dev: true - /vite/2.8.1: - resolution: {integrity: sha512-Typ8qjUnW0p53gBsJpisrKcZlEbUPZATja9BG6Z09QZjg9YrnEn/htkr/VH4WhnH7eNUQeSD+wKI1lHzQRWskw==} + /vite/2.8.4: + resolution: {integrity: sha512-GwtOkkaT2LDI82uWZKcrpRQxP5tymLnC7hVHHqNkhFNknYr0hJUlDLfhVRgngJvAy3RwypkDCWtTKn1BjO96Dw==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -5805,14 +6088,18 @@ packages: stylus: optional: true dependencies: - esbuild: 0.14.21 + esbuild: 0.14.23 postcss: 8.4.6 resolve: 1.22.0 - rollup: 2.67.2 + rollup: 2.67.3 optionalDependencies: fsevents: 2.3.2 dev: true + /vlq/0.2.3: + resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} + dev: true + /vt-pbf/3.1.3: resolution: {integrity: sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==} dependencies: @@ -5821,6 +6108,12 @@ packages: pbf: 3.2.1 dev: false + /wcwidth/1.0.1: + resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} + dependencies: + defaults: 1.0.3 + dev: true + /webidl-conversions/3.0.1: resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} dev: false @@ -5906,12 +6199,12 @@ packages: engines: {node: '>=10.0.0'} dependencies: '@apideck/better-ajv-errors': 0.3.3_ajv@8.10.0 - '@babel/core': 7.17.2 - '@babel/preset-env': 7.16.11_@babel+core@7.17.2 + '@babel/core': 7.17.5 + '@babel/preset-env': 7.16.11_@babel+core@7.17.5 '@babel/runtime': 7.17.2 - '@rollup/plugin-babel': 5.3.0_@babel+core@7.17.2+rollup@2.67.2 - '@rollup/plugin-node-resolve': 11.2.1_rollup@2.67.2 - '@rollup/plugin-replace': 2.4.2_rollup@2.67.2 + '@rollup/plugin-babel': 5.3.0_@babel+core@7.17.5+rollup@2.67.3 + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.67.3 + '@rollup/plugin-replace': 2.4.2_rollup@2.67.3 '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.10.0 common-tags: 1.8.2 @@ -5920,8 +6213,8 @@ packages: glob: 7.2.0 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.67.2 - rollup-plugin-terser: 7.0.2_rollup@2.67.2 + rollup: 2.67.3 + rollup-plugin-terser: 7.0.2_rollup@2.67.3 source-map: 0.8.0-beta.0 source-map-url: 0.4.1 stringify-object: 3.3.0 @@ -6043,7 +6336,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: false + dev: true /wrappy/1.0.2: resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} @@ -6057,7 +6350,7 @@ packages: /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - dev: false + dev: true /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -6068,10 +6361,28 @@ packages: engines: {node: '>= 6'} dev: true + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + /yargs-parser/21.0.0: resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==} engines: {node: '>=12'} - dev: false + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true /yargs/17.3.1: resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==} @@ -6084,7 +6395,7 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.0.0 - dev: false + dev: true /zustand/3.7.0_react@17.0.2: resolution: {integrity: sha512-USzVzLGrvZ8VK1/sEsOAmeqa8N7D3OBdZskVaL7DL89Q4QLTYD053iIlZ5KDidyZ+Od80Dttin/f8ZulOLFFDQ==} diff --git a/src/App.tsx b/src/App.tsx index 693dac59..fbdb2a56 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,15 +2,14 @@ import React from 'react'; import { Map } from '@app/pages/Map'; import { Connection } from '@components/Connection'; +import { ContextMenu } from '@components/generic/ContextMenu'; +import { BottomNav } from '@components/menu/BottomNav'; import { useRoute } from '@core/router'; import { useAppSelector } from '@hooks/useAppSelector'; - -import { ContextMenu } from './components/generic/ContextMenu'; -import { BottomNav } from './components/menu/BottomNav'; -import { Extensions } from './pages/Extensions/Index'; -import { Messages } from './pages/Messages'; -import { Nodes } from './pages/Nodes'; -import { NotFound } from './pages/NotFound'; +import { Extensions } from '@pages/Extensions/Index'; +import { Messages } from '@pages/Messages'; +import { Nodes } from '@pages/Nodes'; +import { NotFound } from '@pages/NotFound'; export const App = (): JSX.Element => { const route = useRoute(); diff --git a/src/components/Connection.tsx b/src/components/Connection.tsx index 4a644196..9e44d846 100644 --- a/src/components/Connection.tsx +++ b/src/components/Connection.tsx @@ -2,11 +2,13 @@ import React from 'react'; import { AnimatePresence } from 'framer-motion'; +import { Card } from '@app/components/generic/Card'; import { BLE } from '@components/connection/BLE'; import { HTTP } from '@components/connection/HTTP'; import { Serial } from '@components/connection/Serial'; +import { Select } from '@components/generic/form/Select'; import { Modal } from '@components/generic/Modal'; -import { connection, connectionUrl, setConnection } from '@core/connection'; +import { connectionUrl, setConnection } from '@core/connection'; import { closeConnectionModal, connType, @@ -15,7 +17,6 @@ import { } from '@core/slices/appSlice'; import { useAppDispatch } from '@hooks/useAppDispatch'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Button, Card, Select } from '@meshtastic/components'; import { Types } from '@meshtastic/meshtasticjs'; export const Connection = (): JSX.Element => { @@ -56,50 +57,65 @@ export const Connection = (): JSX.Element => { dispatch(closeConnectionModal()); }} > - -
+ +
- {state.deviceStatus === - Types.DeviceStatusEnum.DEVICE_DISCONNECTED ? ( -
- { + dispatch(setConnType(parseInt(e.target.value))); + }} + disabled={ + state.deviceStatus === + Types.DeviceStatusEnum.DEVICE_CONNECTED + } + /> + {appState.connType === connType.HTTP && ( + - {appState.connType === connType.HTTP && } - {appState.connType === connType.BLE && } - {appState.connType === connType.SERIAL && } -
- ) : ( -
- Connecting... - {state.deviceStatus === - Types.DeviceStatusEnum.DEVICE_CONNECTED && ( - - )} -
- )} + )} + {appState.connType === connType.BLE && ( + + )} + {appState.connType === connType.SERIAL && ( + + )} +
-
-
- {state.logs.map((log, index) => ( -
-
- {log.message} +
+
+ {state.logs + .filter((log) => { + return ![ + Types.Emitter.handleFromRadio, + Types.Emitter.handleMeshPacket, + Types.Emitter.sendPacket, + ].includes(log.emitter); + }) + .map((log, index) => ( +
+
+ {log.message} +
-
- ))} + ))}
diff --git a/src/components/MapBox/MapboxProvider.tsx b/src/components/MapBox/MapboxProvider.tsx index 9454ca5e..a2da343f 100644 --- a/src/components/MapBox/MapboxProvider.tsx +++ b/src/components/MapBox/MapboxProvider.tsx @@ -2,6 +2,7 @@ import React from 'react'; import mapboxgl from 'mapbox-gl'; +import { MapboxContext } from '@components/MapBox/mapboxContext'; import { setBearing, setLatLng, @@ -14,7 +15,6 @@ import { useAppSelector } from '@hooks/useAppSelector'; import { useCreateMapbox } from '@hooks/useCreateMapbox'; import { MapStyles } from '../../pages/Map/styles'; -import { MapboxContext } from './mapboxContext'; export type MapboxProviderProps = { children: React.ReactNode; diff --git a/src/components/connection/BLE.tsx b/src/components/connection/BLE.tsx index a29af16a..c0eb2fb2 100644 --- a/src/components/connection/BLE.tsx +++ b/src/components/connection/BLE.tsx @@ -3,12 +3,17 @@ import React from 'react'; import { useForm } from 'react-hook-form'; import { FiCheck } from 'react-icons/fi'; -import { connType } from '@app/core/slices/appSlice'; -import { setConnection } from '@core/connection'; -import { Button, IconButton } from '@meshtastic/components'; +import { Button } from '@components/generic/button/Button'; +import { IconButton } from '@components/generic/button/IconButton'; +import { connection, setConnection } from '@core/connection'; +import { connType } from '@core/slices/appSlice'; import { IBLEConnection } from '@meshtastic/meshtasticjs'; -export const BLE = (): JSX.Element => { +export interface BLEProps { + connecting: boolean; +} + +export const BLE = ({ connecting }: BLEProps): JSX.Element => { const [bleDevices, setBleDevices] = React.useState([]); const { handleSubmit } = useForm<{ @@ -45,11 +50,22 @@ export const BLE = (): JSX.Element => { await setConnection(connType.BLE); }} icon={} + disabled={connecting} />
))} - ); diff --git a/src/components/connection/HTTP.tsx b/src/components/connection/HTTP.tsx index 45d024bc..1d701b71 100644 --- a/src/components/connection/HTTP.tsx +++ b/src/components/connection/HTTP.tsx @@ -2,12 +2,19 @@ import type React from 'react'; import { useForm, useWatch } from 'react-hook-form'; -import { connectionUrl, setConnection } from '@core/connection'; +import { Button } from '@components/generic/button/Button'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Input } from '@components/generic/form/Input'; +import { Select } from '@components/generic/form/Select'; +import { connection, connectionUrl, setConnection } from '@core/connection'; import { connType, setConnectionParams } from '@core/slices/appSlice'; import { useAppDispatch } from '@hooks/useAppDispatch'; -import { Button, Checkbox, Input, Select } from '@meshtastic/components'; -export const HTTP = (): JSX.Element => { +export interface HTTPProps { + connecting: boolean; +} + +export const HTTP = ({ connecting }: HTTPProps): JSX.Element => { const dispatch = useAppDispatch(); const { register, handleSubmit, control } = useForm<{ @@ -56,16 +63,27 @@ export const HTTP = (): JSX.Element => { value: 'remote', }, ]} + disabled={connecting} {...register('ipSource')} /> {watchIpSource === 'local' ? ( ) : ( - + )} - - ); diff --git a/src/components/connection/Serial.tsx b/src/components/connection/Serial.tsx index b63fc48f..12ccf307 100644 --- a/src/components/connection/Serial.tsx +++ b/src/components/connection/Serial.tsx @@ -3,13 +3,18 @@ import React from 'react'; import { useForm } from 'react-hook-form'; import { FiCheck } from 'react-icons/fi'; -import { setConnection } from '@core/connection'; +import { Button } from '@components/generic/button/Button'; +import { IconButton } from '@components/generic/button/IconButton'; +import { connection, setConnection } from '@core/connection'; import { connType, setConnectionParams } from '@core/slices/appSlice'; import { useAppDispatch } from '@hooks/useAppDispatch'; -import { Button, IconButton } from '@meshtastic/components'; import { ISerialConnection } from '@meshtastic/meshtasticjs'; -export const Serial = (): JSX.Element => { +export interface SerialProps { + connecting: boolean; +} + +export const Serial = ({ connecting }: SerialProps): JSX.Element => { const [serialDevices, setSerialDevices] = React.useState([]); const dispatch = useAppDispatch(); @@ -36,7 +41,7 @@ export const Serial = (): JSX.Element => { {serialDevices.length > 0 ? ( serialDevices.map((device, index) => (
@@ -59,6 +64,7 @@ export const Serial = (): JSX.Element => { ); await setConnection(connType.SERIAL); }} + disabled={connecting} icon={} />
@@ -68,8 +74,18 @@ export const Serial = (): JSX.Element => {

No previously connected devices found

)} - ); diff --git a/src/components/generic/Card.tsx b/src/components/generic/Card.tsx new file mode 100644 index 00000000..a94b62ca --- /dev/null +++ b/src/components/generic/Card.tsx @@ -0,0 +1,21 @@ +import type React from 'react'; + +import { m } from 'framer-motion'; + +export interface CardProps { + className?: string; + children: React.ReactNode; +} + +export const Card = ({ className, children }: CardProps): JSX.Element => { + return ( + + {children} + + ); +}; diff --git a/src/components/generic/ContextMenu.tsx b/src/components/generic/ContextMenu.tsx index 0178163d..18fafe90 100644 --- a/src/components/generic/ContextMenu.tsx +++ b/src/components/generic/ContextMenu.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { FiActivity, FiAperture, FiTag } from 'react-icons/fi'; -import { ContextItem } from './ContextItem'; +import { ContextItem } from '@components/generic/ContextItem'; export interface ContextMenuProps { items?: JSX.Element; diff --git a/src/components/generic/Cover.tsx b/src/components/generic/Cover.tsx deleted file mode 100644 index 9e7957de..00000000 --- a/src/components/generic/Cover.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import type React from 'react'; - -export interface CoverProps { - content: JSX.Element; - enabled: boolean; -} - -export const Cover = ({ content, enabled }: CoverProps): JSX.Element => { - return enabled ?
{content}
: <>; -}; diff --git a/src/components/generic/ListItem.tsx b/src/components/generic/ListItem.tsx deleted file mode 100644 index d0731f6f..00000000 --- a/src/components/generic/ListItem.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import type React from 'react'; - -import { IconButton } from '@meshtastic/components'; - -export interface ListItemProps { - selected: boolean; - selectedIcon: JSX.Element; - actions?: JSX.Element; - status: JSX.Element; - onClick?: () => void; - children: React.ReactNode; -} - -export const ListItem = ({ - selected, - selectedIcon, - actions, - status, - onClick, - children, -}: ListItemProps): JSX.Element => { - return ( -
{ - onClick && onClick(); - }} - className={`flex select-none rounded-md border bg-gray-100 shadow-md dark:bg-primaryDark ${ - selected - ? 'border-primary dark:border-primary' - : 'border-gray-100 dark:border-primaryDark' - }`} - > -
-
-
- {status} -
{children}
-
-
- {actions} - -
-
-
- ); -}; diff --git a/src/components/generic/Loading.tsx b/src/components/generic/Loading.tsx new file mode 100644 index 00000000..65c41e92 --- /dev/null +++ b/src/components/generic/Loading.tsx @@ -0,0 +1,9 @@ +import type React from 'react'; + +export const Loading = (): JSX.Element => { + return ( +
+
Loading
+
+ ); +}; diff --git a/src/components/layout/Sidebar/sections/CollapsibleSection.tsx b/src/components/generic/Sidebar/CollapsibleSection.tsx similarity index 100% rename from src/components/layout/Sidebar/sections/CollapsibleSection.tsx rename to src/components/generic/Sidebar/CollapsibleSection.tsx diff --git a/src/components/layout/Sidebar/sections/ExternalSection.tsx b/src/components/generic/Sidebar/ExternalSection.tsx similarity index 100% rename from src/components/layout/Sidebar/sections/ExternalSection.tsx rename to src/components/generic/Sidebar/ExternalSection.tsx diff --git a/src/components/layout/Sidebar/sections/SidebarOverlay.tsx b/src/components/generic/Sidebar/SidebarOverlay.tsx similarity index 95% rename from src/components/layout/Sidebar/sections/SidebarOverlay.tsx rename to src/components/generic/Sidebar/SidebarOverlay.tsx index 07608764..af7439f6 100644 --- a/src/components/layout/Sidebar/sections/SidebarOverlay.tsx +++ b/src/components/generic/Sidebar/SidebarOverlay.tsx @@ -3,7 +3,7 @@ import type React from 'react'; import { AnimatePresence, AnimateSharedLayout, m } from 'framer-motion'; import { FiArrowLeft } from 'react-icons/fi'; -import { IconButton } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; export interface SidebarOverlayProps { title: string; diff --git a/src/components/generic/Tooltip.tsx b/src/components/generic/Tooltip.tsx new file mode 100644 index 00000000..530be2ba --- /dev/null +++ b/src/components/generic/Tooltip.tsx @@ -0,0 +1,19 @@ +import 'tippy.js/dist/tippy.css'; + +import type React from 'react'; + +import cuid from 'cuid'; + +import Tippy, { TippyProps } from '@tippyjs/react'; + +export const Tooltip = ({ + children, + content, + ...props +}: TippyProps): JSX.Element => { + return ( + +
{children}
+
+ ); +}; diff --git a/src/components/generic/button/Button.tsx b/src/components/generic/button/Button.tsx new file mode 100644 index 00000000..4b99737b --- /dev/null +++ b/src/components/generic/button/Button.tsx @@ -0,0 +1,73 @@ +import React from 'react'; + +import { FiCheck } from 'react-icons/fi'; + +type DefaultButtonProps = JSX.IntrinsicElements['button']; + +export enum ButtonSize { + Small = 'small', + Medium = 'medium', + Large = 'large', +} + +export interface ButtonProps extends DefaultButtonProps { + icon?: JSX.Element; + active?: boolean; + border?: boolean; + size?: ButtonSize; + confirmAction?: () => void; +} + +export const Button = ({ + icon, + className, + active, + border, + size = ButtonSize.Medium, + confirmAction, + disabled, + children, + ...props +}: ButtonProps): JSX.Element => { + const [hasConfirmed, setHasConfirmed] = React.useState(false); + + const handleConfirm = (): void => { + if (typeof confirmAction == 'function') { + if (hasConfirmed) { + void confirmAction(); + } + setHasConfirmed(true); + setTimeout(() => { + setHasConfirmed(false); + }, 3000); + } + }; + + return ( + + ); +}; diff --git a/src/components/generic/button/IconButton.tsx b/src/components/generic/button/IconButton.tsx new file mode 100644 index 00000000..2b645f99 --- /dev/null +++ b/src/components/generic/button/IconButton.tsx @@ -0,0 +1,35 @@ +import type React from 'react'; + +type DefaulButtonProps = JSX.IntrinsicElements['button']; + +export interface IconButtonProps extends DefaulButtonProps { + icon: React.ReactNode; + active?: boolean; +} + +export const IconButton = ({ + icon, + active, + disabled, + ...props +}: IconButtonProps): JSX.Element => { + return ( +
+ +
+ ); +}; diff --git a/src/components/generic/form/Checkbox.tsx b/src/components/generic/form/Checkbox.tsx new file mode 100644 index 00000000..b8526b13 --- /dev/null +++ b/src/components/generic/form/Checkbox.tsx @@ -0,0 +1,48 @@ +import React from 'react'; + +import { Label } from '@components/generic/form/Label'; + +type DefaultInputProps = JSX.IntrinsicElements['input']; + +export interface CheckboxProps extends DefaultInputProps { + action?: (enabled: boolean) => void; + label: string; + valid?: boolean; + validationMessage?: string; + error?: boolean; +} + +export const Checkbox = React.forwardRef( + function Input( + { label, valid, validationMessage, id, error, ...props }: CheckboxProps, + ref, + ) { + return ( +
+
+ ); + }, +); diff --git a/src/components/generic/form/Form.tsx b/src/components/generic/form/Form.tsx index 1003fb72..81faec49 100644 --- a/src/components/generic/form/Form.tsx +++ b/src/components/generic/form/Form.tsx @@ -1,6 +1,6 @@ import type React from 'react'; -import { Loading } from '@meshtastic/components'; +import { Loading } from '@components/generic/Loading'; export interface FormProps { loading?: boolean; diff --git a/src/components/generic/form/Input.tsx b/src/components/generic/form/Input.tsx new file mode 100644 index 00000000..0d2fc926 --- /dev/null +++ b/src/components/generic/form/Input.tsx @@ -0,0 +1,37 @@ +import React from 'react'; + +import { InputWrapper } from '@components/generic/form/InputWrapper'; +import { Label } from '@components/generic/form/Label'; + +type DefaultInputProps = JSX.IntrinsicElements['input']; + +export interface InputProps extends DefaultInputProps { + label?: string; + error?: string; + action?: JSX.Element; + prefix?: string; + suffix?: string; +} + +export const Input = React.forwardRef( + function Input({ label, error, action, suffix, ...props }: InputProps, ref) { + return ( +
+ {label &&
+ ); + }, +); diff --git a/src/components/generic/form/InputWrapper.tsx b/src/components/generic/form/InputWrapper.tsx new file mode 100644 index 00000000..e1227940 --- /dev/null +++ b/src/components/generic/form/InputWrapper.tsx @@ -0,0 +1,29 @@ +import type React from 'react'; + +export interface LabelProps { + error?: string; + disabled?: boolean; + children: React.ReactNode; +} + +export const InputWrapper = ({ + error, + disabled, + children, +}: LabelProps): JSX.Element => ( +
+ {children} +
+); diff --git a/src/components/generic/form/Select.tsx b/src/components/generic/form/Select.tsx new file mode 100644 index 00000000..43a525ce --- /dev/null +++ b/src/components/generic/form/Select.tsx @@ -0,0 +1,68 @@ +import React from 'react'; + +import { InputWrapper } from '@components/generic/form/InputWrapper'; +import { Label } from '@components/generic/form/Label'; + +type DefaultSelectProps = JSX.IntrinsicElements['select']; + +export interface SelectProps extends DefaultSelectProps { + options?: { + name: string | number; + value: string | number; + }[]; + optionsEnum?: { [s: string]: string | number }; + label?: string; + error?: string; + small?: boolean; +} + +export const Select = React.forwardRef( + ({ options, optionsEnum, label, error, small, ...props }, ref) => { + const optionsEnumValues = optionsEnum + ? Object.entries(optionsEnum).filter( + (value) => typeof value[1] === 'number', + ) + : []; + return ( +
+ {label &&
+ ); + }, +); diff --git a/src/components/layout/Sidebar/ButtonNav.tsx b/src/components/layout/Sidebar/ButtonNav.tsx index ea035074..365b5317 100644 --- a/src/components/layout/Sidebar/ButtonNav.tsx +++ b/src/components/layout/Sidebar/ButtonNav.tsx @@ -4,11 +4,10 @@ import { FiMessageCircle, FiSettings } from 'react-icons/fi'; import { RiMindMap, RiRoadMapLine } from 'react-icons/ri'; import { VscExtensions } from 'react-icons/vsc'; -import { toggleMobileNav } from '@app/core/slices/appSlice'; -import { useAppDispatch } from '@app/hooks/useAppDispatch'; +import { NavLinkButton } from '@components/layout/Sidebar/NavLinkButton'; import { routes, useRoute } from '@core/router'; - -import { NavLinkButton } from './NavLinkButton'; +import { toggleMobileNav } from '@core/slices/appSlice'; +import { useAppDispatch } from '@hooks/useAppDispatch'; export interface ButtonNavProps { toggleSettingsOpen: () => void; diff --git a/src/components/layout/Sidebar/Settings/Channels.tsx b/src/components/layout/Sidebar/Settings/Channels.tsx index 90f24a93..60ea0450 100644 --- a/src/components/layout/Sidebar/Settings/Channels.tsx +++ b/src/components/layout/Sidebar/Settings/Channels.tsx @@ -3,9 +3,12 @@ import React from 'react'; import { useForm } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Input } from '@components/generic/form/Input'; +import { Select } from '@components/generic/form/Select'; import { connection } from '@core/connection'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Checkbox, IconButton, Input, Select } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; export const Channels = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/Index.tsx b/src/components/layout/Sidebar/Settings/Index.tsx index c24a009d..d327cbe5 100644 --- a/src/components/layout/Sidebar/Settings/Index.tsx +++ b/src/components/layout/Sidebar/Settings/Index.tsx @@ -15,22 +15,21 @@ import { FiZap, } from 'react-icons/fi'; -import { CollapsibleSection } from '@app/components/layout/Sidebar/sections/CollapsibleSection'; -import { ExternalSection } from '@app/components/layout/Sidebar/sections/ExternalSection'; -import { SidebarOverlay } from '@app/components/layout/Sidebar/sections/SidebarOverlay'; -import { Channels } from '@app/components/layout/Sidebar/Settings/Channels'; -import { ExternalNotificationsSettingsPlanel } from '@app/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/SettingsPlanel'; -import { RangeTestSettingsPanel } from '@app/components/layout/Sidebar/Settings/plugins/panels/RangeTest/SettingsPanel'; -import { SerialSettingsPanel } from '@app/components/layout/Sidebar/Settings/plugins/panels/Serial/SettingsPanel'; -import { StoreForwardSettingsPanel } from '@app/components/layout/Sidebar/Settings/plugins/panels/StoreForward/SettingsPanel'; -import { Position } from '@app/components/layout/Sidebar/Settings/Position'; -import { Power } from '@app/components/layout/Sidebar/Settings/Power'; -import { Radio } from '@app/components/layout/Sidebar/Settings/Radio'; -import { User } from '@app/components/layout/Sidebar/Settings/User'; -import { WiFi } from '@app/components/layout/Sidebar/Settings/WiFi'; - -import { Interface } from './Interface'; -import { ChannelsGroup } from './radio/channels/panels/ChannelsGroup'; +import { CollapsibleSection } from '@components/generic/Sidebar/CollapsibleSection'; +import { ExternalSection } from '@components/generic/Sidebar/ExternalSection'; +import { SidebarOverlay } from '@components/generic/Sidebar/SidebarOverlay'; +import { Channels } from '@components/layout/Sidebar/Settings/Channels'; +import { ChannelsGroup } from '@components/layout/Sidebar/Settings/channels/ChannelsGroup'; +import { Interface } from '@components/layout/Sidebar/Settings/Interface'; +import { ExternalNotificationsSettingsPlanel } from '@components/layout/Sidebar/Settings/plugins/ExternalNotifications'; +import { RangeTestSettingsPanel } from '@components/layout/Sidebar/Settings/plugins/RangeTest'; +import { SerialSettingsPanel } from '@components/layout/Sidebar/Settings/plugins/Serial'; +import { StoreForwardSettingsPanel } from '@components/layout/Sidebar/Settings/plugins/StoreForward'; +import { Position } from '@components/layout/Sidebar/Settings/Position'; +import { Power } from '@components/layout/Sidebar/Settings/Power'; +import { Radio } from '@components/layout/Sidebar/Settings/Radio'; +import { User } from '@components/layout/Sidebar/Settings/User'; +import { WiFi } from '@components/layout/Sidebar/Settings/WiFi'; export interface SettingsProps { open: boolean; diff --git a/src/components/layout/Sidebar/Settings/Interface.tsx b/src/components/layout/Sidebar/Settings/Interface.tsx index aad76d6d..b1284ab0 100644 --- a/src/components/layout/Sidebar/Settings/Interface.tsx +++ b/src/components/layout/Sidebar/Settings/Interface.tsx @@ -1,6 +1,6 @@ import type React from 'react'; -import { Select } from '@meshtastic/components'; +import { Select } from '@components/generic/form/Select'; export const Interface = (): JSX.Element => { return ( diff --git a/src/components/layout/Sidebar/Settings/Position.tsx b/src/components/layout/Sidebar/Settings/Position.tsx index d7151c22..3fdfb92a 100644 --- a/src/components/layout/Sidebar/Settings/Position.tsx +++ b/src/components/layout/Sidebar/Settings/Position.tsx @@ -4,11 +4,14 @@ import { Controller, useForm } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; import { MultiSelect } from 'react-multi-select-component'; -import { bitwiseEncode } from '@app/core/utils/bitwise'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Input } from '@components/generic/form/Input'; import { Label } from '@components/generic/form/Label'; +import { Select } from '@components/generic/form/Select'; import { connection } from '@core/connection'; +import { bitwiseEncode } from '@core/utils/bitwise'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Checkbox, IconButton, Input, Select } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; export const Position = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/Power.tsx b/src/components/layout/Sidebar/Settings/Power.tsx index 9be2cbd3..b98d756a 100644 --- a/src/components/layout/Sidebar/Settings/Power.tsx +++ b/src/components/layout/Sidebar/Settings/Power.tsx @@ -3,9 +3,11 @@ import React from 'react'; import { useForm } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Select } from '@components/generic/form/Select'; import { connection } from '@core/connection'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Checkbox, IconButton, Select } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; export const Power = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/Radio.tsx b/src/components/layout/Sidebar/Settings/Radio.tsx index 116f6a64..690e4b1a 100644 --- a/src/components/layout/Sidebar/Settings/Radio.tsx +++ b/src/components/layout/Sidebar/Settings/Radio.tsx @@ -3,9 +3,11 @@ import React from 'react'; import { useForm } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Select } from '@components/generic/form/Select'; import { connection } from '@core/connection'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Checkbox, IconButton, Select } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; export const Radio = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/User.tsx b/src/components/layout/Sidebar/Settings/User.tsx index c1f2476e..1be1bb7a 100644 --- a/src/components/layout/Sidebar/Settings/User.tsx +++ b/src/components/layout/Sidebar/Settings/User.tsx @@ -4,9 +4,12 @@ import { useForm } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; import { base16 } from 'rfc4648'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Input } from '@components/generic/form/Input'; +import { Select } from '@components/generic/form/Select'; import { connection } from '@core/connection'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Checkbox, IconButton, Input, Select } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; export const User = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/WiFi.tsx b/src/components/layout/Sidebar/Settings/WiFi.tsx index da27c168..cbb79fee 100644 --- a/src/components/layout/Sidebar/Settings/WiFi.tsx +++ b/src/components/layout/Sidebar/Settings/WiFi.tsx @@ -3,9 +3,11 @@ import React from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Input } from '@components/generic/form/Input'; import { connection } from '@core/connection'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Checkbox, IconButton, Input } from '@meshtastic/components'; import type { Protobuf } from '@meshtastic/meshtasticjs'; export const WiFi = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/radio/channels/panels/SettingsPanel.tsx b/src/components/layout/Sidebar/Settings/channels/Channels.tsx similarity index 92% rename from src/components/layout/Sidebar/Settings/radio/channels/panels/SettingsPanel.tsx rename to src/components/layout/Sidebar/Settings/channels/Channels.tsx index 4ed78599..a4c5605a 100644 --- a/src/components/layout/Sidebar/Settings/radio/channels/panels/SettingsPanel.tsx +++ b/src/components/layout/Sidebar/Settings/channels/Channels.tsx @@ -5,9 +5,12 @@ import { useForm } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; import { MdRefresh, MdVisibility, MdVisibilityOff } from 'react-icons/md'; -import { Form } from '@app/components/generic/form/Form'; -import { connection } from '@app/core/connection'; -import { Checkbox, IconButton, Input, Select } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Form } from '@components/generic/form/Form'; +import { Input } from '@components/generic/form/Input'; +import { Select } from '@components/generic/form/Select'; +import { connection } from '@core/connection'; import { Protobuf } from '@meshtastic/meshtasticjs'; export interface SettingsPanelProps { diff --git a/src/components/layout/Sidebar/Settings/radio/channels/panels/ChannelsGroup.tsx b/src/components/layout/Sidebar/Settings/channels/ChannelsGroup.tsx similarity index 84% rename from src/components/layout/Sidebar/Settings/radio/channels/panels/ChannelsGroup.tsx rename to src/components/layout/Sidebar/Settings/channels/ChannelsGroup.tsx index 9e8c1cad..aaeaba7e 100644 --- a/src/components/layout/Sidebar/Settings/radio/channels/panels/ChannelsGroup.tsx +++ b/src/components/layout/Sidebar/Settings/channels/ChannelsGroup.tsx @@ -3,13 +3,12 @@ import type React from 'react'; import { FaQrcode } from 'react-icons/fa'; import { FiCode, FiSave } from 'react-icons/fi'; -import { CollapsibleSection } from '@app/components/layout/Sidebar/sections/CollapsibleSection'; -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { IconButton } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; +import { CollapsibleSection } from '@components/generic/Sidebar/CollapsibleSection'; +import { SettingsPanel } from '@components/layout/Sidebar/Settings/channels/Channels'; +import { useAppSelector } from '@hooks/useAppSelector'; import { Protobuf } from '@meshtastic/meshtasticjs'; -import { SettingsPanel } from './SettingsPanel'; - export const ChannelsGroup = (): JSX.Element => { const channels = useAppSelector((state) => state.meshtastic.radio.channels); diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/SettingsPlanel.tsx b/src/components/layout/Sidebar/Settings/plugins/ExternalNotifications.tsx similarity index 87% rename from src/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/SettingsPlanel.tsx rename to src/components/layout/Sidebar/Settings/plugins/ExternalNotifications.tsx index d76c251c..f3fb2d90 100644 --- a/src/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/SettingsPlanel.tsx +++ b/src/components/layout/Sidebar/Settings/plugins/ExternalNotifications.tsx @@ -3,10 +3,12 @@ import React from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; -import { Form } from '@app/components/generic/form/Form'; -import { connection } from '@app/core/connection'; -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { Checkbox, IconButton, Input } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Form } from '@components/generic/form/Form'; +import { Input } from '@components/generic/form/Input'; +import { connection } from '@core/connection'; +import { useAppSelector } from '@hooks/useAppSelector'; import type { Protobuf } from '@meshtastic/meshtasticjs'; export const ExternalNotificationsSettingsPlanel = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/RangeTest/SettingsPanel.tsx b/src/components/layout/Sidebar/Settings/plugins/RangeTest.tsx similarity index 84% rename from src/components/layout/Sidebar/Settings/plugins/panels/RangeTest/SettingsPanel.tsx rename to src/components/layout/Sidebar/Settings/plugins/RangeTest.tsx index dcbb4d5e..0939f7d2 100644 --- a/src/components/layout/Sidebar/Settings/plugins/panels/RangeTest/SettingsPanel.tsx +++ b/src/components/layout/Sidebar/Settings/plugins/RangeTest.tsx @@ -3,10 +3,12 @@ import React from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; -import { Form } from '@app/components/generic/form/Form'; -import { connection } from '@app/core/connection'; -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { Checkbox, IconButton, Input } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Form } from '@components/generic/form/Form'; +import { Input } from '@components/generic/form/Input'; +import { connection } from '@core/connection'; +import { useAppSelector } from '@hooks/useAppSelector'; import type { Protobuf } from '@meshtastic/meshtasticjs'; export const RangeTestSettingsPanel = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/Serial/SettingsPanel.tsx b/src/components/layout/Sidebar/Settings/plugins/Serial.tsx similarity index 87% rename from src/components/layout/Sidebar/Settings/plugins/panels/Serial/SettingsPanel.tsx rename to src/components/layout/Sidebar/Settings/plugins/Serial.tsx index 20d5c1d5..4eb52c25 100644 --- a/src/components/layout/Sidebar/Settings/plugins/panels/Serial/SettingsPanel.tsx +++ b/src/components/layout/Sidebar/Settings/plugins/Serial.tsx @@ -3,10 +3,12 @@ import React from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; -import { Form } from '@app/components/generic/form/Form'; -import { connection } from '@app/core/connection'; -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { Checkbox, IconButton, Input } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Form } from '@components/generic/form/Form'; +import { Input } from '@components/generic/form/Input'; +import { connection } from '@core/connection'; +import { useAppSelector } from '@hooks/useAppSelector'; import type { Protobuf } from '@meshtastic/meshtasticjs'; export const SerialSettingsPanel = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/StoreForward/SettingsPanel.tsx b/src/components/layout/Sidebar/Settings/plugins/StoreForward.tsx similarity index 87% rename from src/components/layout/Sidebar/Settings/plugins/panels/StoreForward/SettingsPanel.tsx rename to src/components/layout/Sidebar/Settings/plugins/StoreForward.tsx index 9d7d1c8a..f25e6a0c 100644 --- a/src/components/layout/Sidebar/Settings/plugins/panels/StoreForward/SettingsPanel.tsx +++ b/src/components/layout/Sidebar/Settings/plugins/StoreForward.tsx @@ -3,10 +3,12 @@ import React from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; -import { Form } from '@app/components/generic/form/Form'; -import { connection } from '@app/core/connection'; -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { Checkbox, IconButton, Input } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Checkbox } from '@components/generic/form/Checkbox'; +import { Form } from '@components/generic/form/Form'; +import { Input } from '@components/generic/form/Input'; +import { connection } from '@core/connection'; +import { useAppSelector } from '@hooks/useAppSelector'; import type { Protobuf } from '@meshtastic/meshtasticjs'; export const StoreForwardSettingsPanel = (): JSX.Element => { diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/DebugPanel.tsx b/src/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/DebugPanel.tsx deleted file mode 100644 index 2674b8ab..00000000 --- a/src/components/layout/Sidebar/Settings/plugins/panels/ExternalNotifications/DebugPanel.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import type React from 'react'; - -import JSONPretty from 'react-json-pretty'; - -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { CopyButton } from '@components/menu/buttons/CopyButton'; - -export const ExternalNotificationsDebugPanel = (): JSX.Element => { - const preferences = useAppSelector( - (state) => state.meshtastic.radio.preferences, - ); - - const debugData = { - extNotificationPluginActive: preferences.extNotificationPluginActive, - extNotificationPluginAlertBell: preferences.extNotificationPluginAlertBell, - extNotificationPluginAlertMessage: - preferences.extNotificationPluginAlertMessage, - extNotificationPluginEnabled: preferences.extNotificationPluginEnabled, - extNotificationPluginOutput: preferences.extNotificationPluginOutput, - extNotificationPluginOutputMs: preferences.extNotificationPluginOutputMs, - }; - - return ( - <> -
- -
- - - ); -}; diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/RangeTest/DebugPanel.tsx b/src/components/layout/Sidebar/Settings/plugins/panels/RangeTest/DebugPanel.tsx deleted file mode 100644 index c8b0df36..00000000 --- a/src/components/layout/Sidebar/Settings/plugins/panels/RangeTest/DebugPanel.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import type React from 'react'; - -import JSONPretty from 'react-json-pretty'; - -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { CopyButton } from '@components/menu/buttons/CopyButton'; - -export const RangeTestDebugPanel = (): JSX.Element => { - const preferences = useAppSelector( - (state) => state.meshtastic.radio.preferences, - ); - - const debugData = { - rangeTestPluginEnabled: preferences.rangeTestPluginEnabled, - rangeTestPluginSave: preferences.rangeTestPluginSave, - rangeTestPluginSender: preferences.rangeTestPluginSender, - }; - - return ( - <> -
- -
- - - ); -}; diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/Serial/DebugPanel.tsx b/src/components/layout/Sidebar/Settings/plugins/panels/Serial/DebugPanel.tsx deleted file mode 100644 index d670a74d..00000000 --- a/src/components/layout/Sidebar/Settings/plugins/panels/Serial/DebugPanel.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import type React from 'react'; - -import JSONPretty from 'react-json-pretty'; - -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { CopyButton } from '@components/menu/buttons/CopyButton'; - -export const SerialDebugPanel = (): JSX.Element => { - const preferences = useAppSelector( - (state) => state.meshtastic.radio.preferences, - ); - - const debugData = { - serialpluginEnabled: preferences.serialpluginEnabled, - serialpluginEcho: preferences.serialpluginEcho, - serialpluginMode: preferences.serialpluginMode, - serialpluginRxd: preferences.serialpluginRxd, - serialpluginTxd: preferences.serialpluginTxd, - serialpluginTimeout: preferences.serialpluginTimeout, - }; - - return ( - <> -
- -
- - - ); -}; diff --git a/src/components/layout/Sidebar/Settings/plugins/panels/StoreForward/DebugPanel.tsx b/src/components/layout/Sidebar/Settings/plugins/panels/StoreForward/DebugPanel.tsx deleted file mode 100644 index 3aa9e25a..00000000 --- a/src/components/layout/Sidebar/Settings/plugins/panels/StoreForward/DebugPanel.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import type React from 'react'; - -import JSONPretty from 'react-json-pretty'; - -import { useAppSelector } from '@app/hooks/useAppSelector'; -import { CopyButton } from '@components/menu/buttons/CopyButton'; - -export const StoreForwardDebugPanel = (): JSX.Element => { - const preferences = useAppSelector( - (state) => state.meshtastic.radio.preferences, - ); - - const debugData = { - storeForwardPluginEnabled: preferences.storeForwardPluginEnabled, - storeForwardPluginHeartbeat: preferences.storeForwardPluginHeartbeat, - storeForwardPluginRecords: preferences.storeForwardPluginRecords, - storeForwardPluginHistoryReturnMax: - preferences.storeForwardPluginHistoryReturnMax, - storeForwardPluginHistoryReturnWindow: - preferences.storeForwardPluginHistoryReturnWindow, - }; - - return ( - <> -
- -
- - - ); -}; diff --git a/src/components/layout/Sidebar/Settings/radio/channels/panels/DebugPanel.tsx b/src/components/layout/Sidebar/Settings/radio/channels/panels/DebugPanel.tsx deleted file mode 100644 index 914d1b4c..00000000 --- a/src/components/layout/Sidebar/Settings/radio/channels/panels/DebugPanel.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import type React from 'react'; - -import JSONPretty from 'react-json-pretty'; - -import { CopyButton } from '@components/menu/buttons/CopyButton'; -import type { Protobuf } from '@meshtastic/meshtasticjs'; - -export interface DebugPanelProps { - channel: Protobuf.Channel; -} - -export const DebugPanel = ({ channel }: DebugPanelProps): JSX.Element => { - return ( - <> -
- -
- - - ); -}; diff --git a/src/components/layout/Sidebar/Settings/radio/channels/panels/QRCodePanel.tsx b/src/components/layout/Sidebar/Settings/radio/channels/panels/QRCodePanel.tsx deleted file mode 100644 index 0c9c7d9f..00000000 --- a/src/components/layout/Sidebar/Settings/radio/channels/panels/QRCodePanel.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import type React from 'react'; - -import QRCode from 'react-qr-code'; - -import type { Protobuf } from '@meshtastic/meshtasticjs'; - -export interface QRCodePanelProps { - channel: Protobuf.Channel; -} - -export const QRCodePanel = ({ channel }: QRCodePanelProps): JSX.Element => { - return ( -
- -
- ); -}; diff --git a/src/components/layout/Sidebar/index.tsx b/src/components/layout/Sidebar/index.tsx index 1ae8273c..3146540e 100644 --- a/src/components/layout/Sidebar/index.tsx +++ b/src/components/layout/Sidebar/index.tsx @@ -1,9 +1,8 @@ import React from 'react'; -import { useAppSelector } from '@app/hooks/useAppSelector'; - -import { ButtonNav } from './ButtonNav'; -import { Settings } from './Settings/Index'; +import { ButtonNav } from '@components/layout/Sidebar/ButtonNav'; +import { Settings } from '@components/layout/Sidebar/Settings/Index'; +import { useAppSelector } from '@hooks/useAppSelector'; export interface SidebarProps { children: React.ReactNode; diff --git a/src/components/layout/index.tsx b/src/components/layout/index.tsx index e87a3a9b..7964d364 100644 --- a/src/components/layout/index.tsx +++ b/src/components/layout/index.tsx @@ -2,10 +2,10 @@ import type React from 'react'; import { ErrorBoundary } from 'react-error-boundary'; -import { IconButton } from '@meshtastic/components'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Sidebar } from '@components/layout/Sidebar'; import { ErrorFallback } from '../ErrorFallback'; -import { Sidebar } from './Sidebar'; export interface LayoutProps { title: string; diff --git a/src/components/menu/BottomNav.tsx b/src/components/menu/BottomNav.tsx index 9397ba81..549288e9 100644 --- a/src/components/menu/BottomNav.tsx +++ b/src/components/menu/BottomNav.tsx @@ -16,15 +16,15 @@ import { RiArrowUpLine, } from 'react-icons/ri'; +import { Tooltip } from '@components/generic/Tooltip'; import { connType, openConnectionModal, setDarkModeEnabled, toggleMobileNav, -} from '@app/core/slices/appSlice'; +} from '@core/slices/appSlice'; import { useAppDispatch } from '@hooks/useAppDispatch'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Tooltip } from '@meshtastic/components'; import { Protobuf, Types } from '@meshtastic/meshtasticjs'; import { VersionInfo } from '../modals/VersionInfo'; diff --git a/src/components/menu/buttons/CopyButton.tsx b/src/components/menu/buttons/CopyButton.tsx index 3b2de877..c20a026e 100644 --- a/src/components/menu/buttons/CopyButton.tsx +++ b/src/components/menu/buttons/CopyButton.tsx @@ -3,8 +3,8 @@ import type React from 'react'; import { FiCheck, FiClipboard } from 'react-icons/fi'; import useCopyClipboard from 'react-use-clipboard'; -import type { ButtonProps } from '@meshtastic/components'; -import { IconButton } from '@meshtastic/components'; +import type { ButtonProps } from '@components/generic/button/Button'; +import { IconButton } from '@components/generic/button/IconButton'; export interface CopyButtonProps extends ButtonProps { data: string; diff --git a/src/components/menu/buttons/DeviceStatus.tsx b/src/components/menu/buttons/DeviceStatus.tsx deleted file mode 100644 index 00eb31f3..00000000 --- a/src/components/menu/buttons/DeviceStatus.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import type React from 'react'; - -import { FiBluetooth, FiCpu, FiWifi } from 'react-icons/fi'; - -import { connType, openConnectionModal } from '@core/slices/appSlice'; -import { useAppDispatch } from '@hooks/useAppDispatch'; -import { useAppSelector } from '@hooks/useAppSelector'; -import { Button } from '@meshtastic/components'; -import { Types } from '@meshtastic/meshtasticjs'; - -export const DeviceStatus = (): JSX.Element => { - const dispatch = useAppDispatch(); - const appState = useAppSelector((state) => state.app); - const state = useAppSelector((state) => state.meshtastic); - - return ( - - ); -}; diff --git a/src/components/modals/VersionInfo.tsx b/src/components/modals/VersionInfo.tsx index 071724f1..4c03cac9 100644 --- a/src/components/modals/VersionInfo.tsx +++ b/src/components/modals/VersionInfo.tsx @@ -3,7 +3,8 @@ import React from 'react'; import { AnimatePresence } from 'framer-motion'; import { Modal } from '@components/generic/Modal'; -import { Card } from '@meshtastic/components'; + +import { Card } from '../generic/Card'; export interface VersionInfoProps { visible: boolean; @@ -49,7 +50,7 @@ export const VersionInfo = ({ onclose(); }} > - +
Version Info
{/* {data?.sha} */}
diff --git a/src/core/slices/mapSlice.ts b/src/core/slices/mapSlice.ts index 96ca2bc8..0ce90009 100644 --- a/src/core/slices/mapSlice.ts +++ b/src/core/slices/mapSlice.ts @@ -1,6 +1,6 @@ import mapboxgl from 'mapbox-gl'; -import type { MapStyleName } from '@app/pages/Map/styles'; +import type { MapStyleName } from '@pages/Map/styles'; import type { PayloadAction } from '@reduxjs/toolkit'; import { createSlice } from '@reduxjs/toolkit'; diff --git a/src/core/slices/meshtasticSlice.ts b/src/core/slices/meshtasticSlice.ts index 36fdf9b9..0f8b50f2 100644 --- a/src/core/slices/meshtasticSlice.ts +++ b/src/core/slices/meshtasticSlice.ts @@ -85,8 +85,6 @@ export const meshtasticSlice = createSlice({ initialState, reducers: { addLogEvent: (state, action: PayloadAction) => { - console.log(action.payload.packet); - state.logs.push(action.payload); }, setDeviceStatus: (state, action: PayloadAction) => { @@ -155,8 +153,6 @@ export const meshtasticSlice = createSlice({ ); if (node) { - console.log('node exists'); - node.lastHeard = new Date(action.payload.lastHeard * 1000); node.snr.push(action.payload.snr); } else { @@ -204,23 +200,14 @@ export const meshtasticSlice = createSlice({ state.radio.preferences = action.payload; }, addMessage: (state, action: PayloadAction) => { - console.log(action.payload); - - console.log( - `${action.payload.message.packet.from} -> ${action.payload.message.packet.to}`, - ); state.chats[action.payload.message.packet.channel].lastInterraction = new Date(); if (action.payload.message.packet.to === 0xffffffff) { - console.log('boradcast'); - state.chats[action.payload.message.packet.channel].messages.push( action.payload, ); } else { - console.log('dm'); - const dmIndex = action.payload.message.packet.from === state.radio.hardware.myNodeNum ? action.payload.message.packet.to @@ -233,8 +220,6 @@ export const meshtasticSlice = createSlice({ state, action: PayloadAction<{ chatIndex: number; messageId: number }>, ) => { - console.log(action.payload); - state.chats[action.payload.chatIndex].messages.map((message) => { if (message.message.packet.id === action.payload.messageId) { message.ack = true; diff --git a/src/core/store.ts b/src/core/store.ts index 3e4e394e..bfeb1b21 100644 --- a/src/core/store.ts +++ b/src/core/store.ts @@ -1,9 +1,8 @@ +import appReducer from '@core/slices/appSlice'; +import mapReducer from '@core/slices/mapSlice'; +import meshtasticReducer from '@core/slices/meshtasticSlice'; import { configureStore } from '@reduxjs/toolkit'; -import appReducer from './slices/appSlice'; -import mapReducer from './slices/mapSlice'; -import meshtasticReducer from './slices/meshtasticSlice'; - export const store = configureStore({ reducer: { app: appReducer, diff --git a/src/index.tsx b/src/index.tsx index bd7b9f73..646bd4c4 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,4 +1,3 @@ -import '@meshtastic/components/dist/style.css'; import '@app/index.css'; import React from 'react'; @@ -9,12 +8,11 @@ import { ErrorBoundary } from 'react-error-boundary'; import { Provider } from 'react-redux'; import { App } from '@app/App'; +import { ErrorFallback } from '@components/ErrorFallback'; import { ReloadPrompt } from '@components/pwa/ReloadPrompt'; +import { RouteProvider } from '@core/router'; import { store } from '@core/store'; -import { ErrorFallback } from './components/ErrorFallback'; -import { RouteProvider } from './core/router'; - ReactDOM.render( diff --git a/src/pages/Extensions/FileBrowser.tsx b/src/pages/Extensions/FileBrowser.tsx index 16766665..547a422f 100644 --- a/src/pages/Extensions/FileBrowser.tsx +++ b/src/pages/Extensions/FileBrowser.tsx @@ -3,8 +3,9 @@ import React from 'react'; import { AnimatePresence, m } from 'framer-motion'; import useSWR from 'swr'; -import fetcher from '@app/core/utils/fetcher'; -import { useAppSelector } from '@app/hooks/useAppSelector'; +import { Card } from '@app/components/generic/Card'; +import fetcher from '@core/utils/fetcher'; +import { useAppSelector } from '@hooks/useAppSelector'; export interface File { nameModified: string; @@ -38,8 +39,8 @@ export const FileBrowser = (): JSX.Element => { ); return ( -
-
+
+
FileName
Actions
@@ -80,7 +81,7 @@ export const FileBrowser = (): JSX.Element => {
))}
-
+
); }; diff --git a/src/pages/Extensions/Index.tsx b/src/pages/Extensions/Index.tsx index 8c7f08c0..73ff7e6e 100644 --- a/src/pages/Extensions/Index.tsx +++ b/src/pages/Extensions/Index.tsx @@ -5,12 +5,11 @@ import { MdSubject } from 'react-icons/md'; import { RiPinDistanceFill } from 'react-icons/ri'; import { VscExtensions } from 'react-icons/vsc'; -import { Layout } from '@app/components/layout'; -import { ExternalSection } from '@app/components/layout/Sidebar/sections/ExternalSection'; - -import { FileBrowser } from './FileBrowser'; -import { Info } from './Info'; -import { Logs } from './Logs'; +import { ExternalSection } from '@components/generic/Sidebar/ExternalSection'; +import { Layout } from '@components/layout'; +import { FileBrowser } from '@pages/Extensions/FileBrowser'; +import { Info } from '@pages/Extensions/Info'; +import { Logs } from '@pages/Extensions/Logs'; export const Extensions = (): JSX.Element => { const [selectedExtension, setSelectedExtension] = React.useState< diff --git a/src/pages/Extensions/Info.tsx b/src/pages/Extensions/Info.tsx index a63b9179..34b24932 100644 --- a/src/pages/Extensions/Info.tsx +++ b/src/pages/Extensions/Info.tsx @@ -2,8 +2,9 @@ import React from 'react'; import JSONPretty from 'react-json-pretty'; -import { useAppSelector } from '@app/hooks/useAppSelector'; +import { Card } from '@app/components/generic/Card'; import { Hashicon } from '@emeraldpay/hashicon-react'; +import { useAppSelector } from '@hooks/useAppSelector'; export const Info = (): JSX.Element => { const hardwareInfo = useAppSelector( @@ -17,18 +18,18 @@ export const Info = (): JSX.Element => { return (
-
-
+ +
+
+ {node?.user?.longName || 'Unknown'} +
-
- {node?.user?.longName || 'Unknown'} -
-
+ -
+ -
+
); }; diff --git a/src/pages/Extensions/Logs.tsx b/src/pages/Extensions/Logs.tsx index bbd13132..644fb8a3 100644 --- a/src/pages/Extensions/Logs.tsx +++ b/src/pages/Extensions/Logs.tsx @@ -3,7 +3,8 @@ import type React from 'react'; import { AnimatePresence, m } from 'framer-motion'; import { FiArrowRight, FiPaperclip } from 'react-icons/fi'; -import { useAppSelector } from '@app/hooks/useAppSelector'; +import { Card } from '@app/components/generic/Card'; +import { useAppSelector } from '@hooks/useAppSelector'; import { Protobuf, Types } from '@meshtastic/meshtasticjs'; export const Logs = (): JSX.Element => { @@ -13,28 +14,27 @@ export const Logs = (): JSX.Element => { type lookupType = { [key: number]: string }; const emitterLookup: lookupType = { - [Types.Emitter.sendPacket]: 'text-blue-500', - [Types.Emitter.sendText]: 'text-blue-500', - [Types.Emitter.sendPacket]: 'text-blue-500', - [Types.Emitter.sendRaw]: 'text-blue-500', - [Types.Emitter.setPreferences]: 'text-blue-500', - [Types.Emitter.confirmSetPreferences]: 'text-blue-500', - [Types.Emitter.setOwner]: 'text-blue-500', + [Types.Emitter.sendText]: 'text-rose-500', + [Types.Emitter.sendPacket]: 'text-pink-500', + [Types.Emitter.sendRaw]: 'text-fuchsia-500', + [Types.Emitter.setPreferences]: 'text-purple-500', + [Types.Emitter.confirmSetPreferences]: 'text-violet-500', + [Types.Emitter.setOwner]: 'text-indigo-500', [Types.Emitter.setChannel]: 'text-blue-500', - [Types.Emitter.confirmSetChannel]: 'text-blue-500', - [Types.Emitter.deleteChannel]: 'text-blue-500', - [Types.Emitter.getChannel]: 'text-blue-500', - [Types.Emitter.getAllChannels]: 'text-blue-500', - [Types.Emitter.getPreferences]: 'text-blue-500', - [Types.Emitter.getOwner]: 'text-blue-500', - [Types.Emitter.configure]: 'text-blue-500', - [Types.Emitter.handleFromRadio]: 'text-blue-500', - [Types.Emitter.handleMeshPacket]: 'text-blue-500', - [Types.Emitter.connect]: 'text-blue-500', - [Types.Emitter.ping]: 'text-blue-500', - [Types.Emitter.readFromRadio]: 'text-blue-500', - [Types.Emitter.writeToRadio]: 'text-blue-500', - [Types.Emitter.setDebugMode]: 'text-blue-500', + [Types.Emitter.confirmSetChannel]: 'text-sky-500', + [Types.Emitter.deleteChannel]: 'text-cyan-500', + [Types.Emitter.getChannel]: 'text-teal-500', + [Types.Emitter.getAllChannels]: 'text-emerald-500', + [Types.Emitter.getPreferences]: 'text-green-500', + [Types.Emitter.getOwner]: 'text-lime-500', + [Types.Emitter.configure]: 'text-yellow-500', + [Types.Emitter.handleFromRadio]: 'text-amber-500', + [Types.Emitter.handleMeshPacket]: 'text-orange-500', + [Types.Emitter.connect]: 'text-red-500', + [Types.Emitter.ping]: 'text-stone-500', + [Types.Emitter.readFromRadio]: 'text-zinc-500', + [Types.Emitter.writeToRadio]: 'text-gray-500', + [Types.Emitter.setDebugMode]: 'text-slate-500', }; const levelLookup: lookupType = { @@ -48,84 +48,87 @@ export const Logs = (): JSX.Element => { }; return ( -
- - - - {logs.length === 0 && ( -
- -
- )} -
- {logs.map((log, index) => ( - // - // } /> - // - // } - // > - - -
- -
-
- - {log.date - .toLocaleString(undefined, { - year: 'numeric', - month: '2-digit', - day: '2-digit', - - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - }) - .replaceAll('/', '-') - .replace(',', '')} - - -
- [{Types.EmitterScope[log.scope]}.{Types.Emitter[log.emitter]}] +
+ +
+ + + {logs.length === 0 && ( +
+
- - - [{Protobuf.LogRecord_Level[log.level]}]{/* */} - -
- - - - - // - ))} - -
+ {logs.map((log, index) => ( + // + // } /> + // + // } + // > +
{log.message}
+ +
+ +
+
+ + {log.date + .toLocaleString(undefined, { + year: 'numeric', + month: '2-digit', + day: '2-digit', + + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + }) + .replaceAll('/', '-') + .replace(',', '')} + + +
+ [{Types.EmitterScope[log.scope]}. + {Types.Emitter[log.emitter]}] +
+
+ + [{Protobuf.LogRecord_Level[log.level]}]{/*
*/} + + + + + {log.message} + + // + ))} + + +
); }; diff --git a/src/pages/Map/MapContainer.tsx b/src/pages/Map/MapContainer.tsx index 26e1dd30..4166ea4d 100644 --- a/src/pages/Map/MapContainer.tsx +++ b/src/pages/Map/MapContainer.tsx @@ -3,6 +3,7 @@ import React from 'react'; import { FaDirections, FaGlobeAfrica, FaMountain } from 'react-icons/fa'; import { MdFullscreen, MdRadar, MdWbShade } from 'react-icons/md'; +import { IconButton } from '@components/generic/button/IconButton'; import { setExaggeration, setHillShade, @@ -11,10 +12,8 @@ import { import { useAppDispatch } from '@hooks/useAppDispatch'; import { useAppSelector } from '@hooks/useAppSelector'; import { useMapbox } from '@hooks/useMapbox'; -import { IconButton } from '@meshtastic/components'; - -import type { MapStyle } from './styles'; -import { MapStyles } from './styles'; +import type { MapStyle } from '@pages/Map/styles'; +import { MapStyles } from '@pages/Map/styles'; export const MapContainer = (): JSX.Element => { const dispatch = useAppDispatch(); diff --git a/src/pages/Map/index.tsx b/src/pages/Map/index.tsx index 661cfb72..25a131ba 100644 --- a/src/pages/Map/index.tsx +++ b/src/pages/Map/index.tsx @@ -4,14 +4,13 @@ import mapboxgl from 'mapbox-gl'; import { FiMapPin } from 'react-icons/fi'; import { RiRoadMapLine } from 'react-icons/ri'; -import { Layout } from '@app/components/layout'; -import { MapboxProvider } from '@app/components/MapBox/MapboxProvider'; -import type { Node } from '@app/core/slices/meshtasticSlice'; -import { useAppSelector } from '@app/hooks/useAppSelector'; - -import { NodeCard } from '../Nodes/NodeCard'; -import { MapContainer } from './MapContainer'; -import { Marker } from './Marker'; +import { Layout } from '@components/layout'; +import { MapboxProvider } from '@components/MapBox/MapboxProvider'; +import type { Node } from '@core/slices/meshtasticSlice'; +import { useAppSelector } from '@hooks/useAppSelector'; +import { MapContainer } from '@pages/Map/MapContainer'; +import { Marker } from '@pages/Map/Marker'; +import { NodeCard } from '@pages/Nodes/NodeCard'; export const Map = (): JSX.Element => { const [selectedNode, setSelectedNode] = React.useState(); diff --git a/src/pages/Messages/ChannelChat.tsx b/src/pages/Messages/ChannelChat.tsx index 62d4cf8e..f47e1540 100644 --- a/src/pages/Messages/ChannelChat.tsx +++ b/src/pages/Messages/ChannelChat.tsx @@ -5,10 +5,11 @@ import { FiSettings } from 'react-icons/fi'; import { MdPublic } from 'react-icons/md'; import TimeAgo from 'timeago-react'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Tooltip } from '@components/generic/Tooltip'; import { SidebarItem } from '@components/layout/Sidebar/SidebarItem'; import { Hashicon } from '@emeraldpay/hashicon-react'; import { useAppSelector } from '@hooks/useAppSelector'; -import { IconButton, Tooltip } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; export interface ChannelChatProps { diff --git a/src/pages/Messages/DmChat.tsx b/src/pages/Messages/DmChat.tsx index 499948fd..4eba42ff 100644 --- a/src/pages/Messages/DmChat.tsx +++ b/src/pages/Messages/DmChat.tsx @@ -2,10 +2,10 @@ import React from 'react'; import { FiSettings } from 'react-icons/fi'; +import { IconButton } from '@components/generic/button/IconButton'; import { SidebarItem } from '@components/layout/Sidebar/SidebarItem'; import type { Node } from '@core/slices/meshtasticSlice'; import { Hashicon } from '@emeraldpay/hashicon-react'; -import { IconButton } from '@meshtastic/components'; export interface DmChatProps { node: Node; diff --git a/src/pages/Messages/Message.tsx b/src/pages/Messages/Message.tsx index a8adc7bd..2937e6cd 100644 --- a/src/pages/Messages/Message.tsx +++ b/src/pages/Messages/Message.tsx @@ -2,9 +2,9 @@ import type React from 'react'; import { FiClock } from 'react-icons/fi'; -import type { Node } from '@app/core/slices/meshtasticSlice'; +import { Tooltip } from '@components/generic/Tooltip'; +import type { Node } from '@core/slices/meshtasticSlice'; import { Hashicon } from '@emeraldpay/hashicon-react'; -import { Tooltip } from '@meshtastic/components'; export interface MessageProps { lastMsgSameUser: boolean; diff --git a/src/pages/Messages/MessageBar.tsx b/src/pages/Messages/MessageBar.tsx index 30521d46..e328a7da 100644 --- a/src/pages/Messages/MessageBar.tsx +++ b/src/pages/Messages/MessageBar.tsx @@ -1,10 +1,10 @@ import React from 'react'; +import { Input } from '@components/generic/form/Input'; import { connection } from '@core/connection'; import { ackMessage } from '@core/slices/meshtasticSlice'; import { useAppDispatch } from '@hooks/useAppDispatch'; import { useAppSelector } from '@hooks/useAppSelector'; -import { Input } from '@meshtastic/components'; export interface MessageBarProps { chatIndex: number; diff --git a/src/pages/Messages/index.tsx b/src/pages/Messages/index.tsx index dd854a20..5d151ab7 100644 --- a/src/pages/Messages/index.tsx +++ b/src/pages/Messages/index.tsx @@ -2,15 +2,14 @@ import React from 'react'; import { FiHash, FiMessageCircle } from 'react-icons/fi'; -import { Layout } from '@app/components/layout'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Layout } from '@components/layout'; import { useAppSelector } from '@hooks/useAppSelector'; -import { IconButton } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; - -import { ChannelChat } from './ChannelChat'; -import { DmChat } from './DmChat'; -import { Message } from './Message'; -import { MessageBar } from './MessageBar'; +import { ChannelChat } from '@pages/Messages/ChannelChat'; +import { DmChat } from '@pages/Messages/DmChat'; +import { Message } from '@pages/Messages/Message'; +import { MessageBar } from '@pages/Messages/MessageBar'; export const Messages = (): JSX.Element => { const [selectedChatIndex, setSelectedChatIndex] = React.useState(0); @@ -105,11 +104,9 @@ export const Messages = (): JSX.Element => { : chats[selectedChatIndex].messages[index - 1].message .packet.from === message.message.packet.from } - sender={nodes.find((node) => { - console.log(message); - - return node.number === message.message.packet.from; - })} + sender={nodes.find( + (node) => node.number === message.message.packet.from, + )} /> ))}
diff --git a/src/pages/Nodes/NodeCard.tsx b/src/pages/Nodes/NodeCard.tsx index fe68f921..4ac150b7 100644 --- a/src/pages/Nodes/NodeCard.tsx +++ b/src/pages/Nodes/NodeCard.tsx @@ -12,14 +12,14 @@ import { IoTelescope } from 'react-icons/io5'; import { MdGpsFixed, MdGpsNotFixed, MdGpsOff } from 'react-icons/md'; import JSONPretty from 'react-json-pretty'; -import { CollapsibleSection } from '@app/components/layout/Sidebar/sections/CollapsibleSection'; -import { SidebarOverlay } from '@app/components/layout/Sidebar/sections/SidebarOverlay'; -import { SidebarItem } from '@app/components/layout/Sidebar/SidebarItem'; -import { CopyButton } from '@app/components/menu/buttons/CopyButton'; +import { IconButton } from '@components/generic/button/IconButton'; +import { CollapsibleSection } from '@components/generic/Sidebar/CollapsibleSection'; +import { SidebarOverlay } from '@components/generic/Sidebar/SidebarOverlay'; +import { SidebarItem } from '@components/layout/Sidebar/SidebarItem'; +import { CopyButton } from '@components/menu/buttons/CopyButton'; import type { Node } from '@core/slices/meshtasticSlice'; import { Hashicon } from '@emeraldpay/hashicon-react'; import { useMapbox } from '@hooks/useMapbox'; -import { IconButton } from '@meshtastic/components'; type PositionConfidence = 'high' | 'low' | 'none'; @@ -126,7 +126,25 @@ export const NodeCard = ({
}> -
Info
+ <> + {node.currentPosition && ( +
+
+ {(node.currentPosition.latitudeI / 1e7).toPrecision(6)},  + {(node.currentPosition?.longitudeI / 1e7).toPrecision(6)} +
+ +
+ )} +
}>
Info
diff --git a/src/pages/Nodes/index.tsx b/src/pages/Nodes/index.tsx index 5b0014f4..3a5e96db 100644 --- a/src/pages/Nodes/index.tsx +++ b/src/pages/Nodes/index.tsx @@ -5,11 +5,11 @@ import ReactFlow, { Background, Controls, MiniMap } from 'react-flow-renderer'; import { FiSettings } from 'react-icons/fi'; import { RiMindMap } from 'react-icons/ri'; -import { Layout } from '@app/components/layout'; -import { SidebarItem } from '@app/components/layout/Sidebar/SidebarItem'; -import { useAppSelector } from '@app/hooks/useAppSelector'; +import { IconButton } from '@components/generic/button/IconButton'; +import { Layout } from '@components/layout'; +import { SidebarItem } from '@components/layout/Sidebar/SidebarItem'; import { Hashicon } from '@emeraldpay/hashicon-react'; -import { IconButton } from '@meshtastic/components'; +import { useAppSelector } from '@hooks/useAppSelector'; export const Nodes = (): JSX.Element => { const [graphNodes, setGraphNodes] = React.useState([]); diff --git a/src/pages/Nodes/panels/DebugPanel.tsx b/src/pages/Nodes/panels/DebugPanel.tsx deleted file mode 100644 index aa208394..00000000 --- a/src/pages/Nodes/panels/DebugPanel.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import type React from 'react'; - -import JSONPretty from 'react-json-pretty'; - -import { CopyButton } from '@components/menu/buttons/CopyButton'; -import type { Node } from '@core/slices/meshtasticSlice'; - -export interface DebugPanelProps { - node: Node; -} - -export const DebugPanel = ({ node }: DebugPanelProps): JSX.Element => { - return ( -
-
- -
- -
- ); -}; diff --git a/src/pages/Nodes/panels/PositionPanel.tsx b/src/pages/Nodes/panels/PositionPanel.tsx deleted file mode 100644 index d12d1130..00000000 --- a/src/pages/Nodes/panels/PositionPanel.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type React from 'react'; - -import { CopyButton } from '@components/menu/buttons/CopyButton'; -import type { Node } from '@core/slices/meshtasticSlice'; - -export interface PositionPanelProps { - node: Node; -} - -export const PositionPanel = ({ node }: PositionPanelProps): JSX.Element => { - return ( -
- {node.currentPosition && ( -
-
- {(node.currentPosition.latitudeI / 1e7).toPrecision(6)},  - {(node.currentPosition?.longitudeI / 1e7).toPrecision(6)} -
- -
- )} -
- ); -}; diff --git a/src/pages/NotFound.tsx b/src/pages/NotFound.tsx index d1a5c62e..b8cb6a93 100644 --- a/src/pages/NotFound.tsx +++ b/src/pages/NotFound.tsx @@ -1,13 +1,12 @@ import type React from 'react'; -import { Card } from '@meshtastic/components'; +import { Card } from '@app/components/generic/Card'; export const NotFound = (): JSX.Element => { return ( - + +

The requested file or directory could not be found

+

Better luck next time