From c2847e2082b05f78f66f8329f5a19b5ed537e18e Mon Sep 17 00:00:00 2001 From: Brooooooklyn Date: Thu, 28 Mar 2024 10:24:25 +0000 Subject: [PATCH] chore(core): split sentry and setup into web/electron (#6357) --- .github/workflows/build-test.yml | 4 +- .github/workflows/release-desktop.yml | 8 + packages/frontend/core/package.json | 5 +- .../frontend/core/src/bootstrap/preload.ts | 7 + packages/frontend/core/src/bootstrap/setup.ts | 78 ---- packages/frontend/electron/package.json | 3 + packages/frontend/electron/renderer/index.tsx | 74 +++- packages/frontend/electron/scripts/common.ts | 22 + packages/frontend/electron/src/main/index.ts | 15 + .../frontend/electron/src/main/ui/handlers.ts | 5 + .../frontend/electron/src/preload/index.ts | 1 + packages/frontend/web/package.json | 1 + packages/frontend/web/src/index.tsx | 38 +- .../affine-desktop-cloud/playwright.config.ts | 2 + tests/storybook/.storybook/preview.tsx | 3 +- tools/cli/src/bin/dev.ts | 5 +- yarn.lock | 390 +++++++++++++----- 17 files changed, 463 insertions(+), 198 deletions(-) create mode 100644 packages/frontend/core/src/bootstrap/preload.ts delete mode 100644 packages/frontend/core/src/bootstrap/setup.ts diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index ca42ded39b..ae650e84a8 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -280,8 +280,10 @@ jobs: - name: Build Web # always skip cache because its fast, and cache configuration is always changing run: yarn nx build @affine/web --skip-nx-cache + env: + DISTRIBUTION: 'desktop' - name: zip web - run: tar -czf dist.tar.gz --directory=packages/frontend/web/dist . + run: tar -czf dist.tar.gz --directory=packages/frontend/electron/dist . - name: Upload web artifact uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/release-desktop.yml b/.github/workflows/release-desktop.yml index 63bf14c4d8..5ea136a3b1 100644 --- a/.github/workflows/release-desktop.yml +++ b/.github/workflows/release-desktop.yml @@ -90,6 +90,10 @@ jobs: APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} SKIP_GENERATE_ASSETS: 1 + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} steps: - uses: actions/checkout@v4 - name: Setup Version @@ -169,6 +173,10 @@ jobs: FILES_TO_BE_SIGNED: ${{ steps.get_files_to_be_signed.outputs.FILES_TO_BE_SIGNED }} env: SKIP_GENERATE_ASSETS: 1 + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} steps: - uses: actions/checkout@v4 - name: Setup Version diff --git a/packages/frontend/core/package.json b/packages/frontend/core/package.json index 2832913b63..6cdaf710ea 100644 --- a/packages/frontend/core/package.json +++ b/packages/frontend/core/package.json @@ -6,7 +6,6 @@ "exports": { "./app": "./src/app.tsx", "./router": "./src/router.tsx", - "./bootstrap/setup": "./src/bootstrap/setup.ts", "./bootstrap/register-plugins": "./src/bootstrap/register-plugins.ts", "./*": "./src/*" }, @@ -42,8 +41,8 @@ "@radix-ui/react-select": "^2.0.0", "@radix-ui/react-toolbar": "^1.0.4", "@react-hookz/web": "^24.0.4", - "@sentry/integrations": "^7.102.1", - "@sentry/react": "^7.102.1", + "@sentry/integrations": "^7.108.0", + "@sentry/react": "^7.108.0", "@toeverything/theme": "^0.7.29", "@vanilla-extract/dynamic": "^2.1.0", "animejs": "^3.2.2", diff --git a/packages/frontend/core/src/bootstrap/preload.ts b/packages/frontend/core/src/bootstrap/preload.ts new file mode 100644 index 0000000000..670182b9f1 --- /dev/null +++ b/packages/frontend/core/src/bootstrap/preload.ts @@ -0,0 +1,7 @@ +import '@affine/env/constant'; +import './register-blocksuite-components'; +import './edgeless-template'; + +import { setupGlobal } from '@affine/env/global'; + +setupGlobal(); diff --git a/packages/frontend/core/src/bootstrap/setup.ts b/packages/frontend/core/src/bootstrap/setup.ts deleted file mode 100644 index b589fd8816..0000000000 --- a/packages/frontend/core/src/bootstrap/setup.ts +++ /dev/null @@ -1,78 +0,0 @@ -import './register-blocksuite-components'; -import './edgeless-template'; - -import { apis, events } from '@affine/electron-api'; -import { setupGlobal } from '@affine/env/global'; -import * as Sentry from '@sentry/react'; -import { debounce } from 'lodash-es'; -import { useEffect } from 'react'; -import { - createRoutesFromChildren, - matchRoutes, - useLocation, - useNavigationType, -} from 'react-router-dom'; - -import { appConfigProxy } from '../hooks/use-app-config-storage'; -import { performanceLogger } from '../shared'; - -const performanceSetupLogger = performanceLogger.namespace('setup'); - -export function setup() { - performanceSetupLogger.info('start'); - - performanceSetupLogger.info('setup global'); - setupGlobal(); - - if (window.SENTRY_RELEASE || environment.isDebug) { - // https://docs.sentry.io/platforms/javascript/guides/react/#configure - Sentry.init({ - dsn: process.env.SENTRY_DSN, - environment: process.env.BUILD_TYPE ?? 'development', - integrations: [ - new Sentry.BrowserTracing({ - routingInstrumentation: Sentry.reactRouterV6Instrumentation( - useEffect, - useLocation, - useNavigationType, - createRoutesFromChildren, - matchRoutes - ), - }), - new Sentry.Replay(), - ], - // Set tracesSampleRate to 1.0 to capture 100% - // of transactions for performance monitoring. - tracesSampleRate: 1.0, - }); - Sentry.setTags({ - appVersion: runtimeConfig.appVersion, - editorVersion: runtimeConfig.editorVersion, - }); - } - - // load persistent config for electron - // TODO: should be sync, but it's not necessary for now - if (environment.isDesktop) { - appConfigProxy - .getSync() - .catch(() => console.error('failed to load app config')); - const handleMaximized = (maximized: boolean | undefined) => { - document.documentElement.dataset.maximized = String(maximized); - }; - const handleFullscreen = (fullscreen: boolean | undefined) => { - document.documentElement.dataset.fullscreen = String(fullscreen); - }; - apis?.ui.isMaximized().then(handleMaximized).catch(console.error); - apis?.ui.isFullScreen().then(handleFullscreen).catch(console.error); - events?.ui.onMaximized(handleMaximized); - events?.ui.onFullScreen(handleFullscreen); - - const handleResize = debounce(() => { - apis?.ui.handleWindowResize().catch(console.error); - }, 50); - window.addEventListener('resize', handleResize); - } - - performanceSetupLogger.info('done'); -} diff --git a/packages/frontend/electron/package.json b/packages/frontend/electron/package.json index ed1930fac7..f7196ea7e6 100644 --- a/packages/frontend/electron/package.json +++ b/packages/frontend/electron/package.json @@ -43,6 +43,9 @@ "@electron-forge/shared-types": "^7.3.0", "@emotion/react": "^11.11.4", "@pengx17/electron-forge-maker-appimage": "^1.1.1", + "@sentry/electron": "^4.21.0", + "@sentry/esbuild-plugin": "^2.16.0", + "@sentry/react": "^7.108.0", "@toeverything/infra": "workspace:*", "@types/uuid": "^9.0.8", "@vitejs/plugin-react-swc": "^3.6.0", diff --git a/packages/frontend/electron/renderer/index.tsx b/packages/frontend/electron/renderer/index.tsx index 77bcf95f09..506b925537 100644 --- a/packages/frontend/electron/renderer/index.tsx +++ b/packages/frontend/electron/renderer/index.tsx @@ -1,14 +1,29 @@ import './polyfill/dispose'; -// Side effect import, "declare global" -import '@affine/env/constant'; +import '@affine/core/bootstrap/preload'; -import { setup } from '@affine/core/bootstrap/setup'; +import { appConfigProxy } from '@affine/core/hooks/use-app-config-storage'; import { performanceLogger } from '@affine/core/shared'; -import { StrictMode } from 'react'; +import { apis, events } from '@affine/electron-api'; +import { ResizeObserver } from '@juggle/resize-observer'; +import { init, replayIntegration, setTags } from '@sentry/electron/renderer'; +import { + init as reactInit, + reactRouterV6BrowserTracingIntegration, +} from '@sentry/react'; +import { debounce } from 'lodash-es'; +import { StrictMode, useEffect } from 'react'; import { createRoot } from 'react-dom/client'; +import { + createRoutesFromChildren, + matchRoutes, + useLocation, + useNavigationType, +} from 'react-router-dom'; import { App } from './app'; +window.ResizeObserver = ResizeObserver; + const performanceMainLogger = performanceLogger.namespace('main'); function main() { performanceMainLogger.info('start'); @@ -18,7 +33,56 @@ function main() { performanceMainLogger.info('skip setup'); } else { performanceMainLogger.info('setup start'); - setup(); + if (window.SENTRY_RELEASE || environment.isDebug) { + // https://docs.sentry.io/platforms/javascript/guides/electron/ + init( + { + dsn: process.env.SENTRY_DSN, + environment: process.env.BUILD_TYPE ?? 'development', + integrations: [ + reactRouterV6BrowserTracingIntegration({ + useEffect, + useLocation, + useNavigationType, + createRoutesFromChildren, + matchRoutes, + }), + replayIntegration(), + ], + }, + reactInit + ); + setTags({ + appVersion: runtimeConfig.appVersion, + editorVersion: runtimeConfig.editorVersion, + }); + window.addEventListener('offline', () => { + apis?.ui.handleNetworkChange(false); + }); + window.addEventListener('online', () => { + apis?.ui.handleNetworkChange(true); + }); + } + // load persistent config for electron + // TODO: should be sync, but it's not necessary for now + appConfigProxy + .getSync() + .catch(() => console.error('failed to load app config')); + const handleMaximized = (maximized: boolean | undefined) => { + document.documentElement.dataset.maximized = String(maximized); + }; + const handleFullscreen = (fullscreen: boolean | undefined) => { + document.documentElement.dataset.fullscreen = String(fullscreen); + }; + apis?.ui.isMaximized().then(handleMaximized).catch(console.error); + apis?.ui.isFullScreen().then(handleFullscreen).catch(console.error); + events?.ui.onMaximized(handleMaximized); + events?.ui.onFullScreen(handleFullscreen); + + const handleResize = debounce(() => { + apis?.ui.handleWindowResize().catch(console.error); + }, 50); + window.addEventListener('resize', handleResize); performanceMainLogger.info('setup done'); } diff --git a/packages/frontend/electron/scripts/common.ts b/packages/frontend/electron/scripts/common.ts index a62d6ddb7a..5711c74657 100644 --- a/packages/frontend/electron/scripts/common.ts +++ b/packages/frontend/electron/scripts/common.ts @@ -3,6 +3,7 @@ import { fileURLToPath } from 'node:url'; // eslint-disable-next-line @typescript-eslint/no-restricted-imports import { getRuntimeConfig } from '@affine/cli/src/webpack/runtime-config'; +import { sentryEsbuildPlugin } from '@sentry/esbuild-plugin'; import type { BuildOptions } from 'esbuild'; export const electronDir = fileURLToPath(new URL('..', import.meta.url)); @@ -28,6 +29,26 @@ export const config = (): BuildOptions => { }) ); + if (process.env.GITHUB_SHA) { + define['process.env.GITHUB_SHA'] = `"${process.env.GITHUB_SHA}"`; + } + + const plugins = []; + + if ( + process.env.SENTRY_AUTH_TOKEN && + process.env.SENTRY_ORG && + process.env.SENTRY_PROJECT + ) { + plugins.push( + sentryEsbuildPlugin({ + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, + }) + ); + } + return { entryPoints: [ resolve(electronDir, './src/main/index.ts'), @@ -48,5 +69,6 @@ export const config = (): BuildOptions => { assetNames: '[name]', treeShaking: true, sourcemap: 'linked', + plugins, }; }; diff --git a/packages/frontend/electron/src/main/index.ts b/packages/frontend/electron/src/main/index.ts index 9aea79722a..3bde9f9d8f 100644 --- a/packages/frontend/electron/src/main/index.ts +++ b/packages/frontend/electron/src/main/index.ts @@ -2,6 +2,7 @@ import './security-restrictions'; import path from 'node:path'; +import { init, IPCMode } from '@sentry/electron/main'; import { app } from 'electron'; import { createApplicationMenu } from './application-menu/create'; @@ -12,6 +13,7 @@ import { registerEvents } from './events'; import { registerHandlers } from './handlers'; import { logger } from './logger'; import { registerProtocol } from './protocol'; +import { isOnline } from './ui/handlers'; import { registerUpdater } from './updater'; import { launch } from './windows-manager/launcher'; import { launchStage } from './windows-manager/stage'; @@ -64,6 +66,19 @@ app.on('activate', () => { setupDeepLink(app); +// https://docs.sentry.io/platforms/javascript/guides/electron/ +if (process.env.SENTRY_DSN) { + init({ + dsn: process.env.SENTRY_DSN, + ipcMode: IPCMode.Protocol, + transportOptions: { + maxQueueAgeDays: 30, + maxQueueCount: 100, + beforeSend: () => (isOnline ? 'send' : 'queue'), + }, + }); +} + /** * Create app window when background process will be ready */ diff --git a/packages/frontend/electron/src/main/ui/handlers.ts b/packages/frontend/electron/src/main/ui/handlers.ts index 248c9c6409..77027f182e 100644 --- a/packages/frontend/electron/src/main/ui/handlers.ts +++ b/packages/frontend/electron/src/main/ui/handlers.ts @@ -15,6 +15,8 @@ import { launchStage } from '../windows-manager/stage'; import { getChallengeResponse } from './challenge'; import { getGoogleOauthCode } from './google-auth'; +export let isOnline = true; + export const uiHandlers = { isMaximized: async () => { const window = await getMainWindow(); @@ -58,6 +60,9 @@ export const uiHandlers = { handleCloseApp: async () => { app.quit(); }, + handleNetworkChange: async (_, _isOnline: boolean) => { + isOnline = _isOnline; + }, getGoogleOauthCode: async () => { return getGoogleOauthCode(); }, diff --git a/packages/frontend/electron/src/preload/index.ts b/packages/frontend/electron/src/preload/index.ts index e59d6a0adf..509b5d4f20 100644 --- a/packages/frontend/electron/src/preload/index.ts +++ b/packages/frontend/electron/src/preload/index.ts @@ -1 +1,2 @@ +import '@sentry/electron/preload'; import './bootstrap'; diff --git a/packages/frontend/web/package.json b/packages/frontend/web/package.json index 4e3dc1ff21..af5eb3213b 100644 --- a/packages/frontend/web/package.json +++ b/packages/frontend/web/package.json @@ -14,6 +14,7 @@ "@affine/core": "workspace:*", "@affine/env": "workspace:*", "@juggle/resize-observer": "^3.4.0", + "@sentry/react": "^7.108.0", "core-js": "^3.36.1", "intl-segmenter-polyfill-rs": "^0.1.7", "jotai": "^2.7.1", diff --git a/packages/frontend/web/src/index.tsx b/packages/frontend/web/src/index.tsx index 7833e9228d..b0facfeb8d 100644 --- a/packages/frontend/web/src/index.tsx +++ b/packages/frontend/web/src/index.tsx @@ -2,12 +2,24 @@ import './polyfill/dispose'; import './polyfill/intl-segmenter'; import './polyfill/request-idle-callback'; import './polyfill/resize-observer'; +import '@affine/core/bootstrap/preload'; -import { setup } from '@affine/core/bootstrap/setup'; import { performanceLogger } from '@affine/core/shared'; import { isDesktop } from '@affine/env/constant'; -import { StrictMode } from 'react'; +import { + init, + reactRouterV6BrowserTracingIntegration, + replayIntegration, + setTags, +} from '@sentry/react'; +import { StrictMode, useEffect } from 'react'; import { createRoot } from 'react-dom/client'; +import { + createRoutesFromChildren, + matchRoutes, + useLocation, + useNavigationType, +} from 'react-router-dom'; import { App } from './app'; @@ -20,7 +32,27 @@ function main() { performanceMainLogger.info('skip setup'); } else { performanceMainLogger.info('setup start'); - setup(); + if (window.SENTRY_RELEASE || environment.isDebug) { + // https://docs.sentry.io/platforms/javascript/guides/react/#configure + init({ + dsn: process.env.SENTRY_DSN, + environment: process.env.BUILD_TYPE ?? 'development', + integrations: [ + reactRouterV6BrowserTracingIntegration({ + useEffect, + useLocation, + useNavigationType, + createRoutesFromChildren, + matchRoutes, + }), + replayIntegration(), + ], + }); + setTags({ + appVersion: runtimeConfig.appVersion, + editorVersion: runtimeConfig.editorVersion, + }); + } performanceMainLogger.info('setup done'); } diff --git a/tests/affine-desktop-cloud/playwright.config.ts b/tests/affine-desktop-cloud/playwright.config.ts index a031458157..d6227be2fc 100644 --- a/tests/affine-desktop-cloud/playwright.config.ts +++ b/tests/affine-desktop-cloud/playwright.config.ts @@ -27,8 +27,10 @@ const config: PlaywrightTestConfig = { port: 8080, timeout: 120 * 1000, reuseExistingServer: !process.env.CI, + stdout: 'pipe', env: { COVERAGE: process.env.COVERAGE || 'false', + DISTRIBUTION: 'desktop', }, }, { diff --git a/tests/storybook/.storybook/preview.tsx b/tests/storybook/.storybook/preview.tsx index ce0e84c377..d7b03568da 100644 --- a/tests/storybook/.storybook/preview.tsx +++ b/tests/storybook/.storybook/preview.tsx @@ -1,6 +1,7 @@ import './polyfill'; import '@affine/component/theme/global.css'; import '@affine/component/theme/theme.css'; +import '@affine/core/bootstrap/preload'; import { createI18n } from '@affine/i18n'; import { ThemeProvider, useTheme } from 'next-themes'; import { useDarkMode } from 'storybook-dark-mode'; @@ -12,7 +13,6 @@ import { setupGlobal, type Environment } from '@affine/env/global'; import type { Preview } from '@storybook/react'; import { useLayoutEffect, useRef } from 'react'; -import { setup } from '@affine/core/bootstrap/setup'; import { WorkspaceFlavour } from '@affine/env/workspace'; import { ServiceCollection } from '@toeverything/infra'; import { @@ -81,7 +81,6 @@ const provider = services.provider(); const store = createStore(); _setCurrentStore(store); -setup(); provider .get(WorkspaceManager) diff --git a/tools/cli/src/bin/dev.ts b/tools/cli/src/bin/dev.ts index cd9e7fdf2a..dd80e02db0 100644 --- a/tools/cli/src/bin/dev.ts +++ b/tools/cli/src/bin/dev.ts @@ -12,7 +12,8 @@ import { watchI18N } from '../util/i18n.js'; import { createWebpackConfig } from '../webpack/webpack.config.js'; const flags: BuildFlags = { - distribution: 'browser', + distribution: + (process.env.DISTRIBUTION as BuildFlags['distribution']) ?? 'browser', mode: 'development', channel: 'canary', coverage: process.env.COVERAGE === 'true', @@ -132,6 +133,8 @@ if (buildFlags.debugBlockSuite) { flags.localBlockSuite = localBlockSuite; } +console.info(flags); + watchI18N(); try { diff --git a/yarn.lock b/yarn.lock index d7abd3e110..4e9418ba67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -351,8 +351,8 @@ __metadata: "@radix-ui/react-select": "npm:^2.0.0" "@radix-ui/react-toolbar": "npm:^1.0.4" "@react-hookz/web": "npm:^24.0.4" - "@sentry/integrations": "npm:^7.102.1" - "@sentry/react": "npm:^7.102.1" + "@sentry/integrations": "npm:^7.108.0" + "@sentry/react": "npm:^7.108.0" "@sentry/webpack-plugin": "npm:^2.14.2" "@swc/core": "npm:^1.4.8" "@testing-library/react": "npm:^14.2.1" @@ -465,6 +465,9 @@ __metadata: "@electron-forge/shared-types": "npm:^7.3.0" "@emotion/react": "npm:^11.11.4" "@pengx17/electron-forge-maker-appimage": "npm:^1.1.1" + "@sentry/electron": "npm:^4.21.0" + "@sentry/esbuild-plugin": "npm:^2.16.0" + "@sentry/react": "npm:^7.108.0" "@toeverything/infra": "workspace:*" "@types/uuid": "npm:^9.0.8" "@vitejs/plugin-react-swc": "npm:^3.6.0" @@ -825,6 +828,7 @@ __metadata: "@affine/core": "workspace:*" "@affine/env": "workspace:*" "@juggle/resize-observer": "npm:^3.4.0" + "@sentry/react": "npm:^7.108.0" "@types/react": "npm:^18.2.60" "@types/react-dom": "npm:^18.2.19" core-js: "npm:^3.36.1" @@ -1888,7 +1892,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.1": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -1928,30 +1932,30 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.14.0, @babel/core@npm:^7.18.9, @babel/core@npm:^7.20.12, @babel/core@npm:^7.22.5, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.7.5": - version: 7.23.9 - resolution: "@babel/core@npm:7.23.9" +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.14.0, @babel/core@npm:^7.18.5, @babel/core@npm:^7.18.9, @babel/core@npm:^7.20.12, @babel/core@npm:^7.22.5, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.7.5": + version: 7.24.3 + resolution: "@babel/core@npm:7.24.3" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.6" + "@babel/code-frame": "npm:^7.24.2" + "@babel/generator": "npm:^7.24.1" "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.9" - "@babel/parser": "npm:^7.23.9" - "@babel/template": "npm:^7.23.9" - "@babel/traverse": "npm:^7.23.9" - "@babel/types": "npm:^7.23.9" + "@babel/helpers": "npm:^7.24.1" + "@babel/parser": "npm:^7.24.1" + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.1" + "@babel/types": "npm:^7.24.0" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10/268cdbb86bef1b8ea5b1300f2f325e56a1740a5051360cb228ffeaa0f80282b6674f3a2b4d6466adb0691183759b88d4c37b4a4f77232c84a49ed771c84cdc27 + checksum: 10/3a7b9931fe0d93c500dcdb6b36f038b0f9d5090c048818e62aa8321c8f6e8ccc3d47373f0b40591c1fe3b13e5096bacabb1ade83f9f4d86f57878c39a9d1ade1 languageName: node linkType: hard -"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.18.2, @babel/generator@npm:^7.22.5, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.24.1, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.18.2, @babel/generator@npm:^7.22.5, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.24.1, @babel/generator@npm:^7.7.2": version: 7.24.1 resolution: "@babel/generator@npm:7.24.1" dependencies: @@ -2201,14 +2205,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.18.2, @babel/helpers@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/helpers@npm:7.23.9" +"@babel/helpers@npm:^7.18.2, @babel/helpers@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helpers@npm:7.24.1" dependencies: - "@babel/template": "npm:^7.23.9" - "@babel/traverse": "npm:^7.23.9" - "@babel/types": "npm:^7.23.9" - checksum: 10/dd56daac8bbd7ed174bb00fd185926fd449e591d9a00edaceb7ac6edbdd7a8db57e2cb365b4fafda382201752789ced2f7ae010f667eab0f198a4571cda4d2c5 + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.1" + "@babel/types": "npm:^7.24.0" + checksum: 10/82d3cdd3beafc4583f237515ef220bc205ced8b0540c6c6e191fc367a9589bd7304b8f9800d3d7574d4db9f079bd555979816b1874c86e53b3e7dd2032ad6c7c languageName: node linkType: hard @@ -2224,7 +2228,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.10.3, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.18.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.1": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.10.3, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.18.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.1": version: 7.24.1 resolution: "@babel/parser@npm:7.24.1" bin: @@ -3406,18 +3410,18 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.16.7, @babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.23.9, @babel/template@npm:^7.3.3": - version: 7.23.9 - resolution: "@babel/template@npm:7.23.9" +"@babel/template@npm:^7.16.7, @babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.24.0, @babel/template@npm:^7.3.3": + version: 7.24.0 + resolution: "@babel/template@npm:7.24.0" dependencies: "@babel/code-frame": "npm:^7.23.5" - "@babel/parser": "npm:^7.23.9" - "@babel/types": "npm:^7.23.9" - checksum: 10/1b011ba9354dc2e646561d54b6862e0df51760e6179faadd79be05825b0b6da04911e4e192df943f1766748da3037fd8493615b38707f7cadb0cf0c96601c170 + "@babel/parser": "npm:^7.24.0" + "@babel/types": "npm:^7.24.0" + checksum: 10/8c538338c7de8fac8ada691a5a812bdcbd60bd4a4eb5adae2cc9ee19773e8fb1a724312a00af9e1ce49056ffd3c3475e7287b5668cf6360bfb3f8ac827a06ffe languageName: node linkType: hard -"@babel/traverse@npm:^7.10.3, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.18.5, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.9": +"@babel/traverse@npm:^7.10.3, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.18.5, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.24.1": version: 7.24.1 resolution: "@babel/traverse@npm:7.24.1" dependencies: @@ -3435,7 +3439,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.10.3, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.18.4, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.10.3, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.18.4, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.24.0 resolution: "@babel/types@npm:7.24.0" dependencies: @@ -11215,37 +11219,71 @@ __metadata: languageName: node linkType: hard -"@sentry-internal/feedback@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry-internal/feedback@npm:7.102.1" +"@sentry-internal/feedback@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry-internal/feedback@npm:7.107.0" dependencies: - "@sentry/core": "npm:7.102.1" - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" - checksum: 10/1d7157f62844d8c06d59941c8fed48fd7987a7b76eaf81666d071ebefe4fc9fc6e43ced902725964191b613062f71f1bd98b99a199449aa2f5b187e90abb7568 + "@sentry/core": "npm:7.107.0" + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + checksum: 10/80045c253681cd34a83338c21cc99e4a7b0f882032e6f682bc5395b87ad36758cefd129acafb5ae3747b7d12ec12effaef2728eea85a184fe27177b01a4186fa languageName: node linkType: hard -"@sentry-internal/replay-canvas@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry-internal/replay-canvas@npm:7.102.1" +"@sentry-internal/feedback@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry-internal/feedback@npm:7.108.0" dependencies: - "@sentry/core": "npm:7.102.1" - "@sentry/replay": "npm:7.102.1" - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" - checksum: 10/737a437925267bb0296b8d1d742cfee2154fdf6dd1ad13a9148a658b98d5c19dbbfbd85014770e704d6a36d802e59370761185e23c69eadfefcde74fc08e95a6 + "@sentry/core": "npm:7.108.0" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" + checksum: 10/74cba185f9bde1e4e2405061684b8380157c30c9e4ecf51d94c94dcfeb922f2fa2e3b1c62569f8cd19b78d8f8abefd70bf3d319093a02b74956a9987747e1524 languageName: node linkType: hard -"@sentry-internal/tracing@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry-internal/tracing@npm:7.102.1" +"@sentry-internal/replay-canvas@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry-internal/replay-canvas@npm:7.107.0" dependencies: - "@sentry/core": "npm:7.102.1" - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" - checksum: 10/5577d8cdd92187ebfe4213d52c3fa13d013528d04b09d63c112a0460c5a1c9d6d890653c0379e30fdff9d324894f85931551bda1a9734c02ac6b26b70a806562 + "@sentry/core": "npm:7.107.0" + "@sentry/replay": "npm:7.107.0" + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + checksum: 10/c4c53d252c01b98b593ee2643ededd2e8ae53054e4fe712915f1440e2c643c4c8b462ac28f7fd6588db28271b4967f55fa727c19eef4074cfe0f70afee3ae18d + languageName: node + linkType: hard + +"@sentry-internal/replay-canvas@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry-internal/replay-canvas@npm:7.108.0" + dependencies: + "@sentry/core": "npm:7.108.0" + "@sentry/replay": "npm:7.108.0" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" + checksum: 10/2a992b140ba7fc0cd37c4cf94f9b4d36bed8534f730480520b29c53a03bcf8f52407ec9f340ff407c924cd7f9fbd7c881278387271eda99913c41375fbe58815 + languageName: node + linkType: hard + +"@sentry-internal/tracing@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry-internal/tracing@npm:7.107.0" + dependencies: + "@sentry/core": "npm:7.107.0" + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + checksum: 10/c04eb7edf4a82650c728ac09d9b4e6673dbf914bf83953111bf1bc31225401381d959edabeb4a272d4b395247b0744e8460fd130bbbfae74120c43bcf74f00aa + languageName: node + linkType: hard + +"@sentry-internal/tracing@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry-internal/tracing@npm:7.108.0" + dependencies: + "@sentry/core": "npm:7.108.0" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" + checksum: 10/dde3c07650b0a0b4f3c7be3da8bcb6d2731333bca28de99afed3b9179f80917af871a9ab2fe78fa91fe895baa55e0aba375806be869589f4aa34bd30bdf5b145 languageName: node linkType: hard @@ -11256,18 +11294,40 @@ __metadata: languageName: node linkType: hard -"@sentry/browser@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry/browser@npm:7.102.1" +"@sentry/babel-plugin-component-annotate@npm:2.16.0": + version: 2.16.0 + resolution: "@sentry/babel-plugin-component-annotate@npm:2.16.0" + checksum: 10/e1f7d4250c2973f41e57eb89db29db383ef3b68c4c7c7f0b059209bf61dc0857169044d0802d0294086903725a96e81bb27825d5656c9dfe100ca51a44965092 + languageName: node + linkType: hard + +"@sentry/browser@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry/browser@npm:7.107.0" dependencies: - "@sentry-internal/feedback": "npm:7.102.1" - "@sentry-internal/replay-canvas": "npm:7.102.1" - "@sentry-internal/tracing": "npm:7.102.1" - "@sentry/core": "npm:7.102.1" - "@sentry/replay": "npm:7.102.1" - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" - checksum: 10/709b3d74ad115801e3e3934f1bc56e160c9e963ac34c68dc971dc5dfad0bf1ad64c1da8a84b5297c11e3d39046412443c1e9802a5eb6ebcf588bdd85d2823f89 + "@sentry-internal/feedback": "npm:7.107.0" + "@sentry-internal/replay-canvas": "npm:7.107.0" + "@sentry-internal/tracing": "npm:7.107.0" + "@sentry/core": "npm:7.107.0" + "@sentry/replay": "npm:7.107.0" + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + checksum: 10/befa7fc976c258ac2b94ae16156e07219a393023dd5b086e15bc1711ee623909b627893c8d2b039639ebfd3a38f49b828e5091035774b2570c8edc4b85ab59a7 + languageName: node + linkType: hard + +"@sentry/browser@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry/browser@npm:7.108.0" + dependencies: + "@sentry-internal/feedback": "npm:7.108.0" + "@sentry-internal/replay-canvas": "npm:7.108.0" + "@sentry-internal/tracing": "npm:7.108.0" + "@sentry/core": "npm:7.108.0" + "@sentry/replay": "npm:7.108.0" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" + checksum: 10/3d2eb11ba8c4374c0e84e7e8555cca15e2acb24ccb8723279c7a139ce88de2dc5b5fc78cbbb35188f646ec72fa4c91a6ef00246ccbc8a2a25e6642929722eddb languageName: node linkType: hard @@ -11287,6 +11347,22 @@ __metadata: languageName: node linkType: hard +"@sentry/bundler-plugin-core@npm:2.16.0": + version: 2.16.0 + resolution: "@sentry/bundler-plugin-core@npm:2.16.0" + dependencies: + "@babel/core": "npm:^7.18.5" + "@sentry/babel-plugin-component-annotate": "npm:2.16.0" + "@sentry/cli": "npm:^2.22.3" + dotenv: "npm:^16.3.1" + find-up: "npm:^5.0.0" + glob: "npm:^9.3.2" + magic-string: "npm:0.27.0" + unplugin: "npm:1.0.1" + checksum: 10/2095d532af8b980939a17275b12a1d187fd658fd4f3b33715dadc37cc1f4210289f5b0d863392811dc6e995f54d696cddec291f7d03d7a1d9f3b77022df0476e + languageName: node + linkType: hard + "@sentry/cli-darwin@npm:2.28.6": version: 2.28.6 resolution: "@sentry/cli-darwin@npm:2.28.6" @@ -11373,68 +11449,144 @@ __metadata: languageName: node linkType: hard -"@sentry/core@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry/core@npm:7.102.1" +"@sentry/core@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry/core@npm:7.107.0" dependencies: - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" - checksum: 10/8a4e75aa0b366be9801b309f3e2d1bf8e9b4a8b4532b5e17134e0a9d5eb07691151be1fff9fe592a07522a2c5d29d854234eac339235f664a395ea131ce7f20f + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + checksum: 10/79465058a0bc45653bfbd319b9d28e55ee97adaaf1e240c4717ea5bfea37fe8d57affce89c2e2b3151d3a1894897833dcedb3d2685c059d5ca8b81f803ff6b4b languageName: node linkType: hard -"@sentry/integrations@npm:^7.102.1": - version: 7.102.1 - resolution: "@sentry/integrations@npm:7.102.1" +"@sentry/core@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry/core@npm:7.108.0" dependencies: - "@sentry/core": "npm:7.102.1" - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" + checksum: 10/30f2be108499a30ba5c9a19e2870e80f6c03de3f32aa0537c4a305428f989ebb96831cc4b0b8c8e30eea3dfeff0262d05fbd34d876b7189ddf439933ae8a560f + languageName: node + linkType: hard + +"@sentry/electron@npm:^4.21.0": + version: 4.21.0 + resolution: "@sentry/electron@npm:4.21.0" + dependencies: + "@sentry/browser": "npm:7.107.0" + "@sentry/core": "npm:7.107.0" + "@sentry/node": "npm:7.107.0" + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + deepmerge: "npm:4.3.0" + tslib: "npm:^2.5.0" + checksum: 10/f057cca75479711d6cde5450ac69bea0b41119d0fb069cac8f5aefbacf81d21c94ea952a192b9e097fdc0415f0384041babd8a85f8a9d06fd9b6ab87dec3ec77 + languageName: node + linkType: hard + +"@sentry/esbuild-plugin@npm:^2.16.0": + version: 2.16.0 + resolution: "@sentry/esbuild-plugin@npm:2.16.0" + dependencies: + "@sentry/bundler-plugin-core": "npm:2.16.0" + unplugin: "npm:1.0.1" + uuid: "npm:^9.0.0" + checksum: 10/8a8bf7a1c0e31081c5b834d8a995eb1a58f48c5283fb1c93ab8bce9b9dad2081d3b1be3284828b5d6eba5592898dcc46d33f3ff784cc796d020ee41147fcdd23 + languageName: node + linkType: hard + +"@sentry/integrations@npm:^7.108.0": + version: 7.108.0 + resolution: "@sentry/integrations@npm:7.108.0" + dependencies: + "@sentry/core": "npm:7.108.0" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" localforage: "npm:^1.8.1" - checksum: 10/f9af4b9fdb436dfecc067fd5c87d2df0e8014a4ed78b7d42e86f47c583519917f0185e4d4f669cc207e44b369b6dd604dec04a67131ef11942fb50b023860047 + checksum: 10/6c9bce95bb35c6d20c6fd699b77258dbc1390e9fc8e109a2f79f16abc53c76f7594be2eb6a0471d64677436928840d84c81ced69f2378b9c61f257e87e533f2a languageName: node linkType: hard -"@sentry/react@npm:^7.102.1": - version: 7.102.1 - resolution: "@sentry/react@npm:7.102.1" +"@sentry/node@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry/node@npm:7.107.0" dependencies: - "@sentry/browser": "npm:7.102.1" - "@sentry/core": "npm:7.102.1" - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" + "@sentry-internal/tracing": "npm:7.107.0" + "@sentry/core": "npm:7.107.0" + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + checksum: 10/0ad83e6842122393bd874f8f99157c0d73ded9924f4ece358f176e6ed698eef0cbb4a3341052a96588c398398e158a05656a7d247c0c839a7d073f41b056455b + languageName: node + linkType: hard + +"@sentry/react@npm:^7.108.0": + version: 7.108.0 + resolution: "@sentry/react@npm:7.108.0" + dependencies: + "@sentry/browser": "npm:7.108.0" + "@sentry/core": "npm:7.108.0" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" hoist-non-react-statics: "npm:^3.3.2" peerDependencies: react: 15.x || 16.x || 17.x || 18.x - checksum: 10/74bb55ed1775e4b14b0c89e25b028ff47cbe826b3072f14fd13d0bd88fb6b7a732962c949a8bc7b8bcd173e7d1531858a4f70de915c539ddf880284426fafddc + checksum: 10/acda065ea91915cb93b36087a57c8fae0408012594265315074ec6882faaca27ac436cda990ce743f3f4c772e6a074bc9916c358569ab4702fecf95bacf159b7 languageName: node linkType: hard -"@sentry/replay@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry/replay@npm:7.102.1" +"@sentry/replay@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry/replay@npm:7.107.0" dependencies: - "@sentry-internal/tracing": "npm:7.102.1" - "@sentry/core": "npm:7.102.1" - "@sentry/types": "npm:7.102.1" - "@sentry/utils": "npm:7.102.1" - checksum: 10/ad2cf119298a9b62e7440033b531d983d126f4d9603471baef188cc2f0a8f48bec90eb5d8b920f4d364ed003f128a3dc4551a1456fd8c208914dd29a089b3e21 + "@sentry-internal/tracing": "npm:7.107.0" + "@sentry/core": "npm:7.107.0" + "@sentry/types": "npm:7.107.0" + "@sentry/utils": "npm:7.107.0" + checksum: 10/9797c876a738a37bf42b3ae8b5ea35d4de5555999906cb8293dce395d42010959b27c1e8954dc49b24ab88e79e56de5e94c934a4c4c8cbe8e3756ea44b42e16b languageName: node linkType: hard -"@sentry/types@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry/types@npm:7.102.1" - checksum: 10/794aeeb398f37374f7527de5490e6ae220c2e4ae190a5c6eed3cf3facbe65b603ce8e74691441701cc65294028b0e16eeb7394d07ef498098c207183dcc7f963 - languageName: node - linkType: hard - -"@sentry/utils@npm:7.102.1": - version: 7.102.1 - resolution: "@sentry/utils@npm:7.102.1" +"@sentry/replay@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry/replay@npm:7.108.0" dependencies: - "@sentry/types": "npm:7.102.1" - checksum: 10/9ec4f4778eac7ac36d0fed2ab4a1fbe9953a5a18258255bbc7a65db93739f87d7d10cb92afea05c2db8bd219f2c4db1715088f2a0cdc9b6892c4cc65e5d97386 + "@sentry-internal/tracing": "npm:7.108.0" + "@sentry/core": "npm:7.108.0" + "@sentry/types": "npm:7.108.0" + "@sentry/utils": "npm:7.108.0" + checksum: 10/42806c531f5b644c2c54ef363c824c85506ff8ac75b00821023dccde254edb034fbe4f774c4cf1d5fea2b4704be19f8a4fecfdbb351359a055d8437caeb68a95 + languageName: node + linkType: hard + +"@sentry/types@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry/types@npm:7.107.0" + checksum: 10/68b349006bce831fae40e29586e59f345148caa740318d6d6edc08abe15d933d290adf67354ed02027e966b6be2be408be9c341b77fdfd70b4196c765c7cd511 + languageName: node + linkType: hard + +"@sentry/types@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry/types@npm:7.108.0" + checksum: 10/ab5231ddc2839d3ef2cb647fc775ba6467f8551e5f19ef55f43be39ec6def505f90303b9abf1342820b7aec6bd9cbfd80623ba4b6defafd32e0589197a832bec + languageName: node + linkType: hard + +"@sentry/utils@npm:7.107.0": + version: 7.107.0 + resolution: "@sentry/utils@npm:7.107.0" + dependencies: + "@sentry/types": "npm:7.107.0" + checksum: 10/ece92ba70575c3e4e15442739e49aedc667a812ebe8eb444a861605b4a6d297b0e939849e0bdb4fcdcd976f2bb9740698e01269f376c849f7d311c62000050c9 + languageName: node + linkType: hard + +"@sentry/utils@npm:7.108.0": + version: 7.108.0 + resolution: "@sentry/utils@npm:7.108.0" + dependencies: + "@sentry/types": "npm:7.108.0" + checksum: 10/605ec9a79d596c677db361d963e63f41bb609f06ef331d0b811dfa3371bcb16c52a235d51696c2cc65678bd2160fda4832eb9cc297fffc6f19b8002272d672a2 languageName: node linkType: hard @@ -19142,6 +19294,13 @@ __metadata: languageName: node linkType: hard +"deepmerge@npm:4.3.0": + version: 4.3.0 + resolution: "deepmerge@npm:4.3.0" + checksum: 10/9f6ef59c33aff23dbfbbdff0607919d671e1af3057dd3627e9708915e64a5575c5797868c6f540fb2faab82d2ca4e30577b808dd085e0b3bf7a5a3184cdfa3a9 + languageName: node + linkType: hard + "deepmerge@npm:^4.2.2": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" @@ -22509,6 +22668,18 @@ __metadata: languageName: node linkType: hard +"glob@npm:^9.3.2": + version: 9.3.5 + resolution: "glob@npm:9.3.5" + dependencies: + fs.realpath: "npm:^1.0.0" + minimatch: "npm:^8.0.2" + minipass: "npm:^4.2.4" + path-scurry: "npm:^1.6.1" + checksum: 10/e5fa8a58adf53525bca42d82a1fad9e6800032b7e4d372209b80cfdca524dd9a7dbe7d01a92d7ed20d89c572457f12c250092bc8817cb4f1c63efefdf9b658c0 + languageName: node + linkType: hard + "global-agent@npm:^3.0.0": version: 3.0.0 resolution: "global-agent@npm:3.0.0" @@ -27749,6 +27920,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^8.0.2": + version: 8.0.4 + resolution: "minimatch@npm:8.0.4" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/aef05598ee565e1013bc8a10f53410ac681561f901c1a084b8ecfd016c9ed919f58f4bbd5b63e05643189dfb26e8106a84f0e1ff12e4a263aa37e1cae7ce9828 + languageName: node + linkType: hard + "minimist@npm:^1.1.1, minimist@npm:^1.1.3, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8, minimist@npm:~1.2.5": version: 1.2.8 resolution: "minimist@npm:1.2.8"