mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
chore(core): split sentry and setup into web/electron (#6357)
This commit is contained in:
4
.github/workflows/build-test.yml
vendored
4
.github/workflows/build-test.yml
vendored
@@ -280,8 +280,10 @@ jobs:
|
|||||||
- name: Build Web
|
- name: Build Web
|
||||||
# always skip cache because its fast, and cache configuration is always changing
|
# always skip cache because its fast, and cache configuration is always changing
|
||||||
run: yarn nx build @affine/web --skip-nx-cache
|
run: yarn nx build @affine/web --skip-nx-cache
|
||||||
|
env:
|
||||||
|
DISTRIBUTION: 'desktop'
|
||||||
- name: zip web
|
- 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
|
- name: Upload web artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
8
.github/workflows/release-desktop.yml
vendored
8
.github/workflows/release-desktop.yml
vendored
@@ -90,6 +90,10 @@ jobs:
|
|||||||
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
|
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
|
||||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||||
SKIP_GENERATE_ASSETS: 1
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Version
|
- name: Setup Version
|
||||||
@@ -169,6 +173,10 @@ jobs:
|
|||||||
FILES_TO_BE_SIGNED: ${{ steps.get_files_to_be_signed.outputs.FILES_TO_BE_SIGNED }}
|
FILES_TO_BE_SIGNED: ${{ steps.get_files_to_be_signed.outputs.FILES_TO_BE_SIGNED }}
|
||||||
env:
|
env:
|
||||||
SKIP_GENERATE_ASSETS: 1
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Version
|
- name: Setup Version
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
"exports": {
|
"exports": {
|
||||||
"./app": "./src/app.tsx",
|
"./app": "./src/app.tsx",
|
||||||
"./router": "./src/router.tsx",
|
"./router": "./src/router.tsx",
|
||||||
"./bootstrap/setup": "./src/bootstrap/setup.ts",
|
|
||||||
"./bootstrap/register-plugins": "./src/bootstrap/register-plugins.ts",
|
"./bootstrap/register-plugins": "./src/bootstrap/register-plugins.ts",
|
||||||
"./*": "./src/*"
|
"./*": "./src/*"
|
||||||
},
|
},
|
||||||
@@ -42,8 +41,8 @@
|
|||||||
"@radix-ui/react-select": "^2.0.0",
|
"@radix-ui/react-select": "^2.0.0",
|
||||||
"@radix-ui/react-toolbar": "^1.0.4",
|
"@radix-ui/react-toolbar": "^1.0.4",
|
||||||
"@react-hookz/web": "^24.0.4",
|
"@react-hookz/web": "^24.0.4",
|
||||||
"@sentry/integrations": "^7.102.1",
|
"@sentry/integrations": "^7.108.0",
|
||||||
"@sentry/react": "^7.102.1",
|
"@sentry/react": "^7.108.0",
|
||||||
"@toeverything/theme": "^0.7.29",
|
"@toeverything/theme": "^0.7.29",
|
||||||
"@vanilla-extract/dynamic": "^2.1.0",
|
"@vanilla-extract/dynamic": "^2.1.0",
|
||||||
"animejs": "^3.2.2",
|
"animejs": "^3.2.2",
|
||||||
|
|||||||
7
packages/frontend/core/src/bootstrap/preload.ts
Normal file
7
packages/frontend/core/src/bootstrap/preload.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import '@affine/env/constant';
|
||||||
|
import './register-blocksuite-components';
|
||||||
|
import './edgeless-template';
|
||||||
|
|
||||||
|
import { setupGlobal } from '@affine/env/global';
|
||||||
|
|
||||||
|
setupGlobal();
|
||||||
@@ -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');
|
|
||||||
}
|
|
||||||
@@ -43,6 +43,9 @@
|
|||||||
"@electron-forge/shared-types": "^7.3.0",
|
"@electron-forge/shared-types": "^7.3.0",
|
||||||
"@emotion/react": "^11.11.4",
|
"@emotion/react": "^11.11.4",
|
||||||
"@pengx17/electron-forge-maker-appimage": "^1.1.1",
|
"@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:*",
|
"@toeverything/infra": "workspace:*",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
"@vitejs/plugin-react-swc": "^3.6.0",
|
"@vitejs/plugin-react-swc": "^3.6.0",
|
||||||
|
|||||||
@@ -1,14 +1,29 @@
|
|||||||
import './polyfill/dispose';
|
import './polyfill/dispose';
|
||||||
// Side effect import, "declare global"
|
import '@affine/core/bootstrap/preload';
|
||||||
import '@affine/env/constant';
|
|
||||||
|
|
||||||
import { setup } from '@affine/core/bootstrap/setup';
|
import { appConfigProxy } from '@affine/core/hooks/use-app-config-storage';
|
||||||
import { performanceLogger } from '@affine/core/shared';
|
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 { createRoot } from 'react-dom/client';
|
||||||
|
import {
|
||||||
|
createRoutesFromChildren,
|
||||||
|
matchRoutes,
|
||||||
|
useLocation,
|
||||||
|
useNavigationType,
|
||||||
|
} from 'react-router-dom';
|
||||||
|
|
||||||
import { App } from './app';
|
import { App } from './app';
|
||||||
|
|
||||||
|
window.ResizeObserver = ResizeObserver;
|
||||||
|
|
||||||
const performanceMainLogger = performanceLogger.namespace('main');
|
const performanceMainLogger = performanceLogger.namespace('main');
|
||||||
function main() {
|
function main() {
|
||||||
performanceMainLogger.info('start');
|
performanceMainLogger.info('start');
|
||||||
@@ -18,7 +33,56 @@ function main() {
|
|||||||
performanceMainLogger.info('skip setup');
|
performanceMainLogger.info('skip setup');
|
||||||
} else {
|
} else {
|
||||||
performanceMainLogger.info('setup start');
|
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');
|
performanceMainLogger.info('setup done');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { fileURLToPath } from 'node:url';
|
|||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
||||||
import { getRuntimeConfig } from '@affine/cli/src/webpack/runtime-config';
|
import { getRuntimeConfig } from '@affine/cli/src/webpack/runtime-config';
|
||||||
|
import { sentryEsbuildPlugin } from '@sentry/esbuild-plugin';
|
||||||
import type { BuildOptions } from 'esbuild';
|
import type { BuildOptions } from 'esbuild';
|
||||||
|
|
||||||
export const electronDir = fileURLToPath(new URL('..', import.meta.url));
|
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 {
|
return {
|
||||||
entryPoints: [
|
entryPoints: [
|
||||||
resolve(electronDir, './src/main/index.ts'),
|
resolve(electronDir, './src/main/index.ts'),
|
||||||
@@ -48,5 +69,6 @@ export const config = (): BuildOptions => {
|
|||||||
assetNames: '[name]',
|
assetNames: '[name]',
|
||||||
treeShaking: true,
|
treeShaking: true,
|
||||||
sourcemap: 'linked',
|
sourcemap: 'linked',
|
||||||
|
plugins,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import './security-restrictions';
|
|||||||
|
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
|
|
||||||
|
import { init, IPCMode } from '@sentry/electron/main';
|
||||||
import { app } from 'electron';
|
import { app } from 'electron';
|
||||||
|
|
||||||
import { createApplicationMenu } from './application-menu/create';
|
import { createApplicationMenu } from './application-menu/create';
|
||||||
@@ -12,6 +13,7 @@ import { registerEvents } from './events';
|
|||||||
import { registerHandlers } from './handlers';
|
import { registerHandlers } from './handlers';
|
||||||
import { logger } from './logger';
|
import { logger } from './logger';
|
||||||
import { registerProtocol } from './protocol';
|
import { registerProtocol } from './protocol';
|
||||||
|
import { isOnline } from './ui/handlers';
|
||||||
import { registerUpdater } from './updater';
|
import { registerUpdater } from './updater';
|
||||||
import { launch } from './windows-manager/launcher';
|
import { launch } from './windows-manager/launcher';
|
||||||
import { launchStage } from './windows-manager/stage';
|
import { launchStage } from './windows-manager/stage';
|
||||||
@@ -64,6 +66,19 @@ app.on('activate', () => {
|
|||||||
|
|
||||||
setupDeepLink(app);
|
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
|
* Create app window when background process will be ready
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import { launchStage } from '../windows-manager/stage';
|
|||||||
import { getChallengeResponse } from './challenge';
|
import { getChallengeResponse } from './challenge';
|
||||||
import { getGoogleOauthCode } from './google-auth';
|
import { getGoogleOauthCode } from './google-auth';
|
||||||
|
|
||||||
|
export let isOnline = true;
|
||||||
|
|
||||||
export const uiHandlers = {
|
export const uiHandlers = {
|
||||||
isMaximized: async () => {
|
isMaximized: async () => {
|
||||||
const window = await getMainWindow();
|
const window = await getMainWindow();
|
||||||
@@ -58,6 +60,9 @@ export const uiHandlers = {
|
|||||||
handleCloseApp: async () => {
|
handleCloseApp: async () => {
|
||||||
app.quit();
|
app.quit();
|
||||||
},
|
},
|
||||||
|
handleNetworkChange: async (_, _isOnline: boolean) => {
|
||||||
|
isOnline = _isOnline;
|
||||||
|
},
|
||||||
getGoogleOauthCode: async () => {
|
getGoogleOauthCode: async () => {
|
||||||
return getGoogleOauthCode();
|
return getGoogleOauthCode();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
import '@sentry/electron/preload';
|
||||||
import './bootstrap';
|
import './bootstrap';
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
"@affine/core": "workspace:*",
|
"@affine/core": "workspace:*",
|
||||||
"@affine/env": "workspace:*",
|
"@affine/env": "workspace:*",
|
||||||
"@juggle/resize-observer": "^3.4.0",
|
"@juggle/resize-observer": "^3.4.0",
|
||||||
|
"@sentry/react": "^7.108.0",
|
||||||
"core-js": "^3.36.1",
|
"core-js": "^3.36.1",
|
||||||
"intl-segmenter-polyfill-rs": "^0.1.7",
|
"intl-segmenter-polyfill-rs": "^0.1.7",
|
||||||
"jotai": "^2.7.1",
|
"jotai": "^2.7.1",
|
||||||
|
|||||||
@@ -2,12 +2,24 @@ import './polyfill/dispose';
|
|||||||
import './polyfill/intl-segmenter';
|
import './polyfill/intl-segmenter';
|
||||||
import './polyfill/request-idle-callback';
|
import './polyfill/request-idle-callback';
|
||||||
import './polyfill/resize-observer';
|
import './polyfill/resize-observer';
|
||||||
|
import '@affine/core/bootstrap/preload';
|
||||||
|
|
||||||
import { setup } from '@affine/core/bootstrap/setup';
|
|
||||||
import { performanceLogger } from '@affine/core/shared';
|
import { performanceLogger } from '@affine/core/shared';
|
||||||
import { isDesktop } from '@affine/env/constant';
|
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 { createRoot } from 'react-dom/client';
|
||||||
|
import {
|
||||||
|
createRoutesFromChildren,
|
||||||
|
matchRoutes,
|
||||||
|
useLocation,
|
||||||
|
useNavigationType,
|
||||||
|
} from 'react-router-dom';
|
||||||
|
|
||||||
import { App } from './app';
|
import { App } from './app';
|
||||||
|
|
||||||
@@ -20,7 +32,27 @@ function main() {
|
|||||||
performanceMainLogger.info('skip setup');
|
performanceMainLogger.info('skip setup');
|
||||||
} else {
|
} else {
|
||||||
performanceMainLogger.info('setup start');
|
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');
|
performanceMainLogger.info('setup done');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,10 @@ const config: PlaywrightTestConfig = {
|
|||||||
port: 8080,
|
port: 8080,
|
||||||
timeout: 120 * 1000,
|
timeout: 120 * 1000,
|
||||||
reuseExistingServer: !process.env.CI,
|
reuseExistingServer: !process.env.CI,
|
||||||
|
stdout: 'pipe',
|
||||||
env: {
|
env: {
|
||||||
COVERAGE: process.env.COVERAGE || 'false',
|
COVERAGE: process.env.COVERAGE || 'false',
|
||||||
|
DISTRIBUTION: 'desktop',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import './polyfill';
|
import './polyfill';
|
||||||
import '@affine/component/theme/global.css';
|
import '@affine/component/theme/global.css';
|
||||||
import '@affine/component/theme/theme.css';
|
import '@affine/component/theme/theme.css';
|
||||||
|
import '@affine/core/bootstrap/preload';
|
||||||
import { createI18n } from '@affine/i18n';
|
import { createI18n } from '@affine/i18n';
|
||||||
import { ThemeProvider, useTheme } from 'next-themes';
|
import { ThemeProvider, useTheme } from 'next-themes';
|
||||||
import { useDarkMode } from 'storybook-dark-mode';
|
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 type { Preview } from '@storybook/react';
|
||||||
import { useLayoutEffect, useRef } from 'react';
|
import { useLayoutEffect, useRef } from 'react';
|
||||||
import { setup } from '@affine/core/bootstrap/setup';
|
|
||||||
import { WorkspaceFlavour } from '@affine/env/workspace';
|
import { WorkspaceFlavour } from '@affine/env/workspace';
|
||||||
import { ServiceCollection } from '@toeverything/infra';
|
import { ServiceCollection } from '@toeverything/infra';
|
||||||
import {
|
import {
|
||||||
@@ -81,7 +81,6 @@ const provider = services.provider();
|
|||||||
|
|
||||||
const store = createStore();
|
const store = createStore();
|
||||||
_setCurrentStore(store);
|
_setCurrentStore(store);
|
||||||
setup();
|
|
||||||
|
|
||||||
provider
|
provider
|
||||||
.get(WorkspaceManager)
|
.get(WorkspaceManager)
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ import { watchI18N } from '../util/i18n.js';
|
|||||||
import { createWebpackConfig } from '../webpack/webpack.config.js';
|
import { createWebpackConfig } from '../webpack/webpack.config.js';
|
||||||
|
|
||||||
const flags: BuildFlags = {
|
const flags: BuildFlags = {
|
||||||
distribution: 'browser',
|
distribution:
|
||||||
|
(process.env.DISTRIBUTION as BuildFlags['distribution']) ?? 'browser',
|
||||||
mode: 'development',
|
mode: 'development',
|
||||||
channel: 'canary',
|
channel: 'canary',
|
||||||
coverage: process.env.COVERAGE === 'true',
|
coverage: process.env.COVERAGE === 'true',
|
||||||
@@ -132,6 +133,8 @@ if (buildFlags.debugBlockSuite) {
|
|||||||
flags.localBlockSuite = localBlockSuite;
|
flags.localBlockSuite = localBlockSuite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.info(flags);
|
||||||
|
|
||||||
watchI18N();
|
watchI18N();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
390
yarn.lock
390
yarn.lock
@@ -351,8 +351,8 @@ __metadata:
|
|||||||
"@radix-ui/react-select": "npm:^2.0.0"
|
"@radix-ui/react-select": "npm:^2.0.0"
|
||||||
"@radix-ui/react-toolbar": "npm:^1.0.4"
|
"@radix-ui/react-toolbar": "npm:^1.0.4"
|
||||||
"@react-hookz/web": "npm:^24.0.4"
|
"@react-hookz/web": "npm:^24.0.4"
|
||||||
"@sentry/integrations": "npm:^7.102.1"
|
"@sentry/integrations": "npm:^7.108.0"
|
||||||
"@sentry/react": "npm:^7.102.1"
|
"@sentry/react": "npm:^7.108.0"
|
||||||
"@sentry/webpack-plugin": "npm:^2.14.2"
|
"@sentry/webpack-plugin": "npm:^2.14.2"
|
||||||
"@swc/core": "npm:^1.4.8"
|
"@swc/core": "npm:^1.4.8"
|
||||||
"@testing-library/react": "npm:^14.2.1"
|
"@testing-library/react": "npm:^14.2.1"
|
||||||
@@ -465,6 +465,9 @@ __metadata:
|
|||||||
"@electron-forge/shared-types": "npm:^7.3.0"
|
"@electron-forge/shared-types": "npm:^7.3.0"
|
||||||
"@emotion/react": "npm:^11.11.4"
|
"@emotion/react": "npm:^11.11.4"
|
||||||
"@pengx17/electron-forge-maker-appimage": "npm:^1.1.1"
|
"@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:*"
|
"@toeverything/infra": "workspace:*"
|
||||||
"@types/uuid": "npm:^9.0.8"
|
"@types/uuid": "npm:^9.0.8"
|
||||||
"@vitejs/plugin-react-swc": "npm:^3.6.0"
|
"@vitejs/plugin-react-swc": "npm:^3.6.0"
|
||||||
@@ -825,6 +828,7 @@ __metadata:
|
|||||||
"@affine/core": "workspace:*"
|
"@affine/core": "workspace:*"
|
||||||
"@affine/env": "workspace:*"
|
"@affine/env": "workspace:*"
|
||||||
"@juggle/resize-observer": "npm:^3.4.0"
|
"@juggle/resize-observer": "npm:^3.4.0"
|
||||||
|
"@sentry/react": "npm:^7.108.0"
|
||||||
"@types/react": "npm:^18.2.60"
|
"@types/react": "npm:^18.2.60"
|
||||||
"@types/react-dom": "npm:^18.2.19"
|
"@types/react-dom": "npm:^18.2.19"
|
||||||
core-js: "npm:^3.36.1"
|
core-js: "npm:^3.36.1"
|
||||||
@@ -1888,7 +1892,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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
|
version: 7.24.2
|
||||||
resolution: "@babel/code-frame@npm:7.24.2"
|
resolution: "@babel/code-frame@npm:7.24.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1928,30 +1932,30 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"@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.23.9
|
version: 7.24.3
|
||||||
resolution: "@babel/core@npm:7.23.9"
|
resolution: "@babel/core@npm:7.24.3"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ampproject/remapping": "npm:^2.2.0"
|
"@ampproject/remapping": "npm:^2.2.0"
|
||||||
"@babel/code-frame": "npm:^7.23.5"
|
"@babel/code-frame": "npm:^7.24.2"
|
||||||
"@babel/generator": "npm:^7.23.6"
|
"@babel/generator": "npm:^7.24.1"
|
||||||
"@babel/helper-compilation-targets": "npm:^7.23.6"
|
"@babel/helper-compilation-targets": "npm:^7.23.6"
|
||||||
"@babel/helper-module-transforms": "npm:^7.23.3"
|
"@babel/helper-module-transforms": "npm:^7.23.3"
|
||||||
"@babel/helpers": "npm:^7.23.9"
|
"@babel/helpers": "npm:^7.24.1"
|
||||||
"@babel/parser": "npm:^7.23.9"
|
"@babel/parser": "npm:^7.24.1"
|
||||||
"@babel/template": "npm:^7.23.9"
|
"@babel/template": "npm:^7.24.0"
|
||||||
"@babel/traverse": "npm:^7.23.9"
|
"@babel/traverse": "npm:^7.24.1"
|
||||||
"@babel/types": "npm:^7.23.9"
|
"@babel/types": "npm:^7.24.0"
|
||||||
convert-source-map: "npm:^2.0.0"
|
convert-source-map: "npm:^2.0.0"
|
||||||
debug: "npm:^4.1.0"
|
debug: "npm:^4.1.0"
|
||||||
gensync: "npm:^1.0.0-beta.2"
|
gensync: "npm:^1.0.0-beta.2"
|
||||||
json5: "npm:^2.2.3"
|
json5: "npm:^2.2.3"
|
||||||
semver: "npm:^6.3.1"
|
semver: "npm:^6.3.1"
|
||||||
checksum: 10/268cdbb86bef1b8ea5b1300f2f325e56a1740a5051360cb228ffeaa0f80282b6674f3a2b4d6466adb0691183759b88d4c37b4a4f77232c84a49ed771c84cdc27
|
checksum: 10/3a7b9931fe0d93c500dcdb6b36f038b0f9d5090c048818e62aa8321c8f6e8ccc3d47373f0b40591c1fe3b13e5096bacabb1ade83f9f4d86f57878c39a9d1ade1
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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
|
version: 7.24.1
|
||||||
resolution: "@babel/generator@npm:7.24.1"
|
resolution: "@babel/generator@npm:7.24.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -2201,14 +2205,14 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@babel/helpers@npm:^7.18.2, @babel/helpers@npm:^7.23.9":
|
"@babel/helpers@npm:^7.18.2, @babel/helpers@npm:^7.24.1":
|
||||||
version: 7.23.9
|
version: 7.24.1
|
||||||
resolution: "@babel/helpers@npm:7.23.9"
|
resolution: "@babel/helpers@npm:7.24.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/template": "npm:^7.23.9"
|
"@babel/template": "npm:^7.24.0"
|
||||||
"@babel/traverse": "npm:^7.23.9"
|
"@babel/traverse": "npm:^7.24.1"
|
||||||
"@babel/types": "npm:^7.23.9"
|
"@babel/types": "npm:^7.24.0"
|
||||||
checksum: 10/dd56daac8bbd7ed174bb00fd185926fd449e591d9a00edaceb7ac6edbdd7a8db57e2cb365b4fafda382201752789ced2f7ae010f667eab0f198a4571cda4d2c5
|
checksum: 10/82d3cdd3beafc4583f237515ef220bc205ced8b0540c6c6e191fc367a9589bd7304b8f9800d3d7574d4db9f079bd555979816b1874c86e53b3e7dd2032ad6c7c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2224,7 +2228,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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
|
version: 7.24.1
|
||||||
resolution: "@babel/parser@npm:7.24.1"
|
resolution: "@babel/parser@npm:7.24.1"
|
||||||
bin:
|
bin:
|
||||||
@@ -3406,18 +3410,18 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"@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.23.9
|
version: 7.24.0
|
||||||
resolution: "@babel/template@npm:7.23.9"
|
resolution: "@babel/template@npm:7.24.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame": "npm:^7.23.5"
|
"@babel/code-frame": "npm:^7.23.5"
|
||||||
"@babel/parser": "npm:^7.23.9"
|
"@babel/parser": "npm:^7.24.0"
|
||||||
"@babel/types": "npm:^7.23.9"
|
"@babel/types": "npm:^7.24.0"
|
||||||
checksum: 10/1b011ba9354dc2e646561d54b6862e0df51760e6179faadd79be05825b0b6da04911e4e192df943f1766748da3037fd8493615b38707f7cadb0cf0c96601c170
|
checksum: 10/8c538338c7de8fac8ada691a5a812bdcbd60bd4a4eb5adae2cc9ee19773e8fb1a724312a00af9e1ce49056ffd3c3475e7287b5668cf6360bfb3f8ac827a06ffe
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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
|
version: 7.24.1
|
||||||
resolution: "@babel/traverse@npm:7.24.1"
|
resolution: "@babel/traverse@npm:7.24.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3435,7 +3439,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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
|
version: 7.24.0
|
||||||
resolution: "@babel/types@npm:7.24.0"
|
resolution: "@babel/types@npm:7.24.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -11215,37 +11219,71 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry-internal/feedback@npm:7.102.1":
|
"@sentry-internal/feedback@npm:7.107.0":
|
||||||
version: 7.102.1
|
version: 7.107.0
|
||||||
resolution: "@sentry-internal/feedback@npm:7.102.1"
|
resolution: "@sentry-internal/feedback@npm:7.107.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/core": "npm:7.102.1"
|
"@sentry/core": "npm:7.107.0"
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/types": "npm:7.107.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
"@sentry/utils": "npm:7.107.0"
|
||||||
checksum: 10/1d7157f62844d8c06d59941c8fed48fd7987a7b76eaf81666d071ebefe4fc9fc6e43ced902725964191b613062f71f1bd98b99a199449aa2f5b187e90abb7568
|
checksum: 10/80045c253681cd34a83338c21cc99e4a7b0f882032e6f682bc5395b87ad36758cefd129acafb5ae3747b7d12ec12effaef2728eea85a184fe27177b01a4186fa
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry-internal/replay-canvas@npm:7.102.1":
|
"@sentry-internal/feedback@npm:7.108.0":
|
||||||
version: 7.102.1
|
version: 7.108.0
|
||||||
resolution: "@sentry-internal/replay-canvas@npm:7.102.1"
|
resolution: "@sentry-internal/feedback@npm:7.108.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/core": "npm:7.102.1"
|
"@sentry/core": "npm:7.108.0"
|
||||||
"@sentry/replay": "npm:7.102.1"
|
"@sentry/types": "npm:7.108.0"
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/utils": "npm:7.108.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
checksum: 10/74cba185f9bde1e4e2405061684b8380157c30c9e4ecf51d94c94dcfeb922f2fa2e3b1c62569f8cd19b78d8f8abefd70bf3d319093a02b74956a9987747e1524
|
||||||
checksum: 10/737a437925267bb0296b8d1d742cfee2154fdf6dd1ad13a9148a658b98d5c19dbbfbd85014770e704d6a36d802e59370761185e23c69eadfefcde74fc08e95a6
|
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry-internal/tracing@npm:7.102.1":
|
"@sentry-internal/replay-canvas@npm:7.107.0":
|
||||||
version: 7.102.1
|
version: 7.107.0
|
||||||
resolution: "@sentry-internal/tracing@npm:7.102.1"
|
resolution: "@sentry-internal/replay-canvas@npm:7.107.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/core": "npm:7.102.1"
|
"@sentry/core": "npm:7.107.0"
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/replay": "npm:7.107.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
"@sentry/types": "npm:7.107.0"
|
||||||
checksum: 10/5577d8cdd92187ebfe4213d52c3fa13d013528d04b09d63c112a0460c5a1c9d6d890653c0379e30fdff9d324894f85931551bda1a9734c02ac6b26b70a806562
|
"@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
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -11256,18 +11294,40 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry/browser@npm:7.102.1":
|
"@sentry/babel-plugin-component-annotate@npm:2.16.0":
|
||||||
version: 7.102.1
|
version: 2.16.0
|
||||||
resolution: "@sentry/browser@npm:7.102.1"
|
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:
|
dependencies:
|
||||||
"@sentry-internal/feedback": "npm:7.102.1"
|
"@sentry-internal/feedback": "npm:7.107.0"
|
||||||
"@sentry-internal/replay-canvas": "npm:7.102.1"
|
"@sentry-internal/replay-canvas": "npm:7.107.0"
|
||||||
"@sentry-internal/tracing": "npm:7.102.1"
|
"@sentry-internal/tracing": "npm:7.107.0"
|
||||||
"@sentry/core": "npm:7.102.1"
|
"@sentry/core": "npm:7.107.0"
|
||||||
"@sentry/replay": "npm:7.102.1"
|
"@sentry/replay": "npm:7.107.0"
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/types": "npm:7.107.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
"@sentry/utils": "npm:7.107.0"
|
||||||
checksum: 10/709b3d74ad115801e3e3934f1bc56e160c9e963ac34c68dc971dc5dfad0bf1ad64c1da8a84b5297c11e3d39046412443c1e9802a5eb6ebcf588bdd85d2823f89
|
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
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -11287,6 +11347,22 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"@sentry/cli-darwin@npm:2.28.6":
|
||||||
version: 2.28.6
|
version: 2.28.6
|
||||||
resolution: "@sentry/cli-darwin@npm:2.28.6"
|
resolution: "@sentry/cli-darwin@npm:2.28.6"
|
||||||
@@ -11373,68 +11449,144 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry/core@npm:7.102.1":
|
"@sentry/core@npm:7.107.0":
|
||||||
version: 7.102.1
|
version: 7.107.0
|
||||||
resolution: "@sentry/core@npm:7.102.1"
|
resolution: "@sentry/core@npm:7.107.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/types": "npm:7.107.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
"@sentry/utils": "npm:7.107.0"
|
||||||
checksum: 10/8a4e75aa0b366be9801b309f3e2d1bf8e9b4a8b4532b5e17134e0a9d5eb07691151be1fff9fe592a07522a2c5d29d854234eac339235f664a395ea131ce7f20f
|
checksum: 10/79465058a0bc45653bfbd319b9d28e55ee97adaaf1e240c4717ea5bfea37fe8d57affce89c2e2b3151d3a1894897833dcedb3d2685c059d5ca8b81f803ff6b4b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry/integrations@npm:^7.102.1":
|
"@sentry/core@npm:7.108.0":
|
||||||
version: 7.102.1
|
version: 7.108.0
|
||||||
resolution: "@sentry/integrations@npm:7.102.1"
|
resolution: "@sentry/core@npm:7.108.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/core": "npm:7.102.1"
|
"@sentry/types": "npm:7.108.0"
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/utils": "npm:7.108.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
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"
|
localforage: "npm:^1.8.1"
|
||||||
checksum: 10/f9af4b9fdb436dfecc067fd5c87d2df0e8014a4ed78b7d42e86f47c583519917f0185e4d4f669cc207e44b369b6dd604dec04a67131ef11942fb50b023860047
|
checksum: 10/6c9bce95bb35c6d20c6fd699b77258dbc1390e9fc8e109a2f79f16abc53c76f7594be2eb6a0471d64677436928840d84c81ced69f2378b9c61f257e87e533f2a
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry/react@npm:^7.102.1":
|
"@sentry/node@npm:7.107.0":
|
||||||
version: 7.102.1
|
version: 7.107.0
|
||||||
resolution: "@sentry/react@npm:7.102.1"
|
resolution: "@sentry/node@npm:7.107.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/browser": "npm:7.102.1"
|
"@sentry-internal/tracing": "npm:7.107.0"
|
||||||
"@sentry/core": "npm:7.102.1"
|
"@sentry/core": "npm:7.107.0"
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/types": "npm:7.107.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
"@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"
|
hoist-non-react-statics: "npm:^3.3.2"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: 15.x || 16.x || 17.x || 18.x
|
react: 15.x || 16.x || 17.x || 18.x
|
||||||
checksum: 10/74bb55ed1775e4b14b0c89e25b028ff47cbe826b3072f14fd13d0bd88fb6b7a732962c949a8bc7b8bcd173e7d1531858a4f70de915c539ddf880284426fafddc
|
checksum: 10/acda065ea91915cb93b36087a57c8fae0408012594265315074ec6882faaca27ac436cda990ce743f3f4c772e6a074bc9916c358569ab4702fecf95bacf159b7
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry/replay@npm:7.102.1":
|
"@sentry/replay@npm:7.107.0":
|
||||||
version: 7.102.1
|
version: 7.107.0
|
||||||
resolution: "@sentry/replay@npm:7.102.1"
|
resolution: "@sentry/replay@npm:7.107.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry-internal/tracing": "npm:7.102.1"
|
"@sentry-internal/tracing": "npm:7.107.0"
|
||||||
"@sentry/core": "npm:7.102.1"
|
"@sentry/core": "npm:7.107.0"
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry/types": "npm:7.107.0"
|
||||||
"@sentry/utils": "npm:7.102.1"
|
"@sentry/utils": "npm:7.107.0"
|
||||||
checksum: 10/ad2cf119298a9b62e7440033b531d983d126f4d9603471baef188cc2f0a8f48bec90eb5d8b920f4d364ed003f128a3dc4551a1456fd8c208914dd29a089b3e21
|
checksum: 10/9797c876a738a37bf42b3ae8b5ea35d4de5555999906cb8293dce395d42010959b27c1e8954dc49b24ab88e79e56de5e94c934a4c4c8cbe8e3756ea44b42e16b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@sentry/types@npm:7.102.1":
|
"@sentry/replay@npm:7.108.0":
|
||||||
version: 7.102.1
|
version: 7.108.0
|
||||||
resolution: "@sentry/types@npm:7.102.1"
|
resolution: "@sentry/replay@npm:7.108.0"
|
||||||
checksum: 10/794aeeb398f37374f7527de5490e6ae220c2e4ae190a5c6eed3cf3facbe65b603ce8e74691441701cc65294028b0e16eeb7394d07ef498098c207183dcc7f963
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@sentry/utils@npm:7.102.1":
|
|
||||||
version: 7.102.1
|
|
||||||
resolution: "@sentry/utils@npm:7.102.1"
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types": "npm:7.102.1"
|
"@sentry-internal/tracing": "npm:7.108.0"
|
||||||
checksum: 10/9ec4f4778eac7ac36d0fed2ab4a1fbe9953a5a18258255bbc7a65db93739f87d7d10cb92afea05c2db8bd219f2c4db1715088f2a0cdc9b6892c4cc65e5d97386
|
"@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
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -19142,6 +19294,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"deepmerge@npm:^4.2.2":
|
||||||
version: 4.3.1
|
version: 4.3.1
|
||||||
resolution: "deepmerge@npm:4.3.1"
|
resolution: "deepmerge@npm:4.3.1"
|
||||||
@@ -22509,6 +22668,18 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"global-agent@npm:^3.0.0":
|
||||||
version: 3.0.0
|
version: 3.0.0
|
||||||
resolution: "global-agent@npm:3.0.0"
|
resolution: "global-agent@npm:3.0.0"
|
||||||
@@ -27749,6 +27920,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"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
|
version: 1.2.8
|
||||||
resolution: "minimist@npm:1.2.8"
|
resolution: "minimist@npm:1.2.8"
|
||||||
|
|||||||
Reference in New Issue
Block a user