From 65d9d162c66598b17a439da86f756bf9da53fa54 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 19 Aug 2026 22:23:52 +0200 Subject: [PATCH 01/10] feat!: vNext --- package.json | 14 +- src/common/span-data-backfill.ts | 18 + src/main/index.ts | 19 +- src/main/integrations/child-process.ts | 12 +- src/main/integrations/electron-breadcrumbs.ts | 14 +- src/main/integrations/net-breadcrumbs.ts | 13 +- src/main/sdk.ts | 21 +- src/renderer/index.ts | 11 +- src/renderer/sdk.ts | 2 +- src/utility/index.ts | 19 +- src/utility/sdk.ts | 13 +- .../javascript/main-error/src/main.js | 1 - .../browser-profiling-manual/src/index.html | 7 +- .../other/browser-profiling-manual/test.ts | 107 +-- .../browser-profiling-trace/package.json | 1 - .../browser-profiling-trace/src/index.html | 6 +- .../other/browser-profiling-trace/test.ts | 107 +-- .../test-apps/other/browser-replay/test.ts | 2 +- .../test-apps/other/browser-tracing/test.ts | 156 +--- .../test-apps/other/capture-console/test.ts | 16 + .../e2e/test-apps/other/child-process/test.ts | 15 + .../test-apps/other/circular-merge/test.ts | 16 + .../test-apps/other/custom-tracing/test.ts | 77 +- .../other/net-breadcrumbs-tracing/test.ts | 105 ++- test/e2e/test-apps/other/no-pii/src/main.js | 3 + test/e2e/test-apps/other/no-pii/test.ts | 1 + .../other/node-profiling/package.json | 2 +- .../other/node-profiling/src/main.js | 3 +- .../test-apps/other/node-profiling/test.ts | 175 ++-- .../other/renderer-error/src/main.js | 3 +- .../startup-tracing-split/package.json | 2 +- .../startup-tracing-split/src/index.html | 4 +- .../startup-tracing-split/src/main.js | 1 - .../startup-tracing-split/test.ts | 0 .../other/startup-tracing/src/index.html | 2 +- .../test-apps/other/startup-tracing/test.ts | 177 ++-- .../e2e/test-apps/sessions/window-bad/test.ts | 2 + .../browser-profiling-manual/package.json | 9 - .../browser-profiling-manual/src/index.html | 54 -- .../browser-profiling-manual/src/main.js | 25 - .../browser-profiling-manual/test.ts | 94 --- .../browser-profiling-trace/package.json | 9 - .../browser-profiling-trace/src/index.html | 48 -- .../browser-profiling-trace/src/main.js | 25 - .../browser-profiling-trace/test.ts | 94 --- .../browser-tracing/package.json | 9 - .../browser-tracing/src/index.html | 18 - .../browser-tracing/src/main.js | 24 - .../span-streaming/browser-tracing/test.ts | 54 -- .../custom-tracing/package.json | 9 - .../span-streaming/custom-tracing/src/main.js | 22 - .../span-streaming/custom-tracing/test.ts | 56 -- .../net-breadcrumbs-tracing/package.json | 10 - .../net-breadcrumbs-tracing/src/main.js | 26 - .../net-breadcrumbs-tracing/test.ts | 88 -- .../node-profiling/package.json | 14 - .../node-profiling/src/index.html | 15 - .../span-streaming/node-profiling/src/main.js | 51 -- .../span-streaming/node-profiling/test.ts | 78 -- .../startup-tracing/package.json | 9 - .../startup-tracing/src/index.html | 18 - .../startup-tracing/src/main.js | 25 - .../span-streaming/startup-tracing/test.ts | 82 -- test/e2e/utils.ts | 2 +- test/unit/net-trace-propagation.test.ts | 30 +- yarn.lock | 791 ++++++++++++------ 66 files changed, 1085 insertions(+), 1851 deletions(-) create mode 100644 src/common/span-data-backfill.ts rename test/e2e/test-apps/{span-streaming => other}/startup-tracing-split/package.json (57%) rename test/e2e/test-apps/{span-streaming => other}/startup-tracing-split/src/index.html (84%) rename test/e2e/test-apps/{span-streaming => other}/startup-tracing-split/src/main.js (96%) rename test/e2e/test-apps/{span-streaming => other}/startup-tracing-split/test.ts (100%) delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-manual/package.json delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-manual/src/index.html delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-manual/src/main.js delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-manual/test.ts delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-trace/package.json delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-trace/src/index.html delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-trace/src/main.js delete mode 100644 test/e2e/test-apps/span-streaming/browser-profiling-trace/test.ts delete mode 100644 test/e2e/test-apps/span-streaming/browser-tracing/package.json delete mode 100644 test/e2e/test-apps/span-streaming/browser-tracing/src/index.html delete mode 100644 test/e2e/test-apps/span-streaming/browser-tracing/src/main.js delete mode 100644 test/e2e/test-apps/span-streaming/browser-tracing/test.ts delete mode 100644 test/e2e/test-apps/span-streaming/custom-tracing/package.json delete mode 100644 test/e2e/test-apps/span-streaming/custom-tracing/src/main.js delete mode 100644 test/e2e/test-apps/span-streaming/custom-tracing/test.ts delete mode 100644 test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/package.json delete mode 100644 test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/src/main.js delete mode 100644 test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/test.ts delete mode 100644 test/e2e/test-apps/span-streaming/node-profiling/package.json delete mode 100644 test/e2e/test-apps/span-streaming/node-profiling/src/index.html delete mode 100644 test/e2e/test-apps/span-streaming/node-profiling/src/main.js delete mode 100644 test/e2e/test-apps/span-streaming/node-profiling/test.ts delete mode 100644 test/e2e/test-apps/span-streaming/startup-tracing/package.json delete mode 100644 test/e2e/test-apps/span-streaming/startup-tracing/src/index.html delete mode 100644 test/e2e/test-apps/span-streaming/startup-tracing/src/main.js delete mode 100644 test/e2e/test-apps/span-streaming/startup-tracing/test.ts diff --git a/package.json b/package.json index 6ef3a812a..961ba0fd4 100644 --- a/package.json +++ b/package.json @@ -105,13 +105,15 @@ "e2e": "xvfb-maybe vitest run --root=./test/e2e --silent=false --disable-console-intercept" }, "dependencies": { - "@sentry/browser": "10.70.0", + "@sentry/browser": "11.0.0-alpha.0", "@sentry/conventions": "^0.16.0", - "@sentry/core": "10.70.0", - "@sentry/node": "10.70.0" + "@sentry/core": "11.0.0-alpha.0", + "@sentry/node": "11.0.0-alpha.0", + "@sentry/opentelemetry": "11.0.0-alpha.0", + "@sentry/server-utils": "11.0.0-alpha.0" }, "peerDependencies": { - "@sentry/node-native": "10.70.0" + "@sentry/node-native": "11.0.0-alpha.0" }, "peerDependenciesMeta": { "@sentry/node-native": { @@ -120,8 +122,8 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^12.1.3", - "@sentry/eslint-plugin-sdk": "10.70.0", - "@sentry/node-native": "10.70.0", + "@sentry/eslint-plugin-sdk": "11.0.0-alpha.0", + "@sentry/node-native": "11.0.0-alpha.0", "@types/busboy": "^1.5.4", "@types/koa": "^2.0.52", "@types/koa-bodyparser": "^4.3.0", diff --git a/src/common/span-data-backfill.ts b/src/common/span-data-backfill.ts new file mode 100644 index 000000000..266a2af7d --- /dev/null +++ b/src/common/span-data-backfill.ts @@ -0,0 +1,18 @@ +import { hasSpanStreamingEnabled } from '@sentry/core'; +import type { NodeClient } from '@sentry/node'; +import { applyOtelSpanData, backfillStreamedSpanDataFromOtel } from '@sentry/opentelemetry'; + +/** + * Backfill Sentry span data (op, source, name, status) from OpenTelemetry semantic attributes, mirroring the + * `@sentry/node` init. Channel-based instrumentation stamps OTel semantic attributes on native Sentry spans but + * leaves the Sentry-convention fields (e.g. `sentry.op`) to be inferred. + */ +export function setupSpanDataBackfill(client: NodeClient): void { + client.on('spanEnd', (span) => { + applyOtelSpanData(span, { finalizeStatus: true }); + }); + + if (hasSpanStreamingEnabled(client)) { + client.on('preprocessSpan', backfillStreamedSpanDataFromOtel); + } +} diff --git a/src/main/index.ts b/src/main/index.ts index 4b8c9bf9e..dd2cc1415 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -22,7 +22,6 @@ export { addIntegration, amqplibIntegration, anthropicAIIntegration, - applyDiagnosticsChannelInjectionIntegrations, bindScopeToEmitter, buildLaunchDarklyFlagUsedHandler, captureCheckIn, @@ -33,7 +32,6 @@ export { captureMessage, captureSession, close, - connectIntegration, consoleIntegration, consoleLoggingIntegration, contextLinesIntegration, @@ -46,7 +44,6 @@ export { cron, dataloaderIntegration, dedupeIntegration, - diagnosticsChannelInjectionIntegrations, endSession, eventFiltersIntegration, expressErrorHandler, @@ -58,7 +55,6 @@ export { flush, fsIntegration, functionToStringIntegration, - generateInstrumentOnce, genericPoolIntegration, getActiveSpan, getAutoPerformanceIntegrations, @@ -66,6 +62,7 @@ export { getCurrentScope, getGlobalScope, getIsolationScope, + getOtlpTracesEndpoint, getRootSpan, getSpanDescendants, getSpanStatusFromHttpCode, @@ -75,23 +72,18 @@ export { growthbookIntegration, graphqlIntegration, hapiIntegration, - honoIntegration, httpHeadersToSpanAttributes, httpIntegration, httpServerIntegration, httpServerSpansIntegration, - // eslint-disable-next-line deprecation/deprecation - inboundFiltersIntegration, initOpenTelemetry, instrumentAnthropicAiClient, instrumentGoogleGenAIClient, instrumentLangChainEmbeddings, - instrumentLangGraph, instrumentOpenAiClient, instrumentStateGraph, instrumentStateGraphCompile, instrumentSupabaseClient, - isDiagnosticsChannelInjectionEnabled, isEnabled, isInitialized, kafkaIntegration, @@ -119,6 +111,7 @@ export { openAIIntegration, OpenFeatureIntegrationHook, openFeatureIntegration, + otlpIntegration, parameterize, pinoIntegration, postgresIntegration, @@ -133,7 +126,6 @@ export { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, - SentryContextManager, setAttribute, setAttributes, setConversationId, @@ -143,14 +135,12 @@ export { setExtras, setHttpStatus, setMeasurement, - setNodeAsyncContextStrategy, + setOpenTelemetryContextAsyncContextStrategy, setTag, setTags, - setupConnectErrorHandler, setupExpressErrorHandler, setupFastifyErrorHandler, setupHapiErrorHandler, - setupHonoErrorHandler, setupKoaErrorHandler, setUser, spanStreamingIntegration, @@ -171,13 +161,12 @@ export { trpcMiddleware, unleashIntegration, updateSpanName, - experimentalUseDiagnosticsChannelInjection, - validateOpenTelemetrySetup, winterCGHeadersToDict, withActiveSpan, withIsolationScope, withMonitor, withScope, + withStaticSpan, withStreamedSpan, wrapMcpServerWithSentry, zodErrorsIntegration, diff --git a/src/main/integrations/child-process.ts b/src/main/integrations/child-process.ts index 6fab7b75f..ca05b30ea 100644 --- a/src/main/integrations/child-process.ts +++ b/src/main/integrations/child-process.ts @@ -18,11 +18,20 @@ export interface ChildProcessOptions extends NodeChildProcessOptions { breadcrumbs: Readonly; /** Child process events that generate Sentry events */ events: Readonly; + /** + * Whether to also capture Sentry logs for child process events + * + * Logs are only sent if they have not been disabled via the `enableLogs` client option. + * + * default: false + */ + captureLogs: boolean; } const DEFAULT_OPTIONS: ChildProcessOptions = { breadcrumbs: EXIT_REASONS, events: ['abnormal-exit', 'launch-failed', 'integrity-failure'], + captureLogs: false, }; type LogFn = (msg: ParameterizedString, attributes: Log['attributes']) => void; @@ -63,6 +72,7 @@ export const childProcessIntegration = defineIntegration((userOptions: Partial 0) { const clientOptions = client.getOptions() as ElectronMainOptions; - const enableLogs = !!clientOptions?.enableLogs; + const enableLogs = options.captureLogs && clientOptions?.enableLogs !== false; app.on('child-process-gone', (_, details) => { const { reason } = details; diff --git a/src/main/integrations/electron-breadcrumbs.ts b/src/main/integrations/electron-breadcrumbs.ts index 39d14ac37..722e93510 100644 --- a/src/main/integrations/electron-breadcrumbs.ts +++ b/src/main/integrations/electron-breadcrumbs.ts @@ -55,6 +55,15 @@ export interface ElectronBreadcrumbsOptions { * default: false */ captureWindowTitles: boolean; + + /** + * Whether to also capture Sentry logs for Electron events + * + * Logs are only sent if they have not been disabled via the `enableLogs` client option. + * + * default: false + */ + captureLogs: boolean; } const DEFAULT_OPTIONS: ElectronBreadcrumbsOptions = { @@ -81,6 +90,7 @@ const DEFAULT_OPTIONS: ElectronBreadcrumbsOptions = { screen: () => true, powerMonitor: () => true, captureWindowTitles: false, + captureLogs: false, }; /** Converts all user supplied options to function | false */ @@ -89,7 +99,7 @@ export function normalizeOptions( ): Partial> { return (Object.keys(options) as (keyof ElectronBreadcrumbsOptions)[]).reduce( (obj, k) => { - if (k === 'captureWindowTitles') { + if (k === 'captureWindowTitles' || k === 'captureLogs') { obj[k] = !!options[k]; } else { const val: EventTypes = options[k]; @@ -120,7 +130,7 @@ export const electronBreadcrumbsIntegration = defineIntegration( name: 'ElectronBreadcrumbs', setup(client: NodeClient) { const clientOptions = client.getOptions() as ElectronMainOptions | undefined; - const enableLogs = !!clientOptions?.enableLogs; + const enableLogs = options.captureLogs && clientOptions?.enableLogs !== false; function patchEventEmitter( emitter: NodeJS.EventEmitter | WebContents | BrowserWindow, diff --git a/src/main/integrations/net-breadcrumbs.ts b/src/main/integrations/net-breadcrumbs.ts index d15801240..789822c4f 100644 --- a/src/main/integrations/net-breadcrumbs.ts +++ b/src/main/integrations/net-breadcrumbs.ts @@ -37,6 +37,14 @@ export interface NetOptions { * Defaults to: true */ tracing?: ShouldTraceFn | boolean; + /** + * Whether to also capture Sentry logs for net requests + * + * Logs are only sent if they have not been disabled via the `enableLogs` client option. + * + * Defaults to: false + */ + captureLogs?: boolean; } /** @@ -98,9 +106,10 @@ type RequestMethod = (opt: RequestOptions, ...args: unknown[]) => ClientRequest; type WrappedRequestMethodFactory = (original: RequestMethod) => RequestMethod; function createWrappedRequestFactory( - { tracing, breadcrumbs }: NetOptions, + { tracing, breadcrumbs, captureLogs }: NetOptions, { enableLogs, tracePropagationTargets, propagateTraceparent }: ClientOptions, ): WrappedRequestMethodFactory { + const logsEnabled = !!captureLogs && enableLogs !== false; // We're caching results so we don't have to recompute regexp every time we create a request. const createSpanUrlMap = new LRUMap(100); const headersUrlMap = new LRUMap(100); @@ -176,7 +185,7 @@ function createWrappedRequestFactory( }, ); - if (!enableLogs) { + if (!logsEnabled) { return; } diff --git a/src/main/sdk.ts b/src/main/sdk.ts index 44c8ad179..993736c3d 100644 --- a/src/main/sdk.ts +++ b/src/main/sdk.ts @@ -12,18 +12,18 @@ import { eventFiltersIntegration, functionToStringIntegration, getCurrentScope, - initOpenTelemetry, linkedErrorsIntegration, localVariablesIntegration, nativeNodeFetchIntegration, NodeClient, nodeContextIntegration, onUnhandledRejectionIntegration, - setNodeAsyncContextStrategy, } from '@sentry/node'; +import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; import type { Session, WebContents } from 'electron'; import { session } from 'electron'; import { IPCMode } from '../common/ipc.js'; +import { setupSpanDataBackfill } from '../common/span-data-backfill.js'; import { getDefaultEnvironment, getDefaultReleaseName, getSdkInfo } from './context.js'; import { additionalContextIntegration } from './integrations/additional-context.js'; import { childProcessIntegration } from './integrations/child-process.js'; @@ -155,12 +155,6 @@ export type ElectronMainOptions = Pick< Omit & NodeOptions; -function resolveUserInfo(options: ElectronMainOptions): boolean { - const base = options.dataCollection != null ? true : !!options.sendDefaultPii; - const dc = options.dataCollection ?? {}; - return dc.userInfo ?? base; -} - /** * Initialize Sentry in the Electron main process */ @@ -171,7 +165,7 @@ export function init(userOptions: ElectronMainOptions): void { throw new Error('Sentry Electron SDK requires Electron 23 or higher'); } - const inferIpAddress = resolveUserInfo(userOptions); + const inferIpAddress = userOptions.dataCollection?.userInfo ?? true; const optionsWithDefaults = { _metadata: { sdk: getSdkInfo(inferIpAddress) }, @@ -200,12 +194,13 @@ export function init(userOptions: ElectronMainOptions): void { removeRedundantIntegrations(options); configureUtilityProcessIPC(); - setNodeAsyncContextStrategy(); + const asyncLocalStorage = setAsyncLocalStorageAsyncContextStrategy(); const scope = getCurrentScope(); scope.update(options.initialScope); const client = new NodeClient(options); + client.asyncLocalStorageLookup = { asyncLocalStorage }; if (inferIpAddress) { client.on('beforeSendSession', addAutoIpAddressToSession); @@ -224,11 +219,7 @@ export function init(userOptions: ElectronMainOptions): void { configureIPC(client, options); - // If users opt-out of this, they _have_ to set up OpenTelemetry themselves - // There is no way to use this SDK without OpenTelemetry! - if (!options.skipOpenTelemetrySetup) { - initOpenTelemetry(client); - } + setupSpanDataBackfill(client); } /** A list of integrations which cause default integrations to be removed */ diff --git a/src/renderer/index.ts b/src/renderer/index.ts index 4ae62f7ef..0e7a411af 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -43,7 +43,6 @@ export { contextLinesIntegration, continueTrace, createConsolaReporter, - createLangChainCallbackHandler, createTransport, createUserFeedbackEnvelope, dedupeIntegration, @@ -79,14 +78,6 @@ export { growthbookIntegration, httpClientIntegration, httpContextIntegration, - // eslint-disable-next-line deprecation/deprecation - inboundFiltersIntegration, - instrumentAnthropicAiClient, - instrumentCreateReactAgent, - instrumentGoogleGenAIClient, - instrumentLangChainEmbeddings, - instrumentLangGraph, - instrumentOpenAiClient, instrumentOutgoingRequests, instrumentStateGraph, instrumentSupabaseClient, @@ -146,6 +137,7 @@ export { suppressTracing, thirdPartyErrorFilterIntegration, uiProfiler, + userTimingIntegration, unleashIntegration, updateSpanName, webVitalsIntegration, @@ -153,6 +145,7 @@ export { withActiveSpan, withIsolationScope, withScope, + withStaticSpan, withStreamedSpan, viewHierarchyIntegration, zodErrorsIntegration, diff --git a/src/renderer/sdk.ts b/src/renderer/sdk.ts index ae79c767f..061baacad 100644 --- a/src/renderer/sdk.ts +++ b/src/renderer/sdk.ts @@ -49,7 +49,7 @@ interface ElectronRendererOptions extends Partial( options: ElectronRendererOptions & O = {} as ElectronRendererOptions & O, // This parameter name ensures that TypeScript error messages contain a hint for fixing SDK version mismatches - originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v10_70_0: O) => void = browserInit, + originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_alpha_0: O) => void = browserInit, ): void { // Ensure the browser SDK is only init'ed once. if (window?.__SENTRY__RENDERER_INIT__) { diff --git a/src/utility/index.ts b/src/utility/index.ts index 5a424becf..36152e9cd 100644 --- a/src/utility/index.ts +++ b/src/utility/index.ts @@ -22,7 +22,6 @@ export { addIntegration, amqplibIntegration, anthropicAIIntegration, - applyDiagnosticsChannelInjectionIntegrations, bindScopeToEmitter, buildLaunchDarklyFlagUsedHandler, captureCheckIn, @@ -34,7 +33,6 @@ export { captureSession, childProcessIntegration, close, - connectIntegration, consoleIntegration, consoleLoggingIntegration, contextLinesIntegration, @@ -47,7 +45,6 @@ export { cron, dataloaderIntegration, dedupeIntegration, - diagnosticsChannelInjectionIntegrations, endSession, eventFiltersIntegration, expressErrorHandler, @@ -59,7 +56,6 @@ export { flush, fsIntegration, functionToStringIntegration, - generateInstrumentOnce, genericPoolIntegration, getActiveSpan, getAutoPerformanceIntegrations, @@ -67,6 +63,7 @@ export { getCurrentScope, getGlobalScope, getIsolationScope, + getOtlpTracesEndpoint, getRootSpan, getSpanDescendants, getSpanStatusFromHttpCode, @@ -76,23 +73,18 @@ export { growthbookIntegration, graphqlIntegration, hapiIntegration, - honoIntegration, httpHeadersToSpanAttributes, httpIntegration, httpServerIntegration, httpServerSpansIntegration, - // eslint-disable-next-line deprecation/deprecation - inboundFiltersIntegration, initOpenTelemetry, instrumentAnthropicAiClient, instrumentGoogleGenAIClient, instrumentLangChainEmbeddings, - instrumentLangGraph, instrumentOpenAiClient, instrumentStateGraph, instrumentStateGraphCompile, instrumentSupabaseClient, - isDiagnosticsChannelInjectionEnabled, isEnabled, isInitialized, kafkaIntegration, @@ -121,6 +113,7 @@ export { openAIIntegration, OpenFeatureIntegrationHook, openFeatureIntegration, + otlpIntegration, parameterize, pinoIntegration, postgresIntegration, @@ -135,7 +128,6 @@ export { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, - SentryContextManager, setAttribute, setAttributes, setConversationId, @@ -145,14 +137,12 @@ export { setExtras, setHttpStatus, setMeasurement, - setNodeAsyncContextStrategy, + setOpenTelemetryContextAsyncContextStrategy, setTag, setTags, - setupConnectErrorHandler, setupExpressErrorHandler, setupFastifyErrorHandler, setupHapiErrorHandler, - setupHonoErrorHandler, setupKoaErrorHandler, setUser, spanStreamingIntegration, @@ -173,13 +163,12 @@ export { trpcMiddleware, unleashIntegration, updateSpanName, - experimentalUseDiagnosticsChannelInjection, - validateOpenTelemetrySetup, winterCGHeadersToDict, withActiveSpan, withIsolationScope, withMonitor, withScope, + withStaticSpan, withStreamedSpan, wrapMcpServerWithSentry, zodErrorsIntegration, diff --git a/src/utility/sdk.ts b/src/utility/sdk.ts index df59c65a9..fde1ff49e 100644 --- a/src/utility/sdk.ts +++ b/src/utility/sdk.ts @@ -13,14 +13,14 @@ import { eventFiltersIntegration, functionToStringIntegration, getCurrentScope, - initOpenTelemetry, linkedErrorsIntegration, nativeNodeFetchIntegration, NodeClient, onUncaughtExceptionIntegration, onUnhandledRejectionIntegration, - setNodeAsyncContextStrategy, } from '@sentry/node'; +import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; +import { setupSpanDataBackfill } from '../common/span-data-backfill.js'; import { makeUtilityProcessTransport } from './transport.js'; export const defaultStackParser: StackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename())); @@ -65,18 +65,15 @@ export function init(userOptions: NodeOptions = {}): void { debug.enable(); } - setNodeAsyncContextStrategy(); + const asyncLocalStorage = setAsyncLocalStorageAsyncContextStrategy(); const scope = getCurrentScope(); scope.update(options.initialScope); const client = new NodeClient(options); + client.asyncLocalStorageLookup = { asyncLocalStorage }; scope.setClient(client); client.init(); - // If users opt-out of this, they _have_ to set up OpenTelemetry themselves - // There is no way to use this SDK without OpenTelemetry! - if (!options.skipOpenTelemetrySetup) { - initOpenTelemetry(client); - } + setupSpanDataBackfill(client); } diff --git a/test/e2e/test-apps/javascript/main-error/src/main.js b/test/e2e/test-apps/javascript/main-error/src/main.js index 2b96a4c15..81f678d7a 100644 --- a/test/e2e/test-apps/javascript/main-error/src/main.js +++ b/test/e2e/test-apps/javascript/main-error/src/main.js @@ -6,7 +6,6 @@ const { init } = require('@sentry/electron/main'); init({ dsn: '__DSN__', debug: true, - sendDefaultPii: true, onFatalError: () => {}, }); diff --git a/test/e2e/test-apps/other/browser-profiling-manual/src/index.html b/test/e2e/test-apps/other/browser-profiling-manual/src/index.html index 76361f16b..7ffb6e501 100644 --- a/test/e2e/test-apps/other/browser-profiling-manual/src/index.html +++ b/test/e2e/test-apps/other/browser-profiling-manual/src/index.html @@ -6,7 +6,12 @@ - - diff --git a/test/e2e/test-apps/span-streaming/browser-profiling-manual/src/main.js b/test/e2e/test-apps/span-streaming/browser-profiling-manual/src/main.js deleted file mode 100644 index 9be074235..000000000 --- a/test/e2e/test-apps/span-streaming/browser-profiling-manual/src/main.js +++ /dev/null @@ -1,25 +0,0 @@ -const path = require('path'); - -const { app, BrowserWindow } = require('electron'); -const { init } = require('@sentry/electron/main'); - -init({ - dsn: '__DSN__', - debug: true, - release: 'some-release', - enableRendererProfiling: true, - traceLifecycle: 'stream', - onFatalError: () => {}, -}); - -app.on('ready', () => { - const mainWindow = new BrowserWindow({ - show: false, - webPreferences: { - nodeIntegration: true, - contextIsolation: false, - }, - }); - - mainWindow.loadFile(path.join(__dirname, 'index.html')); -}); diff --git a/test/e2e/test-apps/span-streaming/browser-profiling-manual/test.ts b/test/e2e/test-apps/span-streaming/browser-profiling-manual/test.ts deleted file mode 100644 index 3262c7a63..000000000 --- a/test/e2e/test-apps/span-streaming/browser-profiling-manual/test.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { StreamedSpanJSON } from '@sentry/core'; -import { expect } from 'vitest'; -import { electronTestRunner, profileChunkEnvelope, SHORT_UUID_MATCHER, spanEnvelope, UUID_MATCHER } from '../../..'; - -// A child span for each `startSpan({ name: 'PBKDF2' })` call in the renderer -function pbkdf2Span(): StreamedSpanJSON { - return { - name: 'PBKDF2', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - parent_span_id: SHORT_UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: false, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.origin': { value: 'manual', type: 'string' }, - 'sentry.environment': { value: 'production', type: 'string' }, - 'sentry.segment.name': { value: 'Long work', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.browser', type: 'string' }, - }), - }; -} - -electronTestRunner(__dirname, async (ctx) => { - await ctx - .ignoreExpectationOrder() - // The transaction is streamed as a span envelope. UI profiling attaches the - // profiler id to the segment span rather than a profile context. - .expect({ - envelope: spanEnvelope( - 'Long work', - [ - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - { - name: 'Long work', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: true, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.origin': { value: 'manual', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - 'sentry.sample_rate': { value: 1, type: 'integer' }, - 'sentry.environment': { value: 'production', type: 'string' }, - 'sentry.segment.name': { value: 'Long work', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.browser', type: 'string' }, - 'sentry.profiler_id': { value: UUID_MATCHER, type: 'string' }, - 'sentry.segment.name.source': { value: 'custom', type: 'string' }, - }), - }, - ], - { ingest_settings: { infer_ip: 'never', infer_user_agent: 'never' } }, - ), - }) - // Expect the profile_chunk envelope from UI profiling - .expect({ - envelope: profileChunkEnvelope({ - release: 'some-release', - environment: 'development', - profile: expect.objectContaining({ - samples: expect.arrayContaining([ - expect.objectContaining({ - stack_id: expect.any(Number), - thread_id: expect.any(String), - timestamp: expect.any(Number), - }), - ]), - stacks: expect.any(Array), - frames: expect.arrayContaining([ - expect.objectContaining({ - function: expect.any(String), - abs_path: expect.stringContaining('app:///'), - }), - ]), - thread_metadata: expect.any(Object), - }), - }), - }) - .run(); -}); diff --git a/test/e2e/test-apps/span-streaming/browser-profiling-trace/package.json b/test/e2e/test-apps/span-streaming/browser-profiling-trace/package.json deleted file mode 100644 index 913635a6e..000000000 --- a/test/e2e/test-apps/span-streaming/browser-profiling-trace/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "browser-profiling-trace", - "description": "Browser Profiling with Trace Lifecycle (Span streaming)", - "version": "1.0.0", - "main": "src/main.js", - "dependencies": { - "@sentry/electron": "5.6.0" - } -} diff --git a/test/e2e/test-apps/span-streaming/browser-profiling-trace/src/index.html b/test/e2e/test-apps/span-streaming/browser-profiling-trace/src/index.html deleted file mode 100644 index d214247d3..000000000 --- a/test/e2e/test-apps/span-streaming/browser-profiling-trace/src/index.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - diff --git a/test/e2e/test-apps/span-streaming/browser-profiling-trace/src/main.js b/test/e2e/test-apps/span-streaming/browser-profiling-trace/src/main.js deleted file mode 100644 index 9be074235..000000000 --- a/test/e2e/test-apps/span-streaming/browser-profiling-trace/src/main.js +++ /dev/null @@ -1,25 +0,0 @@ -const path = require('path'); - -const { app, BrowserWindow } = require('electron'); -const { init } = require('@sentry/electron/main'); - -init({ - dsn: '__DSN__', - debug: true, - release: 'some-release', - enableRendererProfiling: true, - traceLifecycle: 'stream', - onFatalError: () => {}, -}); - -app.on('ready', () => { - const mainWindow = new BrowserWindow({ - show: false, - webPreferences: { - nodeIntegration: true, - contextIsolation: false, - }, - }); - - mainWindow.loadFile(path.join(__dirname, 'index.html')); -}); diff --git a/test/e2e/test-apps/span-streaming/browser-profiling-trace/test.ts b/test/e2e/test-apps/span-streaming/browser-profiling-trace/test.ts deleted file mode 100644 index ce1df046f..000000000 --- a/test/e2e/test-apps/span-streaming/browser-profiling-trace/test.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { StreamedSpanJSON } from '@sentry/core'; -import { expect } from 'vitest'; -import { electronTestRunner, profileChunkEnvelope, SHORT_UUID_MATCHER, spanEnvelope, UUID_MATCHER } from '../../..'; - -// A child span for each `startSpan({ name: 'PBKDF2' })` call in the renderer -function pbkdf2Span(): StreamedSpanJSON { - return { - name: 'PBKDF2', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - parent_span_id: SHORT_UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: false, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.origin': { value: 'manual', type: 'string' }, - 'sentry.environment': { value: 'production', type: 'string' }, - 'sentry.segment.name': { value: 'Long work', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.browser', type: 'string' }, - }), - }; -} - -electronTestRunner(__dirname, async (ctx) => { - await ctx - .ignoreExpectationOrder() - // The transaction is streamed as a span envelope. In trace mode the profiler - // automatically starts/stops with the span and attaches its id to the segment. - .expect({ - envelope: spanEnvelope( - 'Long work', - [ - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - { - name: 'Long work', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: true, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.origin': { value: 'manual', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - 'sentry.sample_rate': { value: 1, type: 'integer' }, - 'sentry.environment': { value: 'production', type: 'string' }, - 'sentry.segment.name': { value: 'Long work', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.browser', type: 'string' }, - 'sentry.profiler_id': { value: UUID_MATCHER, type: 'string' }, - 'sentry.segment.name.source': { value: 'custom', type: 'string' }, - }), - }, - ], - { ingest_settings: { infer_ip: 'never', infer_user_agent: 'never' } }, - ), - }) - // Expect the profile_chunk envelope from UI profiling in trace mode - .expect({ - envelope: profileChunkEnvelope({ - release: 'some-release', - environment: 'development', - profile: expect.objectContaining({ - samples: expect.arrayContaining([ - expect.objectContaining({ - stack_id: expect.any(Number), - thread_id: expect.any(String), - timestamp: expect.any(Number), - }), - ]), - stacks: expect.any(Array), - frames: expect.arrayContaining([ - expect.objectContaining({ - function: expect.any(String), - abs_path: expect.stringContaining('app:///'), - }), - ]), - thread_metadata: expect.any(Object), - }), - }), - }) - .run(); -}); diff --git a/test/e2e/test-apps/span-streaming/browser-tracing/package.json b/test/e2e/test-apps/span-streaming/browser-tracing/package.json deleted file mode 100644 index fcdd9d4c7..000000000 --- a/test/e2e/test-apps/span-streaming/browser-tracing/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "browser-tracing", - "description": "Browser Tracing (Span streaming)", - "version": "1.0.0", - "main": "src/main.js", - "dependencies": { - "@sentry/electron": "5.6.0" - } -} diff --git a/test/e2e/test-apps/span-streaming/browser-tracing/src/index.html b/test/e2e/test-apps/span-streaming/browser-tracing/src/index.html deleted file mode 100644 index 07b8e507c..000000000 --- a/test/e2e/test-apps/span-streaming/browser-tracing/src/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - diff --git a/test/e2e/test-apps/span-streaming/browser-tracing/src/main.js b/test/e2e/test-apps/span-streaming/browser-tracing/src/main.js deleted file mode 100644 index 8e48f3db3..000000000 --- a/test/e2e/test-apps/span-streaming/browser-tracing/src/main.js +++ /dev/null @@ -1,24 +0,0 @@ -const path = require('path'); - -const { app, BrowserWindow } = require('electron'); -const { init } = require('@sentry/electron/main'); - -init({ - dsn: '__DSN__', - debug: true, - release: 'some-release', - traceLifecycle: 'stream', - onFatalError: () => {}, -}); - -app.on('ready', () => { - const mainWindow = new BrowserWindow({ - show: false, - webPreferences: { - nodeIntegration: true, - contextIsolation: false, - }, - }); - - mainWindow.loadFile(path.join(__dirname, 'index.html')); -}); diff --git a/test/e2e/test-apps/span-streaming/browser-tracing/test.ts b/test/e2e/test-apps/span-streaming/browser-tracing/test.ts deleted file mode 100644 index 52e038005..000000000 --- a/test/e2e/test-apps/span-streaming/browser-tracing/test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { expect } from 'vitest'; -import { electronTestRunner, getSpansFromEnvelope } from '../../..'; - -electronTestRunner( - __dirname, - { - // Browser Tracing fails on Electron v24 - skip: (electronVersion) => electronVersion.major === 24, - }, - async (ctx) => { - await ctx - .expect({ - // The browser pageload transaction is streamed as a span envelope. The exact - // set of `browser.*` performance metric spans varies between Electron/Chromium - // versions, so we assert the pageload segment and the presence of the key - // metric spans rather than an exact list. - envelope: (envelope) => { - const [header] = envelope; - expect(header.sdk).toEqual({ name: 'sentry.javascript.electron', version: expect.any(String) }); - - const spans = getSpansFromEnvelope(envelope); - expect(spans).toBeDefined(); - - // The segment is the browser pageload span - const segment = spans?.find((s) => s.is_segment); - expect(segment).toMatchObject({ - name: 'app:///src/index.html', - is_segment: true, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.op': { value: 'pageload', type: 'string' }, - 'sentry.origin': { value: 'auto.pageload.browser', type: 'string' }, - 'sentry.source': { value: 'url', type: 'string' }, - 'sentry.sample_rate': { value: 1, type: 'integer' }, - }), - }); - - // All spans share the same trace - for (const span of spans ?? []) { - expect(span.trace_id).toEqual(segment?.trace_id); - } - - // The key browser performance metric spans are present as children - const ops = (spans ?? []).map( - (s) => (s.attributes as Record | undefined)?.['sentry.op']?.value, - ); - for (const op of ['browser.connect', 'browser.cache', 'browser.DNS', 'browser.request', 'browser.response']) { - expect(ops).toContain(op); - } - }, - }) - .run(); - }, -); diff --git a/test/e2e/test-apps/span-streaming/custom-tracing/package.json b/test/e2e/test-apps/span-streaming/custom-tracing/package.json deleted file mode 100644 index eb99c6661..000000000 --- a/test/e2e/test-apps/span-streaming/custom-tracing/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "custom-tracing", - "description": "Custom Tracing (Span streaming)", - "version": "1.0.0", - "main": "src/main.js", - "dependencies": { - "@sentry/electron": "5.6.0" - } -} diff --git a/test/e2e/test-apps/span-streaming/custom-tracing/src/main.js b/test/e2e/test-apps/span-streaming/custom-tracing/src/main.js deleted file mode 100644 index 7e96e7fe5..000000000 --- a/test/e2e/test-apps/span-streaming/custom-tracing/src/main.js +++ /dev/null @@ -1,22 +0,0 @@ -// eslint-disable-next-line import/order -const { app } = require('electron'); - -const Sentry = require('@sentry/electron/main'); - -Sentry.init({ - dsn: '__DSN__', - debug: true, - tracesSampleRate: 1.0, - traceLifecycle: 'stream', - onFatalError: () => {}, -}); - -async function doTransaction() { - await Sentry.startSpan({ name: 'InitSequence', op: 'task' }, async () => { - await Sentry.startSpan({ name: 'initializeServices' }, async () => { - await new Promise((resolve) => setTimeout(resolve, 500)); - }); - }); -} - -app.on('ready', () => doTransaction()); diff --git a/test/e2e/test-apps/span-streaming/custom-tracing/test.ts b/test/e2e/test-apps/span-streaming/custom-tracing/test.ts deleted file mode 100644 index 40a1f2e4e..000000000 --- a/test/e2e/test-apps/span-streaming/custom-tracing/test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { expect } from 'vitest'; -import { electronTestRunner, spanEnvelope, SHORT_UUID_MATCHER, UUID_MATCHER } from '../../..'; - -electronTestRunner( - __dirname, - { - // Browser Tracing fails on Electron v24 - skip: (electronVersion) => electronVersion.major === 24, - }, - async (ctx) => { - await ctx - .expect({ - envelope: spanEnvelope('InitSequence', [ - { - name: 'initializeServices', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - parent_span_id: SHORT_UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: false, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.environment': { value: 'development', type: 'string' }, - 'sentry.segment.name': { value: 'InitSequence', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - }), - }, - { - name: 'InitSequence', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: true, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.op': { value: 'task', type: 'string' }, - 'sentry.sample_rate': { value: 1, type: 'integer' }, - 'sentry.environment': { value: 'development', type: 'string' }, - 'sentry.segment.name': { value: 'InitSequence', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - 'sentry.sdk.integrations': { value: expect.any(Array), type: 'array' }, - 'os.name': { value: expect.any(String), type: 'string' }, - 'sentry.segment.name.source': { value: 'custom', type: 'string' }, - }), - }, - ]), - }) - .run(); - }, -); diff --git a/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/package.json b/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/package.json deleted file mode 100644 index 4dfa303ef..000000000 --- a/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "net-breadcrumbs-tracing", - "description": "Electron net Tracing (Span streaming)", - "version": "1.0.0", - "main": "src/main.js", - "dependencies": { - "@sentry/electron": "5.6.0", - "electron-fetch": "1.7.4" - } -} diff --git a/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/src/main.js b/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/src/main.js deleted file mode 100644 index c6a80f405..000000000 --- a/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/src/main.js +++ /dev/null @@ -1,26 +0,0 @@ -const { app } = require('electron'); -const { init, startSpan, captureException } = require('@sentry/electron/main'); -const fetch = require('electron-fetch'); - -init({ - dsn: '__DSN__', - debug: true, - tracesSampleRate: 1, - propagateTraceparent: true, - traceLifecycle: 'stream', - onFatalError: () => {}, -}); - -app.on('ready', async () => { - try { - await startSpan({ name: 'some-transaction' }, async () => { - await fetch.default('http://localhost:8123/something'); - }); - } catch (e) { - captureException(e); - - setTimeout(() => { - app.quit(); - }, 1000); - } -}); diff --git a/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/test.ts b/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/test.ts deleted file mode 100644 index dc02b98a5..000000000 --- a/test/e2e/test-apps/span-streaming/net-breadcrumbs-tracing/test.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { expect } from 'vitest'; -import { electronTestRunner, eventEnvelope, SHORT_UUID_MATCHER, spanEnvelope, UUID_MATCHER } from '../../..'; - -electronTestRunner(__dirname, { skipEsmAutoTransform: true }, async (ctx) => { - await ctx - .expectErrorOutputToContain('Adding traceparent header') - .expect({ - envelope: eventEnvelope({ - level: 'error', - platform: 'node', - exception: { - values: [ - { - type: 'FetchError', - value: 'request to http://localhost:8123/something failed, reason: net::ERR_CONNECTION_REFUSED', - mechanism: expect.any(Object), - stacktrace: expect.any(Object), - }, - ], - }, - tags: { - 'event.environment': 'javascript', - 'event.origin': 'electron', - 'event.process': 'browser', - }, - }), - }) - .expect({ - envelope: spanEnvelope('some-transaction', [ - { - name: 'GET http://localhost:8123/something', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - parent_span_id: SHORT_UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: false, - status: 'error', - attributes: expect.objectContaining({ - 'sentry.op': { value: 'http.client', type: 'string' }, - url: { - value: 'http://localhost:8123/something', - type: 'string', - }, - type: { value: 'net.request', type: 'string' }, - 'http.method': { value: 'GET', type: 'string' }, - 'sentry.origin': { value: 'auto.http.electron.net', type: 'string' }, - 'http.response.status_code': { value: 500, type: 'integer' }, - 'sentry.release': { - value: 'net-breadcrumbs-tracing@1.0.0', - type: 'string', - }, - 'sentry.environment': { value: 'development', type: 'string' }, - 'sentry.segment.name': { value: 'some-transaction', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - }), - }, - { - name: 'some-transaction', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: true, - status: 'error', - attributes: expect.objectContaining({ - 'sentry.sample_rate': { value: 1, type: 'integer' }, - 'sentry.release': { - value: 'net-breadcrumbs-tracing@1.0.0', - type: 'string', - }, - 'sentry.environment': { value: 'development', type: 'string' }, - 'sentry.segment.name': { value: 'some-transaction', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - 'sentry.sdk.integrations': { value: expect.any(Array), type: 'array' }, - 'process.runtime.engine.name': { value: 'v8', type: 'string' }, - 'os.name': { value: expect.any(String), type: 'string' }, - 'sentry.segment.name.source': { value: 'custom', type: 'string' }, - }), - }, - ]), - }) - .run(); -}); diff --git a/test/e2e/test-apps/span-streaming/node-profiling/package.json b/test/e2e/test-apps/span-streaming/node-profiling/package.json deleted file mode 100644 index 1b63334a7..000000000 --- a/test/e2e/test-apps/span-streaming/node-profiling/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "node-profiling", - "description": "Node Profiling (Span streaming)", - "version": "1.0.0", - "main": "src/main.js", - "scripts": { - "build": "electron-rebuild" - }, - "dependencies": { - "@electron/rebuild": "^3.7.1", - "@sentry/electron": "5.6.0", - "@sentry/profiling-node": "9.0.0" - } -} diff --git a/test/e2e/test-apps/span-streaming/node-profiling/src/index.html b/test/e2e/test-apps/span-streaming/node-profiling/src/index.html deleted file mode 100644 index 26aca2095..000000000 --- a/test/e2e/test-apps/span-streaming/node-profiling/src/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/test/e2e/test-apps/span-streaming/node-profiling/src/main.js b/test/e2e/test-apps/span-streaming/node-profiling/src/main.js deleted file mode 100644 index d75d40dcf..000000000 --- a/test/e2e/test-apps/span-streaming/node-profiling/src/main.js +++ /dev/null @@ -1,51 +0,0 @@ -const path = require('path'); -const crypto = require('crypto'); - -const { app, BrowserWindow } = require('electron'); -const { init, startSpan } = require('@sentry/electron/main'); -const { nodeProfilingIntegration } = require('@sentry/profiling-node'); - -init({ - dsn: '__DSN__', - debug: true, - release: 'some-release', - traceLifecycle: 'stream', - integrations: [nodeProfilingIntegration()], - tracesSampleRate: 1, - profileSessionSampleRate: 1, - profileLifecycle: 'trace', - onFatalError: () => {}, -}); - -function pbkdf2() { - return new Promise((resolve) => { - const salt = crypto.randomBytes(128).toString('base64'); - crypto.pbkdf2('myPassword', salt, 10000, 512, 'sha512', resolve); - }); -} - -async function longWork() { - for (let i = 0; i < 10; i++) { - await startSpan({ name: 'PBKDF2' }, async () => { - await pbkdf2(); - }); - } -} - -app.on('ready', () => { - const mainWindow = new BrowserWindow({ - show: false, - webPreferences: { - nodeIntegration: true, - contextIsolation: false, - }, - }); - - mainWindow.loadFile(path.join(__dirname, 'index.html')); - - setTimeout(() => { - startSpan({ name: 'Long work' }, async () => { - await longWork(); - }); - }, 500); -}); diff --git a/test/e2e/test-apps/span-streaming/node-profiling/test.ts b/test/e2e/test-apps/span-streaming/node-profiling/test.ts deleted file mode 100644 index 6a9465dab..000000000 --- a/test/e2e/test-apps/span-streaming/node-profiling/test.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { StreamedSpanJSON } from '@sentry/core'; -import { expect } from 'vitest'; -import { electronTestRunner, profileChunkEnvelope, SHORT_UUID_MATCHER, spanEnvelope, UUID_MATCHER } from '../../..'; - -// A child span for each `startSpan({ name: 'PBKDF2' })` call in the main process -function pbkdf2Span(): StreamedSpanJSON { - return { - name: 'PBKDF2', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - parent_span_id: SHORT_UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: false, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.release': { value: 'some-release', type: 'string' }, - 'sentry.environment': { value: 'development', type: 'string' }, - 'sentry.segment.name': { value: 'Long work', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - }), - }; -} - -electronTestRunner(__dirname, async (ctx) => { - await ctx - .ignoreExpectationOrder() - // The transaction is streamed as a span envelope. In trace mode the profiler - // automatically starts/stops with the span and attaches its id to the segment. - .expect({ - envelope: spanEnvelope('Long work', [ - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - pbkdf2Span(), - { - name: 'Long work', - span_id: SHORT_UUID_MATCHER, - trace_id: UUID_MATCHER, - start_timestamp: expect.any(Number), - end_timestamp: expect.any(Number), - is_segment: true, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.sample_rate': { value: 1, type: 'integer' }, - 'sentry.release': { value: 'some-release', type: 'string' }, - 'sentry.environment': { value: 'development', type: 'string' }, - 'sentry.segment.name': { value: 'Long work', type: 'string' }, - 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, - 'sentry.profiler_id': { value: UUID_MATCHER, type: 'string' }, - 'sentry.segment.name.source': { value: 'custom', type: 'string' }, - }), - }, - ]), - }) - // Expect the profile_chunk envelope from continuous node profiling - .expect({ - envelope: profileChunkEnvelope( - { - release: 'some-release', - environment: 'development', - measurements: expect.any(Object), - }, - 'node', - ), - }) - .run(); -}); diff --git a/test/e2e/test-apps/span-streaming/startup-tracing/package.json b/test/e2e/test-apps/span-streaming/startup-tracing/package.json deleted file mode 100644 index 126d9886f..000000000 --- a/test/e2e/test-apps/span-streaming/startup-tracing/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "startup-tracing", - "description": "Startup Tracing Integration (Span streaming)", - "version": "1.0.0", - "main": "src/main.js", - "dependencies": { - "@sentry/electron": "5.6.0" - } -} diff --git a/test/e2e/test-apps/span-streaming/startup-tracing/src/index.html b/test/e2e/test-apps/span-streaming/startup-tracing/src/index.html deleted file mode 100644 index 69e6cfda0..000000000 --- a/test/e2e/test-apps/span-streaming/startup-tracing/src/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Startup Tracing Test - - - - - diff --git a/test/e2e/test-apps/span-streaming/startup-tracing/src/main.js b/test/e2e/test-apps/span-streaming/startup-tracing/src/main.js deleted file mode 100644 index 0dbd909ea..000000000 --- a/test/e2e/test-apps/span-streaming/startup-tracing/src/main.js +++ /dev/null @@ -1,25 +0,0 @@ -const path = require('path'); - -const { app, BrowserWindow } = require('electron'); -const { init, startupTracingIntegration } = require('@sentry/electron/main'); - -init({ - dsn: '__DSN__', - debug: true, - tracesSampleRate: 1, - traceLifecycle: 'stream', - integrations: [startupTracingIntegration()], - onFatalError: () => {}, -}); - -app.on('ready', () => { - const mainWindow = new BrowserWindow({ - show: false, - webPreferences: { - nodeIntegration: true, - contextIsolation: false, - }, - }); - - mainWindow.loadFile(path.join(__dirname, 'index.html')); -}); diff --git a/test/e2e/test-apps/span-streaming/startup-tracing/test.ts b/test/e2e/test-apps/span-streaming/startup-tracing/test.ts deleted file mode 100644 index 3edae1f98..000000000 --- a/test/e2e/test-apps/span-streaming/startup-tracing/test.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { expect } from 'vitest'; -import { electronTestRunner, getSpansFromEnvelope } from '../../..'; - -electronTestRunner( - __dirname, - { - // Browser tracing spans differ on < v25 - skip: (electronVersion) => electronVersion.major < 25, - }, - async (ctx) => { - await ctx - .expect({ - // In stream mode the renderer's pageload spans are streamed to the main process and - // merged into the single `Startup` segment (as in non-stream mode). The exact set of - // `browser.*`/`ui.long-task` spans varies between Electron/Chromium versions, so we - // assert the segment and the presence of the key main + renderer spans. - envelope: (envelope) => { - const [header] = envelope; - expect(header.sdk).toEqual({ name: 'sentry.javascript.electron', version: expect.any(String) }); - - const spans = getSpansFromEnvelope(envelope); - expect(spans).toBeDefined(); - - // The segment is the main process `Startup` span - const segment = spans?.find((s) => s.is_segment); - expect(segment).toMatchObject({ - name: 'Startup', - is_segment: true, - status: 'ok', - attributes: expect.objectContaining({ - 'sentry.op': { value: 'app.start', type: 'string' }, - 'sentry.origin': { value: 'auto.electron.startup', type: 'string' }, - 'sentry.release': { value: 'startup-tracing@1.0.0', type: 'string' }, - 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.sample_rate': { value: 1, type: 'integer' }, - // Renderer pageload measurements / trace metadata are merged onto the startup segment - 'sentry.idle_span_finish_reason': { value: 'idleTimeout', type: 'string' }, - // Numeric attribute types are inferred from the value so whole numbers get typed - // 'integer' and fractional values 'double' - 'browser.web_vital.ttfb.value': { - value: expect.any(Number), - type: expect.stringMatching(/^(integer|double)$/), - }, - 'browser.web_vital.ttfb.request_time': { - value: expect.any(Number), - type: expect.stringMatching(/^(integer|double)$/), - }, - 'network.connection.effective_type': { value: expect.any(String), type: 'string' }, - 'network.connection.rtt': { value: expect.any(Number), type: 'integer' }, - 'device.memory.estimated_capacity': { value: expect.any(Number), type: 'integer' }, - 'device.processor_count': { value: expect.any(Number), type: 'integer' }, - }), - }); - - // Everything is merged into the one startup trace/segment - for (const span of spans ?? []) { - expect(span.trace_id).toEqual(segment?.trace_id); - expect(span.attributes?.['sentry.segment.name']).toEqual({ value: 'Startup', type: 'string' }); - } - - // The main startup spans, the renderer wrapper span and the key browser metric spans - // are all present as children of the startup segment - const ops = (spans ?? []).map( - (s) => (s.attributes as Record | undefined)?.['sentry.op']?.value, - ); - for (const op of [ - 'electron.will-finish-launching', - 'electron.ready', - 'electron.web-contents.created', - 'electron.web-contents.dom-ready', - 'electron.renderer', - 'browser.connect', - 'browser.request', - 'browser.response', - ]) { - expect(ops).toContain(op); - } - }, - }) - .run(); - }, -); diff --git a/test/e2e/utils.ts b/test/e2e/utils.ts index fbb3654a6..33a933811 100644 --- a/test/e2e/utils.ts +++ b/test/e2e/utils.ts @@ -106,7 +106,7 @@ function getSdk(sdk: SdkInfo | undefined): SdkInfo { }, ], version: SDK_VERSION, - settings: { infer_ip: 'never' }, + settings: { infer_ip: 'auto' }, ...sdk, }; } diff --git a/test/unit/net-trace-propagation.test.ts b/test/unit/net-trace-propagation.test.ts index e412fddf8..93a11ac3a 100644 --- a/test/unit/net-trace-propagation.test.ts +++ b/test/unit/net-trace-propagation.test.ts @@ -26,8 +26,6 @@ vi.mock('electron', () => ({ })); import { net } from 'electron'; -import { context, propagation, trace } from '@opentelemetry/api'; -import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'; import { createTransport, getActiveSpan, @@ -37,8 +35,9 @@ import { resolvedSyncPromise, startSpan, } from '@sentry/core'; -import { getSentryResource, SentryPropagator, SentrySampler, SentrySpanProcessor } from '@sentry/opentelemetry'; -import { NodeClient, SentryContextManager, setNodeAsyncContextStrategy } from '@sentry/node'; +import { NodeClient } from '@sentry/node'; +import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; +import { setupSpanDataBackfill } from '../../src/common/span-data-backfill'; import { electronNetIntegration } from '../../src/main/integrations/net-breadcrumbs'; const TEST_DSN = 'https://username@domain/123'; @@ -53,7 +52,7 @@ function resetGlobals(): void { function setupSdk(options: Record = {}): NodeClient { resetGlobals(); - setNodeAsyncContextStrategy(); + const asyncLocalStorage = setAsyncLocalStorageAsyncContextStrategy(); const client = new NodeClient({ dsn: TEST_DSN, @@ -64,33 +63,18 @@ function setupSdk(options: Record = {}): NodeClient { ...options, }); + client.asyncLocalStorageLookup = { asyncLocalStorage }; getCurrentScope().setClient(client); client.init(); - const provider = new BasicTracerProvider({ - sampler: new SentrySampler(client), - resource: getSentryResource('node'), - forceFlushTimeoutMillis: 500, - spanProcessors: [new SentrySpanProcessor()], - }); - - trace.setGlobalTracerProvider(provider); - propagation.setGlobalPropagator(new SentryPropagator()); - context.setGlobalContextManager(new SentryContextManager()); + setupSpanDataBackfill(client); return client; } -function cleanupOtel(): void { - trace.disable(); - context.disable(); - propagation.disable(); - resetGlobals(); -} - describe('electron net trace header propagation', () => { afterEach(() => { - cleanupOtel(); + resetGlobals(); }); test('TWP mode: propagates valid trace ID from scope propagation context', () => { diff --git a/yarn.lock b/yarn.lock index 11d341a95..175325aa5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,48 +2,144 @@ # yarn lockfile v1 -"@apm-js-collab/code-transformer-bundler-plugins@^0.7.3": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@apm-js-collab/code-transformer-bundler-plugins/-/code-transformer-bundler-plugins-0.7.4.tgz#f323d5f723565e34f1409aa96e445ad489020f76" - integrity sha512-nAfOeZPSUAQvJa1iFT/5oCrTm5YQhMMrfCNthNnaXHZiOQhu1KGuLoIx7HtbAi3wfwaBYLaICPIeenIaEwcXIg== +"@babel/code-frame@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7" + integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== dependencies: - "@apm-js-collab/code-transformer" "^0.18.1" - es-module-lexer "^2.1.0" - magic-string "^0.30.21" - module-details-from-path "^1.0.4" - -"@apm-js-collab/code-transformer@^0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@apm-js-collab/code-transformer/-/code-transformer-0.18.0.tgz#722972c05f04bc37f4bbd5067f42ffd7a990eee9" - integrity sha512-aN3Oq8r1J3gPJtCwErP664gM0+HhM1I1lujPr9TMTCcEl/joQQbpGpeMdts9B1+W2wHMsvioDMv5F4PvMWE6gw== - dependencies: - "@types/estree" "^1.0.8" - astring "^1.9.0" - esquery "^1.7.0" - meriyah "^6.1.4" - semifies "^1.0.0" - source-map "^0.6.0" - -"@apm-js-collab/code-transformer@^0.18.1": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@apm-js-collab/code-transformer/-/code-transformer-0.18.1.tgz#66ce01cfe9607779b4abebb4f54c49a46e8b48ca" - integrity sha512-u1Hb6bHjWtkSpiprwVP6YaHC1DTN4RAU3zYkUDUe7WMnJwdyU1pwTL9dFKiSJB9IiLue/EQovmyx6xhU7FFtAQ== - dependencies: - "@types/estree" "^1.0.8" - astring "^1.9.0" - esquery "^1.7.0" - meriyah "^6.1.4" - semifies "^1.0.0" - source-map "^0.6.0" - -"@apm-js-collab/tracing-hooks@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@apm-js-collab/tracing-hooks/-/tracing-hooks-0.13.0.tgz#20b2f77ec7a0e5dfd9fbf2215b56e2c2b7f41e4b" - integrity sha512-mTvWz9rnQwx1U3h0XPTHaX7bgfkpipLLTQyjlC2cdhQpQEuoLT0AGzoydeoq2NxfEVv6fWOOETcSbb2nptleyw== - dependencies: - "@apm-js-collab/code-transformer" "^0.18.0" - debug "^4.4.1" - module-details-from-path "^1.0.4" + "@babel/helper-validator-identifier" "^7.29.7" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629" + integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== + +"@babel/core@^7.18.5": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7" + integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.7" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helpers" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/template" "^7.29.7" + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + "@jridgewell/remapping" "^2.3.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.29.7", "@babel/generator@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.8.tgz#4b0b887885422643339e09022148a4c4ebaa4979" + integrity sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg== + dependencies: + "@babel/parser" "^7.29.8" + "@babel/types" "^7.29.8" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042" + integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g== + dependencies: + "@babel/compat-data" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-globals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b" + integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== + +"@babel/helper-module-imports@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" + integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-module-transforms@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae" + integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg== + dependencies: + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/helper-string-parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== + +"@babel/helper-validator-identifier@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== + +"@babel/helper-validator-option@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a" + integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw== + +"@babel/helpers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607" + integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg== + dependencies: + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/parser@^7.29.7", "@babel/parser@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.8.tgz#9653716a2f10c677b98fbc63d4bfb000c302cf17" + integrity sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA== + dependencies: + "@babel/types" "^7.29.8" + +"@babel/template@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700" + integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/traverse@^7.29.7": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.8.tgz#4111014cdc71a0f95d9471907590baa0b8a6b28a" + integrity sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.8" + "@babel/helper-globals" "^7.29.7" + "@babel/parser" "^7.29.8" + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.8" + debug "^4.3.1" + +"@babel/types@^7.29.7", "@babel/types@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.8.tgz#1229eef31d85156d70fa3f4cd859376d0eaf6863" + integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== + dependencies: + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" "@electron/get@^2.0.0": version "2.0.3" @@ -99,11 +195,40 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@jridgewell/sourcemap-codec@^1.5.5": +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": version "1.5.5" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@napi-rs/wasm-runtime@^1.1.4": version "1.1.4" resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz#a46bbfedc29751b7170c5d23bc1d8ee8c7e3c1e1" @@ -111,66 +236,11 @@ dependencies: "@tybys/wasm-util" "^0.10.1" -"@opentelemetry/api-logs@0.220.0": - version "0.220.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz#b2ed235de4b5f3c1769adfa5f3bc247d82cdfbc9" - integrity sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w== - dependencies: - "@opentelemetry/api" "^1.3.0" - -"@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.9.1": +"@opentelemetry/api@^1.9.1": version "1.9.1" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.1.tgz#c1b0346de336ba55af2d5a7970882037baedec05" integrity sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q== -"@opentelemetry/core@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-2.10.0.tgz#aa77f7138e74ba5399d5f3bb0deade0c168f00b2" - integrity sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ== - dependencies: - "@opentelemetry/semantic-conventions" "^1.29.0" - -"@opentelemetry/instrumentation@^0.220.0": - version "0.220.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.220.0.tgz#542b36bf4871dd83dc84e1373ac4bbcd35a8bfb8" - integrity sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw== - dependencies: - "@opentelemetry/api-logs" "0.220.0" - import-in-the-middle "^3.0.0" - require-in-the-middle "^8.0.0" - -"@opentelemetry/resources@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-2.10.0.tgz#ce76c1c1baafce4c77bc29890965ba1f56671acc" - integrity sha512-q6MMm2zhggzsHVNbabYwut+a6nbuQQe3URUoxaojM/8K1IBfwwPzvxIjNi2/lI1TFe+fMHMW9MWhrtDLEXEnkA== - dependencies: - "@opentelemetry/core" "2.10.0" - "@opentelemetry/semantic-conventions" "^1.29.0" - -"@opentelemetry/sdk-trace-base@^2.9.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.10.0.tgz#3f9bf8a14c1dba8790619e28326f7c57f8b9e76f" - integrity sha512-GuYQQT7QD2EeO8lcZLRQzcbOyhqAzL+6WWTKTU9mSUBYBazkEDl+VrQcXQhbB08OWM9anD1aHleVadzulpOaUQ== - dependencies: - "@opentelemetry/core" "2.10.0" - "@opentelemetry/resources" "2.10.0" - "@opentelemetry/sdk-trace" "2.10.0" - "@opentelemetry/semantic-conventions" "^1.29.0" - -"@opentelemetry/sdk-trace@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace/-/sdk-trace-2.10.0.tgz#76b0331092452b01a8b2f704480e2576641c7011" - integrity sha512-MfQGq3GRmTh5fM/y+OjaO0vj6+luCB1XO2gfXCalKCfgKw0eHL++sm75DNweC6ohlp+aFvACqeE0fYayqdRaoQ== - dependencies: - "@opentelemetry/core" "2.10.0" - "@opentelemetry/resources" "2.10.0" - "@opentelemetry/semantic-conventions" "^1.29.0" - -"@opentelemetry/semantic-conventions@^1.29.0": - version "1.40.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.40.0.tgz#10b2944ca559386590683392022a897eefd011d3" - integrity sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw== - "@oxc-project/types@=0.133.0": version "0.133.0" resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.133.0.tgz#2e282ef9e1d26e06b68ccd14b73f310a3b2cf7f8" @@ -622,59 +692,123 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== -"@sentry/browser-utils@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-10.70.0.tgz#277a78d6162bd5dfca9846c727598471e7dc0186" - integrity sha512-IvjhafF5NFXrPCg5EHbAPGDwIhHxgUcLlHTklZ3DAdA6ky88BJYMfevbcnOEmgavf4nylhCaquRUFNB5+szj+A== +"@sentry/browser-utils@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-alpha.0.tgz#e26910d1d134e8ff9ae3d9200b680b1eabaee642" + integrity sha512-m66KuZQnaLJ41iV6q2g4kcsmk+mkhDaJyrolMuIua0PbDwYcige50O2PIN5kj4sRv30Jfme05VwAI1ZRT3Vzmg== dependencies: "@sentry/conventions" "^0.16.0" - "@sentry/core" "10.70.0" + "@sentry/core" "11.0.0-alpha.0" -"@sentry/browser@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-10.70.0.tgz#0305d0a1a644d4878b31a83934c656a0ce5f84c6" - integrity sha512-IK6+J+8H06tZe+A8L37TT5ZxxwNtyQatW8zl5RYYJ/e9CsjrM8fPi8I1OT7uquTw8UtjqFHt7bEef/Vy63ksPg== +"@sentry/browser@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-alpha.0.tgz#fd09132c736ba20dc18f644081ab6a7f28868f36" + integrity sha512-lZYOYAkDf2UOf/LBPKq642/Bb1g3Ew+IrhHz3axeSWSsX6bsbeFSWgdxEmxU3mOlaTOWQfiSV7MA906ZxqNnWw== dependencies: - "@sentry/browser-utils" "10.70.0" + "@sentry/browser-utils" "11.0.0-alpha.0" "@sentry/conventions" "^0.16.0" - "@sentry/core" "10.70.0" - "@sentry/feedback" "10.70.0" - "@sentry/replay" "10.70.0" - "@sentry/replay-canvas" "10.70.0" + "@sentry/core" "11.0.0-alpha.0" + "@sentry/feedback" "11.0.0-alpha.0" + "@sentry/replay" "11.0.0-alpha.0" + "@sentry/replay-canvas" "11.0.0-alpha.0" + +"@sentry/bundler-plugins@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-alpha.0.tgz#d7863fc89e445105cc479e577f50bca4c6a87a98" + integrity sha512-uLxHj0Z9fWDouq3LT4aAxukkUrz4nCYhOdW73IMziAYLFdhf1wJSv3K8ysjZLWtUng+dQ+J2admH7FVYCcf2xg== + dependencies: + "@babel/core" "^7.18.5" + "@sentry/cli" "^2.58.6" + "@sentry/core" "11.0.0-alpha.0" + dotenv "^17.4.2" + find-up "^5.0.0" + glob "^13.0.6" + magic-string "~0.30.8" + supports-color "^8.1.1" + +"@sentry/cli-darwin@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.58.6.tgz#38fd82751014b287e58e99ef948d01ca1e09f41d" + integrity sha512-udAVvcyfNa0R+95GvPz/+43/N3TC0TYKdkQ7D7jhPSzbcMc7l2fxRNN5yB3UpCA5fWFnW4toeaqwDBhb/Wh3LA== + +"@sentry/cli-linux-arm64@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.58.6.tgz#6e660e457af7928c1be8191c77646801fe3fa6a0" + integrity sha512-q8mEcNNmeXMy5i+jWT30TVpH7LcP4HD21CD5XRSPAd/a912HF6EpK0ybf/1USO14WOhoXbAGi9txwaWabSe33g== + +"@sentry/cli-linux-arm@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.58.6.tgz#41256912d636193d2a67985b6c9b3efbbe6a47c9" + integrity sha512-pD0LAt5PcUzAinBwvDqc66x9+2CabHEv486yP0gRjWO7SakbaxmfVq/EXd8VLq/Tzi39LAu422UYK1lpW3MILw== + +"@sentry/cli-linux-i686@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.58.6.tgz#278e7696d82e51dfbfd7d82ec125dda65d249a43" + integrity sha512-q8vNJi1eOV/4vxAFWBsEwLHoSYapaZHIf4j76KJGJXFKTkEbsjCOOsKbwUIBTQQhRgV4DFWh3ryfsPS/que4Kg== + +"@sentry/cli-linux-x64@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.58.6.tgz#57860d46ac3397c33bbcc6224ac19b7de2502c18" + integrity sha512-DZu956Mhi3ZRjTBe1WdbGV46ldVbA8d2rgp/fh51GsI25zjBHah4wZnPTSzpc+YqxU6pJpg579B/r3jrIK530Q== + +"@sentry/cli-win32-arm64@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.58.6.tgz#9335a5d2411381dca1d6b11fdd71a4342b375fc3" + integrity sha512-nj0Ff/kmAB73EPDhR8B4O9r+NUHK5GkPCkGWC+kXVemqAJWL5jcJ5KdxG0l/S0z6RoEoltID8/43/B+TaMlT7A== + +"@sentry/cli-win32-i686@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.58.6.tgz#2afd19536ef111af43538ccc5f9c8c0b179d930e" + integrity sha512-WNZiDzPbgsEMQWq4avsQ391v/xWKJDIWWWo9GYl+N/w5qcYKkoDW7wQG7T9FasI6ENn68phChTOAPXXxbfAdOg== + +"@sentry/cli-win32-x64@2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.58.6.tgz#8d0e70b5660cc82a7763a4bbe9346cf18e49e07e" + integrity sha512-R35WJ17oF4D2eqI1DR2sQQqr0fjRTt5xoP16WrTu91XM2lndRMFsnjh+/GttbxapLCBNlrjzia99MJ0PZHZpgA== + +"@sentry/cli@^2.58.6": + version "2.58.6" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.58.6.tgz#72edb4977d822757511b279e006b00f139e24945" + integrity sha512-baBcNPLLfUi9WuL+Tpri9BFaAdvugZIKelC5X0tt0Zdy+K0K+PCVSrnNmwMWU/HyaF/SEv6b6UHnXIdqanBlcg== + dependencies: + https-proxy-agent "^5.0.0" + node-fetch "^2.6.7" + progress "^2.0.3" + proxy-from-env "^1.1.0" + which "^2.0.2" + optionalDependencies: + "@sentry/cli-darwin" "2.58.6" + "@sentry/cli-linux-arm" "2.58.6" + "@sentry/cli-linux-arm64" "2.58.6" + "@sentry/cli-linux-i686" "2.58.6" + "@sentry/cli-linux-x64" "2.58.6" + "@sentry/cli-win32-arm64" "2.58.6" + "@sentry/cli-win32-i686" "2.58.6" + "@sentry/cli-win32-x64" "2.58.6" "@sentry/conventions@^0.16.0": version "0.16.0" resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.16.0.tgz#3b58d15714cf44dca1518496c00749eec5525009" integrity sha512-fO9PLmHdVURcSPUpWCItWAtgKiMwGdJHbovoSEyLplX5sxs2ugvI4CBPTrkkgqhObnZOD0CnWBKDzSVQYBKEyQ== -"@sentry/core@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-10.70.0.tgz#96eb9f2beab7d4b3b10c1b59ec7833e4dfe5fb73" - integrity sha512-ozhCTDqg89oB4XmWfAwuHshABpvT7AkRpaPnogopPfMAaI61G1t8EKCJ4W7aum8JSBonlfyjPCyW5oYZFm0KvA== +"@sentry/core@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-alpha.0.tgz#1db215c869b306e457b36b5d63173f02b0896afd" + integrity sha512-YAwpmevzT3ghURwdLFDOFN74rZXE9VYYsgc+wsk5j8TQ6Nd+CLO2LvQvQbzxUmVJa6pN04z2oqWg+TWMpfH9QA== dependencies: "@sentry/conventions" "^0.16.0" -"@sentry/eslint-plugin-sdk@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-10.70.0.tgz#a28bf0324d7c3deddc1a5c77bfa1d9ab8b214a8f" - integrity sha512-R4872W02UCkw1GY0jbbpcJOpAKhe+MaDfAqK+ybm8s7vKbBLN4CO/b2+IVDG7xbCxNob/ZWIDAYjzsyXdtCvYQ== +"@sentry/eslint-plugin-sdk@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-alpha.0.tgz#5a75a7a3a56bf66a7d3226c28ee4545880d7769d" + integrity sha512-jol/X/LmS8O89AYyl7E9kZ+yolROKu6jxTDbGL2RJJFYejXftWwuoIzvNw9pj+DGtrb0Iz3Ca2KI6EoMcik42w== -"@sentry/feedback@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-10.70.0.tgz#72b3f390f296982f9822aa372686b777ab955f17" - integrity sha512-6VQn2ETJjHkk4QQDdx/587/JDfXsk3yBTLZ3UZOMtBVrkmwgk+1FJZ8ULJ3ud1xZcuh2icunIkc7tGVv2axdnw== +"@sentry/feedback@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-alpha.0.tgz#386e8786776e7d5dd2073e432a6b3b6222a2c8fe" + integrity sha512-q8fDu3pI45wHxl2920UD0m+cHQEjW176IS26j4TX1dT2idGE6n6NIIrJCBOYeTXh5PSkxd2BA4J1tUdHrzgY4g== dependencies: - "@sentry/core" "10.70.0" - -"@sentry/node-core@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/node-core/-/node-core-10.70.0.tgz#d7998eaf9d0efa06d05ba6d9c001afcb8e68dcb5" - integrity sha512-oPOEVVNxv5WHtckx2i06Wi9FLWyvOg/1DUeX732jZ4iqT2nupINaMH4nF4f4kSvUThFnxkFSRQxwqOxgzMKhKA== - dependencies: - "@sentry/conventions" "^0.16.0" - "@sentry/core" "10.70.0" - "@sentry/opentelemetry" "10.70.0" - import-in-the-middle "^3.0.0" + "@sentry/core" "11.0.0-alpha.0" "@sentry/node-native-stacktrace@^0.5.1": version "0.5.1" @@ -684,64 +818,59 @@ detect-libc "^2.0.4" node-abi "^3.89.0" -"@sentry/node-native@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-10.70.0.tgz#d9547cee0b4a0131e0658cfb0bdc1f91b017c883" - integrity sha512-Tkfw0U6C3mPYiRarjKAQnHyTH7yh3PA4GWNifeNVXyB+542E5vjfXgNdN6QKON99X6cLbANThFPy0q9+Y6jh0Q== +"@sentry/node-native@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-alpha.0.tgz#d4baca8db2bb66bf8f54b9aa7eef7c8bdd101c96" + integrity sha512-5PQH/pc7iwN0X2/VEnybmaVBGYEc++b2ucHe2h5S+MkkcOvlOeIuSJM54tqVGoLjG4/Vtu1uxWLMdQr/OSdvvQ== dependencies: - "@sentry/core" "10.70.0" - "@sentry/node" "10.70.0" + "@sentry/core" "11.0.0-alpha.0" + "@sentry/node" "11.0.0-alpha.0" "@sentry/node-native-stacktrace" "^0.5.1" -"@sentry/node@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-10.70.0.tgz#99fa23d90147c92e8291b8da9d706d3759468bc1" - integrity sha512-SPOOVxmKTVIEtqvOKkQT163e/pOwucjS7OPsCHyRs8sFR4nfBNu0EThplyqnvqd5BWBMTPH6WTBQfo+QWHV+HA== +"@sentry/node@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-alpha.0.tgz#9549153ee5f0724411854c62703cf15b325b06db" + integrity sha512-2KvlPz37RADpyvCstSJ/y4zIqb0+mVnZNtOejcAFDFoEm4tf82nW4xz0zXUMX3/0UgzWkMYMaB9vnlyss3QNXQ== dependencies: "@opentelemetry/api" "^1.9.1" - "@opentelemetry/instrumentation" "^0.220.0" - "@opentelemetry/sdk-trace-base" "^2.9.0" + "@sentry/bundler-plugins" "11.0.0-alpha.0" "@sentry/conventions" "^0.16.0" - "@sentry/core" "10.70.0" - "@sentry/node-core" "10.70.0" - "@sentry/opentelemetry" "10.70.0" - "@sentry/server-utils" "10.70.0" - import-in-the-middle "^3.0.0" + "@sentry/core" "11.0.0-alpha.0" + "@sentry/opentelemetry" "11.0.0-alpha.0" + "@sentry/server-utils" "11.0.0-alpha.0" -"@sentry/opentelemetry@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-10.70.0.tgz#40823a9d16b5d271a52de65244a3e2faeba43fbb" - integrity sha512-UNV/2tqypcUK6FDzerAsFJn1Km/c4VZCYkUZDNbnV5S0cwAq2BYKMo4M5vovaLDBQlxA+Wk9ovbxi5wYjjl9fw== +"@sentry/opentelemetry@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-alpha.0.tgz#26a68b597969f813529002ee913c6bfdfdb4f9e1" + integrity sha512-4oS/ChVuluW6AaF9mSe00diNc8mDiRfjtSKbzOALrL2HRXf00fNUr/zOi1KgiLm6E96CMXL5P1rpEo+dJ/qVFw== dependencies: "@sentry/conventions" "^0.16.0" - "@sentry/core" "10.70.0" + "@sentry/core" "11.0.0-alpha.0" -"@sentry/replay-canvas@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-10.70.0.tgz#16a3a57ea36bab248925b6d0ca709af7c95012c6" - integrity sha512-irzpw22bK5CF3jbecDa0gBUcfjv7tgeUoLAvtIfeHOP5ajmf3o4Cp99a9RQqkfgvkcMeRZBUwE91SQhp6Ank+w== +"@sentry/replay-canvas@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-alpha.0.tgz#af4df1cee1504bc4bac466557c1907dae1ea2b96" + integrity sha512-Rvtfmbrltx0isD9JpJZ0pmxx5jZKS3ZZWbH3HSH9RHHsNdHjKLWSzKcrX49Hf/XTGihO3YqiFxNll2aIT3SeIg== dependencies: - "@sentry/core" "10.70.0" - "@sentry/replay" "10.70.0" + "@sentry/core" "11.0.0-alpha.0" + "@sentry/replay" "11.0.0-alpha.0" -"@sentry/replay@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-10.70.0.tgz#2138a596a152f07e5076f300ffbeba0bab03817e" - integrity sha512-xMnSGzJn9Xd29rYd32lkx/gFW+5mtgqADJ2FiZvis0MBGZuDlNRwPn0/Cs1xA3JNXKV3NGfhdmmvs90w4dHSmw== +"@sentry/replay@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-alpha.0.tgz#be9454ab8b5070cbe27a5d9b0fa9cf29df283562" + integrity sha512-PElbKpmvap1ejMlEw2Z5tP2wroBtuh3Hq18V+7eDBAEcHfPh8N4DDJwu9quxPcb+OHn6VKHJE2LoJJPI8o/wMw== dependencies: - "@sentry/browser-utils" "10.70.0" - "@sentry/core" "10.70.0" + "@sentry/browser-utils" "11.0.0-alpha.0" + "@sentry/core" "11.0.0-alpha.0" -"@sentry/server-utils@10.70.0": - version "10.70.0" - resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-10.70.0.tgz#df7ab00caae3f7398338062ba91d7a355ca27489" - integrity sha512-rzegZjMFFgCp3o+N8+XU13rfSvz4B+f8rU0ijBGrQcHdMNyfsFDTu1UTm262JofmrV2u+s+D0u0vFTnqtOGkbA== +"@sentry/server-utils@11.0.0-alpha.0": + version "11.0.0-alpha.0" + resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-alpha.0.tgz#532ecebe7fbc6d36e4c860ae46fa4c2f77d6b858" + integrity sha512-fhyka8mkJWEP0yCnIkBccNZHpytx1+JY2nnbfIeLy+298zhFozOtddi4wqQedZP9y1RuAl6qHY3efbwE/9IPLQ== dependencies: - "@apm-js-collab/code-transformer-bundler-plugins" "^0.7.3" - "@apm-js-collab/tracing-hooks" "^0.13.0" + "@opentelemetry/api" "^1.9.1" "@sentry/conventions" "^0.16.0" - "@sentry/core" "10.70.0" - meriyah "^6.1.4" + "@sentry/core" "11.0.0-alpha.0" "@sindresorhus/is@^4.0.0": version "4.6.0" @@ -838,11 +967,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/estree@^1.0.8": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" - integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== - "@types/express-serve-static-core@^5.0.0": version "5.0.1" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz#3c9997ae9d00bc236e45c6374e84f2596458d9db" @@ -1051,15 +1175,12 @@ accepts@^1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-attributes@^1.9.5: - version "1.9.5" - resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" - integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== - -acorn@^8.15.0: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" ansi-regex@^5.0.1: version "5.0.1" @@ -1083,16 +1204,16 @@ ansi-styles@^6.1.0, ansi-styles@^6.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -astring@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" - integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg== - balanced-match@^4.0.2: version "4.0.4" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== +baseline-browser-mapping@^2.11.12: + version "2.11.15" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.15.tgz#9c0cac93d7d304f3d61bb41088a102cd62e68676" + integrity sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA== + boolean@^3.0.1: version "3.2.0" resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" @@ -1105,6 +1226,24 @@ brace-expansion@^5.0.2: dependencies: balanced-match "^4.0.2" +brace-expansion@^5.0.8: + version "5.0.9" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.9.tgz#7c72438809b5fa5babf54199a1f1c281a6984fcf" + integrity sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg== + dependencies: + balanced-match "^4.0.2" + +browserslist@^4.24.0: + version "4.28.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.8.tgz#a3c79ceb70028527e5da7dafc887f3200b5168c0" + integrity sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA== + dependencies: + baseline-browser-mapping "^2.11.12" + caniuse-lite "^1.0.30001809" + electron-to-chromium "^1.5.402" + node-releases "^2.0.53" + update-browserslist-db "^1.3.0" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -1156,16 +1295,16 @@ call-bound@^1.0.2: call-bind-apply-helpers "^1.0.2" get-intrinsic "^1.3.0" +caniuse-lite@^1.0.30001809: + version "1.0.30001809" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz#e6cf71f14ddfe008f114dd2a846923be3c03a07b" + integrity sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ== + chai@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e" integrity sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== -cjs-module-lexer@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz#b3ca5101843389259ade7d88c77bd06ce55849ca" - integrity sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ== - clone-response@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" @@ -1233,6 +1372,13 @@ cross-spawn@^7.0.6: shebang-command "^2.0.0" which "^2.0.1" +debug@4, debug@^4.3.1: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1240,20 +1386,13 @@ debug@^2.2.0: dependencies: ms "2.0.0" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.5: +debug@^4.1.0, debug@^4.1.1: version "4.4.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: ms "^2.1.3" -debug@^4.4.1: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -1324,6 +1463,11 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== +dotenv@^17.4.2: + version "17.4.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-17.4.2.tgz#c07e54a746e11eba021dd9e1047ced5afdc1c034" + integrity sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw== + dunder-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" @@ -1343,6 +1487,11 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== +electron-to-chromium@^1.5.402: + version "1.5.411" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.411.tgz#d56c7e43f91e2b3abb53b4eecd646e20d0b18b34" + integrity sha512-gglkxzokjHfawpGxq75XdBV2/l3BAPzrsMs70qgaZdTW5rpV1tC4MdgJVP9fN126bODA4ZJQkn1wryEzJyQXIg== + electron@^25.9.8: version "25.9.8" resolved "https://registry.yarnpkg.com/electron/-/electron-25.9.8.tgz#7c125ccbddad02861736275b0d4a387c59a91469" @@ -1389,7 +1538,7 @@ es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-module-lexer@^2.0.0, es-module-lexer@^2.1.0: +es-module-lexer@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.1.0.tgz#1dfcbb5ea3bbfb63f28e1fc3676c3676d1c9624c" integrity sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ== @@ -1406,6 +1555,11 @@ es6-error@^4.1.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + escape-html@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1416,18 +1570,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -esquery@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d" - integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== - dependencies: - estraverse "^5.1.0" - -estraverse@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" @@ -1468,6 +1610,14 @@ fdir@^6.5.0: resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + foreground-child@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" @@ -1500,6 +1650,11 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" @@ -1543,6 +1698,15 @@ glob@^11.0.0: package-json-from-dist "^1.0.0" path-scurry "^2.0.0" +glob@^13.0.6: + version "13.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" + integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== + dependencies: + minimatch "^10.2.2" + minipass "^7.1.3" + path-scurry "^2.0.2" + global-agent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" @@ -1590,6 +1754,11 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-property-descriptors@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" @@ -1652,6 +1821,14 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -1659,16 +1836,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -import-in-the-middle@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-3.0.0.tgz#720c12b4c07ea58b32a54667e70a022e18cc36a3" - integrity sha512-OnGy+eYT7wVejH2XWgLRgbmzujhhVIATQH0ztIeRilwHBjTeG3pD+XnH3PKX0r9gJ0BuJmJ68q/oh9qgXnNDQg== - dependencies: - acorn "^8.15.0" - acorn-import-attributes "^1.9.5" - cjs-module-lexer "^2.2.0" - module-details-from-path "^1.0.4" - inflation@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.1.0.tgz#9214db11a47e6f756d111c4f9df96971c60f886c" @@ -1708,6 +1875,16 @@ jackspeak@^4.1.1: dependencies: "@isaacs/cliui" "^8.0.2" +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -1723,6 +1900,11 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -1864,6 +2046,13 @@ lightningcss@^1.32.0: lightningcss-win32-arm64-msvc "1.32.0" lightningcss-win32-x64-msvc "1.32.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -1874,7 +2063,14 @@ lru-cache@^11.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== -magic-string@^0.30.21: +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +magic-string@^0.30.21, magic-string@~0.30.8: version "0.30.21" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== @@ -1908,11 +2104,6 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -meriyah@^6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/meriyah/-/meriyah-6.1.4.tgz#2d49a8934fbcd9205c20564579c3560d9b1e077b" - integrity sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ== - mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -1954,15 +2145,22 @@ minimatch@^10.0.3: dependencies: brace-expansion "^5.0.2" +minimatch@^10.2.2: + version "10.2.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.6.tgz#fd956bbe0b77241e9f15ac5dccb1c638060968ef" + integrity sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== + dependencies: + brace-expansion "^5.0.8" + minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -module-details-from-path@^1.0.3, module-details-from-path@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.4.tgz#b662fdcd93f6c83d3f25289da0ce81c8d9685b94" - integrity sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w== +minipass@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== ms@2.0.0: version "2.0.0" @@ -1991,6 +2189,18 @@ node-abi@^3.89.0: dependencies: semver "^7.3.5" +node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-releases@^2.0.53: + version "2.0.53" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.53.tgz#0fe5ad8a7935e075172f574e56f0c20f07fa41af" + integrity sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ== + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -2113,6 +2323,20 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + package-json-from-dist@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" @@ -2123,6 +2347,11 @@ parseurl@^1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -2141,6 +2370,14 @@ path-scurry@^2.0.0: lru-cache "^11.0.0" minipass "^7.1.2" +path-scurry@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" + integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + pathe@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" @@ -2180,6 +2417,11 @@ progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + pump@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" @@ -2218,14 +2460,6 @@ read-package-json-fast@^4.0.0: json-parse-even-better-errors "^4.0.0" npm-normalize-package-bin "^4.0.0" -require-in-the-middle@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz#dbde2587f669398626d56b20c868ab87bf01cce4" - integrity sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ== - dependencies: - debug "^4.3.5" - module-details-from-path "^1.0.3" - resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -2330,17 +2564,12 @@ rollup@^4.44.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -semifies@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semifies/-/semifies-1.0.0.tgz#b69569f32c2ba2ac04f705ea82831364289b2ae2" - integrity sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw== - semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== -semver@^6.2.0: +semver@^6.2.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -2434,11 +2663,6 @@ source-map-js@^1.2.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - sprintf-js@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" @@ -2529,6 +2753,13 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -2572,6 +2803,11 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + tslib@^2.4.0, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" @@ -2629,6 +2865,14 @@ unpipe@1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== +update-browserslist-db@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz#a71c28dd22f505481dbc4689087b18d933e90afd" + integrity sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + vary@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -2673,6 +2917,19 @@ vitest@^4.0.18: vite "^6.0.0 || ^7.0.0 || ^8.0.0-0" why-is-node-running "^2.3.0" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which@^1.2.4: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -2680,7 +2937,7 @@ which@^1.2.4: dependencies: isexe "^2.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -2733,6 +2990,11 @@ xvfb-maybe@^0.2.1: debug "^2.2.0" which "^1.2.4" +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yaml@^2.2.1: version "2.6.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.0.tgz#14059ad9d0b1680d0f04d3a60fe00f3a857303c3" @@ -2745,3 +3007,8 @@ yauzl@^2.10.0: dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 8a919ba11603581a6fdc9e11e07f5545cbd3ca5b Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 19 Aug 2026 22:50:01 +0200 Subject: [PATCH 02/10] Oopsie --- src/renderer/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/renderer/index.ts b/src/renderer/index.ts index 0e7a411af..1740a7557 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -79,7 +79,6 @@ export { httpClientIntegration, httpContextIntegration, instrumentOutgoingRequests, - instrumentStateGraph, instrumentSupabaseClient, isBotUserAgent, isEnabled, From be8bf1b0eae045b6e65a16408fca7db0b3939d73 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 20 Aug 2026 13:29:12 +0200 Subject: [PATCH 03/10] Update to `alpha.1` --- package.json | 16 +-- src/common/span-data-backfill.ts | 18 --- src/main/index.ts | 1 + src/main/sdk.ts | 3 - src/renderer/index.ts | 1 + src/renderer/sdk.ts | 2 +- src/utility/index.ts | 1 + src/utility/sdk.ts | 3 - test/unit/net-trace-propagation.test.ts | 18 +-- yarn.lock | 167 +++++++++++++----------- 10 files changed, 110 insertions(+), 120 deletions(-) delete mode 100644 src/common/span-data-backfill.ts diff --git a/package.json b/package.json index 961ba0fd4..cd6440b11 100644 --- a/package.json +++ b/package.json @@ -105,15 +105,15 @@ "e2e": "xvfb-maybe vitest run --root=./test/e2e --silent=false --disable-console-intercept" }, "dependencies": { - "@sentry/browser": "11.0.0-alpha.0", + "@sentry/browser": "11.0.0-alpha.1", "@sentry/conventions": "^0.16.0", - "@sentry/core": "11.0.0-alpha.0", - "@sentry/node": "11.0.0-alpha.0", - "@sentry/opentelemetry": "11.0.0-alpha.0", - "@sentry/server-utils": "11.0.0-alpha.0" + "@sentry/core": "11.0.0-alpha.1", + "@sentry/node": "11.0.0-alpha.1", + "@sentry/opentelemetry": "11.0.0-alpha.1", + "@sentry/server-utils": "11.0.0-alpha.1" }, "peerDependencies": { - "@sentry/node-native": "11.0.0-alpha.0" + "@sentry/node-native": "11.0.0-alpha.1" }, "peerDependenciesMeta": { "@sentry/node-native": { @@ -122,8 +122,8 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^12.1.3", - "@sentry/eslint-plugin-sdk": "11.0.0-alpha.0", - "@sentry/node-native": "11.0.0-alpha.0", + "@sentry/eslint-plugin-sdk": "11.0.0-alpha.1", + "@sentry/node-native": "11.0.0-alpha.1", "@types/busboy": "^1.5.4", "@types/koa": "^2.0.52", "@types/koa-bodyparser": "^4.3.0", diff --git a/src/common/span-data-backfill.ts b/src/common/span-data-backfill.ts deleted file mode 100644 index 266a2af7d..000000000 --- a/src/common/span-data-backfill.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { hasSpanStreamingEnabled } from '@sentry/core'; -import type { NodeClient } from '@sentry/node'; -import { applyOtelSpanData, backfillStreamedSpanDataFromOtel } from '@sentry/opentelemetry'; - -/** - * Backfill Sentry span data (op, source, name, status) from OpenTelemetry semantic attributes, mirroring the - * `@sentry/node` init. Channel-based instrumentation stamps OTel semantic attributes on native Sentry spans but - * leaves the Sentry-convention fields (e.g. `sentry.op`) to be inferred. - */ -export function setupSpanDataBackfill(client: NodeClient): void { - client.on('spanEnd', (span) => { - applyOtelSpanData(span, { finalizeStatus: true }); - }); - - if (hasSpanStreamingEnabled(client)) { - client.on('preprocessSpan', backfillStreamedSpanDataFromOtel); - } -} diff --git a/src/main/index.ts b/src/main/index.ts index dd2cc1415..9d270fa66 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -146,6 +146,7 @@ export { spanStreamingIntegration, spanToBaggageHeader, spanToJSON, + spanToStaticSpanJSON, spanToTraceHeader, spotlightIntegration, startInactiveSpan, diff --git a/src/main/sdk.ts b/src/main/sdk.ts index 993736c3d..c104afc66 100644 --- a/src/main/sdk.ts +++ b/src/main/sdk.ts @@ -23,7 +23,6 @@ import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; import type { Session, WebContents } from 'electron'; import { session } from 'electron'; import { IPCMode } from '../common/ipc.js'; -import { setupSpanDataBackfill } from '../common/span-data-backfill.js'; import { getDefaultEnvironment, getDefaultReleaseName, getSdkInfo } from './context.js'; import { additionalContextIntegration } from './integrations/additional-context.js'; import { childProcessIntegration } from './integrations/child-process.js'; @@ -218,8 +217,6 @@ export function init(userOptions: ElectronMainOptions): void { client.init(); configureIPC(client, options); - - setupSpanDataBackfill(client); } /** A list of integrations which cause default integrations to be removed */ diff --git a/src/renderer/index.ts b/src/renderer/index.ts index 1740a7557..20bb78b35 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -122,6 +122,7 @@ export { spanStreamingIntegration, spanToBaggageHeader, spanToJSON, + spanToStaticSpanJSON, spanToTraceHeader, spotlightBrowserIntegration, startBrowserTracingNavigationSpan, diff --git a/src/renderer/sdk.ts b/src/renderer/sdk.ts index 061baacad..6c0019cc5 100644 --- a/src/renderer/sdk.ts +++ b/src/renderer/sdk.ts @@ -49,7 +49,7 @@ interface ElectronRendererOptions extends Partial( options: ElectronRendererOptions & O = {} as ElectronRendererOptions & O, // This parameter name ensures that TypeScript error messages contain a hint for fixing SDK version mismatches - originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_alpha_0: O) => void = browserInit, + originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_alpha_1: O) => void = browserInit, ): void { // Ensure the browser SDK is only init'ed once. if (window?.__SENTRY__RENDERER_INIT__) { diff --git a/src/utility/index.ts b/src/utility/index.ts index 36152e9cd..2b9307fa1 100644 --- a/src/utility/index.ts +++ b/src/utility/index.ts @@ -148,6 +148,7 @@ export { spanStreamingIntegration, spanToBaggageHeader, spanToJSON, + spanToStaticSpanJSON, spanToTraceHeader, spotlightIntegration, startInactiveSpan, diff --git a/src/utility/sdk.ts b/src/utility/sdk.ts index fde1ff49e..bcff02b35 100644 --- a/src/utility/sdk.ts +++ b/src/utility/sdk.ts @@ -20,7 +20,6 @@ import { onUnhandledRejectionIntegration, } from '@sentry/node'; import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; -import { setupSpanDataBackfill } from '../common/span-data-backfill.js'; import { makeUtilityProcessTransport } from './transport.js'; export const defaultStackParser: StackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename())); @@ -74,6 +73,4 @@ export function init(userOptions: NodeOptions = {}): void { client.asyncLocalStorageLookup = { asyncLocalStorage }; scope.setClient(client); client.init(); - - setupSpanDataBackfill(client); } diff --git a/test/unit/net-trace-propagation.test.ts b/test/unit/net-trace-propagation.test.ts index 93a11ac3a..1bc328afb 100644 --- a/test/unit/net-trace-propagation.test.ts +++ b/test/unit/net-trace-propagation.test.ts @@ -30,24 +30,26 @@ import { createTransport, getActiveSpan, getCurrentScope, - getGlobalScope, - getIsolationScope, + getMainCarrier, resolvedSyncPromise, + SDK_VERSION, startSpan, } from '@sentry/core'; import { NodeClient } from '@sentry/node'; import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; -import { setupSpanDataBackfill } from '../../src/common/span-data-backfill'; import { electronNetIntegration } from '../../src/main/integrations/net-breadcrumbs'; const TEST_DSN = 'https://username@domain/123'; const NIL_TRACE_ID = '00000000000000000000000000000000'; function resetGlobals(): void { - getCurrentScope().clear(); - getCurrentScope().setClient(undefined); - getIsolationScope().clear(); - getGlobalScope().clear(); + // Scope.clear() was removed in v11, so drop the scope singletons to force fresh scopes + const sentryCarrier = getMainCarrier().__SENTRY__?.[SDK_VERSION]; + if (sentryCarrier) { + delete sentryCarrier.globalScope; + delete sentryCarrier.defaultCurrentScope; + delete sentryCarrier.defaultIsolationScope; + } } function setupSdk(options: Record = {}): NodeClient { @@ -67,8 +69,6 @@ function setupSdk(options: Record = {}): NodeClient { getCurrentScope().setClient(client); client.init(); - setupSpanDataBackfill(client); - return client; } diff --git a/yarn.lock b/yarn.lock index 175325aa5..1ae27e956 100644 --- a/yarn.lock +++ b/yarn.lock @@ -692,34 +692,35 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== -"@sentry/browser-utils@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-alpha.0.tgz#e26910d1d134e8ff9ae3d9200b680b1eabaee642" - integrity sha512-m66KuZQnaLJ41iV6q2g4kcsmk+mkhDaJyrolMuIua0PbDwYcige50O2PIN5kj4sRv30Jfme05VwAI1ZRT3Vzmg== - dependencies: - "@sentry/conventions" "^0.16.0" - "@sentry/core" "11.0.0-alpha.0" - -"@sentry/browser@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-alpha.0.tgz#fd09132c736ba20dc18f644081ab6a7f28868f36" - integrity sha512-lZYOYAkDf2UOf/LBPKq642/Bb1g3Ew+IrhHz3axeSWSsX6bsbeFSWgdxEmxU3mOlaTOWQfiSV7MA906ZxqNnWw== - dependencies: - "@sentry/browser-utils" "11.0.0-alpha.0" - "@sentry/conventions" "^0.16.0" - "@sentry/core" "11.0.0-alpha.0" - "@sentry/feedback" "11.0.0-alpha.0" - "@sentry/replay" "11.0.0-alpha.0" - "@sentry/replay-canvas" "11.0.0-alpha.0" - -"@sentry/bundler-plugins@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-alpha.0.tgz#d7863fc89e445105cc479e577f50bca4c6a87a98" - integrity sha512-uLxHj0Z9fWDouq3LT4aAxukkUrz4nCYhOdW73IMziAYLFdhf1wJSv3K8ysjZLWtUng+dQ+J2admH7FVYCcf2xg== +"@sentry/browser-utils@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-alpha.1.tgz#fa17729c713b644b682a2c36a04701ad458a688d" + integrity sha512-MUbgDQQnUz27aErA0gyiQgt+Zu6ZdqTP7YT8WN9g3fbWSBg2yj94bZ06pw4422sxj1w0q7wvVsF7nVmU1fy0/A== + dependencies: + "@sentry/conventions" "^0.19.0" + "@sentry/core" "11.0.0-alpha.1" + web-vitals "^6.0.1" + +"@sentry/browser@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-alpha.1.tgz#67231b07c524d630abfa75f7f81d7c73b9b1ea79" + integrity sha512-KNwvVzbJSn7y9RTYW5I8dBrtSSZj+orzA4/c7Zhp1peH4J073fPWpIXJUeim2Sr5HvC0oRwbRqpYgrRrZ64bdg== + dependencies: + "@sentry/browser-utils" "11.0.0-alpha.1" + "@sentry/conventions" "^0.19.0" + "@sentry/core" "11.0.0-alpha.1" + "@sentry/feedback" "11.0.0-alpha.1" + "@sentry/replay" "11.0.0-alpha.1" + "@sentry/replay-canvas" "11.0.0-alpha.1" + +"@sentry/bundler-plugins@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-alpha.1.tgz#829f8d9343fe9c8bcd0286e575f98b6868a120d4" + integrity sha512-vFYrP4a2tKPkkFmuxg2c45XqhNnn07olYwP7blFLqD4QMd7blfvB0WnC0xpmke4CUYMl+ELhWbt8KgfyiV/qLg== dependencies: "@babel/core" "^7.18.5" "@sentry/cli" "^2.58.6" - "@sentry/core" "11.0.0-alpha.0" + "@sentry/core" "11.0.0-alpha.1" dotenv "^17.4.2" find-up "^5.0.0" glob "^13.0.6" @@ -791,24 +792,29 @@ resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.16.0.tgz#3b58d15714cf44dca1518496c00749eec5525009" integrity sha512-fO9PLmHdVURcSPUpWCItWAtgKiMwGdJHbovoSEyLplX5sxs2ugvI4CBPTrkkgqhObnZOD0CnWBKDzSVQYBKEyQ== -"@sentry/core@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-alpha.0.tgz#1db215c869b306e457b36b5d63173f02b0896afd" - integrity sha512-YAwpmevzT3ghURwdLFDOFN74rZXE9VYYsgc+wsk5j8TQ6Nd+CLO2LvQvQbzxUmVJa6pN04z2oqWg+TWMpfH9QA== +"@sentry/conventions@^0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.19.0.tgz#da81dd1b8c4f2f42aca2d74251a07ff9f8718e42" + integrity sha512-nYciB7Pt/Ujf6pJSt1FnHeJBp908P5Ibod4FMlTzASJcqU1RvixI5EFzkbe8gvUxP3XAMoWDgeWeG8agCjKYVA== + +"@sentry/core@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-alpha.1.tgz#8a7eaec19a33088e6658f0f49b1a076a5271b1d3" + integrity sha512-KIiN6A7QltDlPZ+OJAOfDpzfxGBUsubJoLOKV1T1pj/9KWdfQlb6V0iCPPON+SwqHTWC8YifdenmC0J5jq5BCA== dependencies: - "@sentry/conventions" "^0.16.0" + "@sentry/conventions" "^0.19.0" -"@sentry/eslint-plugin-sdk@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-alpha.0.tgz#5a75a7a3a56bf66a7d3226c28ee4545880d7769d" - integrity sha512-jol/X/LmS8O89AYyl7E9kZ+yolROKu6jxTDbGL2RJJFYejXftWwuoIzvNw9pj+DGtrb0Iz3Ca2KI6EoMcik42w== +"@sentry/eslint-plugin-sdk@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-alpha.1.tgz#c146439f011ea05684791fbfdebbd5be261162b9" + integrity sha512-3ld8FRPbbwvMabc51zppChf8OOxRNhgF5tRbdkgOnmOKffxTXOa/iG+AL9gjBkNdosX/gt6iLi79Gb1vdD+zpw== -"@sentry/feedback@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-alpha.0.tgz#386e8786776e7d5dd2073e432a6b3b6222a2c8fe" - integrity sha512-q8fDu3pI45wHxl2920UD0m+cHQEjW176IS26j4TX1dT2idGE6n6NIIrJCBOYeTXh5PSkxd2BA4J1tUdHrzgY4g== +"@sentry/feedback@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-alpha.1.tgz#f6fbb95ce638ce6bcc8df8ffa093e7d4adb4bc7e" + integrity sha512-rNlEjr/HhNqWK6DjiebDbsFzVyVCz5lH2pj4/Ev/xlLOgCxufvIrUFHXxpTAUXdMq/Dbxpa6JdU0Ltc3eEUgNg== dependencies: - "@sentry/core" "11.0.0-alpha.0" + "@sentry/core" "11.0.0-alpha.1" "@sentry/node-native-stacktrace@^0.5.1": version "0.5.1" @@ -818,59 +824,59 @@ detect-libc "^2.0.4" node-abi "^3.89.0" -"@sentry/node-native@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-alpha.0.tgz#d4baca8db2bb66bf8f54b9aa7eef7c8bdd101c96" - integrity sha512-5PQH/pc7iwN0X2/VEnybmaVBGYEc++b2ucHe2h5S+MkkcOvlOeIuSJM54tqVGoLjG4/Vtu1uxWLMdQr/OSdvvQ== +"@sentry/node-native@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-alpha.1.tgz#82523d48414044ba32de2b24a12f24e119d47f83" + integrity sha512-BQSMjI1LqlhQeSVcCgpv592VCF07ytMZCm6CNXTxEgSNtxtqrInMpItWCbHxc7MoBceclXAZiqMjF8DjUfUSPg== dependencies: - "@sentry/core" "11.0.0-alpha.0" - "@sentry/node" "11.0.0-alpha.0" + "@sentry/core" "11.0.0-alpha.1" + "@sentry/node" "11.0.0-alpha.1" "@sentry/node-native-stacktrace" "^0.5.1" -"@sentry/node@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-alpha.0.tgz#9549153ee5f0724411854c62703cf15b325b06db" - integrity sha512-2KvlPz37RADpyvCstSJ/y4zIqb0+mVnZNtOejcAFDFoEm4tf82nW4xz0zXUMX3/0UgzWkMYMaB9vnlyss3QNXQ== +"@sentry/node@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-alpha.1.tgz#b77ed12fac04828338ed7ed422420a795765d30a" + integrity sha512-fJYi66rT5WfRfRQkIqchwj5hGobhcEJw6MGfTq3dR4xh9Ksk+hLADz+U4zu53ZuV0NXnGTHbOLWzlJ8J+zjhKA== dependencies: "@opentelemetry/api" "^1.9.1" - "@sentry/bundler-plugins" "11.0.0-alpha.0" - "@sentry/conventions" "^0.16.0" - "@sentry/core" "11.0.0-alpha.0" - "@sentry/opentelemetry" "11.0.0-alpha.0" - "@sentry/server-utils" "11.0.0-alpha.0" + "@sentry/bundler-plugins" "11.0.0-alpha.1" + "@sentry/conventions" "^0.19.0" + "@sentry/core" "11.0.0-alpha.1" + "@sentry/opentelemetry" "11.0.0-alpha.1" + "@sentry/server-utils" "11.0.0-alpha.1" -"@sentry/opentelemetry@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-alpha.0.tgz#26a68b597969f813529002ee913c6bfdfdb4f9e1" - integrity sha512-4oS/ChVuluW6AaF9mSe00diNc8mDiRfjtSKbzOALrL2HRXf00fNUr/zOi1KgiLm6E96CMXL5P1rpEo+dJ/qVFw== +"@sentry/opentelemetry@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-alpha.1.tgz#9a162ceaa4917a0e2a56623b8a6b44ad30228327" + integrity sha512-JH8oH85SCFgecEyncOIQ2mzvgQnVUrdsEc1BR2nLT3AymwyhT6fblbMp2B8IiuEwBC+YHLf631KCYoVfrLj85Q== dependencies: - "@sentry/conventions" "^0.16.0" - "@sentry/core" "11.0.0-alpha.0" + "@sentry/conventions" "^0.19.0" + "@sentry/core" "11.0.0-alpha.1" -"@sentry/replay-canvas@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-alpha.0.tgz#af4df1cee1504bc4bac466557c1907dae1ea2b96" - integrity sha512-Rvtfmbrltx0isD9JpJZ0pmxx5jZKS3ZZWbH3HSH9RHHsNdHjKLWSzKcrX49Hf/XTGihO3YqiFxNll2aIT3SeIg== +"@sentry/replay-canvas@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-alpha.1.tgz#170e4bff45b90e5a19b7cf53e36a8a131747468c" + integrity sha512-/rIBFLEjdWJ2RnkN1frh3xKi+aJ2jQpcTCATzRrpGcMMELL6vfFZIFAyN4L5UAhmxmu7ZXmXfpSEhj4hpf4YSQ== dependencies: - "@sentry/core" "11.0.0-alpha.0" - "@sentry/replay" "11.0.0-alpha.0" + "@sentry/core" "11.0.0-alpha.1" + "@sentry/replay" "11.0.0-alpha.1" -"@sentry/replay@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-alpha.0.tgz#be9454ab8b5070cbe27a5d9b0fa9cf29df283562" - integrity sha512-PElbKpmvap1ejMlEw2Z5tP2wroBtuh3Hq18V+7eDBAEcHfPh8N4DDJwu9quxPcb+OHn6VKHJE2LoJJPI8o/wMw== +"@sentry/replay@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-alpha.1.tgz#73f254e9eabd0d81b11893f6e7bf12e59a653d93" + integrity sha512-EiJOMXZisJ8KUf+XiLVwzPxND917M+DmMXMzY3o2NrYYHrNdoG5yLXqAaJmXQBcrVsVOmKprqJSa4svtl/9vGQ== dependencies: - "@sentry/browser-utils" "11.0.0-alpha.0" - "@sentry/core" "11.0.0-alpha.0" + "@sentry/browser-utils" "11.0.0-alpha.1" + "@sentry/core" "11.0.0-alpha.1" -"@sentry/server-utils@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-alpha.0.tgz#532ecebe7fbc6d36e4c860ae46fa4c2f77d6b858" - integrity sha512-fhyka8mkJWEP0yCnIkBccNZHpytx1+JY2nnbfIeLy+298zhFozOtddi4wqQedZP9y1RuAl6qHY3efbwE/9IPLQ== +"@sentry/server-utils@11.0.0-alpha.1": + version "11.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-alpha.1.tgz#0e22c9cda63e841a309b0e0e763498af78d675a1" + integrity sha512-/xuTDeCCmkyfIYx+7UuKv9OKanZj4h0wibZ8b/gR7ElivcOSPUEY+YDlr/tojwoJoI8c4nEdcgjVH1Rb7S18uA== dependencies: "@opentelemetry/api" "^1.9.1" - "@sentry/conventions" "^0.16.0" - "@sentry/core" "11.0.0-alpha.0" + "@sentry/conventions" "^0.19.0" + "@sentry/core" "11.0.0-alpha.1" "@sindresorhus/is@^4.0.0": version "4.6.0" @@ -2917,6 +2923,11 @@ vitest@^4.0.18: vite "^6.0.0 || ^7.0.0 || ^8.0.0-0" why-is-node-running "^2.3.0" +web-vitals@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-6.1.1.tgz#855ba63ed40847c55e061ac13f55ee5f6435b723" + integrity sha512-r93gKnR6ZC2O8F3JrS0AAGIQ0v0OhXuyg4DAj2oG7K+GPkwXfUSc3ZcWeu50AsV5yIc6xxnTjERipJ6EvSw2vg== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" From 4fc7f038c3e98885f2246157a9de540df44a3755 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 31 Aug 2026 19:01:51 +0000 Subject: [PATCH 04/10] feat: Update Sentry SDKs to v11.0.0-alpha.2 Bump all `@sentry/*` packages to `11.0.0-alpha.2` (and `@sentry/conventions` to `^0.20.0`) and adapt to the breaking changes in that release: - The `sentry.source` span attribute / `SEMANTIC_ATTRIBUTE_SENTRY_SOURCE` export were replaced by `sentry.segment.name.source` / `SENTRY_SEGMENT_NAME_SOURCE`. Update the re-export lists and the e2e span assertions accordingly. - Re-export the new `bfcacheIntegration`, `interactionsIntegration` (browser) and `workerThreadsIntegration` (node) so `check-exports` passes. Remove hacks that the SDK now handles itself: - `NodeClient.init()` now sets up the async-context strategy and wires `asyncLocalStorageLookup`, so the manual `setAsyncLocalStorageAsyncContextStrategy()` call and lookup assignment are dropped from the main and utility inits. - The `enableLogs` client option was removed in v11 (logs are on by default, gated per-log via `beforeSendLog`), so the log-capture integrations gate on their own `captureLogs` option only. - Drop the direct `@sentry/opentelemetry` dependency; it was added purely for the span-data backfill that was already removed, and remains available transitively via `@sentry/node`. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01PbscLoW7dZTXEm8ebixtgS --- package.json | 17 +- src/main/index.ts | 3 +- src/main/integrations/child-process.ts | 4 +- src/main/integrations/electron-breadcrumbs.ts | 4 +- src/main/integrations/net-breadcrumbs.ts | 6 +- src/main/sdk.ts | 4 - src/renderer/index.ts | 4 +- src/renderer/sdk.ts | 2 +- src/utility/index.ts | 3 +- src/utility/sdk.ts | 4 - .../other/browser-profiling-manual/test.ts | 1 - .../other/browser-profiling-trace/test.ts | 1 - .../test-apps/other/browser-tracing/test.ts | 2 +- .../test-apps/other/custom-tracing/test.ts | 1 - .../other/net-breadcrumbs-tracing/test.ts | 1 - .../test-apps/other/node-profiling/test.ts | 1 - yarn.lock | 299 ++++++------------ 17 files changed, 118 insertions(+), 239 deletions(-) diff --git a/package.json b/package.json index cd6440b11..4334dd907 100644 --- a/package.json +++ b/package.json @@ -105,15 +105,14 @@ "e2e": "xvfb-maybe vitest run --root=./test/e2e --silent=false --disable-console-intercept" }, "dependencies": { - "@sentry/browser": "11.0.0-alpha.1", - "@sentry/conventions": "^0.16.0", - "@sentry/core": "11.0.0-alpha.1", - "@sentry/node": "11.0.0-alpha.1", - "@sentry/opentelemetry": "11.0.0-alpha.1", - "@sentry/server-utils": "11.0.0-alpha.1" + "@sentry/browser": "11.0.0-alpha.2", + "@sentry/conventions": "^0.20.0", + "@sentry/core": "11.0.0-alpha.2", + "@sentry/node": "11.0.0-alpha.2", + "@sentry/server-utils": "11.0.0-alpha.2" }, "peerDependencies": { - "@sentry/node-native": "11.0.0-alpha.1" + "@sentry/node-native": "11.0.0-alpha.2" }, "peerDependenciesMeta": { "@sentry/node-native": { @@ -122,8 +121,8 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^12.1.3", - "@sentry/eslint-plugin-sdk": "11.0.0-alpha.1", - "@sentry/node-native": "11.0.0-alpha.1", + "@sentry/eslint-plugin-sdk": "11.0.0-alpha.2", + "@sentry/node-native": "11.0.0-alpha.2", "@types/busboy": "^1.5.4", "@types/koa": "^2.0.52", "@types/koa-bodyparser": "^4.3.0", diff --git a/src/main/index.ts b/src/main/index.ts index 9d270fa66..b26eaedee 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -125,7 +125,7 @@ export { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, - SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, + SENTRY_SEGMENT_NAME_SOURCE, setAttribute, setAttributes, setConversationId, @@ -169,6 +169,7 @@ export { withScope, withStaticSpan, withStreamedSpan, + workerThreadsIntegration, wrapMcpServerWithSentry, zodErrorsIntegration, } from '@sentry/node'; diff --git a/src/main/integrations/child-process.ts b/src/main/integrations/child-process.ts index ca05b30ea..939e2e905 100644 --- a/src/main/integrations/child-process.ts +++ b/src/main/integrations/child-process.ts @@ -21,8 +21,6 @@ export interface ChildProcessOptions extends NodeChildProcessOptions { /** * Whether to also capture Sentry logs for child process events * - * Logs are only sent if they have not been disabled via the `enableLogs` client option. - * * default: false */ captureLogs: boolean; @@ -86,7 +84,7 @@ export const childProcessIntegration = defineIntegration((userOptions: Partial 0) { const clientOptions = client.getOptions() as ElectronMainOptions; - const enableLogs = options.captureLogs && clientOptions?.enableLogs !== false; + const enableLogs = options.captureLogs; app.on('child-process-gone', (_, details) => { const { reason } = details; diff --git a/src/main/integrations/electron-breadcrumbs.ts b/src/main/integrations/electron-breadcrumbs.ts index 722e93510..1cb8e26f2 100644 --- a/src/main/integrations/electron-breadcrumbs.ts +++ b/src/main/integrations/electron-breadcrumbs.ts @@ -59,8 +59,6 @@ export interface ElectronBreadcrumbsOptions { /** * Whether to also capture Sentry logs for Electron events * - * Logs are only sent if they have not been disabled via the `enableLogs` client option. - * * default: false */ captureLogs: boolean; @@ -130,7 +128,7 @@ export const electronBreadcrumbsIntegration = defineIntegration( name: 'ElectronBreadcrumbs', setup(client: NodeClient) { const clientOptions = client.getOptions() as ElectronMainOptions | undefined; - const enableLogs = options.captureLogs && clientOptions?.enableLogs !== false; + const enableLogs = options.captureLogs; function patchEventEmitter( emitter: NodeJS.EventEmitter | WebContents | BrowserWindow, diff --git a/src/main/integrations/net-breadcrumbs.ts b/src/main/integrations/net-breadcrumbs.ts index 789822c4f..d85d4a523 100644 --- a/src/main/integrations/net-breadcrumbs.ts +++ b/src/main/integrations/net-breadcrumbs.ts @@ -40,8 +40,6 @@ export interface NetOptions { /** * Whether to also capture Sentry logs for net requests * - * Logs are only sent if they have not been disabled via the `enableLogs` client option. - * * Defaults to: false */ captureLogs?: boolean; @@ -107,9 +105,9 @@ type WrappedRequestMethodFactory = (original: RequestMethod) => RequestMethod; function createWrappedRequestFactory( { tracing, breadcrumbs, captureLogs }: NetOptions, - { enableLogs, tracePropagationTargets, propagateTraceparent }: ClientOptions, + { tracePropagationTargets, propagateTraceparent }: ClientOptions, ): WrappedRequestMethodFactory { - const logsEnabled = !!captureLogs && enableLogs !== false; + const logsEnabled = !!captureLogs; // We're caching results so we don't have to recompute regexp every time we create a request. const createSpanUrlMap = new LRUMap(100); const headersUrlMap = new LRUMap(100); diff --git a/src/main/sdk.ts b/src/main/sdk.ts index c104afc66..45c56c423 100644 --- a/src/main/sdk.ts +++ b/src/main/sdk.ts @@ -19,7 +19,6 @@ import { nodeContextIntegration, onUnhandledRejectionIntegration, } from '@sentry/node'; -import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; import type { Session, WebContents } from 'electron'; import { session } from 'electron'; import { IPCMode } from '../common/ipc.js'; @@ -193,13 +192,10 @@ export function init(userOptions: ElectronMainOptions): void { removeRedundantIntegrations(options); configureUtilityProcessIPC(); - const asyncLocalStorage = setAsyncLocalStorageAsyncContextStrategy(); - const scope = getCurrentScope(); scope.update(options.initialScope); const client = new NodeClient(options); - client.asyncLocalStorageLookup = { asyncLocalStorage }; if (inferIpAddress) { client.on('beforeSendSession', addAutoIpAddressToSession); diff --git a/src/renderer/index.ts b/src/renderer/index.ts index 20bb78b35..a1a3c1ac5 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -24,6 +24,7 @@ export { addBreadcrumb, addEventProcessor, addIntegration, + bfcacheIntegration, bindScopeToEmitter, breadcrumbsIntegration, browserApiErrorsIntegration, @@ -80,6 +81,7 @@ export { httpContextIntegration, instrumentOutgoingRequests, instrumentSupabaseClient, + interactionsIntegration, isBotUserAgent, isEnabled, isInitialized, @@ -103,7 +105,7 @@ export { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, - SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, + SENTRY_SEGMENT_NAME_SOURCE, sendFeedback, setActiveSpanInBrowser, setAttribute, diff --git a/src/renderer/sdk.ts b/src/renderer/sdk.ts index 6c0019cc5..42c4d8b6a 100644 --- a/src/renderer/sdk.ts +++ b/src/renderer/sdk.ts @@ -49,7 +49,7 @@ interface ElectronRendererOptions extends Partial( options: ElectronRendererOptions & O = {} as ElectronRendererOptions & O, // This parameter name ensures that TypeScript error messages contain a hint for fixing SDK version mismatches - originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_alpha_1: O) => void = browserInit, + originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_alpha_2: O) => void = browserInit, ): void { // Ensure the browser SDK is only init'ed once. if (window?.__SENTRY__RENDERER_INIT__) { diff --git a/src/utility/index.ts b/src/utility/index.ts index 2b9307fa1..2303ef52c 100644 --- a/src/utility/index.ts +++ b/src/utility/index.ts @@ -127,7 +127,7 @@ export { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, - SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, + SENTRY_SEGMENT_NAME_SOURCE, setAttribute, setAttributes, setConversationId, @@ -171,6 +171,7 @@ export { withScope, withStaticSpan, withStreamedSpan, + workerThreadsIntegration, wrapMcpServerWithSentry, zodErrorsIntegration, } from '@sentry/node'; diff --git a/src/utility/sdk.ts b/src/utility/sdk.ts index bcff02b35..efe0c868f 100644 --- a/src/utility/sdk.ts +++ b/src/utility/sdk.ts @@ -19,7 +19,6 @@ import { onUncaughtExceptionIntegration, onUnhandledRejectionIntegration, } from '@sentry/node'; -import { setAsyncLocalStorageAsyncContextStrategy } from '@sentry/server-utils'; import { makeUtilityProcessTransport } from './transport.js'; export const defaultStackParser: StackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename())); @@ -64,13 +63,10 @@ export function init(userOptions: NodeOptions = {}): void { debug.enable(); } - const asyncLocalStorage = setAsyncLocalStorageAsyncContextStrategy(); - const scope = getCurrentScope(); scope.update(options.initialScope); const client = new NodeClient(options); - client.asyncLocalStorageLookup = { asyncLocalStorage }; scope.setClient(client); client.init(); } diff --git a/test/e2e/test-apps/other/browser-profiling-manual/test.ts b/test/e2e/test-apps/other/browser-profiling-manual/test.ts index e49d95201..5897a09fb 100644 --- a/test/e2e/test-apps/other/browser-profiling-manual/test.ts +++ b/test/e2e/test-apps/other/browser-profiling-manual/test.ts @@ -52,7 +52,6 @@ electronTestRunner(__dirname, async (ctx) => { status: 'ok', attributes: expect.objectContaining({ 'sentry.origin': { value: 'manual', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, 'sentry.sample_rate': { value: 1, type: 'integer' }, 'sentry.environment': { value: 'production', type: 'string' }, 'sentry.segment.name': { value: 'Long work', type: 'string' }, diff --git a/test/e2e/test-apps/other/browser-profiling-trace/test.ts b/test/e2e/test-apps/other/browser-profiling-trace/test.ts index ac9b4153e..6de8505b2 100644 --- a/test/e2e/test-apps/other/browser-profiling-trace/test.ts +++ b/test/e2e/test-apps/other/browser-profiling-trace/test.ts @@ -52,7 +52,6 @@ electronTestRunner(__dirname, async (ctx) => { status: 'ok', attributes: expect.objectContaining({ 'sentry.origin': { value: 'manual', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, 'sentry.sample_rate': { value: 1, type: 'integer' }, 'sentry.environment': { value: 'production', type: 'string' }, 'sentry.segment.name': { value: 'Long work', type: 'string' }, diff --git a/test/e2e/test-apps/other/browser-tracing/test.ts b/test/e2e/test-apps/other/browser-tracing/test.ts index 67e447b98..7e8378909 100644 --- a/test/e2e/test-apps/other/browser-tracing/test.ts +++ b/test/e2e/test-apps/other/browser-tracing/test.ts @@ -30,7 +30,7 @@ electronTestRunner( attributes: expect.objectContaining({ 'sentry.op': { value: 'pageload', type: 'string' }, 'sentry.origin': { value: 'auto.pageload.browser', type: 'string' }, - 'sentry.source': { value: 'url', type: 'string' }, + 'sentry.segment.name.source': { value: 'url', type: 'string' }, 'sentry.sample_rate': { value: 1, type: 'integer' }, }), }); diff --git a/test/e2e/test-apps/other/custom-tracing/test.ts b/test/e2e/test-apps/other/custom-tracing/test.ts index 625c626f0..dcdcea36c 100644 --- a/test/e2e/test-apps/other/custom-tracing/test.ts +++ b/test/e2e/test-apps/other/custom-tracing/test.ts @@ -43,7 +43,6 @@ electronTestRunner( 'sentry.segment.name': { value: 'InitSequence', type: 'string' }, 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, 'sentry.sdk.integrations': { value: expect.any(Array), type: 'array' }, 'os.name': { value: expect.any(String), type: 'string' }, 'sentry.segment.name.source': { value: 'custom', type: 'string' }, diff --git a/test/e2e/test-apps/other/net-breadcrumbs-tracing/test.ts b/test/e2e/test-apps/other/net-breadcrumbs-tracing/test.ts index 75d5e6c84..cf869cf6f 100644 --- a/test/e2e/test-apps/other/net-breadcrumbs-tracing/test.ts +++ b/test/e2e/test-apps/other/net-breadcrumbs-tracing/test.ts @@ -75,7 +75,6 @@ electronTestRunner(__dirname, { skipEsmAutoTransform: true }, async (ctx) => { 'sentry.segment.name': { value: 'some-transaction', type: 'string' }, 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, 'sentry.sdk.integrations': { value: expect.any(Array), type: 'array' }, 'process.runtime.engine.name': { value: 'v8', type: 'string' }, 'os.name': { value: expect.any(String), type: 'string' }, diff --git a/test/e2e/test-apps/other/node-profiling/test.ts b/test/e2e/test-apps/other/node-profiling/test.ts index 9c7257115..8c8a640d9 100644 --- a/test/e2e/test-apps/other/node-profiling/test.ts +++ b/test/e2e/test-apps/other/node-profiling/test.ts @@ -56,7 +56,6 @@ electronTestRunner(__dirname, async (ctx) => { 'sentry.segment.name': { value: 'Long work', type: 'string' }, 'sentry.segment.id': { value: SHORT_UUID_MATCHER, type: 'string' }, 'sentry.sdk.name': { value: 'sentry.javascript.electron', type: 'string' }, - 'sentry.source': { value: 'custom', type: 'string' }, 'sentry.profiler_id': { value: UUID_MATCHER, type: 'string' }, 'sentry.segment.name.source': { value: 'custom', type: 'string' }, }), diff --git a/yarn.lock b/yarn.lock index 1ae27e956..1d4dd7152 100644 --- a/yarn.lock +++ b/yarn.lock @@ -692,129 +692,64 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== -"@sentry/browser-utils@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-alpha.1.tgz#fa17729c713b644b682a2c36a04701ad458a688d" - integrity sha512-MUbgDQQnUz27aErA0gyiQgt+Zu6ZdqTP7YT8WN9g3fbWSBg2yj94bZ06pw4422sxj1w0q7wvVsF7nVmU1fy0/A== +"@sentry/browser-utils@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-alpha.2.tgz#16a90571630090b1651a2e2bd1a983acb4038df8" + integrity sha512-6jr3V9hqAsAJ7WgOd0TtJtmOgI9CCfv1utfW+2D9NxqcGy68fFbXeDucCSt8z0hFrEJaOSCejhvQva297P8xMA== dependencies: - "@sentry/conventions" "^0.19.0" - "@sentry/core" "11.0.0-alpha.1" + "@sentry/conventions" "^0.20.0" + "@sentry/core" "11.0.0-alpha.2" web-vitals "^6.0.1" -"@sentry/browser@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-alpha.1.tgz#67231b07c524d630abfa75f7f81d7c73b9b1ea79" - integrity sha512-KNwvVzbJSn7y9RTYW5I8dBrtSSZj+orzA4/c7Zhp1peH4J073fPWpIXJUeim2Sr5HvC0oRwbRqpYgrRrZ64bdg== +"@sentry/browser@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-alpha.2.tgz#35c6b8c4e540a91cbb88f04d506f69c22b8f190f" + integrity sha512-uRSfYolWGt4bBAq41wTp48ejK/wvyXW/QYQ8/vvlB2o1HgNcdaYZhPjHvkL4uDa19z+/dfEldSFRh0ZZP/w1qA== dependencies: - "@sentry/browser-utils" "11.0.0-alpha.1" - "@sentry/conventions" "^0.19.0" - "@sentry/core" "11.0.0-alpha.1" - "@sentry/feedback" "11.0.0-alpha.1" - "@sentry/replay" "11.0.0-alpha.1" - "@sentry/replay-canvas" "11.0.0-alpha.1" + "@sentry/browser-utils" "11.0.0-alpha.2" + "@sentry/conventions" "^0.20.0" + "@sentry/core" "11.0.0-alpha.2" + "@sentry/feedback" "11.0.0-alpha.2" + "@sentry/replay" "11.0.0-alpha.2" + "@sentry/replay-canvas" "11.0.0-alpha.2" -"@sentry/bundler-plugins@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-alpha.1.tgz#829f8d9343fe9c8bcd0286e575f98b6868a120d4" - integrity sha512-vFYrP4a2tKPkkFmuxg2c45XqhNnn07olYwP7blFLqD4QMd7blfvB0WnC0xpmke4CUYMl+ELhWbt8KgfyiV/qLg== +"@sentry/bundler-plugins@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-alpha.2.tgz#a168374bfd39dce2946c698733c378ea86f810e9" + integrity sha512-cWTtt94lsNmZTGo8Rr0IDilfc4wuuaDnEvhoZqvuo2RJixMtwr3Erq9S1nbiX4jnP2fcLNnZm8nc/R4BbLIHrg== dependencies: "@babel/core" "^7.18.5" - "@sentry/cli" "^2.58.6" - "@sentry/core" "11.0.0-alpha.1" + "@sentry/core" "11.0.0-alpha.2" dotenv "^17.4.2" find-up "^5.0.0" glob "^13.0.6" magic-string "~0.30.8" + sentry "^0.44.0" supports-color "^8.1.1" -"@sentry/cli-darwin@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.58.6.tgz#38fd82751014b287e58e99ef948d01ca1e09f41d" - integrity sha512-udAVvcyfNa0R+95GvPz/+43/N3TC0TYKdkQ7D7jhPSzbcMc7l2fxRNN5yB3UpCA5fWFnW4toeaqwDBhb/Wh3LA== - -"@sentry/cli-linux-arm64@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.58.6.tgz#6e660e457af7928c1be8191c77646801fe3fa6a0" - integrity sha512-q8mEcNNmeXMy5i+jWT30TVpH7LcP4HD21CD5XRSPAd/a912HF6EpK0ybf/1USO14WOhoXbAGi9txwaWabSe33g== - -"@sentry/cli-linux-arm@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.58.6.tgz#41256912d636193d2a67985b6c9b3efbbe6a47c9" - integrity sha512-pD0LAt5PcUzAinBwvDqc66x9+2CabHEv486yP0gRjWO7SakbaxmfVq/EXd8VLq/Tzi39LAu422UYK1lpW3MILw== - -"@sentry/cli-linux-i686@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.58.6.tgz#278e7696d82e51dfbfd7d82ec125dda65d249a43" - integrity sha512-q8vNJi1eOV/4vxAFWBsEwLHoSYapaZHIf4j76KJGJXFKTkEbsjCOOsKbwUIBTQQhRgV4DFWh3ryfsPS/que4Kg== - -"@sentry/cli-linux-x64@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.58.6.tgz#57860d46ac3397c33bbcc6224ac19b7de2502c18" - integrity sha512-DZu956Mhi3ZRjTBe1WdbGV46ldVbA8d2rgp/fh51GsI25zjBHah4wZnPTSzpc+YqxU6pJpg579B/r3jrIK530Q== - -"@sentry/cli-win32-arm64@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.58.6.tgz#9335a5d2411381dca1d6b11fdd71a4342b375fc3" - integrity sha512-nj0Ff/kmAB73EPDhR8B4O9r+NUHK5GkPCkGWC+kXVemqAJWL5jcJ5KdxG0l/S0z6RoEoltID8/43/B+TaMlT7A== - -"@sentry/cli-win32-i686@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.58.6.tgz#2afd19536ef111af43538ccc5f9c8c0b179d930e" - integrity sha512-WNZiDzPbgsEMQWq4avsQ391v/xWKJDIWWWo9GYl+N/w5qcYKkoDW7wQG7T9FasI6ENn68phChTOAPXXxbfAdOg== - -"@sentry/cli-win32-x64@2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.58.6.tgz#8d0e70b5660cc82a7763a4bbe9346cf18e49e07e" - integrity sha512-R35WJ17oF4D2eqI1DR2sQQqr0fjRTt5xoP16WrTu91XM2lndRMFsnjh+/GttbxapLCBNlrjzia99MJ0PZHZpgA== - -"@sentry/cli@^2.58.6": - version "2.58.6" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.58.6.tgz#72edb4977d822757511b279e006b00f139e24945" - integrity sha512-baBcNPLLfUi9WuL+Tpri9BFaAdvugZIKelC5X0tt0Zdy+K0K+PCVSrnNmwMWU/HyaF/SEv6b6UHnXIdqanBlcg== - dependencies: - https-proxy-agent "^5.0.0" - node-fetch "^2.6.7" - progress "^2.0.3" - proxy-from-env "^1.1.0" - which "^2.0.2" - optionalDependencies: - "@sentry/cli-darwin" "2.58.6" - "@sentry/cli-linux-arm" "2.58.6" - "@sentry/cli-linux-arm64" "2.58.6" - "@sentry/cli-linux-i686" "2.58.6" - "@sentry/cli-linux-x64" "2.58.6" - "@sentry/cli-win32-arm64" "2.58.6" - "@sentry/cli-win32-i686" "2.58.6" - "@sentry/cli-win32-x64" "2.58.6" - -"@sentry/conventions@^0.16.0": - version "0.16.0" - resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.16.0.tgz#3b58d15714cf44dca1518496c00749eec5525009" - integrity sha512-fO9PLmHdVURcSPUpWCItWAtgKiMwGdJHbovoSEyLplX5sxs2ugvI4CBPTrkkgqhObnZOD0CnWBKDzSVQYBKEyQ== - -"@sentry/conventions@^0.19.0": - version "0.19.0" - resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.19.0.tgz#da81dd1b8c4f2f42aca2d74251a07ff9f8718e42" - integrity sha512-nYciB7Pt/Ujf6pJSt1FnHeJBp908P5Ibod4FMlTzASJcqU1RvixI5EFzkbe8gvUxP3XAMoWDgeWeG8agCjKYVA== - -"@sentry/core@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-alpha.1.tgz#8a7eaec19a33088e6658f0f49b1a076a5271b1d3" - integrity sha512-KIiN6A7QltDlPZ+OJAOfDpzfxGBUsubJoLOKV1T1pj/9KWdfQlb6V0iCPPON+SwqHTWC8YifdenmC0J5jq5BCA== - dependencies: - "@sentry/conventions" "^0.19.0" - -"@sentry/eslint-plugin-sdk@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-alpha.1.tgz#c146439f011ea05684791fbfdebbd5be261162b9" - integrity sha512-3ld8FRPbbwvMabc51zppChf8OOxRNhgF5tRbdkgOnmOKffxTXOa/iG+AL9gjBkNdosX/gt6iLi79Gb1vdD+zpw== - -"@sentry/feedback@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-alpha.1.tgz#f6fbb95ce638ce6bcc8df8ffa093e7d4adb4bc7e" - integrity sha512-rNlEjr/HhNqWK6DjiebDbsFzVyVCz5lH2pj4/Ev/xlLOgCxufvIrUFHXxpTAUXdMq/Dbxpa6JdU0Ltc3eEUgNg== - dependencies: - "@sentry/core" "11.0.0-alpha.1" +"@sentry/conventions@^0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.20.0.tgz#f73f6f46934d754dacef447755b5adf1bf7f3245" + integrity sha512-nAL3tL+xgom6Dbuxq0NCEZZfBNIrUspjDJRcMMRl3WLiBCSeZzNCa7an48IpnrZoVMpAi2NQ2v9rFU+EQziKuQ== + +"@sentry/core@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-alpha.2.tgz#440abc10884dfbb9f70506ddcf39b7d05b570c42" + integrity sha512-GvqlS+z2UxCy92nrH0PMYn/Xw5Tw40VNGkJ85G/C7S55O/NO3c8vU+oJG9/exCKgs/N+u7fSKYgPubuvaArkLQ== + dependencies: + "@sentry/conventions" "^0.20.0" + +"@sentry/eslint-plugin-sdk@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-alpha.2.tgz#9bc01e6849cd9df58d70560624127803fcd1ca28" + integrity sha512-/6oIN+Yz5+BLHDoectSuDvFXRThx2D61kVOES7xKtR2PXCYInuYkjkh9ZZ8o+NeJ07qyj4vhexiaqSjFG5r8IQ== + +"@sentry/feedback@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-alpha.2.tgz#2b012d25c00d99a255b963f445c1e0f8073e0fe9" + integrity sha512-sbEoZ1wIgYBEg1ecDwBLy68djJxBM9bg4zVGR+2nrQ9TID8wDn08kw0TQiVzwg2EO6PGVvjj1ukviJRMiuS6qA== + dependencies: + "@sentry/core" "11.0.0-alpha.2" "@sentry/node-native-stacktrace@^0.5.1": version "0.5.1" @@ -824,59 +759,59 @@ detect-libc "^2.0.4" node-abi "^3.89.0" -"@sentry/node-native@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-alpha.1.tgz#82523d48414044ba32de2b24a12f24e119d47f83" - integrity sha512-BQSMjI1LqlhQeSVcCgpv592VCF07ytMZCm6CNXTxEgSNtxtqrInMpItWCbHxc7MoBceclXAZiqMjF8DjUfUSPg== +"@sentry/node-native@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-alpha.2.tgz#e9cb443d9dc07836e2933154ef0d1333cbb015a3" + integrity sha512-P9R0DW0REY5CAGEgWo4jnq05vw3774Ux6ArjGWO94PPXmpxh2Bk1B+XNQzDGKCT7Vem4YU1Jy6EdR13kTJgGdA== dependencies: - "@sentry/core" "11.0.0-alpha.1" - "@sentry/node" "11.0.0-alpha.1" + "@sentry/core" "11.0.0-alpha.2" + "@sentry/node" "11.0.0-alpha.2" "@sentry/node-native-stacktrace" "^0.5.1" -"@sentry/node@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-alpha.1.tgz#b77ed12fac04828338ed7ed422420a795765d30a" - integrity sha512-fJYi66rT5WfRfRQkIqchwj5hGobhcEJw6MGfTq3dR4xh9Ksk+hLADz+U4zu53ZuV0NXnGTHbOLWzlJ8J+zjhKA== +"@sentry/node@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-alpha.2.tgz#e382f62487089a702ff2b5437bce53775440d674" + integrity sha512-RDlLF3gUsiRD63V8NdkAk2mAbKqkib4qhsErOargPJ9rrNKXtslq/DgUIM1Aa8SoxduyO2H2U5hbWf/twlShzA== dependencies: "@opentelemetry/api" "^1.9.1" - "@sentry/bundler-plugins" "11.0.0-alpha.1" - "@sentry/conventions" "^0.19.0" - "@sentry/core" "11.0.0-alpha.1" - "@sentry/opentelemetry" "11.0.0-alpha.1" - "@sentry/server-utils" "11.0.0-alpha.1" + "@sentry/bundler-plugins" "11.0.0-alpha.2" + "@sentry/conventions" "^0.20.0" + "@sentry/core" "11.0.0-alpha.2" + "@sentry/opentelemetry" "11.0.0-alpha.2" + "@sentry/server-utils" "11.0.0-alpha.2" -"@sentry/opentelemetry@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-alpha.1.tgz#9a162ceaa4917a0e2a56623b8a6b44ad30228327" - integrity sha512-JH8oH85SCFgecEyncOIQ2mzvgQnVUrdsEc1BR2nLT3AymwyhT6fblbMp2B8IiuEwBC+YHLf631KCYoVfrLj85Q== +"@sentry/opentelemetry@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-alpha.2.tgz#c5a2179556331317556f0b31f0ef0999ba59c78a" + integrity sha512-dojGEVXP48Qcjy+lnqmgmph7y1EHjbdUy3Oq6PT4Wqc1kAdIAaA+KN84g9A1hB6zc6auDx+hgUdhgGyPITzYOA== dependencies: - "@sentry/conventions" "^0.19.0" - "@sentry/core" "11.0.0-alpha.1" + "@sentry/conventions" "^0.20.0" + "@sentry/core" "11.0.0-alpha.2" -"@sentry/replay-canvas@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-alpha.1.tgz#170e4bff45b90e5a19b7cf53e36a8a131747468c" - integrity sha512-/rIBFLEjdWJ2RnkN1frh3xKi+aJ2jQpcTCATzRrpGcMMELL6vfFZIFAyN4L5UAhmxmu7ZXmXfpSEhj4hpf4YSQ== +"@sentry/replay-canvas@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-alpha.2.tgz#57a602a3f45feb8bf64bf699c981d1a0ca70c17f" + integrity sha512-Pui732KXikj5L1EJd8hsQ4GbhKhNaZ0aHSEdlNJRMQMYCIApvJCY9CM/j86NrEt8bY3ShLs46r8T1iyT4NRJfw== dependencies: - "@sentry/core" "11.0.0-alpha.1" - "@sentry/replay" "11.0.0-alpha.1" + "@sentry/core" "11.0.0-alpha.2" + "@sentry/replay" "11.0.0-alpha.2" -"@sentry/replay@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-alpha.1.tgz#73f254e9eabd0d81b11893f6e7bf12e59a653d93" - integrity sha512-EiJOMXZisJ8KUf+XiLVwzPxND917M+DmMXMzY3o2NrYYHrNdoG5yLXqAaJmXQBcrVsVOmKprqJSa4svtl/9vGQ== +"@sentry/replay@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-alpha.2.tgz#a5db84ce5985fa5447ab4a025ae1666a05ec51f3" + integrity sha512-djxcu+7VSnFcGUaxH+McUyrTAo2JiKf0vwoFWF9ACJiYN3craSIWUlc0jopeoL0xD40piNBAQltbmh0WDf1Dwg== dependencies: - "@sentry/browser-utils" "11.0.0-alpha.1" - "@sentry/core" "11.0.0-alpha.1" + "@sentry/browser-utils" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-alpha.2" -"@sentry/server-utils@11.0.0-alpha.1": - version "11.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-alpha.1.tgz#0e22c9cda63e841a309b0e0e763498af78d675a1" - integrity sha512-/xuTDeCCmkyfIYx+7UuKv9OKanZj4h0wibZ8b/gR7ElivcOSPUEY+YDlr/tojwoJoI8c4nEdcgjVH1Rb7S18uA== +"@sentry/server-utils@11.0.0-alpha.2": + version "11.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-alpha.2.tgz#142d371284ffb0237fe4566b34da9594bce8b947" + integrity sha512-qJjK1IjWXXoK7rkziPPwa+DvA+FkLGPNVt4jWxw4EjNXEdQSTxamC3LjlQXRpwtsAAfE0623FkZMZesNWJTv4w== dependencies: "@opentelemetry/api" "^1.9.1" - "@sentry/conventions" "^0.19.0" - "@sentry/core" "11.0.0-alpha.1" + "@sentry/conventions" "^0.20.0" + "@sentry/core" "11.0.0-alpha.2" "@sindresorhus/is@^4.0.0": version "4.6.0" @@ -1181,13 +1116,6 @@ accepts@^1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -1378,13 +1306,6 @@ cross-spawn@^7.0.6: shebang-command "^2.0.0" which "^2.0.1" -debug@4, debug@^4.3.1: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1399,6 +1320,13 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.3" +debug@^4.3.1: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -1827,14 +1755,6 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -2195,13 +2115,6 @@ node-abi@^3.89.0: dependencies: semver "^7.3.5" -node-fetch@^2.6.7: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - node-releases@^2.0.53: version "2.0.53" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.53.tgz#0fe5ad8a7935e075172f574e56f0c20f07fa41af" @@ -2423,11 +2336,6 @@ progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - pump@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" @@ -2585,6 +2493,11 @@ semver@^7.3.2, semver@^7.3.5: resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== +sentry@^0.44.0: + version "0.44.1" + resolved "https://registry.yarnpkg.com/sentry/-/sentry-0.44.1.tgz#d3747b3087e125766c8e939638fae024ee95c972" + integrity sha512-LK+RJ2PFsJKM+P0D/zYC+M5gFB1ytfVONU9DVUqJu67YFlwnj3wGJkUzBhCS8R4iUqRdRTAYbFbRKTAe03rW/Q== + serialize-error@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" @@ -2809,11 +2722,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - tslib@^2.4.0, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" @@ -2928,19 +2836,6 @@ web-vitals@^6.0.1: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-6.1.1.tgz#855ba63ed40847c55e061ac13f55ee5f6435b723" integrity sha512-r93gKnR6ZC2O8F3JrS0AAGIQ0v0OhXuyg4DAj2oG7K+GPkwXfUSc3ZcWeu50AsV5yIc6xxnTjERipJ6EvSw2vg== -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which@^1.2.4: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -2948,7 +2843,7 @@ which@^1.2.4: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== From 40fc6b701b2e01c6f681fa86f309cc411f34767b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 31 Aug 2026 19:24:15 +0000 Subject: [PATCH 05/10] test: Update browser pageload segment name for v11 SDK The browser pageload segment span is now named `Pageload` in `11.0.0-alpha.2` instead of the document URL (`app:///src/index.html`); `sentry.segment.name.source` remains `url`. Update the e2e assertion to match. Verified against Electron 25.9.8. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01PbscLoW7dZTXEm8ebixtgS --- test/e2e/test-apps/other/browser-tracing/test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/test-apps/other/browser-tracing/test.ts b/test/e2e/test-apps/other/browser-tracing/test.ts index 7e8378909..cb8a72484 100644 --- a/test/e2e/test-apps/other/browser-tracing/test.ts +++ b/test/e2e/test-apps/other/browser-tracing/test.ts @@ -24,7 +24,7 @@ electronTestRunner( // The segment is the browser pageload span const segment = spans?.find((s) => s.is_segment); expect(segment).toMatchObject({ - name: 'app:///src/index.html', + name: 'Pageload', is_segment: true, status: 'ok', attributes: expect.objectContaining({ From a7b791fd4a8abce3da1823254c1e7d970ebe97a7 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 1 Sep 2026 09:36:28 +0000 Subject: [PATCH 06/10] refactor: Rename integration `captureLogs` option to `logs` Drop the verb from the new per-integration log-capture option in the child process, Electron breadcrumbs, and net breadcrumbs integrations: `captureLogs` -> `logs`. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01PbscLoW7dZTXEm8ebixtgS --- src/main/integrations/child-process.ts | 8 ++++---- src/main/integrations/electron-breadcrumbs.ts | 8 ++++---- src/main/integrations/net-breadcrumbs.ts | 6 +++--- test/e2e/test-apps/other/renderer-error/src/main.js | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/integrations/child-process.ts b/src/main/integrations/child-process.ts index 939e2e905..a89123551 100644 --- a/src/main/integrations/child-process.ts +++ b/src/main/integrations/child-process.ts @@ -23,13 +23,13 @@ export interface ChildProcessOptions extends NodeChildProcessOptions { * * default: false */ - captureLogs: boolean; + logs: boolean; } const DEFAULT_OPTIONS: ChildProcessOptions = { breadcrumbs: EXIT_REASONS, events: ['abnormal-exit', 'launch-failed', 'integrity-failure'], - captureLogs: false, + logs: false, }; type LogFn = (msg: ParameterizedString, attributes: Log['attributes']) => void; @@ -70,7 +70,7 @@ export const childProcessIntegration = defineIntegration((userOptions: Partial 0) { const clientOptions = client.getOptions() as ElectronMainOptions; - const enableLogs = options.captureLogs; + const enableLogs = options.logs; app.on('child-process-gone', (_, details) => { const { reason } = details; diff --git a/src/main/integrations/electron-breadcrumbs.ts b/src/main/integrations/electron-breadcrumbs.ts index 1cb8e26f2..e5ea9dcd2 100644 --- a/src/main/integrations/electron-breadcrumbs.ts +++ b/src/main/integrations/electron-breadcrumbs.ts @@ -61,7 +61,7 @@ export interface ElectronBreadcrumbsOptions { * * default: false */ - captureLogs: boolean; + logs: boolean; } const DEFAULT_OPTIONS: ElectronBreadcrumbsOptions = { @@ -88,7 +88,7 @@ const DEFAULT_OPTIONS: ElectronBreadcrumbsOptions = { screen: () => true, powerMonitor: () => true, captureWindowTitles: false, - captureLogs: false, + logs: false, }; /** Converts all user supplied options to function | false */ @@ -97,7 +97,7 @@ export function normalizeOptions( ): Partial> { return (Object.keys(options) as (keyof ElectronBreadcrumbsOptions)[]).reduce( (obj, k) => { - if (k === 'captureWindowTitles' || k === 'captureLogs') { + if (k === 'captureWindowTitles' || k === 'logs') { obj[k] = !!options[k]; } else { const val: EventTypes = options[k]; @@ -128,7 +128,7 @@ export const electronBreadcrumbsIntegration = defineIntegration( name: 'ElectronBreadcrumbs', setup(client: NodeClient) { const clientOptions = client.getOptions() as ElectronMainOptions | undefined; - const enableLogs = options.captureLogs; + const enableLogs = options.logs; function patchEventEmitter( emitter: NodeJS.EventEmitter | WebContents | BrowserWindow, diff --git a/src/main/integrations/net-breadcrumbs.ts b/src/main/integrations/net-breadcrumbs.ts index d85d4a523..ff1f43b14 100644 --- a/src/main/integrations/net-breadcrumbs.ts +++ b/src/main/integrations/net-breadcrumbs.ts @@ -42,7 +42,7 @@ export interface NetOptions { * * Defaults to: false */ - captureLogs?: boolean; + logs?: boolean; } /** @@ -104,10 +104,10 @@ type RequestMethod = (opt: RequestOptions, ...args: unknown[]) => ClientRequest; type WrappedRequestMethodFactory = (original: RequestMethod) => RequestMethod; function createWrappedRequestFactory( - { tracing, breadcrumbs, captureLogs }: NetOptions, + { tracing, breadcrumbs, logs }: NetOptions, { tracePropagationTargets, propagateTraceparent }: ClientOptions, ): WrappedRequestMethodFactory { - const logsEnabled = !!captureLogs; + const logsEnabled = !!logs; // We're caching results so we don't have to recompute regexp every time we create a request. const createSpanUrlMap = new LRUMap(100); const headersUrlMap = new LRUMap(100); diff --git a/test/e2e/test-apps/other/renderer-error/src/main.js b/test/e2e/test-apps/other/renderer-error/src/main.js index d4e653655..fcf4d93d1 100644 --- a/test/e2e/test-apps/other/renderer-error/src/main.js +++ b/test/e2e/test-apps/other/renderer-error/src/main.js @@ -7,7 +7,7 @@ init({ dsn: '__DSN__', debug: true, enableLogs: true, - integrations: [electronBreadcrumbsIntegration({ captureLogs: true })], + integrations: [electronBreadcrumbsIntegration({ logs: true })], onFatalError: () => {}, }); From 04af5a3fbd5fd1148ef0fbf854c5ab7ed16147c8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 1 Sep 2026 13:54:04 +0000 Subject: [PATCH 07/10] feat!: Raise minimum supported Electron to v35 `@sentry/node` v11 requires Node >= 20.19.0. The first Electron release whose bundled Node satisfies this is Electron 35 (Node 22.14.0); Electron 34 and earlier ship Node <= 20.18.1. - Raise the runtime guard in `init()` to require Electron >= 35. - Update the README supported-versions line and add a 7.x -> 8.x migration note. - Start the e2e Electron test matrix at 35 (`versions.json` + the `update-electron-versions` script). - Bump the `electron` devDependency to a supported version (^35.7.5). Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01PbscLoW7dZTXEm8ebixtgS --- MIGRATION.md | 8 ++++++++ README.md | 2 +- package.json | 2 +- scripts/update-electron-versions.mjs | 2 +- src/main/sdk.ts | 4 ++-- test/e2e/versions.json | 2 +- yarn.lock | 30 ++++++++++++++-------------- 7 files changed, 29 insertions(+), 21 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index ee7cb43cd..e9198a503 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,10 +1,18 @@ This document details the changes between major versions of the Sentry Electron SDK. +- [Upgrading from 7.x to 8.x](#upgrading-from-7x-to-8x) - [Upgrading from 6.x to 7.x](#upgrading-from-6x-to-7x) - [Upgrading from 5.x to 6.x](#upgrading-from-5x-to-6x) - [Upgrading from 4.x to 5.x](#upgrading-from-4x-to-5x) +# Upgrading from 7.x to 8.x + +## Supported Electron Versions + +The Sentry Node SDK now requires Node >= 20.19.0 which means the Sentry Electron +SDK now supports Electron >= 35.0.0. + # Upgrading from 6.x to 7.x Most users won't notice many breaking API changes in v7 but it's worth checking diff --git a/README.md b/README.md index d52099e05..ceed89ff4 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Test](https://github.com/getsentry/sentry-electron/actions/workflows/build.yml/b [`@sentry/browser`](https://github.com/getsentry/sentry-javascript/tree/master/packages/browser)) - Captures **native crashes** (Minidump crash reports) from renderers and the main process - Collects **breadcrumbs and context** information along with events across renderers and the main process -- Supports `electron >= v23` +- Supports `electron >= v35` ## Usage diff --git a/package.json b/package.json index bba419e3f..e0b5d5e39 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "@types/koa-bodyparser": "^4.3.0", "@types/tmp": "^0.2.2", "busboy": "^1.6.0", - "electron": "^25.9.8", + "electron": "^35.7.5", "extract-zip": "^2.0.1", "koa": "^3.0.1", "koa-bodyparser": "^4.3.0", diff --git a/scripts/update-electron-versions.mjs b/scripts/update-electron-versions.mjs index d08d2484e..179e07995 100644 --- a/scripts/update-electron-versions.mjs +++ b/scripts/update-electron-versions.mjs @@ -9,7 +9,7 @@ const result = spawnSync('npm', ['view', 'electron', 'dist-tags', '--json'], { e const allTags = JSON.parse(result.stdout); const versions = []; -let startVersion = 23; +let startVersion = 35; while (true) { const versionTag = `${startVersion}-x-y`; diff --git a/src/main/sdk.ts b/src/main/sdk.ts index 45c56c423..32deacb71 100644 --- a/src/main/sdk.ts +++ b/src/main/sdk.ts @@ -159,8 +159,8 @@ export type ElectronMainOptions = Pick< export function init(userOptions: ElectronMainOptions): void { const [major = 0] = process.versions.electron.split('.').map(Number); - if (major < 23) { - throw new Error('Sentry Electron SDK requires Electron 23 or higher'); + if (major < 35) { + throw new Error('Sentry Electron SDK requires Electron 35 or higher'); } const inferIpAddress = userOptions.dataCollection?.userInfo ?? true; diff --git a/test/e2e/versions.json b/test/e2e/versions.json index 660781d20..1a63ecce2 100644 --- a/test/e2e/versions.json +++ b/test/e2e/versions.json @@ -1 +1 @@ -["23.3.13","24.8.8","25.9.8","26.6.10","27.3.11","28.3.3","29.4.6","30.5.1","31.7.7","32.3.3","33.4.11","34.5.8","35.7.5","36.9.5","37.10.3","38.8.6","39.8.10","40.10.6","41.10.7","42.11.0","43.5.0","44.1.0"] +["35.7.5","36.9.5","37.10.3","38.8.6","39.8.10","40.10.6","41.10.7","42.11.0","43.5.0","44.1.0"] diff --git a/yarn.lock b/yarn.lock index 1d4dd7152..435ffaec5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -995,12 +995,12 @@ dependencies: undici-types "~6.19.8" -"@types/node@^18.11.18": - version "18.19.59" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.59.tgz#2de1b95b0b468089b616b2feb809755d70a74949" - integrity sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ== +"@types/node@^22.7.7": + version "22.20.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.1.tgz#84e7cdf63cdaa20c134aa317ccc901aa21e16f0e" + integrity sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q== dependencies: - undici-types "~5.26.4" + undici-types "~6.21.0" "@types/qs@*": version "6.9.16" @@ -1426,13 +1426,13 @@ electron-to-chromium@^1.5.402: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.411.tgz#d56c7e43f91e2b3abb53b4eecd646e20d0b18b34" integrity sha512-gglkxzokjHfawpGxq75XdBV2/l3BAPzrsMs70qgaZdTW5rpV1tC4MdgJVP9fN126bODA4ZJQkn1wryEzJyQXIg== -electron@^25.9.8: - version "25.9.8" - resolved "https://registry.yarnpkg.com/electron/-/electron-25.9.8.tgz#7c125ccbddad02861736275b0d4a387c59a91469" - integrity sha512-PGgp6PH46QVENHuAHc2NT1Su8Q1qov7qIl2jI5tsDpTibwV2zD8539AeWBQySeBU4dhbj9onIl7+1bXQ0wefBg== +electron@^35.7.5: + version "35.7.5" + resolved "https://registry.yarnpkg.com/electron/-/electron-35.7.5.tgz#294a4aebb2ad2a884de730c410f2358d061e8d53" + integrity sha512-dnL+JvLraKZl7iusXTVTGYs10TKfzUi30uEDTqsmTm0guN9V2tbOjTzyIZbh9n3ygUjgEYyo+igAwMRXIi3IPw== dependencies: "@electron/get" "^2.0.0" - "@types/node" "^18.11.18" + "@types/node" "^22.7.7" extract-zip "^2.0.1" emoji-regex@^8.0.0: @@ -2759,16 +2759,16 @@ typescript@^6.0.0: resolved "https://registry.yarnpkg.com/typescript/-/typescript-6.0.3.tgz#90251dc007916e972786cb94d74d15b185577d21" integrity sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - undici-types@~6.19.8: version "6.19.8" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" From 3def511ab1ad6eac90910e58309cfc5fafb82158 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 8 Sep 2026 11:57:46 +0000 Subject: [PATCH 08/10] feat: Update Sentry SDKs to v11.0.0-beta.1 Adapt to the export changes in the beta: - The node stack-trace and watchdog helpers (`nodeStackLineParser`, `callFrameToStackFrame`, `watchdogTimer`) moved from the main `@sentry/core` entry to `@sentry/core/server`; import them from there. - `otlpIntegration` was renamed to `openTelemetryIntegration` in `@sentry/node`. - `bfcacheIntegration` was renamed to `bfcacheMetricsIntegration` in `@sentry/browser`. - Cast the transport request `protocol` to the narrowed Electron type. --- package.json | 14 +-- src/main/index.ts | 2 +- src/main/integrations/renderer-anr.ts | 10 +- src/main/stack-parse.ts | 3 +- src/main/transports/electron-net.ts | 2 +- src/renderer/index.ts | 2 +- src/renderer/sdk.ts | 2 +- src/renderer/stack-parse.ts | 3 +- src/utility/index.ts | 2 +- src/utility/sdk.ts | 9 +- yarn.lock | 145 ++++++++++++++------------ 11 files changed, 97 insertions(+), 97 deletions(-) diff --git a/package.json b/package.json index e0b5d5e39..4f2234e19 100644 --- a/package.json +++ b/package.json @@ -105,14 +105,14 @@ "e2e": "xvfb-maybe vitest run --root=./test/e2e --silent=false --disable-console-intercept" }, "dependencies": { - "@sentry/browser": "11.0.0-alpha.2", + "@sentry/browser": "11.0.0-beta.1", "@sentry/conventions": "^0.20.0", - "@sentry/core": "11.0.0-alpha.2", - "@sentry/node": "11.0.0-alpha.2", - "@sentry/server-utils": "11.0.0-alpha.2" + "@sentry/core": "11.0.0-beta.1", + "@sentry/node": "11.0.0-beta.1", + "@sentry/server-utils": "11.0.0-beta.1" }, "peerDependencies": { - "@sentry/node-native": "11.0.0-alpha.2" + "@sentry/node-native": "11.0.0-beta.1" }, "peerDependenciesMeta": { "@sentry/node-native": { @@ -121,8 +121,8 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^12.1.3", - "@sentry/eslint-plugin-sdk": "11.0.0-alpha.2", - "@sentry/node-native": "11.0.0-alpha.2", + "@sentry/eslint-plugin-sdk": "11.0.0-beta.1", + "@sentry/node-native": "11.0.0-beta.1", "@types/busboy": "^1.5.4", "@types/koa": "^2.0.52", "@types/koa-bodyparser": "^4.3.0", diff --git a/src/main/index.ts b/src/main/index.ts index b26eaedee..1e692d6f4 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -111,7 +111,7 @@ export { openAIIntegration, OpenFeatureIntegrationHook, openFeatureIntegration, - otlpIntegration, + openTelemetryIntegration, parameterize, pinoIntegration, postgresIntegration, diff --git a/src/main/integrations/renderer-anr.ts b/src/main/integrations/renderer-anr.ts index 66273a622..e7a32e1bd 100644 --- a/src/main/integrations/renderer-anr.ts +++ b/src/main/integrations/renderer-anr.ts @@ -1,12 +1,6 @@ import type { Client, Event, Integration, StackFrame } from '@sentry/core'; -import { - callFrameToStackFrame, - captureEvent, - debug, - defineIntegration, - stripSentryFramesAndReverse, - watchdogTimer, -} from '@sentry/core'; +import { captureEvent, debug, defineIntegration, stripSentryFramesAndReverse } from '@sentry/core'; +import { callFrameToStackFrame, watchdogTimer } from '@sentry/core/server'; import { createGetModuleFromFilename } from '@sentry/node'; import type { WebContents } from 'electron'; import { app, powerMonitor } from 'electron'; diff --git a/src/main/stack-parse.ts b/src/main/stack-parse.ts index 4bbac112a..0710804c0 100644 --- a/src/main/stack-parse.ts +++ b/src/main/stack-parse.ts @@ -1,5 +1,6 @@ import type { StackFrame, StackParser } from '@sentry/core'; -import { createStackParser, debug, nodeStackLineParser } from '@sentry/core'; +import { createStackParser, debug } from '@sentry/core'; +import { nodeStackLineParser } from '@sentry/core/server'; import { createGetModuleFromFilename } from '@sentry/node'; import type { WebContents, WebFrameMain } from 'electron'; import { app } from 'electron'; diff --git a/src/main/transports/electron-net.ts b/src/main/transports/electron-net.ts index bde1efdb3..aa43df0ef 100644 --- a/src/main/transports/electron-net.ts +++ b/src/main/transports/electron-net.ts @@ -41,7 +41,7 @@ function getRequestOptions(url: string): Electron.ClientRequestConstructorOption hostname, path: `${pathname}${search}`, port: parseInt(port, 10), - protocol, + protocol: protocol as 'http:' | 'https:', // Use a non-persistent in-memory session to avoid triggering a macOS keychain // prompt during Chromium's cookie-store initialization of the default session. partition: 'sentry-electron', diff --git a/src/renderer/index.ts b/src/renderer/index.ts index a1a3c1ac5..f7a2b4caa 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -24,7 +24,7 @@ export { addBreadcrumb, addEventProcessor, addIntegration, - bfcacheIntegration, + bfcacheMetricsIntegration, bindScopeToEmitter, breadcrumbsIntegration, browserApiErrorsIntegration, diff --git a/src/renderer/sdk.ts b/src/renderer/sdk.ts index 42c4d8b6a..38dba015a 100644 --- a/src/renderer/sdk.ts +++ b/src/renderer/sdk.ts @@ -49,7 +49,7 @@ interface ElectronRendererOptions extends Partial( options: ElectronRendererOptions & O = {} as ElectronRendererOptions & O, // This parameter name ensures that TypeScript error messages contain a hint for fixing SDK version mismatches - originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_alpha_2: O) => void = browserInit, + originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_beta_1: O) => void = browserInit, ): void { // Ensure the browser SDK is only init'ed once. if (window?.__SENTRY__RENDERER_INIT__) { diff --git a/src/renderer/stack-parse.ts b/src/renderer/stack-parse.ts index 85fb723f9..3a34c4951 100644 --- a/src/renderer/stack-parse.ts +++ b/src/renderer/stack-parse.ts @@ -1,6 +1,7 @@ import { chromeStackLineParser } from '@sentry/browser'; import type { StackFrame, StackParser } from '@sentry/core'; -import { nodeStackLineParser, stripSentryFramesAndReverse } from '@sentry/core'; +import { stripSentryFramesAndReverse } from '@sentry/core'; +import { nodeStackLineParser } from '@sentry/core/server'; const STACKTRACE_FRAME_LIMIT = 50; diff --git a/src/utility/index.ts b/src/utility/index.ts index 2303ef52c..c4602cbf1 100644 --- a/src/utility/index.ts +++ b/src/utility/index.ts @@ -113,7 +113,7 @@ export { openAIIntegration, OpenFeatureIntegrationHook, openFeatureIntegration, - otlpIntegration, + openTelemetryIntegration, parameterize, pinoIntegration, postgresIntegration, diff --git a/src/utility/sdk.ts b/src/utility/sdk.ts index efe0c868f..3c0ffa6b3 100644 --- a/src/utility/sdk.ts +++ b/src/utility/sdk.ts @@ -1,11 +1,6 @@ import type { Integration, StackParser } from '@sentry/core'; -import { - createStackParser, - debug, - getIntegrationsToSetup, - nodeStackLineParser, - stackParserFromStackParserOptions, -} from '@sentry/core'; +import { createStackParser, debug, getIntegrationsToSetup, stackParserFromStackParserOptions } from '@sentry/core'; +import { nodeStackLineParser } from '@sentry/core/server'; import type { NodeOptions } from '@sentry/node'; import { consoleIntegration, diff --git a/yarn.lock b/yarn.lock index 435ffaec5..24b765f02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -692,34 +692,34 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== -"@sentry/browser-utils@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-alpha.2.tgz#16a90571630090b1651a2e2bd1a983acb4038df8" - integrity sha512-6jr3V9hqAsAJ7WgOd0TtJtmOgI9CCfv1utfW+2D9NxqcGy68fFbXeDucCSt8z0hFrEJaOSCejhvQva297P8xMA== +"@sentry/browser-utils@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-beta.1.tgz#86685e231f8aba716552168016bf90156ab3890d" + integrity sha512-BjrbkdkGuJZywyYGpE/c0geov45qHF+BggAqSU1Stk9hJfVohe2vAuZr8bZdkUJadDiSYiG5krPelc0/svr0RQ== dependencies: "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" web-vitals "^6.0.1" -"@sentry/browser@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-alpha.2.tgz#35c6b8c4e540a91cbb88f04d506f69c22b8f190f" - integrity sha512-uRSfYolWGt4bBAq41wTp48ejK/wvyXW/QYQ8/vvlB2o1HgNcdaYZhPjHvkL4uDa19z+/dfEldSFRh0ZZP/w1qA== +"@sentry/browser@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-beta.1.tgz#1a495490967308dc0f4eea0365f1dc00d63b8161" + integrity sha512-xo8To5gveiYC/f5sYxgqYwTDjXrgq14L5/nEn9JuJBCr/96Xr6uqgqGA89ceMR4hRjIQ3QLPnXNzpDZ5/CSpUQ== dependencies: - "@sentry/browser-utils" "11.0.0-alpha.2" + "@sentry/browser-utils" "11.0.0-beta.1" "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-alpha.2" - "@sentry/feedback" "11.0.0-alpha.2" - "@sentry/replay" "11.0.0-alpha.2" - "@sentry/replay-canvas" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" + "@sentry/feedback" "11.0.0-beta.1" + "@sentry/replay" "11.0.0-beta.1" + "@sentry/replay-canvas" "11.0.0-beta.1" -"@sentry/bundler-plugins@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-alpha.2.tgz#a168374bfd39dce2946c698733c378ea86f810e9" - integrity sha512-cWTtt94lsNmZTGo8Rr0IDilfc4wuuaDnEvhoZqvuo2RJixMtwr3Erq9S1nbiX4jnP2fcLNnZm8nc/R4BbLIHrg== +"@sentry/bundler-plugins@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-beta.1.tgz#db8641f274bdac04286c228e9d2331f63d7b13c5" + integrity sha512-DdnwWSduyX/cbIFinzllaQQR0nDfBFygKYXQl+kQYyts+I+Cr7ZO0nFnvLSzqMtxkHKRc788tTxkxOisGDQZ3Q== dependencies: "@babel/core" "^7.18.5" - "@sentry/core" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" dotenv "^17.4.2" find-up "^5.0.0" glob "^13.0.6" @@ -732,24 +732,24 @@ resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.20.0.tgz#f73f6f46934d754dacef447755b5adf1bf7f3245" integrity sha512-nAL3tL+xgom6Dbuxq0NCEZZfBNIrUspjDJRcMMRl3WLiBCSeZzNCa7an48IpnrZoVMpAi2NQ2v9rFU+EQziKuQ== -"@sentry/core@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-alpha.2.tgz#440abc10884dfbb9f70506ddcf39b7d05b570c42" - integrity sha512-GvqlS+z2UxCy92nrH0PMYn/Xw5Tw40VNGkJ85G/C7S55O/NO3c8vU+oJG9/exCKgs/N+u7fSKYgPubuvaArkLQ== +"@sentry/core@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-beta.1.tgz#f15d2350c707491d234c9d28dfb1aceba0f3a3c8" + integrity sha512-3WjVylthppTrxkA5k5r1+UKPMngqhxlGvZzniGC1JqfhTb1UidoM6s/qq4DWP4YO3DBXtoqN1u5SoQacq7kanA== dependencies: "@sentry/conventions" "^0.20.0" -"@sentry/eslint-plugin-sdk@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-alpha.2.tgz#9bc01e6849cd9df58d70560624127803fcd1ca28" - integrity sha512-/6oIN+Yz5+BLHDoectSuDvFXRThx2D61kVOES7xKtR2PXCYInuYkjkh9ZZ8o+NeJ07qyj4vhexiaqSjFG5r8IQ== +"@sentry/eslint-plugin-sdk@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-beta.1.tgz#dc1b2a829d8f5ad5031aab9f75a124e0e86834d3" + integrity sha512-xLp1IW8w9STUco7j8t1+4Lloypizo8TJ3tr+5y+h30kCtmW3i2mHiYCBdmOUCqk9z9GBM/AmS52GepqVVJoFCw== -"@sentry/feedback@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-alpha.2.tgz#2b012d25c00d99a255b963f445c1e0f8073e0fe9" - integrity sha512-sbEoZ1wIgYBEg1ecDwBLy68djJxBM9bg4zVGR+2nrQ9TID8wDn08kw0TQiVzwg2EO6PGVvjj1ukviJRMiuS6qA== +"@sentry/feedback@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-beta.1.tgz#385abfef110fae8a473c3074eae96be3dbcae7f3" + integrity sha512-1DkOrsB3VhYzS9GK4l2gwVZma4hVYv2rEGlG2Qj4hKKvKfT/qeMPB1yZOccvcmVhdwWBXzJs49gBv8TdEoBxbg== dependencies: - "@sentry/core" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" "@sentry/node-native-stacktrace@^0.5.1": version "0.5.1" @@ -759,59 +759,68 @@ detect-libc "^2.0.4" node-abi "^3.89.0" -"@sentry/node-native@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-alpha.2.tgz#e9cb443d9dc07836e2933154ef0d1333cbb015a3" - integrity sha512-P9R0DW0REY5CAGEgWo4jnq05vw3774Ux6ArjGWO94PPXmpxh2Bk1B+XNQzDGKCT7Vem4YU1Jy6EdR13kTJgGdA== +"@sentry/node-native@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-beta.1.tgz#ff04920d2361d86b5df47405d54c1751bd5f0376" + integrity sha512-6q9IWbzULUiOu5uk2dNEK4PQFd3XdcPef7Qf1p7xRm8RwX15beVISvFQisKOHSCk0kZhpSgXeOAJ7mXxqzcnog== dependencies: - "@sentry/core" "11.0.0-alpha.2" - "@sentry/node" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" + "@sentry/node" "11.0.0-beta.1" "@sentry/node-native-stacktrace" "^0.5.1" -"@sentry/node@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-alpha.2.tgz#e382f62487089a702ff2b5437bce53775440d674" - integrity sha512-RDlLF3gUsiRD63V8NdkAk2mAbKqkib4qhsErOargPJ9rrNKXtslq/DgUIM1Aa8SoxduyO2H2U5hbWf/twlShzA== +"@sentry/node@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-beta.1.tgz#a8b58eda46ddcdb6b705b9afe18d69036e8c591e" + integrity sha512-XMdu/Jp0MKYlFQw+wI+zmTk4LsivR77h/O6TAs4+lNTlSPaC75r5aOjAzfnnUbwL8SzmjKthoa2bcJLrORyISw== dependencies: "@opentelemetry/api" "^1.9.1" - "@sentry/bundler-plugins" "11.0.0-alpha.2" + "@sentry/bundler-plugins" "11.0.0-beta.1" "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-alpha.2" - "@sentry/opentelemetry" "11.0.0-alpha.2" - "@sentry/server-utils" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" + "@sentry/opentelemetry" "11.0.0-beta.1" + "@sentry/server-runtime-injection" "11.0.0-beta.1" + "@sentry/server-utils" "11.0.0-beta.1" -"@sentry/opentelemetry@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-alpha.2.tgz#c5a2179556331317556f0b31f0ef0999ba59c78a" - integrity sha512-dojGEVXP48Qcjy+lnqmgmph7y1EHjbdUy3Oq6PT4Wqc1kAdIAaA+KN84g9A1hB6zc6auDx+hgUdhgGyPITzYOA== +"@sentry/opentelemetry@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-beta.1.tgz#0e25dd823129b441000a9dc335b7e93f0e70baaf" + integrity sha512-axGagTVnjAoPF4WabSi4IBKuGQTocUp2sMW0Ij0nkgvCPUzuObgSORCYeTrei8EELjblAa13JRMPdbQMrhx9Zg== dependencies: "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" -"@sentry/replay-canvas@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-alpha.2.tgz#57a602a3f45feb8bf64bf699c981d1a0ca70c17f" - integrity sha512-Pui732KXikj5L1EJd8hsQ4GbhKhNaZ0aHSEdlNJRMQMYCIApvJCY9CM/j86NrEt8bY3ShLs46r8T1iyT4NRJfw== +"@sentry/replay-canvas@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-beta.1.tgz#b1ca92a825aa779c68213fe2f7ae1765f97638c8" + integrity sha512-I2nE2QjKppx+mx6AemXKktqJYJlWunwmghpgbB+yo9hIesAuOlcAtkZjuDEDF//KZdRzcfqbePl4g2uXfC3iwA== dependencies: - "@sentry/core" "11.0.0-alpha.2" - "@sentry/replay" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" + "@sentry/replay" "11.0.0-beta.1" -"@sentry/replay@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-alpha.2.tgz#a5db84ce5985fa5447ab4a025ae1666a05ec51f3" - integrity sha512-djxcu+7VSnFcGUaxH+McUyrTAo2JiKf0vwoFWF9ACJiYN3craSIWUlc0jopeoL0xD40piNBAQltbmh0WDf1Dwg== +"@sentry/replay@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-beta.1.tgz#98f18d633ddf87dd511bd224eaaa65601867c58d" + integrity sha512-8WX3GEKLvsqxQ5CnLHPkjNvViWIo9EQ2OubcOqu/BtBHAD0jbyDYnbk29ybLzdUnB08ARKG3ePqEhHWL4DPbEw== dependencies: - "@sentry/browser-utils" "11.0.0-alpha.2" - "@sentry/core" "11.0.0-alpha.2" + "@sentry/browser-utils" "11.0.0-beta.1" + "@sentry/core" "11.0.0-beta.1" -"@sentry/server-utils@11.0.0-alpha.2": - version "11.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-alpha.2.tgz#142d371284ffb0237fe4566b34da9594bce8b947" - integrity sha512-qJjK1IjWXXoK7rkziPPwa+DvA+FkLGPNVt4jWxw4EjNXEdQSTxamC3LjlQXRpwtsAAfE0623FkZMZesNWJTv4w== +"@sentry/server-runtime-injection@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/server-runtime-injection/-/server-runtime-injection-11.0.0-beta.1.tgz#5f9b919bf7becebe95d76fb732b2f1318873b9d4" + integrity sha512-98CQHmkJlM2joxhuwZHK3ubWnG+zWJHTSM/Sma9dEepIT0x7ZYUeBL8B/yXaOmKD5eL3VVwHgOLQ3GPtdiw+rA== + dependencies: + "@sentry/core" "11.0.0-beta.1" + "@sentry/server-utils" "11.0.0-beta.1" + +"@sentry/server-utils@11.0.0-beta.1": + version "11.0.0-beta.1" + resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-beta.1.tgz#78c9deabc0aefc4e3bec7469d8b689c4443b9240" + integrity sha512-yykBiydSvgr/muD0pSWc6Jz/9KrgPtH7rBQdCJ+SXTZ4ZRdak8swv5JQSPNkK7JjQGY6+/V7RpgXNNSRkca1Ag== dependencies: "@opentelemetry/api" "^1.9.1" "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-alpha.2" + "@sentry/core" "11.0.0-beta.1" "@sindresorhus/is@^4.0.0": version "4.6.0" From c5ba14d3402f1f1f4531b27875359e144c30460b Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 8 Sep 2026 12:14:49 +0000 Subject: [PATCH 09/10] ci: allow-list electron devDependency advisories in dependency-review electron is a build/test-only devDependency and is never shipped to consumers, so the high-severity Electron advisories flagged against the floor of our supported range do not affect downstream apps. Add a .github/dependency-review-config.yml that the org dependency-review workflow reads, allow-listing those GHSAs while keeping fail-on-severity: high for everything else. --- .github/dependency-review-config.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/dependency-review-config.yml diff --git a/.github/dependency-review-config.yml b/.github/dependency-review-config.yml new file mode 100644 index 000000000..d18bc5e76 --- /dev/null +++ b/.github/dependency-review-config.yml @@ -0,0 +1,16 @@ +# Configuration for the org-level dependency-review workflow. +# +# electron is a devDependency only (used to build and test the SDK, it is never +# shipped to consumers) so these Electron advisories do not affect downstream +# apps, which pin their own Electron version. They are flagged against the floor +# of our supported range (35.7.5); newer Electron versions we test against are +# patched. +fail-on-severity: 'high' +allow-ghsas: + - GHSA-v3j7-r9gq-3gjw # Electron: custom protocol supportFetchAPI cross-origin reads + - GHSA-9wfr-w7mm-pc7f # Electron: renderer command-line switch injection + - GHSA-jjp3-mq3x-295m # Electron: use-after-free in PowerMonitor + - GHSA-8337-3p73-46f4 # Electron: use-after-free in WebContents permission callbacks + - GHSA-h7rp-cf8h-j98x # Electron: context isolation bypass via Function.prototype.bind + - GHSA-532v-xpq5-8h95 # Electron: use-after-free in offscreen paint callback + - GHSA-9f4c-93c8-jc8g # Electron: sandboxed iframe allow-popups bypass From 564d3dd2ca9860b80ffe2a097e97061e4a82c083 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 16 Sep 2026 12:22:21 +0000 Subject: [PATCH 10/10] feat: Update Sentry SDKs to v11.0.0-rc.0 Bump all @sentry/* packages from 11.0.0-beta.1 to 11.0.0-rc.0 and @sentry/conventions to ^0.23.0 (required by @sentry/core@rc.0). Update the renderer version-hint type param, and re-export the new node/browser symbols surfaced in rc.0 (Mastra/Mistral AI integrations, Flue, the conversation hook, getInstrumentedModuleNames, browser consoleIntegration) so check-exports stays green. --- package.json | 16 +-- src/main/index.ts | 7 ++ src/renderer/index.ts | 1 + src/renderer/sdk.ts | 2 +- src/utility/index.ts | 7 ++ yarn.lock | 246 ++++++++++++++++++------------------------ 6 files changed, 127 insertions(+), 152 deletions(-) diff --git a/package.json b/package.json index f06024a02..99d696781 100644 --- a/package.json +++ b/package.json @@ -105,14 +105,14 @@ "e2e": "xvfb-maybe vitest run --root=./test/e2e --silent=false --disable-console-intercept" }, "dependencies": { - "@sentry/browser": "11.0.0-beta.1", - "@sentry/conventions": "^0.20.0", - "@sentry/core": "11.0.0-beta.1", - "@sentry/node": "11.0.0-beta.1", - "@sentry/server-utils": "11.0.0-beta.1" + "@sentry/browser": "11.0.0-rc.0", + "@sentry/conventions": "^0.23.0", + "@sentry/core": "11.0.0-rc.0", + "@sentry/node": "11.0.0-rc.0", + "@sentry/server-utils": "11.0.0-rc.0" }, "peerDependencies": { - "@sentry/node-native": "11.0.0-beta.1" + "@sentry/node-native": "11.0.0-rc.0" }, "peerDependenciesMeta": { "@sentry/node-native": { @@ -121,8 +121,8 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^12.1.3", - "@sentry/eslint-plugin-sdk": "11.0.0-beta.1", - "@sentry/node-native": "11.0.0-beta.1", + "@sentry/eslint-plugin-sdk": "11.0.0-rc.0", + "@sentry/node-native": "11.0.0-rc.0", "@types/busboy": "^1.5.4", "@types/koa": "^2.0.52", "@types/koa-bodyparser": "^4.3.0", diff --git a/src/main/index.ts b/src/main/index.ts index 1e692d6f4..ff3f55434 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -37,6 +37,7 @@ export { contextLinesIntegration, continueTrace, createConsolaReporter, + createFlueInstrumentation, createGetModuleFromFilename, createLangChainCallbackHandler, createSentryWinstonTransport, @@ -45,6 +46,7 @@ export { dataloaderIntegration, dedupeIntegration, endSession, + eveConversationHook, eventFiltersIntegration, expressErrorHandler, expressIntegration, @@ -61,6 +63,7 @@ export { getClient, getCurrentScope, getGlobalScope, + getInstrumentedModuleNames, getIsolationScope, getOtlpTracesEndpoint, getRootSpan, @@ -80,6 +83,7 @@ export { instrumentAnthropicAiClient, instrumentGoogleGenAIClient, instrumentLangChainEmbeddings, + instrumentMistralAiClient, instrumentOpenAiClient, instrumentStateGraph, instrumentStateGraphCompile, @@ -97,7 +101,9 @@ export { localVariablesIntegration, logger, lruMemoizerIntegration, + mastraIntegration, metrics, + mistralAIIntegration, modulesIntegration, mongoIntegration, mongooseIntegration, @@ -122,6 +128,7 @@ export { requestDataIntegration, rewriteFramesIntegration, Scope, + SentryMastraExporter, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, diff --git a/src/renderer/index.ts b/src/renderer/index.ts index f7a2b4caa..2b54d7a5b 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -40,6 +40,7 @@ export { captureMessage, captureSession, chromeStackLineParser, + consoleIntegration, consoleLoggingIntegration, contextLinesIntegration, continueTrace, diff --git a/src/renderer/sdk.ts b/src/renderer/sdk.ts index 38dba015a..77f38c387 100644 --- a/src/renderer/sdk.ts +++ b/src/renderer/sdk.ts @@ -49,7 +49,7 @@ interface ElectronRendererOptions extends Partial( options: ElectronRendererOptions & O = {} as ElectronRendererOptions & O, // This parameter name ensures that TypeScript error messages contain a hint for fixing SDK version mismatches - originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_beta_1: O) => void = browserInit, + originalInit: (if_you_get_a_typescript_error_ensure_sdks_use_version_v11_0_0_rc_0: O) => void = browserInit, ): void { // Ensure the browser SDK is only init'ed once. if (window?.__SENTRY__RENDERER_INIT__) { diff --git a/src/utility/index.ts b/src/utility/index.ts index c4602cbf1..16635e8ab 100644 --- a/src/utility/index.ts +++ b/src/utility/index.ts @@ -38,6 +38,7 @@ export { contextLinesIntegration, continueTrace, createConsolaReporter, + createFlueInstrumentation, createGetModuleFromFilename, createLangChainCallbackHandler, createSentryWinstonTransport, @@ -46,6 +47,7 @@ export { dataloaderIntegration, dedupeIntegration, endSession, + eveConversationHook, eventFiltersIntegration, expressErrorHandler, expressIntegration, @@ -62,6 +64,7 @@ export { getClient, getCurrentScope, getGlobalScope, + getInstrumentedModuleNames, getIsolationScope, getOtlpTracesEndpoint, getRootSpan, @@ -81,6 +84,7 @@ export { instrumentAnthropicAiClient, instrumentGoogleGenAIClient, instrumentLangChainEmbeddings, + instrumentMistralAiClient, instrumentOpenAiClient, instrumentStateGraph, instrumentStateGraphCompile, @@ -98,7 +102,9 @@ export { localVariablesIntegration, logger, lruMemoizerIntegration, + mastraIntegration, metrics, + mistralAIIntegration, modulesIntegration, mongoIntegration, mongooseIntegration, @@ -124,6 +130,7 @@ export { requestDataIntegration, rewriteFramesIntegration, Scope, + SentryMastraExporter, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, diff --git a/yarn.lock b/yarn.lock index 24b765f02..d5c3a8e78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -692,64 +692,63 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== -"@sentry/browser-utils@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-beta.1.tgz#86685e231f8aba716552168016bf90156ab3890d" - integrity sha512-BjrbkdkGuJZywyYGpE/c0geov45qHF+BggAqSU1Stk9hJfVohe2vAuZr8bZdkUJadDiSYiG5krPelc0/svr0RQ== - dependencies: - "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-beta.1" - web-vitals "^6.0.1" - -"@sentry/browser@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-beta.1.tgz#1a495490967308dc0f4eea0365f1dc00d63b8161" - integrity sha512-xo8To5gveiYC/f5sYxgqYwTDjXrgq14L5/nEn9JuJBCr/96Xr6uqgqGA89ceMR4hRjIQ3QLPnXNzpDZ5/CSpUQ== - dependencies: - "@sentry/browser-utils" "11.0.0-beta.1" - "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-beta.1" - "@sentry/feedback" "11.0.0-beta.1" - "@sentry/replay" "11.0.0-beta.1" - "@sentry/replay-canvas" "11.0.0-beta.1" - -"@sentry/bundler-plugins@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-beta.1.tgz#db8641f274bdac04286c228e9d2331f63d7b13c5" - integrity sha512-DdnwWSduyX/cbIFinzllaQQR0nDfBFygKYXQl+kQYyts+I+Cr7ZO0nFnvLSzqMtxkHKRc788tTxkxOisGDQZ3Q== +"@sentry/browser-utils@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/browser-utils/-/browser-utils-11.0.0-rc.0.tgz#f7388f36c5399af218e1234947d07b936ab47948" + integrity sha512-Mxate9W4UEkx8Ez+78ygWdxB3KFMVjwXFSd5dwXjHl/Bv/+t375l8JCV1vW5IQ/V5qQBWi/ess/IA4Rq7pmQjQ== + dependencies: + "@sentry/conventions" "^0.23.0" + "@sentry/core" "11.0.0-rc.0" + web-vitals "^6.1.1" + +"@sentry/browser@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-11.0.0-rc.0.tgz#a8367813feed45babc4b2533e5a40e74e23d23b6" + integrity sha512-S/PSQvvoI0vtwJZt1jUMUJau4cxMH1a+rN8Ul5KOvDHP5P8tGkB5fl7GtHVchlil8JPp5xd4bp7PyFHPkvAPPw== + dependencies: + "@sentry/browser-utils" "11.0.0-rc.0" + "@sentry/conventions" "^0.23.0" + "@sentry/core" "11.0.0-rc.0" + "@sentry/feedback" "11.0.0-rc.0" + "@sentry/replay" "11.0.0-rc.0" + "@sentry/replay-canvas" "11.0.0-rc.0" + +"@sentry/bundler-plugins@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugins/-/bundler-plugins-11.0.0-rc.0.tgz#cf8cab739eb31b331fa79c03495fb4e467ffbdc8" + integrity sha512-mfRtTo7MNMgAghHsTzcRV5XwdpV+YqdqA4OGgOSRqLEY5H1jxfO8j+orEjUvLk8pCgR4Y1cORsXKqpVXI4nh3w== dependencies: "@babel/core" "^7.18.5" - "@sentry/core" "11.0.0-beta.1" + "@sentry/core" "11.0.0-rc.0" dotenv "^17.4.2" - find-up "^5.0.0" glob "^13.0.6" magic-string "~0.30.8" sentry "^0.44.0" supports-color "^8.1.1" -"@sentry/conventions@^0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.20.0.tgz#f73f6f46934d754dacef447755b5adf1bf7f3245" - integrity sha512-nAL3tL+xgom6Dbuxq0NCEZZfBNIrUspjDJRcMMRl3WLiBCSeZzNCa7an48IpnrZoVMpAi2NQ2v9rFU+EQziKuQ== +"@sentry/conventions@^0.23.0": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@sentry/conventions/-/conventions-0.23.0.tgz#26ecad45f91bcf70940325ab9af2b9544fa18242" + integrity sha512-+Euyo7CNVecoOusgUnq27oV97oshifgceKfnGnuKfXrPUVWA/cisvii3E1rlvy2yBrKvl9K1gCEo1Jqog5zjEQ== -"@sentry/core@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-beta.1.tgz#f15d2350c707491d234c9d28dfb1aceba0f3a3c8" - integrity sha512-3WjVylthppTrxkA5k5r1+UKPMngqhxlGvZzniGC1JqfhTb1UidoM6s/qq4DWP4YO3DBXtoqN1u5SoQacq7kanA== +"@sentry/core@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-11.0.0-rc.0.tgz#a07f233bf3fc52a68673519003ce644b72ca3320" + integrity sha512-6KXLKGq1YgysUIzeD0cYQH/8Tg62V+UJV1d9FVNvKb0HnRgbiO9VWCCm1wGyYSENdGPdSa9zOOnk5ZC7WxLaAw== dependencies: - "@sentry/conventions" "^0.20.0" + "@sentry/conventions" "^0.23.0" -"@sentry/eslint-plugin-sdk@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-beta.1.tgz#dc1b2a829d8f5ad5031aab9f75a124e0e86834d3" - integrity sha512-xLp1IW8w9STUco7j8t1+4Lloypizo8TJ3tr+5y+h30kCtmW3i2mHiYCBdmOUCqk9z9GBM/AmS52GepqVVJoFCw== +"@sentry/eslint-plugin-sdk@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/eslint-plugin-sdk/-/eslint-plugin-sdk-11.0.0-rc.0.tgz#ebcf91fdafbf0a77ff9862429f5c5217f8432ec3" + integrity sha512-TK1B6/RQsYQIHslL8PdPtmZvftBETMlIVA1nsIRzL8rbFBvs2fYBuwYJ/fy+fuC5bzg3bk7tPsw9Bjv7+vJ/0g== -"@sentry/feedback@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-beta.1.tgz#385abfef110fae8a473c3074eae96be3dbcae7f3" - integrity sha512-1DkOrsB3VhYzS9GK4l2gwVZma4hVYv2rEGlG2Qj4hKKvKfT/qeMPB1yZOccvcmVhdwWBXzJs49gBv8TdEoBxbg== +"@sentry/feedback@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/feedback/-/feedback-11.0.0-rc.0.tgz#4135d29bd739078a17261772c90965fd1cb610eb" + integrity sha512-jb/xd0kxtYM8XVAZtsMxayv27Agv4aWHBumnVT0jxUSNj2eoX5Tfz0PsinV7lcqITZ8HaLeYkUQcll4ANqjX5w== dependencies: - "@sentry/core" "11.0.0-beta.1" + "@sentry/core" "11.0.0-rc.0" "@sentry/node-native-stacktrace@^0.5.1": version "0.5.1" @@ -759,68 +758,68 @@ detect-libc "^2.0.4" node-abi "^3.89.0" -"@sentry/node-native@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-beta.1.tgz#ff04920d2361d86b5df47405d54c1751bd5f0376" - integrity sha512-6q9IWbzULUiOu5uk2dNEK4PQFd3XdcPef7Qf1p7xRm8RwX15beVISvFQisKOHSCk0kZhpSgXeOAJ7mXxqzcnog== +"@sentry/node-native@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/node-native/-/node-native-11.0.0-rc.0.tgz#e6c169b75ab13a92e6a472394d373280b1e1e674" + integrity sha512-W5DTEjgiBcFVlWNNGgOpQLKXgUviQffJmZhI6REwtFrsC+V6V2FEL0gPkgUwoxcF+EFAJAOL6U2kBLrgAuHwkg== dependencies: - "@sentry/core" "11.0.0-beta.1" - "@sentry/node" "11.0.0-beta.1" + "@sentry/core" "11.0.0-rc.0" + "@sentry/node" "11.0.0-rc.0" "@sentry/node-native-stacktrace" "^0.5.1" -"@sentry/node@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-beta.1.tgz#a8b58eda46ddcdb6b705b9afe18d69036e8c591e" - integrity sha512-XMdu/Jp0MKYlFQw+wI+zmTk4LsivR77h/O6TAs4+lNTlSPaC75r5aOjAzfnnUbwL8SzmjKthoa2bcJLrORyISw== +"@sentry/node@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-11.0.0-rc.0.tgz#9bd97f014514ab8450d04aa60da85b9e68e55e64" + integrity sha512-hztnJEx8Fcyp0wNJgVbrgWIy9jgkefo7A3c7Y7r7wrCwCl5gKwzzo53XYOkY2lf/rjTLaJCG8b21VjHaFldOZw== dependencies: "@opentelemetry/api" "^1.9.1" - "@sentry/bundler-plugins" "11.0.0-beta.1" - "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-beta.1" - "@sentry/opentelemetry" "11.0.0-beta.1" - "@sentry/server-runtime-injection" "11.0.0-beta.1" - "@sentry/server-utils" "11.0.0-beta.1" - -"@sentry/opentelemetry@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-beta.1.tgz#0e25dd823129b441000a9dc335b7e93f0e70baaf" - integrity sha512-axGagTVnjAoPF4WabSi4IBKuGQTocUp2sMW0Ij0nkgvCPUzuObgSORCYeTrei8EELjblAa13JRMPdbQMrhx9Zg== - dependencies: - "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-beta.1" - -"@sentry/replay-canvas@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-beta.1.tgz#b1ca92a825aa779c68213fe2f7ae1765f97638c8" - integrity sha512-I2nE2QjKppx+mx6AemXKktqJYJlWunwmghpgbB+yo9hIesAuOlcAtkZjuDEDF//KZdRzcfqbePl4g2uXfC3iwA== - dependencies: - "@sentry/core" "11.0.0-beta.1" - "@sentry/replay" "11.0.0-beta.1" - -"@sentry/replay@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-beta.1.tgz#98f18d633ddf87dd511bd224eaaa65601867c58d" - integrity sha512-8WX3GEKLvsqxQ5CnLHPkjNvViWIo9EQ2OubcOqu/BtBHAD0jbyDYnbk29ybLzdUnB08ARKG3ePqEhHWL4DPbEw== - dependencies: - "@sentry/browser-utils" "11.0.0-beta.1" - "@sentry/core" "11.0.0-beta.1" - -"@sentry/server-runtime-injection@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/server-runtime-injection/-/server-runtime-injection-11.0.0-beta.1.tgz#5f9b919bf7becebe95d76fb732b2f1318873b9d4" - integrity sha512-98CQHmkJlM2joxhuwZHK3ubWnG+zWJHTSM/Sma9dEepIT0x7ZYUeBL8B/yXaOmKD5eL3VVwHgOLQ3GPtdiw+rA== - dependencies: - "@sentry/core" "11.0.0-beta.1" - "@sentry/server-utils" "11.0.0-beta.1" - -"@sentry/server-utils@11.0.0-beta.1": - version "11.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-beta.1.tgz#78c9deabc0aefc4e3bec7469d8b689c4443b9240" - integrity sha512-yykBiydSvgr/muD0pSWc6Jz/9KrgPtH7rBQdCJ+SXTZ4ZRdak8swv5JQSPNkK7JjQGY6+/V7RpgXNNSRkca1Ag== + "@sentry/bundler-plugins" "11.0.0-rc.0" + "@sentry/conventions" "^0.23.0" + "@sentry/core" "11.0.0-rc.0" + "@sentry/opentelemetry" "11.0.0-rc.0" + "@sentry/server-runtime-injection" "11.0.0-rc.0" + "@sentry/server-utils" "11.0.0-rc.0" + +"@sentry/opentelemetry@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-11.0.0-rc.0.tgz#fd5c7e05e48911184ef39d9b8c4cee76d7ba6818" + integrity sha512-28Yy+Qoo84Ckxu40f2sB/NE+J2uacVkT+rD/GnK3+ExZfW/o2nV7eotIwKUprhoHM1w8EaMQusjZAMTzHc4geQ== + dependencies: + "@sentry/conventions" "^0.23.0" + "@sentry/core" "11.0.0-rc.0" + +"@sentry/replay-canvas@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/replay-canvas/-/replay-canvas-11.0.0-rc.0.tgz#8e302128e0de1b51a65f030ec935d7012c88eab6" + integrity sha512-7KSOyhmhRjlMg0NX4P+gNsgaT40uAWhJrI+3hsHxSU1dsvBdylhBzHM3/2Qie5QuFvrdBWqJefeQ5tFs7GCPoQ== + dependencies: + "@sentry/core" "11.0.0-rc.0" + "@sentry/replay" "11.0.0-rc.0" + +"@sentry/replay@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-11.0.0-rc.0.tgz#9c27c8507fb7487fbbfad71c3a067141a6d7c487" + integrity sha512-7TIGKTFc0dfmC7uGj4HZ4sRyk25ZuUdvMO8yY4gcflIZfZAE18USE1S9fM+QTmCMlbrPEXgni7Iw2ij4zsxMYQ== + dependencies: + "@sentry/browser-utils" "11.0.0-rc.0" + "@sentry/core" "11.0.0-rc.0" + +"@sentry/server-runtime-injection@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/server-runtime-injection/-/server-runtime-injection-11.0.0-rc.0.tgz#d2e848d9da83622424892f786bc86a873a227f0a" + integrity sha512-x8XppxyzDZxweoHlfsW0l12ghquvp79o2UNXOcXETRb+40ud+RF+YdPtnv4yvsrByXScPkNzKVdJSjxevJCcrA== + dependencies: + "@sentry/core" "11.0.0-rc.0" + "@sentry/server-utils" "11.0.0-rc.0" + +"@sentry/server-utils@11.0.0-rc.0": + version "11.0.0-rc.0" + resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-11.0.0-rc.0.tgz#9313817cfcb2a3a52e5503423f5d5b1001bbc3f0" + integrity sha512-0+nsGmRdz8U+U5Cbe52FVfsBztcSY8v7u37id3lsEOktZQi8uJRQShp7BgvD8+ReXEuoVK/L2w7LxzTdtmxQig== dependencies: "@opentelemetry/api" "^1.9.1" - "@sentry/conventions" "^0.20.0" - "@sentry/core" "11.0.0-beta.1" + "@sentry/conventions" "^0.23.0" + "@sentry/core" "11.0.0-rc.0" "@sindresorhus/is@^4.0.0": version "4.6.0" @@ -1553,14 +1552,6 @@ fdir@^6.5.0: resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - foreground-child@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" @@ -1981,13 +1972,6 @@ lightningcss@^1.32.0: lightningcss-win32-arm64-msvc "1.32.0" lightningcss-win32-x64-msvc "1.32.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -2251,20 +2235,6 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - package-json-from-dist@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" @@ -2275,11 +2245,6 @@ parseurl@^1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -2840,10 +2805,10 @@ vitest@^4.0.18: vite "^6.0.0 || ^7.0.0 || ^8.0.0-0" why-is-node-running "^2.3.0" -web-vitals@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-6.1.1.tgz#855ba63ed40847c55e061ac13f55ee5f6435b723" - integrity sha512-r93gKnR6ZC2O8F3JrS0AAGIQ0v0OhXuyg4DAj2oG7K+GPkwXfUSc3ZcWeu50AsV5yIc6xxnTjERipJ6EvSw2vg== +web-vitals@^6.1.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-6.2.2.tgz#ff4a7a8d7c5df18074a01f1c4f169e1a57df7193" + integrity sha512-oto5x6dLEgrRqfcWed+pZEUb2q6ikbFmqF54CRDhI/QGbn+qxC49b4C4OkbH+kb9C3a8shpFD3SgR9kRcs80ZQ== which@^1.2.4: version "1.3.1" @@ -2922,8 +2887,3 @@ yauzl@^2.10.0: dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==