From 8af29abd924dc6b626cd05282db85820c421f8af Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Sat, 2 Nov 2024 17:06:30 +0000 Subject: [PATCH] fix: removing sentry --- .env.example | 3 +- .github/workflows/build.yml | 4 - .github/workflows/release.yml | 4 - .gitignore | 1 - electron.vite.config.ts | 11 +- package.json | 2 - sentry.properties | 5 + src/main/events/auth/get-session-hash.ts | 3 - src/main/events/auth/sign-out.ts | 4 - src/main/index.ts | 7 - src/main/services/ludusavi.ts | 1 + src/main/services/user/get-user-data.ts | 3 - src/main/vite-env.d.ts | 1 - src/main/workers/ludusavi.worker.ts | 11 +- .../src/components/badge/badge.css.ts | 13 - src/renderer/src/components/badge/badge.scss | 11 + src/renderer/src/components/badge/badge.tsx | 5 +- .../bottom-panel/bottom-panel.css.ts | 25 - .../components/bottom-panel/bottom-panel.scss | 24 + .../components/bottom-panel/bottom-panel.tsx | 6 +- src/renderer/src/main.tsx | 4 - .../cloud-sync-modal/cloud-sync-modal.tsx | 6 +- src/renderer/src/scss/globals.scss | 6 + yarn.lock | 1075 +---------------- 24 files changed, 72 insertions(+), 1163 deletions(-) create mode 100644 sentry.properties delete mode 100644 src/renderer/src/components/badge/badge.css.ts create mode 100644 src/renderer/src/components/badge/badge.scss delete mode 100644 src/renderer/src/components/bottom-panel/bottom-panel.css.ts create mode 100644 src/renderer/src/components/bottom-panel/bottom-panel.scss diff --git a/.env.example b/.env.example index 34502a20..089c63ea 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,4 @@ MAIN_VITE_API_URL=API_URL MAIN_VITE_AUTH_URL=AUTH_URL MAIN_VITE_STEAMGRIDDB_API_KEY=YOUR_API_KEY -MAIN_VITE_SENTRY_DSN=YOUR_SENTRY_DSN -SENTRY_AUTH_TOKEN= + diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 539d1f0c..507e8e06 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,8 +43,6 @@ jobs: MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_STAGING_API_URL }} MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_STAGING_AUTH_URL }} MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_STAGING_CHECKOUT_URL }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - MAIN_VITE_SENTRY_DSN: ${{ vars.MAIN_VITE_SENTRY_DSN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Build Windows @@ -54,8 +52,6 @@ jobs: MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_STAGING_API_URL }} MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_STAGING_AUTH_URL }} MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_STAGING_CHECKOUT_URL }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - MAIN_VITE_SENTRY_DSN: ${{ vars.MAIN_VITE_SENTRY_DSN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create artifact diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bc03a2db..754b4478 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,8 +45,6 @@ jobs: MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_API_URL }} MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_AUTH_URL }} MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_CHECKOUT_URL }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - MAIN_VITE_SENTRY_DSN: ${{ vars.MAIN_VITE_SENTRY_DSN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Build Windows @@ -56,8 +54,6 @@ jobs: MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_API_URL }} MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_AUTH_URL }} MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_CHECKOUT_URL }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - MAIN_VITE_SENTRY_DSN: ${{ vars.MAIN_VITE_SENTRY_DSN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create artifact diff --git a/.gitignore b/.gitignore index b9dcfecb..5645b3bc 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,4 @@ out *.log* .env .vite -sentry.properties ludusavi/ \ No newline at end of file diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 60e6252f..be37cc40 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -6,16 +6,9 @@ import { externalizeDepsPlugin, } from "electron-vite"; import react from "@vitejs/plugin-react"; -import { sentryVitePlugin } from "@sentry/vite-plugin"; import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin"; import svgr from "vite-plugin-svgr"; -const sentryPlugin = sentryVitePlugin({ - authToken: process.env.SENTRY_AUTH_TOKEN, - org: "hydra-launcher", - project: "hydra-launcher", -}); - export default defineConfig(({ mode }) => { loadEnv(mode); @@ -35,7 +28,7 @@ export default defineConfig(({ mode }) => { "@shared": resolve("src/shared"), }, }, - plugins: [externalizeDepsPlugin(), swcPlugin(), sentryPlugin], + plugins: [externalizeDepsPlugin(), swcPlugin()], }, preload: { plugins: [externalizeDepsPlugin()], @@ -51,7 +44,7 @@ export default defineConfig(({ mode }) => { "@shared": resolve("src/shared"), }, }, - plugins: [svgr(), react(), vanillaExtractPlugin(), sentryPlugin], + plugins: [svgr(), react(), vanillaExtractPlugin()], }, }; }); diff --git a/package.json b/package.json index d3be2a32..773e6df5 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "@hookform/resolvers": "^3.9.0", "@primer/octicons-react": "^19.9.0", "@reduxjs/toolkit": "^2.2.3", - "@sentry/electron": "^5.1.0", "@vanilla-extract/css": "^1.14.2", "@vanilla-extract/dynamic": "^2.1.1", "@vanilla-extract/recipes": "^0.5.2", @@ -83,7 +82,6 @@ "@electron-toolkit/eslint-config-prettier": "^2.0.0", "@electron-toolkit/eslint-config-ts": "^1.0.1", "@electron-toolkit/tsconfig": "^1.0.1", - "@sentry/vite-plugin": "^2.20.1", "@swc/core": "^1.4.16", "@types/auto-launch": "^5.0.5", "@types/color": "^3.0.6", diff --git a/sentry.properties b/sentry.properties new file mode 100644 index 00000000..75209a67 --- /dev/null +++ b/sentry.properties @@ -0,0 +1,5 @@ +defaults.url=https://sentry.io/ +defaults.org=hydra-launcher +defaults.project=hydra-launcher +auth.token=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 +cli.executable=node_modules\\@sentry\\cli\\bin\\sentry-cli diff --git a/src/main/events/auth/get-session-hash.ts b/src/main/events/auth/get-session-hash.ts index 8fe68165..2a17bcf1 100644 --- a/src/main/events/auth/get-session-hash.ts +++ b/src/main/events/auth/get-session-hash.ts @@ -1,5 +1,4 @@ import jwt from "jsonwebtoken"; -import * as Sentry from "@sentry/electron/main"; import { userAuthRepository } from "@main/repository"; import { registerEvent } from "../register-event"; @@ -10,8 +9,6 @@ const getSessionHash = async (_event: Electron.IpcMainInvokeEvent) => { if (!auth) return null; const payload = jwt.decode(auth.accessToken) as jwt.JwtPayload; - Sentry.setContext("sessionId", payload.sessionId); - return payload.sessionId; }; diff --git a/src/main/events/auth/sign-out.ts b/src/main/events/auth/sign-out.ts index ed399f6d..52fdf7a3 100644 --- a/src/main/events/auth/sign-out.ts +++ b/src/main/events/auth/sign-out.ts @@ -1,5 +1,4 @@ import { registerEvent } from "../register-event"; -import * as Sentry from "@sentry/electron/main"; import { DownloadManager, HydraApi, @@ -29,9 +28,6 @@ const signOut = async (_event: Electron.IpcMainInvokeEvent) => { gamesPlaytime.clear(); }); - /* Removes user from Sentry */ - Sentry.setUser(null); - /* Cancels any ongoing downloads */ DownloadManager.cancelDownload(); diff --git a/src/main/index.ts b/src/main/index.ts index 7f35c317..af11cd6b 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,5 +1,4 @@ import { app, BrowserWindow, net, protocol } from "electron"; -import { init } from "@sentry/electron/main"; import updater from "electron-updater"; import i18n from "i18next"; import path from "node:path"; @@ -26,12 +25,6 @@ autoUpdater.logger = logger; const gotTheLock = app.requestSingleInstanceLock(); if (!gotTheLock) app.quit(); -if (import.meta.env.MAIN_VITE_SENTRY_DSN) { - init({ - dsn: import.meta.env.MAIN_VITE_SENTRY_DSN, - }); -} - app.commandLine.appendSwitch("--no-sandbox"); i18n.init({ diff --git a/src/main/services/ludusavi.ts b/src/main/services/ludusavi.ts index 746c6a22..55b1d116 100644 --- a/src/main/services/ludusavi.ts +++ b/src/main/services/ludusavi.ts @@ -24,6 +24,7 @@ export class Ludusavi { workerData: { binaryPath: this.binaryPath, }, + maxThreads: 1, }); static async getConfig() { diff --git a/src/main/services/user/get-user-data.ts b/src/main/services/user/get-user-data.ts index c3ca6eb8..a283aecb 100644 --- a/src/main/services/user/get-user-data.ts +++ b/src/main/services/user/get-user-data.ts @@ -4,7 +4,6 @@ import { userAuthRepository, userSubscriptionRepository, } from "@main/repository"; -import * as Sentry from "@sentry/electron/main"; import { UserNotLoggedInError } from "@shared"; import { logger } from "../logger"; @@ -39,8 +38,6 @@ export const getUserData = () => { await userSubscriptionRepository.delete({ id: 1 }); } - Sentry.setUser({ id: me.id, username: me.username }); - return me; }) .catch(async (err) => { diff --git a/src/main/vite-env.d.ts b/src/main/vite-env.d.ts index 698bb7db..c070dcc7 100644 --- a/src/main/vite-env.d.ts +++ b/src/main/vite-env.d.ts @@ -4,7 +4,6 @@ interface ImportMetaEnv { readonly MAIN_VITE_STEAMGRIDDB_API_KEY: string; readonly MAIN_VITE_API_URL: string; readonly MAIN_VITE_AUTH_URL: string; - readonly MAIN_VITE_SENTRY_DSN: string; readonly MAIN_VITE_CHECKOUT_URL: string; } diff --git a/src/main/workers/ludusavi.worker.ts b/src/main/workers/ludusavi.worker.ts index f101b8c9..dbe16968 100644 --- a/src/main/workers/ludusavi.worker.ts +++ b/src/main/workers/ludusavi.worker.ts @@ -5,8 +5,6 @@ import { workerData } from "node:worker_threads"; const { binaryPath } = workerData; -let backupGameProcess: cp.ChildProcess | null = null; - export const backupGame = ({ title, backupPath, @@ -18,11 +16,6 @@ export const backupGame = ({ preview?: boolean; winePrefix?: string; }) => { - if (backupGameProcess && !backupGameProcess.killed) { - backupGameProcess.kill(); - backupGameProcess = null; - } - return new Promise((resolve, reject) => { const args = ["backup", title, "--api", "--force"]; @@ -30,16 +23,14 @@ export const backupGame = ({ if (backupPath) args.push("--path", backupPath); if (winePrefix) args.push("--wine-prefix", winePrefix); - backupGameProcess = cp.execFile( + cp.execFile( binaryPath, args, (err: cp.ExecFileException | null, stdout: string) => { if (err) { - backupGameProcess = null; return reject(err); } - backupGameProcess = null; return resolve(JSON.parse(stdout) as LudusaviBackup); } ); diff --git a/src/renderer/src/components/badge/badge.css.ts b/src/renderer/src/components/badge/badge.css.ts deleted file mode 100644 index 46cb7b87..00000000 --- a/src/renderer/src/components/badge/badge.css.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { style } from "@vanilla-extract/css"; - -import { SPACING_UNIT } from "../../theme.css"; - -export const badge = style({ - color: "#c0c1c7", - fontSize: "10px", - padding: `${SPACING_UNIT / 2}px ${SPACING_UNIT}px`, - border: "solid 1px #c0c1c7", - borderRadius: "4px", - display: "flex", - alignItems: "center", -}); diff --git a/src/renderer/src/components/badge/badge.scss b/src/renderer/src/components/badge/badge.scss new file mode 100644 index 00000000..f1ed89e9 --- /dev/null +++ b/src/renderer/src/components/badge/badge.scss @@ -0,0 +1,11 @@ +@use "../../scss/globals.scss"; + +.badge { + color: globals.$muted-color; + font-size: 10px; + padding: calc(globals.$spacing-unit / 2) globals.$spacing-unit; + border: solid 1px globals.$border-color; + border-radius: 4px; + display: flex; + align-items: center; +} diff --git a/src/renderer/src/components/badge/badge.tsx b/src/renderer/src/components/badge/badge.tsx index 0ff34782..752a33ba 100644 --- a/src/renderer/src/components/badge/badge.tsx +++ b/src/renderer/src/components/badge/badge.tsx @@ -1,5 +1,6 @@ import React from "react"; -import * as styles from "./badge.css"; + +import "./badge.scss"; export interface BadgeProps { children: React.ReactNode; @@ -7,7 +8,7 @@ export interface BadgeProps { export function Badge({ children }: BadgeProps) { return ( -
+
{children}
); diff --git a/src/renderer/src/components/bottom-panel/bottom-panel.css.ts b/src/renderer/src/components/bottom-panel/bottom-panel.css.ts deleted file mode 100644 index e70f3556..00000000 --- a/src/renderer/src/components/bottom-panel/bottom-panel.css.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { style } from "@vanilla-extract/css"; - -import { SPACING_UNIT, vars } from "../../theme.css"; - -export const bottomPanel = style({ - width: "100%", - borderTop: `solid 1px ${vars.color.border}`, - backgroundColor: vars.color.background, - padding: `${SPACING_UNIT / 2}px ${SPACING_UNIT * 2}px`, - display: "flex", - alignItems: "center", - transition: "all ease 0.2s", - justifyContent: "space-between", - position: "relative", - zIndex: vars.zIndex.bottomPanel, -}); - -export const downloadsButton = style({ - color: vars.color.body, - borderBottom: "1px solid transparent", - ":hover": { - borderBottom: `1px solid ${vars.color.body}`, - cursor: "pointer", - }, -}); diff --git a/src/renderer/src/components/bottom-panel/bottom-panel.scss b/src/renderer/src/components/bottom-panel/bottom-panel.scss new file mode 100644 index 00000000..35a1a0ee --- /dev/null +++ b/src/renderer/src/components/bottom-panel/bottom-panel.scss @@ -0,0 +1,24 @@ +@use "../../scss/globals.scss"; + +.bottom-panel { + width: "100%"; + border-top: solid 1px globals.$border-color; + background-color: globals.$background-color; + padding: calc(globals.$spacing-unit / 2) calc(globals.$spacing-unit * 2); + display: flex; + align-items: center; + transition: all ease 0.2s; + justify-content: space-between; + position: relative; + z-index: globals.$bottom-panel-z-index; + + &__downloads-button { + color: globals.$body-color; + border-bottom: solid 1px transparent; + + &:hover { + border-bottom: solid 1px globals.$body-color; + cursor: pointer; + } + } +} diff --git a/src/renderer/src/components/bottom-panel/bottom-panel.tsx b/src/renderer/src/components/bottom-panel/bottom-panel.tsx index 0d28a26e..bf8f71d5 100644 --- a/src/renderer/src/components/bottom-panel/bottom-panel.tsx +++ b/src/renderer/src/components/bottom-panel/bottom-panel.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next"; import { useDownload, useUserDetails } from "@renderer/hooks"; -import * as styles from "./bottom-panel.css"; +import "./bottom-panel.scss"; import { useNavigate } from "react-router-dom"; import { VERSION_CODENAME } from "@renderer/constants"; @@ -72,10 +72,10 @@ export function BottomPanel() { ]); return ( -