#232 initialize sentry (#238)

* #232 initialize sentry

* gha: update get platform job

---------

Co-authored-by: neil <neil@neils-MacBook-Pro.local>
This commit is contained in:
Neil 2023-02-27 14:46:26 +08:00 committed by GitHub
parent 788b647c5c
commit c2578dc453
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 239 additions and 42 deletions

View file

@ -24,21 +24,10 @@ jobs:
os: ${{ steps.platform.outputs.os }}
cache-set: ${{ steps.platform.outputs.cache-set }}
steps:
- uses: actions/checkout@v3
with:
repository: teaxyz/pantry.core
- uses: actions/cache@v3
with:
path: |
~/.deno
~/.cache/deno
key: ${{ runner.os }}-deno-get-platform-${{ hashFiles('deno.jsonc')}}
- uses: teaxyz/setup@v0
- run: scripts/get-platform.ts
- uses: teaxyz/pantry.core/.github/actions/get-platform@main
id: platform
env:
PLATFORM: ${{ inputs.platform }}
with:
platform: ${{ inputs.platform }}
build:
needs: [get-platform]
runs-on: ${{ fromJson(needs.get-platform.outputs.os) }}

View file

@ -1,5 +1,6 @@
import windowStateManager from "electron-window-state";
import { app, BrowserWindow, ipcMain } from "electron";
import { app, BrowserWindow, ipcMain, net } from "electron";
import * as Sentry from "@sentry/electron";
import contextMenu from "electron-context-menu";
import serve from "electron-serve";
@ -9,9 +10,23 @@ import type { Session } from "../src/libs/types";
import { installPackage, openTerminal } from "./libs/cli";
import { autoUpdater } from "electron-updater";
import * as log from "electron-log";
import path from "path";
autoUpdater.logger = log;
log.info("App starting...");
Sentry.init({
dsn: "https://5ff29bb5b3b64cd4bd4f4960ef1db2e3@o4504750197899264.ingest.sentry.io/4504750206746624",
debug: true,
transportOptions: {
maxQueueAgeDays: 30,
maxQueueCount: 30,
beforeSend: async () => {
const ol = await net.isOnline();
log.log("isOnline", ol);
return ol ? "send" : "queue";
}
}
});
const serveURL = serve({ directory: "." });
const port = process.env.PORT || 3000;
@ -39,8 +54,8 @@ function createWindow() {
nodeIntegration: true,
spellcheck: false,
webSecurity: false,
devTools: allowDebug
// preload: path.join(app.getAppPath(), 'preload.cjs')
devTools: allowDebug,
preload: path.join(app.getAppPath(), "preload.cjs")
},
x: windowState.x,
y: windowState.y,
@ -49,7 +64,7 @@ function createWindow() {
});
windowState.manage(mainWindow);
mainWindow.webContents.openDevTools();
mainWindow.once("ready-to-show", () => {
mainWindow.show();
mainWindow.focus();
@ -78,14 +93,12 @@ autoUpdater.on("update-not-available", (info) => {
autoUpdater.on("error", (err) => {
sendStatusToWindow("Error in auto-updater. " + err);
});
autoUpdater.on("download-progress", (progressObj) => {
let log_message = "Download speed: " + progressObj.bytesPerSecond;
log_message = log_message + " - Downloaded " + progressObj.percent + "%";
log_message = log_message + " (" + progressObj.transferred + "/" + progressObj.total + ")";
sendStatusToWindow(log_message);
});
autoUpdater.on("update-downloaded", (info) => {
sendStatusToWindow("Update downloaded");
});
@ -127,8 +140,9 @@ app.on("activate", () => {
createMainWindow();
}
});
app.on("window-all-closed", () => {
if (process.platform !== "darwin") app.quit();
app.on("window-all-closed", async () => {
await autoUpdater.quitAndInstall();
app.quit();
});
ipcMain.handle("get-installed-packages", async () => {

View file

@ -1,13 +1,23 @@
const { contextBridge, ipcRenderer } = require("electron");
// const { contextBridge, ipcRenderer } = require("electron");
const { init } = require("@sentry/electron/renderer");
const SvelteSentry = require("@sentry/svelte");
contextBridge.exposeInMainWorld("electron", {
send: (channel, data) => {
ipcRenderer.send(channel, data);
// contextBridge.exposeInMainWorld("electron", {
// send: (channel, data) => {
// ipcRenderer.send(channel, data);
// },
// sendSync: (channel, data) => {
// ipcRenderer.sendSync(channel, data);
// },
// receive: (channel, func) => {
// ipcRenderer.on(channel, (event, ...args) => func(...args));
// }
// });
init(
{
dsn: "https://5ff29bb5b3b64cd4bd4f4960ef1db2e3@o4504750197899264.ingest.sentry.io/4504750206746624",
debug: true
},
sendSync: (channel, data) => {
ipcRenderer.sendSync(channel, data);
},
receive: (channel, func) => {
ipcRenderer.on(channel, (event, ...args) => func(...args));
}
});
SvelteSentry.init
);

View file

@ -1,4 +1,5 @@
import { join } from "path";
import { viteStaticCopy } from "vite-plugin-static-copy";
const PACKAGE_ROOT = __dirname;
const PROJECT_ROOT = join(PACKAGE_ROOT, "../..");
@ -32,7 +33,17 @@ const config = {
},
emptyOutDir: true,
reportCompressedSize: false
}
},
plugins: [
viteStaticCopy({
targets: [
{
src: "./preload.cjs",
dest: "."
}
]
})
]
};
export default config;

View file

@ -40,10 +40,10 @@
"@tea/ui": "workspace:*",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/svelte": "^3.2.2",
"@types/testing-library__jest-dom": "^5.14.5",
"@types/bcryptjs": "^2.4.2",
"@types/js-yaml": "^4.0.5",
"@types/mixpanel-browser": "^2.38.1",
"@types/testing-library__jest-dom": "^5.14.5",
"@typescript-eslint/eslint-plugin": "^5.27.0",
"@typescript-eslint/parser": "^5.27.0",
"autoprefixer": "^10.4.13",
@ -73,6 +73,8 @@
"type": "module",
"dependencies": {
"@electron/asar": "^3.2.3",
"@sentry/electron": "^4.3.0",
"@sentry/svelte": "^7.38.0",
"@vitest/coverage-c8": "^0.27.1",
"axios": "^1.3.2",
"bcryptjs": "^2.4.3",
@ -95,6 +97,7 @@
"svelte-watch-resize": "^1.0.3",
"sveltekit-i18n": "^2.2.2",
"upath": "^2.0.1",
"vite-plugin-static-copy": "^0.13.1",
"yaml": "^2.2.1"
},
"pnpm": {

View file

@ -14,6 +14,8 @@ importers:
'@electron/notarize': ^1.2.3
'@playwright/experimental-ct-svelte': ^1.29.2
'@playwright/test': 1.25.0
'@sentry/electron': ^4.3.0
'@sentry/svelte': ^7.38.0
'@sveltejs/adapter-auto': ^1.0.0
'@sveltejs/adapter-node': ^1.0.0-next.101
'@sveltejs/adapter-static': ^1.0.0-next.48
@ -71,10 +73,13 @@ importers:
typescript: ^4.7.4
upath: ^2.0.1
vite: ^4.1.1
vite-plugin-static-copy: ^0.13.1
vitest: ^0.28.3
yaml: ^2.2.1
dependencies:
'@electron/asar': 3.2.3
'@sentry/electron': 4.3.0
'@sentry/svelte': 7.38.0_svelte@3.55.1
'@vitest/coverage-c8': 0.27.1_jsdom@21.0.0
axios: 1.3.2
bcryptjs: 2.4.3
@ -97,6 +102,7 @@ importers:
svelte-watch-resize: 1.0.3
sveltekit-i18n: 2.2.2_svelte@3.55.1
upath: 2.0.1
vite-plugin-static-copy: 0.13.1_vite@4.1.1
yaml: 2.2.1
devDependencies:
'@electron/notarize': 1.2.3
@ -2401,6 +2407,133 @@ packages:
rollup: 3.7.5
dev: true
/@sentry/browser/7.37.1:
resolution: {integrity: sha512-MfVbKzEVHKVH6ZyMCKLtPXvMtRCvxqQzrnK735sYW6EyMpcMYhukBU0pq7ws1E/KaCZjAJi1wDx2nqf2yPIVdQ==}
engines: {node: '>=8'}
dependencies:
'@sentry/core': 7.37.1
'@sentry/replay': 7.37.1
'@sentry/types': 7.37.1
'@sentry/utils': 7.37.1
tslib: 1.14.1
dev: false
/@sentry/browser/7.38.0:
resolution: {integrity: sha512-rPJr+2jRYL29PeMYA2JgzYKTZQx6bc3T9evbAdIh0n+popSjpVyOpOMV/3l6A7KZeeix3dpp6eUZUxTJukqriQ==}
engines: {node: '>=8'}
dependencies:
'@sentry/core': 7.38.0
'@sentry/replay': 7.38.0
'@sentry/types': 7.38.0
'@sentry/utils': 7.38.0
tslib: 1.14.1
dev: false
/@sentry/core/7.37.1:
resolution: {integrity: sha512-eS5hoFDjAOl7POZg6K77J0oiypiqR1782oVSB49UkjK+D8tCZzZ5PxPMv0b/O0310p7x4oZ3WGRJaWEN3vY4KQ==}
engines: {node: '>=8'}
dependencies:
'@sentry/types': 7.37.1
'@sentry/utils': 7.37.1
tslib: 1.14.1
dev: false
/@sentry/core/7.38.0:
resolution: {integrity: sha512-+hXh/SO3Ie6WC2b+wi01xLhyVREdkRXS5QBmCiv3z2ks2HvYXp7PoKSXJvNKiwCP+pBD+enOnM1YEzM2yEy5yw==}
engines: {node: '>=8'}
dependencies:
'@sentry/types': 7.38.0
'@sentry/utils': 7.38.0
tslib: 1.14.1
dev: false
/@sentry/electron/4.3.0:
resolution: {integrity: sha512-LqFMvgycMd+Mcs4Km9S8YBtaHISHSiIUVUz6mgAr2khKY6SNhkW9A4GcoOKtzRJreqYLVeBSbaUVttQfQ4Ot7g==}
dependencies:
'@sentry/browser': 7.37.1
'@sentry/core': 7.37.1
'@sentry/node': 7.37.1
'@sentry/types': 7.37.1
'@sentry/utils': 7.37.1
deepmerge: 4.3.0
tslib: 2.5.0
transitivePeerDependencies:
- supports-color
dev: false
/@sentry/node/7.37.1:
resolution: {integrity: sha512-nGerngIo5JwinJgl7m0SaL/xI+YRBlhb53gbkuLSAAcnoitBFzbp7LjywsqYFTWuWDIyk7O2t124GNxtolBAgA==}
engines: {node: '>=8'}
dependencies:
'@sentry/core': 7.37.1
'@sentry/types': 7.37.1
'@sentry/utils': 7.37.1
cookie: 0.4.2
https-proxy-agent: 5.0.1
lru_map: 0.3.3
tslib: 1.14.1
transitivePeerDependencies:
- supports-color
dev: false
/@sentry/replay/7.37.1:
resolution: {integrity: sha512-3sHOE/oPirdvJbOn0IA/wpds12Sm2WaEtiAeC0+5Gg5mxQzFBLRrsA1Mz/ifzPGwr+ETn3sCyPCnd9b3PWaWMQ==}
engines: {node: '>=12'}
dependencies:
'@sentry/core': 7.37.1
'@sentry/types': 7.37.1
'@sentry/utils': 7.37.1
dev: false
/@sentry/replay/7.38.0:
resolution: {integrity: sha512-Ai78/OIYedny605x8uS0n/a5uj7qnuevogGD6agLat9lGc8DFvC07m2iS+EFyGOwtQzyDlRYJvYkHL8peR3crQ==}
engines: {node: '>=12'}
dependencies:
'@sentry/core': 7.38.0
'@sentry/types': 7.38.0
'@sentry/utils': 7.38.0
dev: false
/@sentry/svelte/7.38.0_svelte@3.55.1:
resolution: {integrity: sha512-9+4t7keeu0S22GMEZ0edscHgj46DRFqIfHTLpgNMModOb+H1F3M083OvcLIKVjZDY9saGBDbYdjolrcv0H507g==}
engines: {node: '>=8'}
peerDependencies:
svelte: 3.x
dependencies:
'@sentry/browser': 7.38.0
'@sentry/types': 7.38.0
'@sentry/utils': 7.38.0
magic-string: 0.26.7
svelte: 3.55.1
tslib: 1.14.1
dev: false
/@sentry/types/7.37.1:
resolution: {integrity: sha512-c2HWyWSgVA0V4+DSW2qVb0yjftrb1X/q2CzCom+ayjGHO72qyWC+9Tc+7ZfotU1mapRjqUWBgkXkbGmao8N8Ug==}
engines: {node: '>=8'}
dev: false
/@sentry/types/7.38.0:
resolution: {integrity: sha512-NKOALR6pNUMzUrsk2m+dkPrO8uGNvNh1LD0BCPswKNjC2qHo1h1mDGCgBmF9+EWyii8ZoACTIsxvsda+MBf97Q==}
engines: {node: '>=8'}
dev: false
/@sentry/utils/7.37.1:
resolution: {integrity: sha512-/4mJOyDsfysx+5TXyJgSI+Ihw2/0EVJbrHjCyXPDXW5ADwbtU8VdBZ0unOmF0hk4QfftqwM9cyEu3BN4iBJsEA==}
engines: {node: '>=8'}
dependencies:
'@sentry/types': 7.37.1
tslib: 1.14.1
dev: false
/@sentry/utils/7.38.0:
resolution: {integrity: sha512-MgbI3YmYuyyhUtvcXkgGBqjOW+nuLLNGUdWCK+C4kObf8VbLt3dSE/7SEMT6TSHLYQmxs2BxFgx5Agn97m68kQ==}
engines: {node: '>=8'}
dependencies:
'@sentry/types': 7.38.0
tslib: 1.14.1
dev: false
/@sinclair/typebox/0.24.51:
resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
dev: true
@ -3799,7 +3932,7 @@ packages:
peerDependencies:
'@sveltejs/kit': ^1.0.0
dependencies:
'@sveltejs/kit': 1.0.1_svelte@3.55.0+vite@4.1.1
'@sveltejs/kit': 1.0.1_svelte@3.55.1+vite@4.1.1
import-meta-resolve: 2.2.0
dev: true
@ -5761,6 +5894,11 @@ packages:
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
dev: true
/cookie/0.4.2:
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
engines: {node: '>= 0.6'}
dev: false
/cookie/0.5.0:
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
engines: {node: '>= 0.6'}
@ -5956,6 +6094,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
/deepmerge/4.3.0:
resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
engines: {node: '>=0.10.0'}
dev: false
/default-browser-id/3.0.0:
resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==}
engines: {node: '>=12'}
@ -7662,6 +7805,15 @@ packages:
jsonfile: 6.1.0
universalify: 2.0.0
/fs-extra/11.1.0:
resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==}
engines: {node: '>=14.14'}
dependencies:
graceful-fs: 4.2.10
jsonfile: 6.1.0
universalify: 2.0.0
dev: false
/fs-extra/8.1.0:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
@ -9110,7 +9262,7 @@ packages:
/lower-case/2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
dependencies:
tslib: 2.4.1
tslib: 2.5.0
dev: true
/lowercase-keys/2.0.0:
@ -9135,6 +9287,10 @@ packages:
dependencies:
yallist: 4.0.0
/lru_map/0.3.3:
resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==}
dev: false
/lz-string/1.4.4:
resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==}
hasBin: true
@ -9151,7 +9307,6 @@ packages:
engines: {node: '>=12'}
dependencies:
sourcemap-codec: 1.4.8
dev: true
/magic-string/0.27.0:
resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
@ -9861,7 +10016,7 @@ packages:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
dependencies:
lower-case: 2.0.2
tslib: 2.4.1
tslib: 2.5.0
dev: true
/node-addon-api/1.7.2:
@ -11026,7 +11181,7 @@ packages:
/rxjs/7.8.0:
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
dependencies:
tslib: 2.4.1
tslib: 2.5.0
/sade/1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
@ -11395,7 +11550,6 @@ packages:
/sourcemap-codec/1.4.8:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
deprecated: Please use @jridgewell/sourcemap-codec instead
dev: true
/space-separated-tokens/1.1.5:
resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
@ -12145,10 +12299,13 @@ packages:
/tslib/1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
/tslib/2.4.1:
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
dev: true
/tslib/2.5.0:
resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
/tsutils/3.21.0_typescript@4.9.3:
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
@ -12631,6 +12788,19 @@ packages:
- terser
dev: true
/vite-plugin-static-copy/0.13.1_vite@4.1.1:
resolution: {integrity: sha512-KwIcGBT1aOxSq+laK3VmSngoEa3HXWj/6ZEXdv+y59eZ7p/XSuPahoDo+CfYW22JjTdnstgeKWiX+78KNgDu6g==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^3.0.0 || ^4.0.0
dependencies:
chokidar: 3.5.3
fast-glob: 3.2.12
fs-extra: 11.1.0
picocolors: 1.0.0
vite: 4.1.1
dev: false
/vite/3.2.4:
resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==}
engines: {node: ^14.18.0 || >=16.0.0}