From 5faffc3886332584bf7f93b7cf0e1bcabe5543d3 Mon Sep 17 00:00:00 2001 From: Proddy Date: Fri, 7 Oct 2022 20:26:17 +0200 Subject: [PATCH] upgrade axios --- interface/package-lock.json | 112 ++++++++++-------- interface/package.json | 8 +- interface/src/SignIn.tsx | 6 +- interface/src/api/endpoints.ts | 4 +- .../src/components/upload/SingleUpload.tsx | 14 +-- .../src/components/upload/useFileUpload.ts | 6 +- .../authentication/Authentication.tsx | 4 +- .../src/contexts/features/FeaturesLoader.tsx | 2 +- .../framework/network/WiFiNetworkScanner.tsx | 10 +- interface/src/framework/ntp/NTPStatusForm.tsx | 2 +- .../src/framework/security/GenerateToken.tsx | 2 +- .../framework/system/GeneralFileUpload.tsx | 4 +- .../src/framework/system/RestartMonitor.tsx | 2 +- interface/src/framework/system/SystemLog.tsx | 4 +- .../src/framework/system/SystemStatusForm.tsx | 4 +- interface/src/project/DashboardData.tsx | 14 +-- interface/src/project/DashboardStatus.tsx | 2 +- interface/src/project/HelpInformation.tsx | 2 +- interface/src/project/SettingsApplication.tsx | 4 +- .../src/project/SettingsCustomization.tsx | 8 +- interface/src/utils/endpoints.ts | 6 +- interface/src/utils/useRest.ts | 4 +- interface/tsconfig.json | 1 + 23 files changed, 116 insertions(+), 109 deletions(-) diff --git a/interface/package-lock.json b/interface/package-lock.json index 6e6893306..6d3cb8f47 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -13,14 +13,14 @@ "@msgpack/msgpack": "^2.8.0", "@mui/icons-material": "^5.10.6", "@mui/material": "^5.10.8", - "@table-library/react-table-library": "4.0.18", + "@table-library/react-table-library": "4.0.23", "@types/lodash": "^4.14.186", - "@types/node": "^18.8.2", + "@types/node": "^18.8.3", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", "@types/react-router-dom": "^5.3.3", "async-validator": "^4.2.5", - "axios": "^0.27.2", + "axios": "^1.1.2", "http-proxy-middleware": "^2.0.6", "jwt-decode": "^3.1.2", "lodash": "^4.17.21", @@ -31,7 +31,7 @@ "react-dom": "^18.2.0", "react-dropzone": "^14.2.2", "react-icons": "^4.4.0", - "react-router-dom": "^6.4.1", + "react-router-dom": "^6.4.2", "react-scripts": "5.0.1", "sockette": "^2.0.6", "typesafe-i18n": "^5.14.0", @@ -3470,9 +3470,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.1.tgz", - "integrity": "sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", + "integrity": "sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==", "engines": { "node": ">=14" } @@ -3796,9 +3796,9 @@ } }, "node_modules/@table-library/react-table-library": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-4.0.18.tgz", - "integrity": "sha512-3GX5712YuWPFeUilr8UG22SCNR9BylD5Y4xPF+pHhb1QM7WXw6SLgpeGq6UDTQGOtmKtKtwKGWXdkmvVDg8pkA==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-4.0.23.tgz", + "integrity": "sha512-o2L/fqhwQNxsNbbm3LIiyZzEwaTslhG1tY9ArkYdS0xJyRhJxcOLfbJ3+dcnOOn+aIJpmPmQH+gr7RYJC0P8uw==", "dependencies": { "clsx": "1.1.1", "react-virtualized-auto-sizer": "1.0.6", @@ -4029,9 +4029,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "node_modules/@types/node": { - "version": "18.8.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.2.tgz", - "integrity": "sha512-cRMwIgdDN43GO4xMWAfJAecYn8wV4JbsOGHNfNUIDiuYkUYAR5ec4Rj7IO2SAhFPEfpPtLtUTbbny/TCT7aDwA==" + "version": "18.8.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.3.tgz", + "integrity": "sha512-0os9vz6BpGwxGe9LOhgP/ncvYN5Tx1fNcd2TM3rD/aCGBkysb+ZWpXEocG24h6ZzOi13+VB8HndAQFezsSOw1w==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -5008,12 +5008,13 @@ } }, "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz", + "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==", "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/axobject-query": { @@ -14147,6 +14148,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -14545,11 +14551,11 @@ } }, "node_modules/react-router": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.1.tgz", - "integrity": "sha512-OJASKp5AykDWFewgWUim1vlLr7yfD4vO/h+bSgcP/ix8Md+LMHuAjovA74MQfsfhQJGGN1nHRhwS5qQQbbBt3A==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.2.tgz", + "integrity": "sha512-Rb0BAX9KHhVzT1OKhMvCDMw776aTYM0DtkxqUBP8dNBom3mPXlfNs76JNGK8wKJ1IZEY1+WGj+cvZxHVk/GiKw==", "dependencies": { - "@remix-run/router": "1.0.1" + "@remix-run/router": "1.0.2" }, "engines": { "node": ">=14" @@ -14559,12 +14565,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.1.tgz", - "integrity": "sha512-MY7NJCrGNVJtGp8ODMOBHu20UaIkmwD2V3YsAOUQoCXFk7Ppdwf55RdcGyrSj+ycSL9Uiwrb3gTLYSnzcRoXww==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.2.tgz", + "integrity": "sha512-yM1kjoTkpfjgczPrcyWrp+OuQMyB1WleICiiGfstnQYo/S8hPEEnVjr/RdmlH6yKK4Tnj1UGXFSa7uwAtmDoLQ==", "dependencies": { - "@remix-run/router": "1.0.1", - "react-router": "6.4.1" + "@remix-run/router": "1.0.2", + "react-router": "6.4.2" }, "engines": { "node": ">=14" @@ -19819,9 +19825,9 @@ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@remix-run/router": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.1.tgz", - "integrity": "sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", + "integrity": "sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==" }, "@rollup/plugin-babel": { "version": "5.3.1", @@ -20018,9 +20024,9 @@ } }, "@table-library/react-table-library": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-4.0.18.tgz", - "integrity": "sha512-3GX5712YuWPFeUilr8UG22SCNR9BylD5Y4xPF+pHhb1QM7WXw6SLgpeGq6UDTQGOtmKtKtwKGWXdkmvVDg8pkA==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-4.0.23.tgz", + "integrity": "sha512-o2L/fqhwQNxsNbbm3LIiyZzEwaTslhG1tY9ArkYdS0xJyRhJxcOLfbJ3+dcnOOn+aIJpmPmQH+gr7RYJC0P8uw==", "requires": { "clsx": "1.1.1", "react-virtualized-auto-sizer": "1.0.6", @@ -20233,9 +20239,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "@types/node": { - "version": "18.8.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.2.tgz", - "integrity": "sha512-cRMwIgdDN43GO4xMWAfJAecYn8wV4JbsOGHNfNUIDiuYkUYAR5ec4Rj7IO2SAhFPEfpPtLtUTbbny/TCT7aDwA==" + "version": "18.8.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.3.tgz", + "integrity": "sha512-0os9vz6BpGwxGe9LOhgP/ncvYN5Tx1fNcd2TM3rD/aCGBkysb+ZWpXEocG24h6ZzOi13+VB8HndAQFezsSOw1w==" }, "@types/parse-json": { "version": "4.0.0", @@ -20973,12 +20979,13 @@ "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==" }, "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz", + "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "axobject-query": { @@ -27407,6 +27414,11 @@ } } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -27692,20 +27704,20 @@ "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" }, "react-router": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.1.tgz", - "integrity": "sha512-OJASKp5AykDWFewgWUim1vlLr7yfD4vO/h+bSgcP/ix8Md+LMHuAjovA74MQfsfhQJGGN1nHRhwS5qQQbbBt3A==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.2.tgz", + "integrity": "sha512-Rb0BAX9KHhVzT1OKhMvCDMw776aTYM0DtkxqUBP8dNBom3mPXlfNs76JNGK8wKJ1IZEY1+WGj+cvZxHVk/GiKw==", "requires": { - "@remix-run/router": "1.0.1" + "@remix-run/router": "1.0.2" } }, "react-router-dom": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.1.tgz", - "integrity": "sha512-MY7NJCrGNVJtGp8ODMOBHu20UaIkmwD2V3YsAOUQoCXFk7Ppdwf55RdcGyrSj+ycSL9Uiwrb3gTLYSnzcRoXww==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.2.tgz", + "integrity": "sha512-yM1kjoTkpfjgczPrcyWrp+OuQMyB1WleICiiGfstnQYo/S8hPEEnVjr/RdmlH6yKK4Tnj1UGXFSa7uwAtmDoLQ==", "requires": { - "@remix-run/router": "1.0.1", - "react-router": "6.4.1" + "@remix-run/router": "1.0.2", + "react-router": "6.4.2" } }, "react-scripts": { diff --git a/interface/package.json b/interface/package.json index 1b97bef90..9a00a3cde 100644 --- a/interface/package.json +++ b/interface/package.json @@ -9,14 +9,14 @@ "@msgpack/msgpack": "^2.8.0", "@mui/icons-material": "^5.10.6", "@mui/material": "^5.10.8", - "@table-library/react-table-library": "4.0.18", + "@table-library/react-table-library": "4.0.23", "@types/lodash": "^4.14.186", - "@types/node": "^18.8.2", + "@types/node": "^18.8.3", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", "@types/react-router-dom": "^5.3.3", "async-validator": "^4.2.5", - "axios": "^0.27.2", + "axios": "^1.1.2", "http-proxy-middleware": "^2.0.6", "jwt-decode": "^3.1.2", "lodash": "^4.17.21", @@ -27,7 +27,7 @@ "react-dom": "^18.2.0", "react-dropzone": "^14.2.2", "react-icons": "^4.4.0", - "react-router-dom": "^6.4.1", + "react-router-dom": "^6.4.2", "react-scripts": "5.0.1", "sockette": "^2.0.6", "typesafe-i18n": "^5.14.0", diff --git a/interface/src/SignIn.tsx b/interface/src/SignIn.tsx index 297658e0e..3467a48d0 100644 --- a/interface/src/SignIn.tsx +++ b/interface/src/SignIn.tsx @@ -9,8 +9,6 @@ import * as AuthenticationApi from './api/authentication'; import { PROJECT_NAME } from './api/env'; import { AuthenticationContext } from './contexts/authentication'; -import { AxiosError } from 'axios'; - import { extractErrorMessage, onEnterCallback, updateValue } from './utils'; import { SignInRequest } from './types'; import { ValidatedTextField } from './components'; @@ -56,8 +54,8 @@ const SignIn: FC = () => { try { const { data: loginResponse } = await AuthenticationApi.signIn(signInRequest); authenticationContext.signIn(loginResponse.access_token); - } catch (error: unknown) { - if (error instanceof AxiosError) { + } catch (error) { + if (error.response) { if (error.response?.status === 401) { enqueueSnackbar(LL.INVALID_LOGIN(), { variant: 'warning' }); } diff --git a/interface/src/api/endpoints.ts b/interface/src/api/endpoints.ts index 4c68bcaf1..4516fbc8f 100644 --- a/interface/src/api/endpoints.ts +++ b/interface/src/api/endpoints.ts @@ -1,4 +1,4 @@ -import axios, { AxiosPromise, CancelToken } from 'axios'; +import axios, { AxiosPromise, CancelToken, AxiosProgressEvent } from 'axios'; import { decode } from '@msgpack/msgpack'; @@ -89,7 +89,7 @@ function calculateEventSourceRoot(endpointPath: string) { export interface FileUploadConfig { cancelToken?: CancelToken; - onUploadProgress?: (progressEvent: ProgressEvent) => void; + onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; } export const startUploadFile = (url: string, file: File, config?: FileUploadConfig): AxiosPromise => { diff --git a/interface/src/components/upload/SingleUpload.tsx b/interface/src/components/upload/SingleUpload.tsx index d4e4e3c3d..ccf8bfed3 100644 --- a/interface/src/components/upload/SingleUpload.tsx +++ b/interface/src/components/upload/SingleUpload.tsx @@ -1,6 +1,8 @@ import { FC, Fragment } from 'react'; import { useDropzone, DropzoneState } from 'react-dropzone'; +import { AxiosProgressEvent } from 'axios'; + import { Box, Button, LinearProgress, Theme, Typography, useTheme } from '@mui/material'; import CloudUploadIcon from '@mui/icons-material/CloudUpload'; @@ -8,8 +10,6 @@ import CancelIcon from '@mui/icons-material/Cancel'; import { useI18nContext } from '../../i18n/i18n-react'; -const progressPercentage = (progress: ProgressEvent) => Math.round((progress.loaded * 100) / progress.total); - const getBorderColor = (theme: Theme, props: DropzoneState) => { if (props.isDragAccept) { return theme.palette.success.main; @@ -27,7 +27,7 @@ export interface SingleUploadProps { onDrop: (acceptedFiles: File[]) => void; onCancel: () => void; uploading: boolean; - progress?: ProgressEvent; + progress?: AxiosProgressEvent; } const SingleUpload: FC = ({ onDrop, onCancel, uploading, progress }) => { @@ -47,8 +47,8 @@ const SingleUpload: FC = ({ onDrop, onCancel, uploading, prog const progressText = () => { if (uploading) { - if (progress?.lengthComputable) { - return LL.UPLOADING() + `: ${progressPercentage(progress)}%`; + if (progress?.total) { + return LL.UPLOADING() + ': ' + Math.round((progress.loaded * 100) / progress.total) + '%'; } return LL.UPLOADING() + `\u2026`; } @@ -80,8 +80,8 @@ const SingleUpload: FC = ({ onDrop, onCancel, uploading, prog