replace bugsnag with glitchtip

This commit is contained in:
Jon Staab
2024-10-25 16:44:06 -07:00
parent 20ad95db00
commit 9912191d6c
4 changed files with 123 additions and 129 deletions

2
.env
View File

@@ -5,4 +5,4 @@ VITE_PLATFORM_LOGO=static/flotilla.png
VITE_PLATFORM_RELAY=
VITE_PLATFORM_ACCENT="#7161FF"
VITE_PLATFORM_DESCRIPTION="Flotilla is nostr — for communities."
VITE_BUGSNAG_API_KEY=
VITE_SENTRY_DSN=

209
package-lock.json generated
View File

@@ -8,10 +8,10 @@
"name": "flotilla",
"version": "0.0.1",
"dependencies": {
"@bugsnag/js": "^8.1.2",
"@noble/curves": "^1.5.0",
"@noble/hashes": "^1.4.0",
"@poppanator/sveltekit-svg": "^4.2.1",
"@sentry/browser": "^8.35.0",
"@sveltejs/adapter-static": "^3.0.4",
"@tiptap/extension-code": "^2.6.6",
"@tiptap/extension-code-block": "^2.6.6",
@@ -1788,64 +1788,6 @@
"resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz",
"integrity": "sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg=="
},
"node_modules/@bugsnag/browser": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-8.1.2.tgz",
"integrity": "sha512-COP3OanbGCOS/K4g0rGwSYk2/RcIooG2PqxqdrF0MDY4u3Nz44iOaJg8w7WlOr8CckmDEiwSW2DVR+M7qZcoQw==",
"license": "MIT",
"dependencies": {
"@bugsnag/core": "^8.1.1"
}
},
"node_modules/@bugsnag/core": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-8.1.1.tgz",
"integrity": "sha512-ytOWqwm4H2h8rADqYPR+tQpDHsBav3NEZ5E2VSCCxPbT2R89Q0/t0PZTbQVlOS+TRutajO29VxTV9qsAREfpSw==",
"license": "MIT",
"dependencies": {
"@bugsnag/cuid": "^3.0.0",
"@bugsnag/safe-json-stringify": "^6.0.0",
"error-stack-parser": "^2.0.3",
"iserror": "^0.0.2",
"stack-generator": "^2.0.3"
}
},
"node_modules/@bugsnag/cuid": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.1.1.tgz",
"integrity": "sha512-d2z4b0rEo3chI07FNN1Xds8v25CNeekecU6FC/2Fs9MxY2EipkZTThVcV2YinMn8dvRUlViKOyC50evoUxg8tw==",
"license": "MIT"
},
"node_modules/@bugsnag/js": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-8.1.2.tgz",
"integrity": "sha512-vMl/TlMTpm0Xv4IKqYpmsjeVE4nPWAZL8uOxOi0JI6dgTaWE8+VQF6KuSpeKiA7Pr34uUxpWhSBrkZ3uSwCBdg==",
"license": "MIT",
"dependencies": {
"@bugsnag/browser": "^8.1.2",
"@bugsnag/node": "^8.1.1"
}
},
"node_modules/@bugsnag/node": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-8.1.1.tgz",
"integrity": "sha512-Ckdgj4tQto3CH4wWo12BAG0lQuS9s5SUpZvwmYF3meW5Qxq7D8XHZzrfGQo9nb1VTvmwOB+uyMt8En6Cy86Jcg==",
"license": "MIT",
"dependencies": {
"@bugsnag/core": "^8.1.1",
"byline": "^5.0.0",
"error-stack-parser": "^2.0.3",
"iserror": "^0.0.2",
"pump": "^3.0.0",
"stack-generator": "^2.0.3"
}
},
"node_modules/@bugsnag/safe-json-stringify": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz",
"integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==",
"license": "MIT"
},
"node_modules/@canvas/image-data": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@canvas/image-data/-/image-data-1.0.0.tgz",
@@ -2885,6 +2827,116 @@
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@sentry-internal/browser-utils": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.35.0.tgz",
"integrity": "sha512-uj9nwERm7HIS13f/Q52hF/NUS5Al8Ma6jkgpfYGeppYvU0uSjPkwMogtqoJQNbOoZg973tV8qUScbcWY616wNA==",
"license": "MIT",
"dependencies": {
"@sentry/core": "8.35.0",
"@sentry/types": "8.35.0",
"@sentry/utils": "8.35.0"
},
"engines": {
"node": ">=14.18"
}
},
"node_modules/@sentry-internal/feedback": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.35.0.tgz",
"integrity": "sha512-7bjSaUhL0bDArozre6EiIhhdWdT/1AWNWBC1Wc5w1IxEi5xF7nvF/FfvjQYrONQzZAI3HRxc45J2qhLUzHBmoQ==",
"license": "MIT",
"dependencies": {
"@sentry/core": "8.35.0",
"@sentry/types": "8.35.0",
"@sentry/utils": "8.35.0"
},
"engines": {
"node": ">=14.18"
}
},
"node_modules/@sentry-internal/replay": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.35.0.tgz",
"integrity": "sha512-3wkW03vXYMyWtTLxl9yrtkV+qxbnKFgfASdoGWhXzfLjycgT6o4/04eb3Gn71q9aXqRwH17ISVQbVswnRqMcmA==",
"license": "MIT",
"dependencies": {
"@sentry-internal/browser-utils": "8.35.0",
"@sentry/core": "8.35.0",
"@sentry/types": "8.35.0",
"@sentry/utils": "8.35.0"
},
"engines": {
"node": ">=14.18"
}
},
"node_modules/@sentry-internal/replay-canvas": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.35.0.tgz",
"integrity": "sha512-TUrH6Piv19kvHIiRyIuapLdnuwxk/Un/l1WDCQfq7mK9p1Pac0FkQ7Uufjp6zY3lyhDDZQ8qvCS4ioCMibCwQg==",
"license": "MIT",
"dependencies": {
"@sentry-internal/replay": "8.35.0",
"@sentry/core": "8.35.0",
"@sentry/types": "8.35.0",
"@sentry/utils": "8.35.0"
},
"engines": {
"node": ">=14.18"
}
},
"node_modules/@sentry/browser": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.35.0.tgz",
"integrity": "sha512-WHfI+NoZzpCsmIvtr6ChOe7yWPLQyMchPnVhY3Z4UeC70bkYNdKcoj/4XZbX3m0D8+71JAsm0mJ9s9OC3Ue6MQ==",
"license": "MIT",
"dependencies": {
"@sentry-internal/browser-utils": "8.35.0",
"@sentry-internal/feedback": "8.35.0",
"@sentry-internal/replay": "8.35.0",
"@sentry-internal/replay-canvas": "8.35.0",
"@sentry/core": "8.35.0",
"@sentry/types": "8.35.0",
"@sentry/utils": "8.35.0"
},
"engines": {
"node": ">=14.18"
}
},
"node_modules/@sentry/core": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.35.0.tgz",
"integrity": "sha512-Ci0Nmtw5ETWLqQJGY4dyF+iWh7PWKy6k303fCEoEmqj2czDrKJCp7yHBNV0XYbo00prj2ZTbCr6I7albYiyONA==",
"license": "MIT",
"dependencies": {
"@sentry/types": "8.35.0",
"@sentry/utils": "8.35.0"
},
"engines": {
"node": ">=14.18"
}
},
"node_modules/@sentry/types": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.35.0.tgz",
"integrity": "sha512-AVEZjb16MlYPifiDDvJ19dPQyDn0jlrtC1PHs6ZKO+Rzyz+2EX2BRdszvanqArldexPoU1p5Bn2w81XZNXThBA==",
"license": "MIT",
"engines": {
"node": ">=14.18"
}
},
"node_modules/@sentry/utils": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.35.0.tgz",
"integrity": "sha512-MdMb6+uXjqND7qIPWhulubpSeHzia6HtxeJa8jYI09OCvIcmNGPydv/Gx/LZBwosfMHrLdTWcFH7Y7aCxrq7cg==",
"license": "MIT",
"dependencies": {
"@sentry/types": "8.35.0"
},
"engines": {
"node": ">=14.18"
}
},
"node_modules/@surma/rollup-plugin-off-main-thread": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
@@ -4154,15 +4206,6 @@
"license": "MIT",
"peer": true
},
"node_modules/byline": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
"integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/cac": {
"version": "6.7.14",
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
@@ -4927,15 +4970,6 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/error-stack-parser": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
"integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
"license": "MIT",
"dependencies": {
"stackframe": "^1.3.4"
}
},
"node_modules/es-abstract": {
"version": "1.23.3",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
@@ -6364,12 +6398,6 @@
"license": "MIT",
"peer": true
},
"node_modules/iserror": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz",
"integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==",
"license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -8530,21 +8558,6 @@
"license": "MIT",
"peer": true
},
"node_modules/stack-generator": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz",
"integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==",
"license": "MIT",
"dependencies": {
"stackframe": "^1.3.4"
}
},
"node_modules/stackframe": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
"integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
"license": "MIT"
},
"node_modules/streamx": {
"version": "2.20.1",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz",

View File

@@ -32,10 +32,10 @@
},
"type": "module",
"dependencies": {
"@bugsnag/js": "^8.1.2",
"@noble/curves": "^1.5.0",
"@noble/hashes": "^1.4.0",
"@poppanator/sveltekit-svg": "^4.2.1",
"@sentry/browser": "^8.35.0",
"@sveltejs/adapter-static": "^3.0.4",
"@tiptap/extension-code": "^2.6.6",
"@tiptap/extension-code-block": "^2.6.6",

View File

@@ -1,32 +1,13 @@
import Bugsnag from "@bugsnag/js"
import * as Sentry from "@sentry/browser"
export const setupTracking = () => {
if (!import.meta.env.VITE_BUGSNAG_API_KEY) return
// Initialize
Bugsnag.start({
apiKey: import.meta.env.VITE_BUGSNAG_API_KEY,
collectUserIp: false,
})
// Redact long strings, especially hex and bech32 keys which are 64 and 63
// characters long, respectively. Put the threshold a little lower in case
// someone accidentally enters a key with the last few digits missing
const redactErrorInfo = (info: any) =>
JSON.parse(
JSON.stringify(info || null)
.replace(/\d+:{60}\w+:\w+/g, "[REDACTED]")
.replace(/\w{60}\w+/g, "[REDACTED]"),
)
Bugsnag.addOnError((event: any) => {
// Redact individual properties since the event needs to be
// mutated, and we don't want to lose the prototype
event.context = redactErrorInfo(event.context)
event.request = redactErrorInfo(event.request)
event.exceptions = redactErrorInfo(event.exceptions)
event.breadcrumbs = redactErrorInfo(event.breadcrumbs)
return true
})
if (import.meta.env.VITE_SENTRY_DSN) {
Sentry.init({
dsn: import.meta.env.VITE_SENTRY_DSN,
tracesSampleRate: 0.01,
integrations(integrations) {
return integrations.filter(integration => integration.name !== 'Breadcrumbs')
},
})
}
}