diff --git a/.env.example b/.env.example index be43d65..f4b3f85 100755 --- a/.env.example +++ b/.env.example @@ -16,3 +16,4 @@ VUE_APP_S3D_REGION=eu-west-2 VUE_APP_S3D_BUCKET= VUE_APP_S3D_ACL=private VUE_APP_S3D_CLOUDFRONT_ID= +VUE_APP_SENTRY_DSN=https://1c63eaa9b3d409ef64e300a6990ba1cb@o4508596540735488.ingest.de.sentry.io/4508596581630032 \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f9642c8..d8067ef 100755 --- a/package-lock.json +++ b/package-lock.json @@ -1005,6 +1005,167 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, + "@sentry-internal/browser-utils": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.48.0.tgz", + "integrity": "sha512-pLtu0Fa1Ou0v3M1OEO1MB1EONJVmXEGtoTwFRCO1RPQI2ulmkG6BikINClFG5IBpoYKZ33WkEXuM6U5xh+pdZg==", + "requires": { + "@sentry/core": "8.48.0" + } + }, + "@sentry-internal/feedback": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.48.0.tgz", + "integrity": "sha512-6PwcJNHVPg0EfZxmN+XxVOClfQpv7MBAweV8t9i5l7VFr8sM/7wPNSeU/cG7iK19Ug9ZEkBpzMOe3G4GXJ5bpw==", + "requires": { + "@sentry/core": "8.48.0" + } + }, + "@sentry-internal/replay": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.48.0.tgz", + "integrity": "sha512-csILVupc5RkrsTrncuUTGmlB56FQSFjXPYWG8I8yBTGlXEJ+o8oTuF6+55R4vbw3EIzBveXWi4kEBbnQlXW/eg==", + "requires": { + "@sentry-internal/browser-utils": "8.48.0", + "@sentry/core": "8.48.0" + } + }, + "@sentry-internal/replay-canvas": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.48.0.tgz", + "integrity": "sha512-LdivLfBXXB9us1aAc6XaL7/L2Ob4vi3C/fEOXElehg3qHjX6q6pewiv5wBvVXGX1NfZTRvu+X11k6TZoxKsezw==", + "requires": { + "@sentry-internal/replay": "8.48.0", + "@sentry/core": "8.48.0" + } + }, + "@sentry/browser": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.48.0.tgz", + "integrity": "sha512-fuuVULB5/1vI8NoIwXwR3xwhJJqk+y4RdSdajExGF7nnUDBpwUJyXsmYJnOkBO+oLeEs58xaCpotCKiPUNnE3g==", + "requires": { + "@sentry-internal/browser-utils": "8.48.0", + "@sentry-internal/feedback": "8.48.0", + "@sentry-internal/replay": "8.48.0", + "@sentry-internal/replay-canvas": "8.48.0", + "@sentry/core": "8.48.0" + } + }, + "@sentry/cli": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.40.0.tgz", + "integrity": "sha512-yo+ZfrrpVyu/2Q9r4XI84VeC6xTNzTharSJB2D0BNkreL+c16I1ykG1uc/GmmFnYVBq+HHAaYqXVfSUV14IdHw==", + "requires": { + "@sentry/cli-darwin": "2.40.0", + "@sentry/cli-linux-arm": "2.40.0", + "@sentry/cli-linux-arm64": "2.40.0", + "@sentry/cli-linux-i686": "2.40.0", + "@sentry/cli-linux-x64": "2.40.0", + "@sentry/cli-win32-i686": "2.40.0", + "@sentry/cli-win32-x64": "2.40.0", + "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" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "requires": { + "ms": "^2.1.3" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@sentry/cli-darwin": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.40.0.tgz", + "integrity": "sha512-GmPGvPU9tjM1Ps/pkUGQa7rImveo4delb2Dc5l8129i1MyD2ugJ5zjeNhIdBHkaObpuude9rUS7sHC4HTU2Wqw==", + "optional": true + }, + "@sentry/cli-linux-arm": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.40.0.tgz", + "integrity": "sha512-LUdwh3shYXZThkBvmKFUkQvmsCIQu76ZVqU7NXcEWHRF9gITijnSyHKCBPCbcGkb1SqQ92BW/1cJq84Dy0/DRw==", + "optional": true + }, + "@sentry/cli-linux-arm64": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.40.0.tgz", + "integrity": "sha512-b8gDORhkhP/g1CTYVKzBlbYlmC3BqkgEzAXP8ViFxX1NNS7dK9Hr84cVnDGxhSIfCP8TW1d5V3AGeHwQr5EwEg==", + "optional": true + }, + "@sentry/cli-linux-i686": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.40.0.tgz", + "integrity": "sha512-sZo3QykQRpMkrz0Eb07ViyK++C6Iir1j7Rpsj/97y5WDncR8TrpGTn6ceuuVRt4clA09/ZIvwuS7amfeKN6jQw==", + "optional": true + }, + "@sentry/cli-linux-x64": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.40.0.tgz", + "integrity": "sha512-ctpBFuyk2fP97FkxWTD9olI1BM1cy+rUIfnUqmrjXneTaUi3RFIFBB4koYhh1UT6OCWIRvChRIq40Rd9R3Pw8A==", + "optional": true + }, + "@sentry/cli-win32-i686": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.40.0.tgz", + "integrity": "sha512-4SYD40zJS7hVbFzAwXvXcVIoc7xsWa6L1RW1SQlt+Woh5MTPk7FMMSGft8021OSGTljiuqQzx4ecnXMO0K/gOw==", + "optional": true + }, + "@sentry/cli-win32-x64": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.40.0.tgz", + "integrity": "sha512-QEW2Ra4Wsr4y6AwcxOk2hL0zMlCK+adTSTaptTMmcm52el8XjdMwsNo7d/416HUYNcND0YZGih7D+KERepyQSw==", + "optional": true + }, + "@sentry/core": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.48.0.tgz", + "integrity": "sha512-VGwYgTfLpvJ5LRO5A+qWo1gpo6SfqaGXL9TOzVgBucAdpzbrYHpZ87sEarDVq/4275uk1b0S293/mfsskFczyw==" + }, + "@sentry/vue": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-8.48.0.tgz", + "integrity": "sha512-hqm9X7hz1vMQQB1HBYezrDBQihZk6e/MxWIG1wMJoClcBnD1Sh7y+D36UwaQlR4Gr/Ftiz+Bb0DxuAYHoUS4ow==", + "requires": { + "@sentry/browser": "8.48.0", + "@sentry/core": "8.48.0" + } + }, "@soda/friendly-errors-webpack-plugin": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz", @@ -12150,6 +12311,35 @@ } } }, + "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==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, "node-forge": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", @@ -14156,9 +14346,7 @@ "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "optional": true + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-inflight": { "version": "1.0.1", @@ -14353,6 +14541,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==" + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", diff --git a/package.json b/package.json index ec057c8..f91fe2f 100755 --- a/package.json +++ b/package.json @@ -5,15 +5,18 @@ "private": true, "scripts": { "serve": "vue-cli-service serve", - "build": "vue-cli-service build", + "build": "vue-cli-service build && npm run sentry:sourcemaps", "lint": "vue-cli-service lint", "lint:fix": "vue-cli-service lint --fix", "deploy": "vue-cli-service s3-deploy", "test:unit": "vue-cli-service test:unit", - "test:e2e": "vue-cli-service test:e2e" + "test:e2e": "vue-cli-service test:e2e", + "sentry:sourcemaps": "sentry-cli sourcemaps inject --org ayup-digital --project admin ./dist && sentry-cli sourcemaps upload --org ayup-digital --project admin ./dist" }, "dependencies": { "@duetds/date-picker": "^1.4.0", + "@sentry/cli": "^2.40.0", + "@sentry/vue": "^8.48.0", "axios": "^0.18.0", "bugsnag-js": "^4.7.3", "bugsnag-vue": "^1.0.1", @@ -44,4 +47,4 @@ "vue-cli-plugin-s3-deploy": "^3.0.0", "vue-template-compiler": "^2.5.17" } -} +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index 38c76c6..f4cec4a 100755 --- a/src/main.js +++ b/src/main.js @@ -32,24 +32,15 @@ import Vue from "vue"; import App from "@/App.vue"; import router from "@/router"; -// Bugsnag. -import bugsnag from "bugsnag-js"; -import bugsnagVue from "bugsnag-vue"; +// Sentry +import * as Sentry from "@sentry/vue"; -if (process.env.VUE_APP_BUGSNAG_API_KEY) { - const bugsnagClient = bugsnag({ - apiKey: process.env.VUE_APP_BUGSNAG_API_KEY, - releaseStage: process.env.VUE_APP_ENV, - notifyReleaseStages: ["staging", "production"], - beforeSend(report) { - const user = Auth.user; - delete user.roles; - - report.user = user; - } +if (process.env.VUE_APP_SENTRY_DSN) { + Sentry.init({ + Vue, + dsn: process.env.VUE_APP_SENTRY_DSN, + integrations: [new Sentry.Integrations.Vue({ Vue })] }); - - bugsnagClient.use(bugsnagVue(Vue)); } // Vue headful.