From ba63e8054ff8c523d0ea242fb8764bd4e7032636 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 28 Feb 2025 12:15:47 -0800 Subject: [PATCH] IO-3162 Sentry package upgrades and refactors. --- client/package-lock.json | 468 ++++-------------- client/package.json | 8 +- client/src/graphql/apollo-error-handling.js | 1 - client/src/index.jsx | 46 +- .../pages/manage/manage.page.component.jsx | 2 +- client/src/redux/user/user.sagas.js | 2 +- client/src/utils/sentry.js | 60 +++ 7 files changed, 179 insertions(+), 408 deletions(-) create mode 100644 client/src/utils/sentry.js diff --git a/client/package-lock.json b/client/package-lock.json index a544dc7f2..2934370dc 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -15,14 +15,14 @@ "@fingerprintjs/fingerprintjs": "^4.5.1", "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.5.0", - "@sentry/cli": "^2.40.0", - "@sentry/react": "^7.114.0", + "@sentry/cli": "^2.42.2", + "@sentry/react": "^9.3.0", "@splitsoftware/splitio-react": "^1.13.0", "@tanem/react-nprogress": "^5.0.53", "@vitejs/plugin-react": "^4.3.4", "antd": "^5.23.1", "apollo-link-logger": "^2.0.1", - "apollo-link-sentry": "^3.3.0", + "apollo-link-sentry": "^4.1.0", "autosize": "^6.0.1", "axios": "^1.7.9", "classnames": "^2.5.1", @@ -91,7 +91,7 @@ "@emotion/babel-plugin": "^11.13.5", "@emotion/react": "^11.14.0", "@eslint/js": "^9.18.0", - "@sentry/webpack-plugin": "^2.22.4", + "@sentry/webpack-plugin": "^3.2.1", "@testing-library/cypress": "^10.0.2", "browserslist": "^4.24.4", "browserslist-to-esbuild": "^2.1.1", @@ -5242,53 +5242,60 @@ "dev": true, "license": "MIT" }, - "node_modules/@sentry-internal/feedback": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.120.3.tgz", - "integrity": "sha512-ewJJIQ0mbsOX6jfiVFvqMjokxNtgP3dNwUv+4nenN+iJJPQsM6a0ocro3iscxwVdbkjw5hY3BUV2ICI5Q0UWoA==", + "node_modules/@sentry-internal/browser-utils": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-9.3.0.tgz", + "integrity": "sha512-G3z4HCUyb5nJe03EPUhWjnaHqMDt4mOTFJDNha3DGoB51lMYojpQI1Qo1u6bY4qkWVSO1c+HqOU0RVsXoAchtQ==", "license": "MIT", "dependencies": { - "@sentry/core": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" + "@sentry/core": "9.3.0" }, "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@sentry-internal/feedback": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-9.3.0.tgz", + "integrity": "sha512-LQmIbQaATlN5QEwCD2Xt+7VKfwfR5W3dbn0jdF1x4hQFE/srdnOj60xMz/mj3tP5BxV552xJniGsyZ8lXHDb2A==", + "license": "MIT", + "dependencies": { + "@sentry/core": "9.3.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-9.3.0.tgz", + "integrity": "sha512-ZkH+Gahn89JygpuiFn26ZgAqJXHtnr+HjfQ2ONOFoWQHNH6X5wk75UTma55aYk1d8VcBPFoU6WjFhZoQ55SV1g==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "9.3.0", + "@sentry/core": "9.3.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.120.3.tgz", - "integrity": "sha512-s5xy+bVL1eDZchM6gmaOiXvTqpAsUfO7122DxVdEDMtwVq3e22bS2aiGa8CUgOiJkulZ+09q73nufM77kOmT/A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-9.3.0.tgz", + "integrity": "sha512-MhDMJeRGa55a0D541+OzTFMWwbabthhDGbAL90/NpappfyeBbAiktmCNl0BFTZuRbCGrC2m1LLCqHegCVKW4fQ==", "license": "MIT", "dependencies": { - "@sentry/core": "7.120.3", - "@sentry/replay": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" + "@sentry-internal/replay": "9.3.0", + "@sentry/core": "9.3.0" }, "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry-internal/tracing": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.120.3.tgz", - "integrity": "sha512-Ausx+Jw1pAMbIBHStoQ6ZqDZR60PsCByvHdw/jdH9AqPrNE9xlBSf9EwcycvmrzwyKspSLaB52grlje2cRIUMg==", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" - }, - "engines": { - "node": ">=8" + "node": ">=18" } }, "node_modules/@sentry/babel-plugin-component-annotate": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.23.0.tgz", - "integrity": "sha512-+uLqaCKeYmH/W2YUV1XHkFEtpHdx/aFjCQahPVsvXyqg13dfkR6jaygPL4DB5DJtUSmPFCUE3MEk9ZO5JlhJYg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-3.2.1.tgz", + "integrity": "sha512-tUp2e+CERpRFzTftjPxt7lg4BF0R3K+wGfeJyIqrc0tbJ2y6duT8OD0ArWoOi1g8xQ73NDn1/mEeS8pC+sbjTQ==", "dev": true, "license": "MIT", "engines": { @@ -5296,34 +5303,31 @@ } }, "node_modules/@sentry/browser": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.120.3.tgz", - "integrity": "sha512-i9vGcK9N8zZ/JQo1TCEfHHYZ2miidOvgOABRUc9zQKhYdcYQB2/LU1kqlj77Pxdxf4wOa9137d6rPrSn9iiBxg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-9.3.0.tgz", + "integrity": "sha512-yPwWWQo/hpN63p0NGmk/Dd1Fx5CQRWNMfuV7dtfPBtg3vRjDecA9OLyK29AqK5h3Fl8FuJOyOqB87CvtXUqh5g==", "license": "MIT", "dependencies": { - "@sentry-internal/feedback": "7.120.3", - "@sentry-internal/replay-canvas": "7.120.3", - "@sentry-internal/tracing": "7.120.3", - "@sentry/core": "7.120.3", - "@sentry/integrations": "7.120.3", - "@sentry/replay": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" + "@sentry-internal/browser-utils": "9.3.0", + "@sentry-internal/feedback": "9.3.0", + "@sentry-internal/replay": "9.3.0", + "@sentry-internal/replay-canvas": "9.3.0", + "@sentry/core": "9.3.0" }, "engines": { - "node": ">=8" + "node": ">=18" } }, "node_modules/@sentry/bundler-plugin-core": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.23.0.tgz", - "integrity": "sha512-Qbw+jZFK63w+V193l0eCFKLzGba2Iu93Fx8kCRzZ3uqjky002H8U3pu4mKgcc11J+u8QTjfNZGUyXsxz0jv2mg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-3.2.1.tgz", + "integrity": "sha512-1wId05LXf6LyTeNwqyhSDSWYbYtFT/NQRqq3sW7hcL4nZuAgzT82PSvxeeCgR/D2qXOj7RCYXXZtyWzzo3wtXA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.18.5", - "@sentry/babel-plugin-component-annotate": "2.23.0", - "@sentry/cli": "2.39.1", + "@sentry/babel-plugin-component-annotate": "3.2.1", + "@sentry/cli": "2.42.2", "dotenv": "^16.3.1", "find-up": "^5.0.0", "glob": "^9.3.2", @@ -5334,185 +5338,10 @@ "node": ">= 14" } }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.39.1.tgz", - "integrity": "sha512-JIb3e9vh0+OmQ0KxmexMXg9oZsR/G7HMwxt5BUIKAXZ9m17Xll4ETXTRnRUBT3sf7EpNGAmlQk1xEmVN9pYZYQ==", - "dev": true, - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.7", - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "which": "^2.0.2" - }, - "bin": { - "sentry-cli": "bin/sentry-cli" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@sentry/cli-darwin": "2.39.1", - "@sentry/cli-linux-arm": "2.39.1", - "@sentry/cli-linux-arm64": "2.39.1", - "@sentry/cli-linux-i686": "2.39.1", - "@sentry/cli-linux-x64": "2.39.1", - "@sentry/cli-win32-i686": "2.39.1", - "@sentry/cli-win32-x64": "2.39.1" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli-darwin": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.39.1.tgz", - "integrity": "sha512-kiNGNSAkg46LNGatfNH5tfsmI/kCAaPA62KQuFZloZiemTNzhy9/6NJP8HZ/GxGs8GDMxic6wNrV9CkVEgFLJQ==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli-linux-arm": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.39.1.tgz", - "integrity": "sha512-DkENbxyRxUrfLnJLXTA4s5UL/GoctU5Cm4ER1eB7XN7p9WsamFJd/yf2KpltkjEyiTuplv0yAbdjl1KX3vKmEQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli-linux-arm64": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.39.1.tgz", - "integrity": "sha512-5VbVJDatolDrWOgaffsEM7znjs0cR8bHt9Bq0mStM3tBolgAeSDHE89NgHggfZR+DJ2VWOy4vgCwkObrUD6NQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli-linux-i686": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.39.1.tgz", - "integrity": "sha512-pXWVoKXCRrY7N8vc9H7mETiV9ZCz+zSnX65JQCzZxgYrayQPJTc+NPRnZTdYdk5RlAupXaFicBI2GwOCRqVRkg==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli-linux-x64": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.39.1.tgz", - "integrity": "sha512-IwayNZy+it7FWG4M9LayyUmG1a/8kT9+/IEm67sT5+7dkMIMcpmHDqL8rWcPojOXuTKaOBBjkVdNMBTXy0mXlA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli-win32-i686": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.39.1.tgz", - "integrity": "sha512-NglnNoqHSmE+Dz/wHeIVRnV2bLMx7tIn3IQ8vXGO5HWA2f8zYJGktbkLq1Lg23PaQmeZLPGlja3gBQfZYSG10Q==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/cli-win32-x64": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.39.1.tgz", - "integrity": "sha512-xv0R2CMf/X1Fte3cMWie1NXuHmUyQPDBfCyIt6k6RPFPxAYUgcqgMPznYwVMwWEA1W43PaOkSn3d8ZylsDaETw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@sentry/cli": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.41.1.tgz", - "integrity": "sha512-0GVmDiTV7R1492wkVY4bGcfC0fSmRmQjuxaaPI8CIV9B2VP9pBVCUizi1mevXaaE4I3fM60LI+XYrKFEneuVog==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.42.2.tgz", + "integrity": "sha512-spb7S/RUumCGyiSTg8DlrCX4bivCNmU/A1hcfkwuciTFGu8l5CDc2I6jJWWZw8/0enDGxuj5XujgXvU5tr4bxg==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -5529,19 +5358,19 @@ "node": ">= 10" }, "optionalDependencies": { - "@sentry/cli-darwin": "2.41.1", - "@sentry/cli-linux-arm": "2.41.1", - "@sentry/cli-linux-arm64": "2.41.1", - "@sentry/cli-linux-i686": "2.41.1", - "@sentry/cli-linux-x64": "2.41.1", - "@sentry/cli-win32-i686": "2.41.1", - "@sentry/cli-win32-x64": "2.41.1" + "@sentry/cli-darwin": "2.42.2", + "@sentry/cli-linux-arm": "2.42.2", + "@sentry/cli-linux-arm64": "2.42.2", + "@sentry/cli-linux-i686": "2.42.2", + "@sentry/cli-linux-x64": "2.42.2", + "@sentry/cli-win32-i686": "2.42.2", + "@sentry/cli-win32-x64": "2.42.2" } }, "node_modules/@sentry/cli-darwin": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.41.1.tgz", - "integrity": "sha512-7pS3pu/SuhE6jOn3wptstAg6B5nUP878O6s+2svT7b5fKNfYUi/6NPK6dAveh2Ca0rwVq40TO4YFJabWMgTpdQ==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.42.2.tgz", + "integrity": "sha512-GtJSuxER7Vrp1IpxdUyRZzcckzMnb4N5KTW7sbTwUiwqARRo+wxS+gczYrS8tdgtmXs5XYhzhs+t4d52ITHMIg==", "license": "BSD-3-Clause", "optional": true, "os": [ @@ -5552,9 +5381,9 @@ } }, "node_modules/@sentry/cli-linux-arm": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.41.1.tgz", - "integrity": "sha512-wNUvquD6qjOCczvuBGf9OiD29nuQ6yf8zzfyPJa5Bdx1QXuteKsKb6HBrMwuIR3liyuu0duzHd+H/+p1n541Hg==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.42.2.tgz", + "integrity": "sha512-7udCw+YL9lwq+9eL3WLspvnuG+k5Icg92YE7zsteTzWLwgPVzaxeZD2f8hwhsu+wmL+jNqbpCRmktPteh3i2mg==", "cpu": [ "arm" ], @@ -5569,9 +5398,9 @@ } }, "node_modules/@sentry/cli-linux-arm64": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.41.1.tgz", - "integrity": "sha512-EzYCEnnENBnS5kpNW+2dBcrPZn1MVfywh2joGVQZTpmgDL5YFJ59VOd+K0XuEwqgFI8BSNI14KXZ75s4DD1/Vw==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.42.2.tgz", + "integrity": "sha512-BOxzI7sgEU5Dhq3o4SblFXdE9zScpz6EXc5Zwr1UDZvzgXZGosUtKVc7d1LmkrHP8Q2o18HcDWtF3WvJRb5Zpw==", "cpu": [ "arm64" ], @@ -5586,9 +5415,9 @@ } }, "node_modules/@sentry/cli-linux-i686": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.41.1.tgz", - "integrity": "sha512-urpQCWrdYnSAsZY3udttuMV88wTJzKZL10xsrp7sjD/Hd+O6qSLVLkxebIlxts70jMLLFHYrQ2bkRg5kKuX6Fg==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.42.2.tgz", + "integrity": "sha512-Sw/dQp5ZPvKnq3/y7wIJyxTUJYPGoTX/YeMbDs8BzDlu9to2LWV3K3r7hE7W1Lpbaw4tSquUHiQjP5QHCOS7aQ==", "cpu": [ "x86", "ia32" @@ -5604,9 +5433,9 @@ } }, "node_modules/@sentry/cli-linux-x64": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.41.1.tgz", - "integrity": "sha512-ZqpYwHXAaK4MMEFlyaLYr6mJTmpy9qP6n30jGhLTW7kHKS3s6GPLCSlNmIfeClrInEt0963fM633ZRnXa04VPw==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.42.2.tgz", + "integrity": "sha512-mU4zUspAal6TIwlNLBV5oq6yYqiENnCWSxtSQVzWs0Jyq97wtqGNG9U+QrnwjJZ+ta/hvye9fvL2X25D/RxHQw==", "cpu": [ "x64" ], @@ -5621,9 +5450,9 @@ } }, "node_modules/@sentry/cli-win32-i686": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.41.1.tgz", - "integrity": "sha512-AuRimCeVsx99DIOr9cwdYBHk39tlmAuPDdy2r16iNzY0InXs4xOys4gGzM7N4vlFQvFkzuc778Su0HkfasgprA==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.42.2.tgz", + "integrity": "sha512-iHvFHPGqgJMNqXJoQpqttfsv2GI3cGodeTq4aoVLU/BT3+hXzbV0x1VpvvEhncJkDgDicJpFLM8sEPHb3b8abw==", "cpu": [ "x86", "ia32" @@ -5638,9 +5467,9 @@ } }, "node_modules/@sentry/cli-win32-x64": { - "version": "2.41.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.41.1.tgz", - "integrity": "sha512-6JcPvXGye61+wPp0xdzfc2YLE/Dcud8JdaK8VxLM3b/8+Em7E+UyliDu3uF8+YGUqizY5JYTd3fs17DC8DZhLw==", + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.42.2.tgz", + "integrity": "sha512-vPPGHjYoaGmfrU7xhfFxG7qlTBacroz5NdT+0FmDn6692D8IvpNXl1K+eV3Kag44ipJBBeR8g1HRJyx/F/9ACw==", "cpu": [ "x64" ], @@ -5675,96 +5504,39 @@ } }, "node_modules/@sentry/core": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.120.3.tgz", - "integrity": "sha512-vyy11fCGpkGK3qI5DSXOjgIboBZTriw0YDx/0KyX5CjIjDDNgp5AGgpgFkfZyiYiaU2Ww3iFuKo4wHmBusz1uA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.3.0.tgz", + "integrity": "sha512-SxQ4z7wTkfguvYb2ctNEMU9kVAbhl9ymfjhLnrvtygTwL5soLqAKdco/lX/4P9K9Osgb2Dl6urQWRl+AhzKVbQ==", "license": "MIT", - "dependencies": { - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" - }, "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/integrations": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.120.3.tgz", - "integrity": "sha512-6i/lYp0BubHPDTg91/uxHvNui427df9r17SsIEXa2eKDwQ9gW2qRx5IWgvnxs2GV/GfSbwcx4swUB3RfEWrXrQ==", - "license": "MIT", - "dependencies": { - "@sentry/core": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3", - "localforage": "^1.8.1" - }, - "engines": { - "node": ">=8" + "node": ">=18" } }, "node_modules/@sentry/react": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.120.3.tgz", - "integrity": "sha512-BcpoK9dwblfb20xwjn/1DRtplvPEXFc3XCRkYSnTfnfZNU8yPOcVX4X2X0I8R+/gsg+MWiFOdEtXJ3FqpJiJ4Q==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-9.3.0.tgz", + "integrity": "sha512-/ruDHBHLDXmZoEHNCSjdekZr9+0pbOC5+BY1oABGoDXRISGyoenOBtAsX8TsaC9oJYhr16yKDFlYxzzQRhxDyg==", "license": "MIT", "dependencies": { - "@sentry/browser": "7.120.3", - "@sentry/core": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3", + "@sentry/browser": "9.3.0", + "@sentry/core": "9.3.0", "hoist-non-react-statics": "^3.3.2" }, "engines": { - "node": ">=8" + "node": ">=18" }, "peerDependencies": { - "react": "15.x || 16.x || 17.x || 18.x" - } - }, - "node_modules/@sentry/replay": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.120.3.tgz", - "integrity": "sha512-CjVq1fP6bpDiX8VQxudD5MPWwatfXk8EJ2jQhJTcWu/4bCSOQmHxnnmBM+GVn5acKUBCodWHBN+IUZgnJheZSg==", - "license": "MIT", - "dependencies": { - "@sentry-internal/tracing": "7.120.3", - "@sentry/core": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry/types": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.120.3.tgz", - "integrity": "sha512-C4z+3kGWNFJ303FC+FxAd4KkHvxpNFYAFN8iMIgBwJdpIl25KZ8Q/VdGn0MLLUEHNLvjob0+wvwlcRBBNLXOow==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/utils": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.120.3.tgz", - "integrity": "sha512-UDAOQJtJDxZHQ5Nm1olycBIsz2wdGX8SdzyGVHmD8EOQYAeDZQyIlQYohDe9nazdIOQLZCIc3fU0G9gqVLkaGQ==", - "license": "MIT", - "dependencies": { - "@sentry/types": "7.120.3" - }, - "engines": { - "node": ">=8" + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "node_modules/@sentry/webpack-plugin": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-2.23.0.tgz", - "integrity": "sha512-WxYUbTt/tNfeDm9apeUDXXKs6bEuuVrgYJeCDPDzjGQdmLTsZnbLxcX/b+zr4pceyzZNFEJujk60rRWCjFZY3w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-3.2.1.tgz", + "integrity": "sha512-wP/JDljhB9pCFc62rSwWbIglF2Os8FLV68pQuyJnmImM9cjGjlK6UO+qKa2pOLYsmAcnn+t3Bhu77bbzPIStCg==", "dev": true, "license": "MIT", "dependencies": { - "@sentry/bundler-plugin-core": "2.23.0", + "@sentry/bundler-plugin-core": "3.2.1", "unplugin": "1.0.1", "uuid": "^9.0.0" }, @@ -6864,9 +6636,9 @@ } }, "node_modules/apollo-link-sentry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/apollo-link-sentry/-/apollo-link-sentry-3.3.0.tgz", - "integrity": "sha512-wLffWmo5sRw3rHN1Ck6azM0oxObvtaBBf3AC8cLX4SxhyjmkRIagGDji6CFkyAhxupPz0b9/H1u4Ocx+63lNug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/apollo-link-sentry/-/apollo-link-sentry-4.1.0.tgz", + "integrity": "sha512-wHiJXZ9OzmRbV3famykszz0E0SZyCBpa3Rt0EVrdOKDN9qQQaE63xQB2lFa3mUkZb95GMc+6ugPt8bVIkwsRPQ==", "license": "MIT", "dependencies": { "deepmerge": "^4.2.2", @@ -6876,7 +6648,7 @@ }, "peerDependencies": { "@apollo/client": "^3.2.3", - "@sentry/browser": "^7.41.0", + "@sentry/core": "^8.33.0", "graphql": "15 - 16" } }, @@ -11570,12 +11342,6 @@ "node": ">= 4" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT" - }, "node_modules/immer": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", @@ -12728,15 +12494,6 @@ "integrity": "sha512-bW/Yp/9dod6fmyR+XqSUL1N5JE7QRxQ3KrBIbYS1FTv32e5i3SEtQVX+71CYNv8maWNSOgnlCoNp9X78f/cKiA==", "license": "MIT" }, - "node_modules/lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -12788,15 +12545,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/localforage": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", - "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", - "license": "Apache-2.0", - "dependencies": { - "lie": "3.1.1" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", diff --git a/client/package.json b/client/package.json index fff01743b..6e6cedc58 100644 --- a/client/package.json +++ b/client/package.json @@ -14,14 +14,14 @@ "@fingerprintjs/fingerprintjs": "^4.5.1", "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.5.0", - "@sentry/cli": "^2.40.0", - "@sentry/react": "^7.114.0", + "@sentry/cli": "^2.42.2", + "@sentry/react": "^9.3.0", "@splitsoftware/splitio-react": "^1.13.0", "@tanem/react-nprogress": "^5.0.53", "@vitejs/plugin-react": "^4.3.4", "antd": "^5.23.1", "apollo-link-logger": "^2.0.1", - "apollo-link-sentry": "^3.3.0", + "apollo-link-sentry": "^4.1.0", "autosize": "^6.0.1", "axios": "^1.7.9", "classnames": "^2.5.1", @@ -127,7 +127,7 @@ "@emotion/babel-plugin": "^11.13.5", "@emotion/react": "^11.14.0", "@eslint/js": "^9.18.0", - "@sentry/webpack-plugin": "^2.22.4", + "@sentry/webpack-plugin": "^3.2.1", "@testing-library/cypress": "^10.0.2", "browserslist": "^4.24.4", "browserslist-to-esbuild": "^2.1.1", diff --git a/client/src/graphql/apollo-error-handling.js b/client/src/graphql/apollo-error-handling.js index 5e6e88691..617b26278 100644 --- a/client/src/graphql/apollo-error-handling.js +++ b/client/src/graphql/apollo-error-handling.js @@ -6,7 +6,6 @@ const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) if (graphQLErrors) { graphQLErrors.forEach(({ message, locations, path }) => { console.log(`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`); - Sentry.captureException({ message, locations, path }); }); } if (networkError) console.log(`[Network error]: ${JSON.stringify(networkError)}`); diff --git a/client/src/index.jsx b/client/src/index.jsx index 2e47b02d1..327d57e84 100644 --- a/client/src/index.jsx +++ b/client/src/index.jsx @@ -1,10 +1,12 @@ +import "./utils/sentry"; //Must be first. import * as Sentry from "@sentry/react"; +import { ConfigProvider } from "antd"; import Dinero from "dinero.js"; -import React from "react"; import ReactDOM from "react-dom/client"; import { Provider } from "react-redux"; import { createBrowserRouter, createRoutesFromElements, Route, RouterProvider } from "react-router-dom"; import { PersistGate } from "redux-persist/integration/react"; +import { registerSW } from "virtual:pwa-register"; import AppContainer from "./App/App.container"; import LoadingSpinner from "./components/loading-spinner/loading-spinner.component"; import "./index.css"; @@ -12,56 +14,18 @@ import { persistor, store } from "./redux/store"; import reportWebVitals from "./reportWebVitals"; import "./translations/i18n"; import "./utils/CleanAxios"; -import { ConfigProvider } from "antd"; -import InstanceRenderManager from "./utils/instanceRenderMgr"; -import { registerSW } from "virtual:pwa-register"; window.global ||= window; registerSW({ immediate: true }); -//import { BrowserTracing } from "@sentry/tracing"; -//import "antd/dist/antd.css"; -// import "antd/dist/antd.less"; // Dinero.defaultCurrency = "CAD"; // Dinero.globalLocale = "en-CA"; Dinero.globalRoundingMode = "HALF_EVEN"; -if (import.meta.env.PROD) { - Sentry.init({ - dsn: InstanceRenderManager({ - imex: "https://fd7e89369b6b4bdc9c6c4c9f22fa4ee4@o492140.ingest.sentry.io/5651027", - rome: "https://a6acc91c073e414196014b8484627a61@o492140.ingest.sentry.io/4504561071161344" - }), +const sentryCreateBrowserRouter = Sentry.wrapCreateBrowserRouterV6(createBrowserRouter); - ignoreErrors: [ - "ResizeObserver loop", - "ResizeObserver loop limit exceeded", - "Module specifier, 'fs' does not start", - "Module specifier, 'zlib' does not start with" - ], - integrations: [ - Sentry.replayIntegration({ - maskAllText: false, - blockAllMedia: true - }), - Sentry.browserTracingIntegration() - ], - tracePropagationTargets: [ - "api.imex.online", - "api.test.imex.online", - "db.imex.online", - "api.romeonline.io", - "api.test.romeonline.io", - "db.romeonline.io" - ], - tracesSampleRate: 1.0, - replaysOnErrorSampleRate: 1.0, - environment: import.meta.env.MODE - }); -} - -const router = createBrowserRouter(createRoutesFromElements(} />)); +const router = sentryCreateBrowserRouter(createRoutesFromElements(} />)); if (import.meta.env.DEV) { let styles = diff --git a/client/src/pages/manage/manage.page.component.jsx b/client/src/pages/manage/manage.page.component.jsx index 5dbf95dc5..bcf0ca09b 100644 --- a/client/src/pages/manage/manage.page.component.jsx +++ b/client/src/pages/manage/manage.page.component.jsx @@ -142,7 +142,7 @@ export function Manage({ conflict, bodyshop, alerts, setAlerts }) { const fetchedAlerts = await response.json(); setAlerts(fetchedAlerts); } catch (error) { - console.error("Error fetching alerts:", error); + console.warn("Error fetching alerts:", error.message); } }; diff --git a/client/src/redux/user/user.sagas.js b/client/src/redux/user/user.sagas.js index 5e5259874..a8c0ffd0b 100644 --- a/client/src/redux/user/user.sagas.js +++ b/client/src/redux/user/user.sagas.js @@ -351,7 +351,7 @@ export function* SetAuthLevelFromShopDetails({ payload }) { ? window.$crisp.push(["set", "session:segments", [["allAccess"]]]) : window.$crisp.push(["set", "session:segments", [["basic"]]]); } catch (error) { - console.error("Couldnt find $crisp."); + console.warn("Couldnt find $crisp.", error.message); } } catch (error) { yield put(signInFailure(error.message)); diff --git a/client/src/utils/sentry.js b/client/src/utils/sentry.js new file mode 100644 index 000000000..f010be431 --- /dev/null +++ b/client/src/utils/sentry.js @@ -0,0 +1,60 @@ +import * as Sentry from "@sentry/react"; +import { useEffect } from "react"; +import { createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from "react-router-dom"; +import InstanceRenderManager from "./instanceRenderMgr"; + +//if (import.meta.env.PROD) { +Sentry.init({ + dsn: InstanceRenderManager({ + imex: "https://fd7e89369b6b4bdc9c6c4c9f22fa4ee4@o492140.ingest.sentry.io/5651027", + rome: "https://a6acc91c073e414196014b8484627a61@o492140.ingest.sentry.io/4504561071161344" + }), + + ignoreErrors: [ + "ResizeObserver loop", + "ResizeObserver loop limit exceeded", + "Module specifier, 'fs' does not start", + "Module specifier, 'zlib' does not start with", + "Messaging: This browser doesn't support the API's required to use the Firebase SDK.", + "Failed to update a ServiceWorker for scope" + ], + integrations: [ + // See docs for support of different versions of variation of react router + // https://docs.sentry.io/platforms/javascript/guides/react/configuration/integrations/react-router/ + Sentry.reactRouterV6BrowserTracingIntegration({ + useEffect, + useLocation, + useNavigationType, + createRoutesFromChildren, + matchRoutes + }), + Sentry.replayIntegration() + ], + // integrations: [ + // Sentry.reactRouterV6BrowserTracingIntegration({ + // useEffect, + // useLocation, + // useNavigationType, + // createRoutesFromChildren, + // matchRoutes + // }), + // Sentry.replayIntegration({ + // maskAllText: false, + // blockAllMedia: true + // }), + // Sentry.browserTracingIntegration() + // ], + tracePropagationTargets: [ + "api.imex.online", + "api.test.imex.online", + "db.imex.online", + "api.romeonline.io", + "api.test.romeonline.io", + "db.romeonline.io" + ], + tracesSampleRate: 1.0, + replaysOnErrorSampleRate: 1.0, + environment: import.meta.env.MODE, + //debug: import.meta.env.DEV +}); +//}