diff --git a/package-lock.json b/package-lock.json index b3c3e7779..9edd34077 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,7 +76,7 @@ "html2canvas": "1.0.0-rc.5", "i18next": "23.11.5", "i18next-browser-languagedetector": "6.0.1", - "i18next-http-backend": "3.0.2", + "i18next-http-backend": "3.0.5", "i18next-resources-to-backend": "1.2.1", "iframe-resizer-react": "1.1.0", "immer": "9.0.6", @@ -163,7 +163,7 @@ "@webpack-cli/serve": "2.0.5", "babel-jest": "29.7.0", "babel-loader": "8.1.0", - "brace-expansion": "1.1.12", + "brace-expansion": "1.1.15", "buffer": "5.1.0", "case-sensitive-paths-webpack-plugin": "2.4.0", "create-file-webpack": "1.0.2", @@ -11679,9 +11679,10 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -12724,17 +12725,19 @@ } }, "node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/cross-fetch/node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -16917,11 +16920,12 @@ } }, "node_modules/i18next-http-backend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-3.0.2.tgz", - "integrity": "sha512-PdlvPnvIp4E1sYi46Ik4tBYh/v/NbYfFFgTjkwFl0is8A18s7/bx9aXqsrOax9WUbeNS6mD2oix7Z0yGGf6m5g==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-3.0.5.tgz", + "integrity": "sha512-QaWHnsxieEDcqKe+vo/RFqpiIFRi/KBqlOSPcUlvinBaISCeiTRCbtrazHAjtHtsLC66oDsROAH8frWkQzfMMQ==", + "license": "MIT", "dependencies": { - "cross-fetch": "4.0.0" + "cross-fetch": "4.1.0" } }, "node_modules/i18next-resources-for-ts": { @@ -22314,18 +22318,25 @@ "license": "Apache-2.0" }, "node_modules/launch-editor": { - "version": "2.6.1", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", "dev": true, "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" } }, "node_modules/launch-editor/node_modules/shell-quote": { - "version": "1.8.1", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", + "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -27107,9 +27118,10 @@ "license": "ISC" }, "node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", + "license": "MIT", "engines": { "node": ">=14.14" } diff --git a/package.json b/package.json index e8614111f..84299d2cc 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "html2canvas": "1.0.0-rc.5", "i18next": "23.11.5", "i18next-browser-languagedetector": "6.0.1", - "i18next-http-backend": "3.0.2", + "i18next-http-backend": "3.0.5", "i18next-resources-to-backend": "1.2.1", "iframe-resizer-react": "1.1.0", "immer": "9.0.6", @@ -173,7 +173,7 @@ "@webpack-cli/serve": "2.0.5", "babel-jest": "29.7.0", "babel-loader": "8.1.0", - "brace-expansion": "1.1.12", + "brace-expansion": "1.1.15", "buffer": "5.1.0", "case-sensitive-paths-webpack-plugin": "2.4.0", "create-file-webpack": "1.0.2", diff --git a/src/Explorer/ContainerCopy/Actions/CopyJobActions.tsx b/src/Explorer/ContainerCopy/Actions/CopyJobActions.tsx index 359243d10..4922c43f3 100644 --- a/src/Explorer/ContainerCopy/Actions/CopyJobActions.tsx +++ b/src/Explorer/ContainerCopy/Actions/CopyJobActions.tsx @@ -115,7 +115,7 @@ export const getCopyJobs = async (): Promise => { }); return formattedJobs; } catch (error) { - const errorContent = JSON.stringify(error.content || error.message || error); + const errorContent = String(error.content || error.message || error); if (errorContent.includes("signal is aborted without reason")) { throw { message: "Previous copy job request was cancelled.", diff --git a/src/Explorer/Graph/GraphExplorerComponent/GraphExplorer.tsx b/src/Explorer/Graph/GraphExplorerComponent/GraphExplorer.tsx index 5077bc189..071f6c943 100644 --- a/src/Explorer/Graph/GraphExplorerComponent/GraphExplorer.tsx +++ b/src/Explorer/Graph/GraphExplorerComponent/GraphExplorer.tsx @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ /* eslint-disable @typescript-eslint/no-explicit-any */ import { FeedOptions, ItemDefinition, QueryIterator, Resource } from "@azure/cosmos"; +import { stringifyError } from "Common/stringifyError"; import * as Q from "q"; import * as React from "react"; import LoadGraphIcon from "../../../../images/LoadGraph.png"; @@ -1092,8 +1093,8 @@ export class GraphExplorer extends React.Component void) { let errorDataStr = ""; if (errorData && errorData.length > 0) { - console.error(msg, errorData); - errorDataStr = ": " + JSON.stringify(errorData); + console.error(msg + String(errorData)); + errorDataStr = ": " + stringifyError(errorData); } const consoleMessage = `${msg}${errorDataStr}`; diff --git a/src/Explorer/Notebook/NotebookComponent/store.ts b/src/Explorer/Notebook/NotebookComponent/store.ts index 3a971debf..47fa91c02 100644 --- a/src/Explorer/Notebook/NotebookComponent/store.ts +++ b/src/Explorer/Notebook/NotebookComponent/store.ts @@ -1,6 +1,7 @@ import { AppState, epics as coreEpics, IContentProvider, reducers } from "@nteract/core"; import { configuration } from "@nteract/mythic-configuration"; import { makeConfigureStore } from "@nteract/myths"; +import { stringifyError } from "Common/stringifyError"; import { AnyAction, compose, Dispatch, Middleware, MiddlewareAPI, Store } from "redux"; import { Epic } from "redux-observable"; import { Observable } from "rxjs"; @@ -44,7 +45,7 @@ export default function configureStore( const traceFailure = (title: string, error: any) => { if (error instanceof Error) { - onTraceFailure(title, `${error.message} ${JSON.stringify(error.stack)}`); + onTraceFailure(title, `${error.message} ${stringifyError(error.stack)}`); console.error(error); } else { onTraceFailure(title, error.message); diff --git a/src/Explorer/Tables/DataTable/TableEntityListViewModel.ts b/src/Explorer/Tables/DataTable/TableEntityListViewModel.ts index 1c69e0efc..dc041ec91 100644 --- a/src/Explorer/Tables/DataTable/TableEntityListViewModel.ts +++ b/src/Explorer/Tables/DataTable/TableEntityListViewModel.ts @@ -1,3 +1,4 @@ +import { stringifyError } from "Common/stringifyError"; import * as DataTables from "datatables.net"; import * as ko from "knockout"; import Q from "q"; @@ -37,7 +38,7 @@ function parseError(err: any): ErrorDataModel[] { try { return _parse(err); } catch (e) { - return [{ message: JSON.stringify(err) }]; + return [{ message: stringifyError(err) }]; } }