diff --git a/package-lock.json b/package-lock.json index 75e7db19..0496127f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -268,6 +268,96 @@ "integrity": "sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw==", "dev": true }, + "@sentry/browser": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.13.2.tgz", + "integrity": "sha512-bkFXK4vAp2UX/4rQY0pj2Iky55Gnwr79CtveoeeMshoLy5iDgZ8gvnLNAz7om4B9OQk1u7NzLEa4IXAmHTUyag==", + "dev": true, + "requires": { + "@sentry/core": "6.13.2", + "@sentry/types": "6.13.2", + "@sentry/utils": "6.13.2", + "tslib": "^1.9.3" + } + }, + "@sentry/core": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.13.2.tgz", + "integrity": "sha512-snXNNFLwlS7yYxKTX4DBXebvJK+6ikBWN6noQ1CHowvM3ReFBlrdrs0Z0SsSFEzXm2S4q7f6HHbm66GSQZ/8FQ==", + "dev": true, + "requires": { + "@sentry/hub": "6.13.2", + "@sentry/minimal": "6.13.2", + "@sentry/types": "6.13.2", + "@sentry/utils": "6.13.2", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.13.2.tgz", + "integrity": "sha512-sppSuJdNMiMC/vFm/dQowCBh11uTrmvks00fc190YWgxHshodJwXMdpc+pN61VSOmy2QA4MbQ5aMAgHzPzel3A==", + "dev": true, + "requires": { + "@sentry/types": "6.13.2", + "@sentry/utils": "6.13.2", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.13.2.tgz", + "integrity": "sha512-6iJfEvHzzpGBHDfLxSHcGObh73XU1OSQKWjuhDOe7UQDyI4BQmTfcXAC+Fr8sm8C/tIsmpVi/XJhs8cubFdSMw==", + "dev": true, + "requires": { + "@sentry/hub": "6.13.2", + "@sentry/types": "6.13.2", + "tslib": "^1.9.3" + } + }, + "@sentry/react": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.13.2.tgz", + "integrity": "sha512-aLkWyn697LTcmK1PPnUg5UJcyBUPoI68motqgBY53SIYDAwOeYNUQt2aanDuOTY5aE2PdnJwU48klA8vuYkoRQ==", + "dev": true, + "requires": { + "@sentry/browser": "6.13.2", + "@sentry/minimal": "6.13.2", + "@sentry/types": "6.13.2", + "@sentry/utils": "6.13.2", + "hoist-non-react-statics": "^3.3.2", + "tslib": "^1.9.3" + } + }, + "@sentry/tracing": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.13.2.tgz", + "integrity": "sha512-bHJz+C/nd6biWTNcYAu91JeRilsvVgaye4POkdzWSmD0XoLWHVMrpCQobGpXe7onkp2noU3YQjhqgtBqPHtnpw==", + "dev": true, + "requires": { + "@sentry/hub": "6.13.2", + "@sentry/minimal": "6.13.2", + "@sentry/types": "6.13.2", + "@sentry/utils": "6.13.2", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.13.2.tgz", + "integrity": "sha512-6WjGj/VjjN8LZDtqJH5ikeB1o39rO1gYS6anBxiS3d0sXNBb3Ux0pNNDFoBxQpOhmdDHXYS57MEptX9EV82gmg==", + "dev": true + }, + "@sentry/utils": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.13.2.tgz", + "integrity": "sha512-foF4PbxqPMWNbuqdXkdoOmKm3quu3PP7Q7j/0pXkri4DtCuvF/lKY92mbY0V9rHS/phCoj+3/Se5JvM2ymh2/w==", + "dev": true, + "requires": { + "@sentry/types": "6.13.2", + "tslib": "^1.9.3" + } + }, "@tailwindcss/forms": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.3.3.tgz", @@ -2873,6 +2963,15 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", diff --git a/package.json b/package.json index b908bd39..dbda4d0a 100644 --- a/package.json +++ b/package.json @@ -644,6 +644,8 @@ "@headlessui/react": "^1.4.1", "@heroicons/react": "1.0.4", "@iarna/toml": "2.2.3", + "@sentry/react": "^6.13.2", + "@sentry/tracing": "^6.13.2", "@tailwindcss/forms": "^0.3.3", "@types/glob": "7.1.3", "@types/js-yaml": "3.12.1", diff --git a/src/commands/Dashboard.ts b/src/commands/Dashboard.ts index 6fed88d6..16e551f0 100644 --- a/src/commands/Dashboard.ts +++ b/src/commands/Dashboard.ts @@ -537,7 +537,7 @@ export class Dashboard { - + Front Matter Dashboard diff --git a/src/constants/Links.ts b/src/constants/Links.ts index 45975296..f6323a21 100644 --- a/src/constants/Links.ts +++ b/src/constants/Links.ts @@ -1,4 +1,6 @@ export const GITHUB_LINK = "https://github.com/estruyf/vscode-front-matter"; export const ISSUE_LINK = "https://github.com/estruyf/vscode-front-matter/issues"; export const SPONSOR_LINK = "https://github.com/sponsors/estruyf"; -export const REVIEW_LINK = "https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-front-matter&ssr=false#review-details"; \ No newline at end of file +export const REVIEW_LINK = "https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-front-matter&ssr=false#review-details"; + +export const SENTRY_LINK = "https://1ac45704bbe74264a7b4674bdc2abf48@o1022172.ingest.sentry.io/5988293"; \ No newline at end of file diff --git a/src/dashboardWebView/index.tsx b/src/dashboardWebView/index.tsx index d76aba26..483f41b3 100644 --- a/src/dashboardWebView/index.tsx +++ b/src/dashboardWebView/index.tsx @@ -2,8 +2,17 @@ import * as React from "react"; import { render } from "react-dom"; import { RecoilRoot } from "recoil"; import { Dashboard } from "./components/Dashboard"; +import * as Sentry from "@sentry/react"; +import { Integrations } from "@sentry/tracing"; import './styles.css'; +import { SENTRY_LINK } from "../constants"; + +Sentry.init({ + dsn: SENTRY_LINK, + integrations: [new Integrations.BrowserTracing()], + tracesSampleRate: 0, // No performance tracing required +}); declare const acquireVsCodeApi: () => { getState: () => T; diff --git a/src/explorerView/ExplorerView.ts b/src/explorerView/ExplorerView.ts index 3f2a4ab3..7fc485b6 100644 --- a/src/explorerView/ExplorerView.ts +++ b/src/explorerView/ExplorerView.ts @@ -617,7 +617,7 @@ export class ExplorerView implements WebviewViewProvider, Disposable { - + diff --git a/src/panelWebView/index.tsx b/src/panelWebView/index.tsx index 2a6983ca..f205dc1d 100644 --- a/src/panelWebView/index.tsx +++ b/src/panelWebView/index.tsx @@ -1,6 +1,14 @@ import * as React from "react"; import { render } from "react-dom"; import { ViewPanel } from "./ViewPanel"; +import * as Sentry from "@sentry/react"; +import { Integrations } from "@sentry/tracing"; + +Sentry.init({ + dsn: SENTRY_LINK, + integrations: [new Integrations.BrowserTracing()], + tracesSampleRate: 0, // No performance tracing required +}); // require('@vscode/codicons/dist/codicon.css'); import '@bendera/vscode-webview-elements/dist/vscode-table'; @@ -12,6 +20,7 @@ import '@bendera/vscode-webview-elements/dist/vscode-table-cell'; import '@bendera/vscode-webview-elements/dist/vscode-collapsible'; import '@bendera/vscode-webview-elements/dist/vscode-checkbox'; import '@bendera/vscode-webview-elements/dist/vscode-label'; +import { SENTRY_LINK } from "../constants"; declare const acquireVsCodeApi: () => { getState: () => T;