@sentry/nuxt 10.1.0 → 10.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- const core = require('@sentry/core');
4
3
  const rollupPlugin = require('@sentry/rollup-plugin');
5
4
  const vitePlugin = require('@sentry/vite-plugin');
6
5
 
@@ -52,11 +51,9 @@ function setupSourceMaps(moduleOptions, nuxt) {
52
51
  !sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload &&
53
52
  (shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)
54
53
  ) {
55
- core.consoleSandbox(() =>
56
- // eslint-disable-next-line no-console
57
- console.log(
58
- "[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.",
59
- ),
54
+ // eslint-disable-next-line no-console
55
+ console.log(
56
+ "[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.",
60
57
  );
61
58
  }
62
59
  }
@@ -79,15 +76,13 @@ function setupSourceMaps(moduleOptions, nuxt) {
79
76
  });
80
77
 
81
78
  if (isDebug) {
82
- core.consoleSandbox(() => {
83
- if (!runtime) {
84
- // eslint-disable-next-line no-console
85
- console.log("[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.");
86
- } else {
87
- // eslint-disable-next-line no-console
88
- console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);
89
- }
90
- });
79
+ if (!runtime) {
80
+ // eslint-disable-next-line no-console
81
+ console.log("[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.");
82
+ } else {
83
+ // eslint-disable-next-line no-console
84
+ console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);
85
+ }
91
86
  }
92
87
 
93
88
  // Add Sentry plugin
@@ -114,10 +109,8 @@ function setupSourceMaps(moduleOptions, nuxt) {
114
109
  validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);
115
110
 
116
111
  if (isDebug) {
117
- core.consoleSandbox(() => {
118
- // eslint-disable-next-line no-console
119
- console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');
120
- });
112
+ // eslint-disable-next-line no-console
113
+ console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');
121
114
  }
122
115
 
123
116
  // Add Sentry plugin
@@ -168,16 +161,14 @@ function getPluginOptions(
168
161
  // eslint-disable-next-line deprecation/deprecation
169
162
  deprecatedSourcemapsOptions.filesToDeleteAfterUpload;
170
163
 
171
- if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload) {
172
- core.consoleSandbox(() => {
173
- // eslint-disable-next-line no-console
174
- console.log(
175
- `[Sentry] Setting \`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete
176
- // Logging it as strings in the array
177
- .map(path => `"${path}"`)
178
- .join(', ')}]\` to delete generated source maps after they were uploaded to Sentry.`,
179
- );
180
- });
164
+ if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload && moduleOptions.debug) {
165
+ // eslint-disable-next-line no-console
166
+ console.log(
167
+ `[Sentry] Setting \`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete
168
+ // Logging it as strings in the array
169
+ .map(path => `"${path}"`)
170
+ .join(', ')}]\` to delete generated source maps after they were uploaded to Sentry.`,
171
+ );
181
172
  }
182
173
 
183
174
  return {
@@ -272,11 +263,12 @@ function changeNuxtSourceMapSettings(
272
263
  };
273
264
 
274
265
  const nuxtSourceMap = nuxt.options.sourcemap;
266
+ const isDebug = sentryModuleOptions.debug;
275
267
 
276
268
  if (typeof nuxtSourceMap === 'string' || typeof nuxtSourceMap === 'boolean' || typeof nuxtSourceMap === 'undefined') {
277
269
  switch (nuxtSourceMap) {
278
270
  case false:
279
- warnExplicitlyDisabledSourceMap('sourcemap');
271
+ warnExplicitlyDisabledSourceMap('sourcemap', isDebug);
280
272
  previousUserSourceMapSetting = { client: 'disabled', server: 'disabled' };
281
273
  break;
282
274
 
@@ -287,33 +279,33 @@ function changeNuxtSourceMapSettings(
287
279
  break;
288
280
  case undefined:
289
281
  nuxt.options.sourcemap = { server: 'hidden', client: 'hidden' };
290
- logSentryEnablesSourceMap('sourcemap.client', 'hidden');
291
- logSentryEnablesSourceMap('sourcemap.server', 'hidden');
282
+ isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');
283
+ isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');
292
284
  previousUserSourceMapSetting = { client: 'unset', server: 'unset' };
293
285
  break;
294
286
  }
295
287
  } else {
296
288
  if (nuxtSourceMap.client === false) {
297
- warnExplicitlyDisabledSourceMap('sourcemap.client');
289
+ warnExplicitlyDisabledSourceMap('sourcemap.client', isDebug);
298
290
  previousUserSourceMapSetting.client = 'disabled';
299
291
  } else if (['hidden', true].includes(nuxtSourceMap.client)) {
300
292
  logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.client', nuxtSourceMap.client.toString());
301
293
  previousUserSourceMapSetting.client = 'enabled';
302
294
  } else {
303
295
  nuxt.options.sourcemap.client = 'hidden';
304
- logSentryEnablesSourceMap('sourcemap.client', 'hidden');
296
+ isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');
305
297
  previousUserSourceMapSetting.client = 'unset';
306
298
  }
307
299
 
308
300
  if (nuxtSourceMap.server === false) {
309
- warnExplicitlyDisabledSourceMap('sourcemap.server');
301
+ warnExplicitlyDisabledSourceMap('sourcemap.server', isDebug);
310
302
  previousUserSourceMapSetting.server = 'disabled';
311
303
  } else if (['hidden', true].includes(nuxtSourceMap.server)) {
312
304
  logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.server', nuxtSourceMap.server.toString());
313
305
  previousUserSourceMapSetting.server = 'enabled';
314
306
  } else {
315
307
  nuxt.options.sourcemap.server = 'hidden';
316
- logSentryEnablesSourceMap('sourcemap.server', 'hidden');
308
+ isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');
317
309
  previousUserSourceMapSetting.server = 'unset';
318
310
  }
319
311
  }
@@ -363,12 +355,10 @@ function validateNitroSourceMapSettings(
363
355
 
364
356
  nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;
365
357
  if (isDebug) {
366
- core.consoleSandbox(() => {
367
- // eslint-disable-next-line no-console
368
- console.log(
369
- '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',
370
- );
371
- });
358
+ // eslint-disable-next-line no-console
359
+ console.log(
360
+ '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',
361
+ );
372
362
  }
373
363
  }
374
364
 
@@ -381,12 +371,10 @@ function validateDifferentSourceMapSettings({
381
371
 
382
372
  ) {
383
373
  if (nuxtSettingValue !== otherSettingValue) {
384
- core.consoleSandbox(() => {
385
- // eslint-disable-next-line no-console
386
- console.warn(
387
- `[Sentry] Source map generation settings are conflicting. Sentry uses \`${nuxtSettingKey}: ${nuxtSettingValue}\`. However, a conflicting setting was discovered (\`${otherSettingKey}: ${otherSettingValue}\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,
388
- );
389
- });
374
+ // eslint-disable-next-line no-console
375
+ console.warn(
376
+ `[Sentry] Source map generation settings are conflicting. Sentry uses \`${nuxtSettingKey}: ${nuxtSettingValue}\`. However, a conflicting setting was discovered (\`${otherSettingKey}: ${otherSettingValue}\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,
377
+ );
390
378
  }
391
379
  }
392
380
 
@@ -396,29 +384,28 @@ function logKeepEnabledSourceMapSetting(
396
384
  settingValue,
397
385
  ) {
398
386
  if (sentryNuxtModuleOptions.debug) {
399
- core.consoleSandbox(() => {
400
- // eslint-disable-next-line no-console
401
- console.log(
402
- `[Sentry] \`${settingKey}\` is enabled with \`${settingValue}\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,
403
- );
404
- });
387
+ // eslint-disable-next-line no-console
388
+ console.log(
389
+ `[Sentry] \`${settingKey}\` is enabled with \`${settingValue}\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,
390
+ );
405
391
  }
406
392
  }
407
393
 
408
- function warnExplicitlyDisabledSourceMap(settingKey) {
409
- core.consoleSandbox(() => {
394
+ function warnExplicitlyDisabledSourceMap(settingKey, isDebug) {
395
+ if (isDebug) {
410
396
  // eslint-disable-next-line no-console
411
397
  console.warn(
412
- `[Sentry] We discovered \`${settingKey}\` is set to \`false\`. This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \`${settingKey}\` (e.g. by setting them to \`'hidden'\`).`,
398
+ `[Sentry] Source map generation is currently disabled in your Vite configuration (\`${settingKey}: false \`). This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \`${settingKey}\` (e.g. by setting them to \`hidden\`).`,
413
399
  );
414
- });
400
+ } else {
401
+ // eslint-disable-next-line no-console
402
+ console.warn(`[Sentry] Source map generation (\`${settingKey}\`) is disabled in your Vite configuration.`);
403
+ }
415
404
  }
416
405
 
417
406
  function logSentryEnablesSourceMap(settingKey, settingValue) {
418
- core.consoleSandbox(() => {
419
- // eslint-disable-next-line no-console
420
- console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
421
- });
407
+ // eslint-disable-next-line no-console
408
+ console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
422
409
  }
423
410
 
424
411
  exports.changeNuxtSourceMapSettings = changeNuxtSourceMapSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMaps.js","sources":["../../../src/vite/sourceMaps.ts"],"sourcesContent":["import type { Nuxt } from '@nuxt/schema';\nimport { consoleSandbox } from '@sentry/core';\nimport { type SentryRollupPluginOptions, sentryRollupPlugin } from '@sentry/rollup-plugin';\nimport { type SentryVitePluginOptions, sentryVitePlugin } from '@sentry/vite-plugin';\nimport type { NitroConfig } from 'nitropack';\nimport type { SentryNuxtModuleOptions } from '../common/types';\n\n/**\n * Whether the user enabled (true, 'hidden', 'inline') or disabled (false) source maps\n */\nexport type UserSourceMapSetting = 'enabled' | 'disabled' | 'unset' | undefined;\n\n/** A valid source map setting */\nexport type SourceMapSetting = boolean | 'hidden' | 'inline';\n\n/**\n * Setup source maps for Sentry inside the Nuxt module during build time (in Vite for Nuxt and Rollup for Nitro).\n */\nexport function setupSourceMaps(moduleOptions: SentryNuxtModuleOptions, nuxt: Nuxt): void {\n // TODO(v11): remove deprecated options (also from SentryNuxtModuleOptions type)\n\n const isDebug = moduleOptions.debug;\n\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const sourceMapsEnabled =\n moduleOptions.sourcemaps?.disable === true\n ? false\n : moduleOptions.sourcemaps?.disable === false\n ? true\n : // eslint-disable-next-line deprecation/deprecation\n sourceMapsUploadOptions.enabled ?? true;\n\n // In case we overwrite the source map settings, we default to deleting the files\n let shouldDeleteFilesFallback = { client: true, server: true };\n\n nuxt.hook('modules:done', () => {\n if (sourceMapsEnabled && !nuxt.options.dev) {\n // Changing this setting will propagate:\n // - for client to viteConfig.build.sourceMap\n // - for server to viteConfig.build.sourceMap and nitro.sourceMap\n // On server, nitro.rollupConfig.output.sourcemap remains unaffected from this change.\n\n // ONLY THIS nuxt.sourcemap.(server/client) setting is the one Sentry will eventually overwrite with 'hidden'\n const previousSourceMapSettings = changeNuxtSourceMapSettings(nuxt, moduleOptions);\n\n shouldDeleteFilesFallback = {\n client: previousSourceMapSettings.client === 'unset',\n server: previousSourceMapSettings.server === 'unset',\n };\n\n if (\n isDebug &&\n !moduleOptions.sourcemaps?.filesToDeleteAfterUpload &&\n // eslint-disable-next-line deprecation/deprecation\n !sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload &&\n (shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)\n ) {\n consoleSandbox(() =>\n // eslint-disable-next-line no-console\n console.log(\n \"[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.\",\n ),\n );\n }\n }\n });\n\n nuxt.hook('vite:extendConfig', async (viteConfig, env) => {\n if (sourceMapsEnabled && viteConfig.mode !== 'development') {\n const runtime = env.isServer ? 'server' : env.isClient ? 'client' : undefined;\n const nuxtSourceMapSetting = extractNuxtSourceMapSetting(nuxt, runtime);\n\n viteConfig.build = viteConfig.build || {};\n const viteSourceMap = viteConfig.build.sourcemap;\n\n // Vite source map options are the same as the Nuxt source map config options (unless overwritten)\n validateDifferentSourceMapSettings({\n nuxtSettingKey: `sourcemap.${runtime}`,\n nuxtSettingValue: nuxtSourceMapSetting,\n otherSettingKey: 'viteConfig.build.sourcemap',\n otherSettingValue: viteSourceMap,\n });\n\n if (isDebug) {\n consoleSandbox(() => {\n if (!runtime) {\n // eslint-disable-next-line no-console\n console.log(\"[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.\");\n } else {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);\n }\n });\n }\n\n // Add Sentry plugin\n // Vite plugin is added on the client and server side (hook runs twice)\n // Nuxt client source map is 'false' by default. Warning about this will be shown already in an earlier step, and it's also documented that `nuxt.sourcemap.client` needs to be enabled.\n viteConfig.plugins = viteConfig.plugins || [];\n viteConfig.plugins.push(sentryVitePlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)));\n }\n });\n\n nuxt.hook('nitro:config', (nitroConfig: NitroConfig) => {\n if (sourceMapsEnabled && !nitroConfig.dev) {\n if (!nitroConfig.rollupConfig) {\n nitroConfig.rollupConfig = {};\n }\n\n if (nitroConfig.rollupConfig.plugins === null || nitroConfig.rollupConfig.plugins === undefined) {\n nitroConfig.rollupConfig.plugins = [];\n } else if (!Array.isArray(nitroConfig.rollupConfig.plugins)) {\n // `rollupConfig.plugins` can be a single plugin, so we want to put it into an array so that we can push our own plugin\n nitroConfig.rollupConfig.plugins = [nitroConfig.rollupConfig.plugins];\n }\n\n validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);\n\n if (isDebug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');\n });\n }\n\n // Add Sentry plugin\n // Runs only on server-side (Nitro)\n nitroConfig.rollupConfig.plugins.push(\n sentryRollupPlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)),\n );\n }\n });\n}\n\n/**\n * Normalizes the beginning of a path from e.g. ../../../ to ./\n */\nfunction normalizePath(path: string): string {\n return path.replace(/^(\\.\\.\\/)+/, './');\n}\n\n/**\n * Generates source maps upload options for the Sentry Vite and Rollup plugin.\n *\n * Only exported for Testing purposes.\n */\n// todo(v11): This \"eslint-disable\" can be removed again once we remove deprecated options.\n// eslint-disable-next-line complexity\nexport function getPluginOptions(\n moduleOptions: SentryNuxtModuleOptions,\n shouldDeleteFilesFallback?: { client: boolean; server: boolean },\n): SentryVitePluginOptions | SentryRollupPluginOptions {\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const shouldDeleteFilesAfterUpload = shouldDeleteFilesFallback?.client || shouldDeleteFilesFallback?.server;\n const fallbackFilesToDelete = [\n ...(shouldDeleteFilesFallback?.client ? ['.*/**/public/**/*.map'] : []),\n ...(shouldDeleteFilesFallback?.server\n ? ['.*/**/server/**/*.map', '.*/**/output/**/*.map', '.*/**/function/**/*.map']\n : []),\n ];\n\n // Check for filesToDeleteAfterUpload in new location first, then deprecated location\n const sourcemapsOptions = moduleOptions.sourcemaps || {};\n // eslint-disable-next-line deprecation/deprecation\n const deprecatedSourcemapsOptions = sourceMapsUploadOptions.sourcemaps || {};\n\n const filesToDeleteAfterUpload =\n sourcemapsOptions.filesToDeleteAfterUpload ??\n // eslint-disable-next-line deprecation/deprecation\n deprecatedSourcemapsOptions.filesToDeleteAfterUpload;\n\n if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] Setting \\`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete\n // Logging it as strings in the array\n .map(path => `\"${path}\"`)\n .join(', ')}]\\` to delete generated source maps after they were uploaded to Sentry.`,\n );\n });\n }\n\n return {\n // eslint-disable-next-line deprecation/deprecation\n org: moduleOptions.org ?? sourceMapsUploadOptions.org ?? process.env.SENTRY_ORG,\n // eslint-disable-next-line deprecation/deprecation\n project: moduleOptions.project ?? sourceMapsUploadOptions.project ?? process.env.SENTRY_PROJECT,\n // eslint-disable-next-line deprecation/deprecation\n authToken: moduleOptions.authToken ?? sourceMapsUploadOptions.authToken ?? process.env.SENTRY_AUTH_TOKEN,\n // eslint-disable-next-line deprecation/deprecation\n telemetry: moduleOptions.telemetry ?? sourceMapsUploadOptions.telemetry ?? true,\n // eslint-disable-next-line deprecation/deprecation\n url: moduleOptions.sentryUrl ?? sourceMapsUploadOptions.url ?? process.env.SENTRY_URL,\n headers: moduleOptions.headers,\n debug: moduleOptions.debug ?? false,\n // eslint-disable-next-line deprecation/deprecation\n silent: moduleOptions.silent ?? sourceMapsUploadOptions.silent ?? false,\n // eslint-disable-next-line deprecation/deprecation\n errorHandler: moduleOptions.errorHandler ?? sourceMapsUploadOptions.errorHandler,\n bundleSizeOptimizations: moduleOptions.bundleSizeOptimizations, // todo: test if this can be overridden by the user\n release: {\n // eslint-disable-next-line deprecation/deprecation\n name: moduleOptions.release?.name ?? sourceMapsUploadOptions.release?.name,\n // Support all release options from BuildTimeOptionsBase\n ...moduleOptions.release,\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.release,\n },\n _metaOptions: {\n telemetry: {\n metaFramework: 'nuxt',\n },\n },\n ...moduleOptions?.unstable_sentryBundlerPluginOptions,\n\n sourcemaps: {\n disable: moduleOptions.sourcemaps?.disable,\n // The server/client files are in different places depending on the nitro preset (e.g. '.output/server' or '.netlify/functions-internal/server')\n // We cannot determine automatically how the build folder looks like (depends on the preset), so we have to accept that source maps are uploaded multiple times (with the vitePlugin for Nuxt and the rollupPlugin for Nitro).\n // If we could know where the server/client assets are located, we could do something like this (based on the Nitro preset): isNitro ? ['./.output/server/**/*'] : ['./.output/public/**/*'],\n // eslint-disable-next-line deprecation/deprecation\n assets: sourcemapsOptions.assets ?? deprecatedSourcemapsOptions.assets ?? undefined,\n // eslint-disable-next-line deprecation/deprecation\n ignore: sourcemapsOptions.ignore ?? deprecatedSourcemapsOptions.ignore ?? undefined,\n filesToDeleteAfterUpload: filesToDeleteAfterUpload\n ? filesToDeleteAfterUpload\n : shouldDeleteFilesFallback?.server || shouldDeleteFilesFallback?.client\n ? fallbackFilesToDelete\n : undefined,\n rewriteSources: (source: string) => normalizePath(source),\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.sourcemaps,\n },\n };\n}\n\n/* There are multiple ways to set up source maps (https://github.com/getsentry/sentry-javascript/issues/13993 and https://github.com/getsentry/sentry-javascript/pull/15859)\n 1. User explicitly disabled source maps\n - keep this setting (emit a warning that errors won't be unminified in Sentry)\n - We will not upload anything\n 2. users enabled source map generation (true, hidden, inline).\n - keep this setting (don't do anything - like deletion - besides uploading)\n 3. users did not set source maps generation\n - we enable 'hidden' source maps generation\n - configure `filesToDeleteAfterUpload` to delete all .map files (we emit a log about this)\n\n Users only have to explicitly enable client source maps. Sentry only overwrites the base Nuxt source map settings as they propagate.\n */\n\n/** only exported for tests */\nexport function extractNuxtSourceMapSetting(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting; client?: SourceMapSetting } } },\n runtime: 'client' | 'server' | undefined,\n): SourceMapSetting | undefined {\n if (!runtime) {\n return undefined;\n } else {\n return typeof nuxt.options?.sourcemap === 'boolean' || typeof nuxt.options?.sourcemap === 'string'\n ? nuxt.options.sourcemap\n : nuxt.options?.sourcemap?.[runtime];\n }\n}\n\n/** only exported for testing */\nexport function changeNuxtSourceMapSettings(\n nuxt: Nuxt,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): { client: UserSourceMapSetting; server: UserSourceMapSetting } {\n nuxt.options.sourcemap = nuxt.options.sourcemap ?? { server: undefined, client: undefined };\n\n let previousUserSourceMapSetting: { client: UserSourceMapSetting; server: UserSourceMapSetting } = {\n client: undefined,\n server: undefined,\n };\n\n const nuxtSourceMap = nuxt.options.sourcemap;\n\n if (typeof nuxtSourceMap === 'string' || typeof nuxtSourceMap === 'boolean' || typeof nuxtSourceMap === 'undefined') {\n switch (nuxtSourceMap) {\n case false:\n warnExplicitlyDisabledSourceMap('sourcemap');\n previousUserSourceMapSetting = { client: 'disabled', server: 'disabled' };\n break;\n\n case 'hidden':\n case true:\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap', (nuxtSourceMap as true).toString());\n previousUserSourceMapSetting = { client: 'enabled', server: 'enabled' };\n break;\n case undefined:\n nuxt.options.sourcemap = { server: 'hidden', client: 'hidden' };\n logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting = { client: 'unset', server: 'unset' };\n break;\n }\n } else {\n if (nuxtSourceMap.client === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.client');\n previousUserSourceMapSetting.client = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.client)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.client', nuxtSourceMap.client.toString());\n previousUserSourceMapSetting.client = 'enabled';\n } else {\n nuxt.options.sourcemap.client = 'hidden';\n logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n previousUserSourceMapSetting.client = 'unset';\n }\n\n if (nuxtSourceMap.server === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.server');\n previousUserSourceMapSetting.server = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.server)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.server', nuxtSourceMap.server.toString());\n previousUserSourceMapSetting.server = 'enabled';\n } else {\n nuxt.options.sourcemap.server = 'hidden';\n logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting.server = 'unset';\n }\n }\n\n return previousUserSourceMapSetting;\n}\n\n/** Logs warnings about potentially conflicting source map settings.\n * Configures `sourcemapExcludeSources` in Nitro to make source maps usable in Sentry.\n *\n * only exported for testing\n */\nexport function validateNitroSourceMapSettings(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting } } },\n nitroConfig: NitroConfig,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): void {\n const isDebug = sentryModuleOptions.debug;\n const nuxtSourceMap = extractNuxtSourceMapSetting(nuxt, 'server');\n\n // NITRO CONFIG ---\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: 'nitro.sourceMap',\n otherSettingValue: nitroConfig.sourceMap,\n });\n\n // ROLLUP CONFIG ---\n\n nitroConfig.rollupConfig = nitroConfig.rollupConfig || {};\n nitroConfig.rollupConfig.output = nitroConfig.rollupConfig.output || { sourcemap: undefined };\n const nitroRollupSourceMap = nitroConfig.rollupConfig.output.sourcemap;\n\n // We don't override nitro.rollupConfig.output.sourcemap (undefined by default, but overrides all other server-side source map settings)\n if (typeof nitroRollupSourceMap !== 'undefined' && ['hidden', 'inline', true, false].includes(nitroRollupSourceMap)) {\n const settingKey = 'nitro.rollupConfig.output.sourcemap';\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: settingKey,\n otherSettingValue: nitroRollupSourceMap,\n });\n }\n\n nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;\n if (isDebug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',\n );\n });\n }\n}\n\nfunction validateDifferentSourceMapSettings({\n nuxtSettingKey,\n nuxtSettingValue,\n otherSettingKey,\n otherSettingValue,\n}: {\n nuxtSettingKey: string;\n nuxtSettingValue?: SourceMapSetting;\n otherSettingKey: string;\n otherSettingValue?: SourceMapSetting;\n}): void {\n if (nuxtSettingValue !== otherSettingValue) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] Source map generation settings are conflicting. Sentry uses \\`${nuxtSettingKey}: ${nuxtSettingValue}\\`. However, a conflicting setting was discovered (\\`${otherSettingKey}: ${otherSettingValue}\\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,\n );\n });\n }\n}\n\nfunction logKeepEnabledSourceMapSetting(\n sentryNuxtModuleOptions: SentryNuxtModuleOptions,\n settingKey: string,\n settingValue: string,\n): void {\n if (sentryNuxtModuleOptions.debug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] \\`${settingKey}\\` is enabled with \\`${settingValue}\\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,\n );\n });\n }\n}\n\nfunction warnExplicitlyDisabledSourceMap(settingKey: string): void {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] We discovered \\`${settingKey}\\` is set to \\`false\\`. This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \\`${settingKey}\\` (e.g. by setting them to \\`'hidden'\\`).`,\n );\n });\n}\n\nfunction logSentryEnablesSourceMap(settingKey: string, settingValue: string): void {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Enabled source map generation in the build options with \\`${settingKey}: ${settingValue}\\`.`);\n });\n}\n"],"names":["consoleSandbox","sentryVitePlugin","sentryRollupPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"sourceMaps.js","sources":["../../../src/vite/sourceMaps.ts"],"sourcesContent":["import type { Nuxt } from '@nuxt/schema';\nimport { type SentryRollupPluginOptions, sentryRollupPlugin } from '@sentry/rollup-plugin';\nimport { type SentryVitePluginOptions, sentryVitePlugin } from '@sentry/vite-plugin';\nimport type { NitroConfig } from 'nitropack';\nimport type { SentryNuxtModuleOptions } from '../common/types';\n\n/**\n * Whether the user enabled (true, 'hidden', 'inline') or disabled (false) source maps\n */\nexport type UserSourceMapSetting = 'enabled' | 'disabled' | 'unset' | undefined;\n\n/** A valid source map setting */\nexport type SourceMapSetting = boolean | 'hidden' | 'inline';\n\n/**\n * Setup source maps for Sentry inside the Nuxt module during build time (in Vite for Nuxt and Rollup for Nitro).\n */\nexport function setupSourceMaps(moduleOptions: SentryNuxtModuleOptions, nuxt: Nuxt): void {\n // TODO(v11): remove deprecated options (also from SentryNuxtModuleOptions type)\n\n const isDebug = moduleOptions.debug;\n\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const sourceMapsEnabled =\n moduleOptions.sourcemaps?.disable === true\n ? false\n : moduleOptions.sourcemaps?.disable === false\n ? true\n : // eslint-disable-next-line deprecation/deprecation\n sourceMapsUploadOptions.enabled ?? true;\n\n // In case we overwrite the source map settings, we default to deleting the files\n let shouldDeleteFilesFallback = { client: true, server: true };\n\n nuxt.hook('modules:done', () => {\n if (sourceMapsEnabled && !nuxt.options.dev) {\n // Changing this setting will propagate:\n // - for client to viteConfig.build.sourceMap\n // - for server to viteConfig.build.sourceMap and nitro.sourceMap\n // On server, nitro.rollupConfig.output.sourcemap remains unaffected from this change.\n\n // ONLY THIS nuxt.sourcemap.(server/client) setting is the one Sentry will eventually overwrite with 'hidden'\n const previousSourceMapSettings = changeNuxtSourceMapSettings(nuxt, moduleOptions);\n\n shouldDeleteFilesFallback = {\n client: previousSourceMapSettings.client === 'unset',\n server: previousSourceMapSettings.server === 'unset',\n };\n\n if (\n isDebug &&\n !moduleOptions.sourcemaps?.filesToDeleteAfterUpload &&\n // eslint-disable-next-line deprecation/deprecation\n !sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload &&\n (shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)\n ) {\n // eslint-disable-next-line no-console\n console.log(\n \"[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.\",\n );\n }\n }\n });\n\n nuxt.hook('vite:extendConfig', async (viteConfig, env) => {\n if (sourceMapsEnabled && viteConfig.mode !== 'development') {\n const runtime = env.isServer ? 'server' : env.isClient ? 'client' : undefined;\n const nuxtSourceMapSetting = extractNuxtSourceMapSetting(nuxt, runtime);\n\n viteConfig.build = viteConfig.build || {};\n const viteSourceMap = viteConfig.build.sourcemap;\n\n // Vite source map options are the same as the Nuxt source map config options (unless overwritten)\n validateDifferentSourceMapSettings({\n nuxtSettingKey: `sourcemap.${runtime}`,\n nuxtSettingValue: nuxtSourceMapSetting,\n otherSettingKey: 'viteConfig.build.sourcemap',\n otherSettingValue: viteSourceMap,\n });\n\n if (isDebug) {\n if (!runtime) {\n // eslint-disable-next-line no-console\n console.log(\"[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.\");\n } else {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);\n }\n }\n\n // Add Sentry plugin\n // Vite plugin is added on the client and server side (hook runs twice)\n // Nuxt client source map is 'false' by default. Warning about this will be shown already in an earlier step, and it's also documented that `nuxt.sourcemap.client` needs to be enabled.\n viteConfig.plugins = viteConfig.plugins || [];\n viteConfig.plugins.push(sentryVitePlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)));\n }\n });\n\n nuxt.hook('nitro:config', (nitroConfig: NitroConfig) => {\n if (sourceMapsEnabled && !nitroConfig.dev) {\n if (!nitroConfig.rollupConfig) {\n nitroConfig.rollupConfig = {};\n }\n\n if (nitroConfig.rollupConfig.plugins === null || nitroConfig.rollupConfig.plugins === undefined) {\n nitroConfig.rollupConfig.plugins = [];\n } else if (!Array.isArray(nitroConfig.rollupConfig.plugins)) {\n // `rollupConfig.plugins` can be a single plugin, so we want to put it into an array so that we can push our own plugin\n nitroConfig.rollupConfig.plugins = [nitroConfig.rollupConfig.plugins];\n }\n\n validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);\n\n if (isDebug) {\n // eslint-disable-next-line no-console\n console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');\n }\n\n // Add Sentry plugin\n // Runs only on server-side (Nitro)\n nitroConfig.rollupConfig.plugins.push(\n sentryRollupPlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)),\n );\n }\n });\n}\n\n/**\n * Normalizes the beginning of a path from e.g. ../../../ to ./\n */\nfunction normalizePath(path: string): string {\n return path.replace(/^(\\.\\.\\/)+/, './');\n}\n\n/**\n * Generates source maps upload options for the Sentry Vite and Rollup plugin.\n *\n * Only exported for Testing purposes.\n */\n// todo(v11): This \"eslint-disable\" can be removed again once we remove deprecated options.\n// eslint-disable-next-line complexity\nexport function getPluginOptions(\n moduleOptions: SentryNuxtModuleOptions,\n shouldDeleteFilesFallback?: { client: boolean; server: boolean },\n): SentryVitePluginOptions | SentryRollupPluginOptions {\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const shouldDeleteFilesAfterUpload = shouldDeleteFilesFallback?.client || shouldDeleteFilesFallback?.server;\n const fallbackFilesToDelete = [\n ...(shouldDeleteFilesFallback?.client ? ['.*/**/public/**/*.map'] : []),\n ...(shouldDeleteFilesFallback?.server\n ? ['.*/**/server/**/*.map', '.*/**/output/**/*.map', '.*/**/function/**/*.map']\n : []),\n ];\n\n // Check for filesToDeleteAfterUpload in new location first, then deprecated location\n const sourcemapsOptions = moduleOptions.sourcemaps || {};\n // eslint-disable-next-line deprecation/deprecation\n const deprecatedSourcemapsOptions = sourceMapsUploadOptions.sourcemaps || {};\n\n const filesToDeleteAfterUpload =\n sourcemapsOptions.filesToDeleteAfterUpload ??\n // eslint-disable-next-line deprecation/deprecation\n deprecatedSourcemapsOptions.filesToDeleteAfterUpload;\n\n if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload && moduleOptions.debug) {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] Setting \\`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete\n // Logging it as strings in the array\n .map(path => `\"${path}\"`)\n .join(', ')}]\\` to delete generated source maps after they were uploaded to Sentry.`,\n );\n }\n\n return {\n // eslint-disable-next-line deprecation/deprecation\n org: moduleOptions.org ?? sourceMapsUploadOptions.org ?? process.env.SENTRY_ORG,\n // eslint-disable-next-line deprecation/deprecation\n project: moduleOptions.project ?? sourceMapsUploadOptions.project ?? process.env.SENTRY_PROJECT,\n // eslint-disable-next-line deprecation/deprecation\n authToken: moduleOptions.authToken ?? sourceMapsUploadOptions.authToken ?? process.env.SENTRY_AUTH_TOKEN,\n // eslint-disable-next-line deprecation/deprecation\n telemetry: moduleOptions.telemetry ?? sourceMapsUploadOptions.telemetry ?? true,\n // eslint-disable-next-line deprecation/deprecation\n url: moduleOptions.sentryUrl ?? sourceMapsUploadOptions.url ?? process.env.SENTRY_URL,\n headers: moduleOptions.headers,\n debug: moduleOptions.debug ?? false,\n // eslint-disable-next-line deprecation/deprecation\n silent: moduleOptions.silent ?? sourceMapsUploadOptions.silent ?? false,\n // eslint-disable-next-line deprecation/deprecation\n errorHandler: moduleOptions.errorHandler ?? sourceMapsUploadOptions.errorHandler,\n bundleSizeOptimizations: moduleOptions.bundleSizeOptimizations, // todo: test if this can be overridden by the user\n release: {\n // eslint-disable-next-line deprecation/deprecation\n name: moduleOptions.release?.name ?? sourceMapsUploadOptions.release?.name,\n // Support all release options from BuildTimeOptionsBase\n ...moduleOptions.release,\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.release,\n },\n _metaOptions: {\n telemetry: {\n metaFramework: 'nuxt',\n },\n },\n ...moduleOptions?.unstable_sentryBundlerPluginOptions,\n\n sourcemaps: {\n disable: moduleOptions.sourcemaps?.disable,\n // The server/client files are in different places depending on the nitro preset (e.g. '.output/server' or '.netlify/functions-internal/server')\n // We cannot determine automatically how the build folder looks like (depends on the preset), so we have to accept that source maps are uploaded multiple times (with the vitePlugin for Nuxt and the rollupPlugin for Nitro).\n // If we could know where the server/client assets are located, we could do something like this (based on the Nitro preset): isNitro ? ['./.output/server/**/*'] : ['./.output/public/**/*'],\n // eslint-disable-next-line deprecation/deprecation\n assets: sourcemapsOptions.assets ?? deprecatedSourcemapsOptions.assets ?? undefined,\n // eslint-disable-next-line deprecation/deprecation\n ignore: sourcemapsOptions.ignore ?? deprecatedSourcemapsOptions.ignore ?? undefined,\n filesToDeleteAfterUpload: filesToDeleteAfterUpload\n ? filesToDeleteAfterUpload\n : shouldDeleteFilesFallback?.server || shouldDeleteFilesFallback?.client\n ? fallbackFilesToDelete\n : undefined,\n rewriteSources: (source: string) => normalizePath(source),\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.sourcemaps,\n },\n };\n}\n\n/* There are multiple ways to set up source maps (https://github.com/getsentry/sentry-javascript/issues/13993 and https://github.com/getsentry/sentry-javascript/pull/15859)\n 1. User explicitly disabled source maps\n - keep this setting (emit a warning that errors won't be unminified in Sentry)\n - We will not upload anything\n 2. users enabled source map generation (true, hidden, inline).\n - keep this setting (don't do anything - like deletion - besides uploading)\n 3. users did not set source maps generation\n - we enable 'hidden' source maps generation\n - configure `filesToDeleteAfterUpload` to delete all .map files (we emit a log about this)\n\n Users only have to explicitly enable client source maps. Sentry only overwrites the base Nuxt source map settings as they propagate.\n */\n\n/** only exported for tests */\nexport function extractNuxtSourceMapSetting(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting; client?: SourceMapSetting } } },\n runtime: 'client' | 'server' | undefined,\n): SourceMapSetting | undefined {\n if (!runtime) {\n return undefined;\n } else {\n return typeof nuxt.options?.sourcemap === 'boolean' || typeof nuxt.options?.sourcemap === 'string'\n ? nuxt.options.sourcemap\n : nuxt.options?.sourcemap?.[runtime];\n }\n}\n\n/** only exported for testing */\nexport function changeNuxtSourceMapSettings(\n nuxt: Nuxt,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): { client: UserSourceMapSetting; server: UserSourceMapSetting } {\n nuxt.options.sourcemap = nuxt.options.sourcemap ?? { server: undefined, client: undefined };\n\n let previousUserSourceMapSetting: { client: UserSourceMapSetting; server: UserSourceMapSetting } = {\n client: undefined,\n server: undefined,\n };\n\n const nuxtSourceMap = nuxt.options.sourcemap;\n const isDebug = sentryModuleOptions.debug;\n\n if (typeof nuxtSourceMap === 'string' || typeof nuxtSourceMap === 'boolean' || typeof nuxtSourceMap === 'undefined') {\n switch (nuxtSourceMap) {\n case false:\n warnExplicitlyDisabledSourceMap('sourcemap', isDebug);\n previousUserSourceMapSetting = { client: 'disabled', server: 'disabled' };\n break;\n\n case 'hidden':\n case true:\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap', (nuxtSourceMap as true).toString());\n previousUserSourceMapSetting = { client: 'enabled', server: 'enabled' };\n break;\n case undefined:\n nuxt.options.sourcemap = { server: 'hidden', client: 'hidden' };\n isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting = { client: 'unset', server: 'unset' };\n break;\n }\n } else {\n if (nuxtSourceMap.client === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.client', isDebug);\n previousUserSourceMapSetting.client = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.client)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.client', nuxtSourceMap.client.toString());\n previousUserSourceMapSetting.client = 'enabled';\n } else {\n nuxt.options.sourcemap.client = 'hidden';\n isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n previousUserSourceMapSetting.client = 'unset';\n }\n\n if (nuxtSourceMap.server === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.server', isDebug);\n previousUserSourceMapSetting.server = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.server)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.server', nuxtSourceMap.server.toString());\n previousUserSourceMapSetting.server = 'enabled';\n } else {\n nuxt.options.sourcemap.server = 'hidden';\n isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting.server = 'unset';\n }\n }\n\n return previousUserSourceMapSetting;\n}\n\n/** Logs warnings about potentially conflicting source map settings.\n * Configures `sourcemapExcludeSources` in Nitro to make source maps usable in Sentry.\n *\n * only exported for testing\n */\nexport function validateNitroSourceMapSettings(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting } } },\n nitroConfig: NitroConfig,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): void {\n const isDebug = sentryModuleOptions.debug;\n const nuxtSourceMap = extractNuxtSourceMapSetting(nuxt, 'server');\n\n // NITRO CONFIG ---\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: 'nitro.sourceMap',\n otherSettingValue: nitroConfig.sourceMap,\n });\n\n // ROLLUP CONFIG ---\n\n nitroConfig.rollupConfig = nitroConfig.rollupConfig || {};\n nitroConfig.rollupConfig.output = nitroConfig.rollupConfig.output || { sourcemap: undefined };\n const nitroRollupSourceMap = nitroConfig.rollupConfig.output.sourcemap;\n\n // We don't override nitro.rollupConfig.output.sourcemap (undefined by default, but overrides all other server-side source map settings)\n if (typeof nitroRollupSourceMap !== 'undefined' && ['hidden', 'inline', true, false].includes(nitroRollupSourceMap)) {\n const settingKey = 'nitro.rollupConfig.output.sourcemap';\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: settingKey,\n otherSettingValue: nitroRollupSourceMap,\n });\n }\n\n nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;\n if (isDebug) {\n // eslint-disable-next-line no-console\n console.log(\n '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',\n );\n }\n}\n\nfunction validateDifferentSourceMapSettings({\n nuxtSettingKey,\n nuxtSettingValue,\n otherSettingKey,\n otherSettingValue,\n}: {\n nuxtSettingKey: string;\n nuxtSettingValue?: SourceMapSetting;\n otherSettingKey: string;\n otherSettingValue?: SourceMapSetting;\n}): void {\n if (nuxtSettingValue !== otherSettingValue) {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] Source map generation settings are conflicting. Sentry uses \\`${nuxtSettingKey}: ${nuxtSettingValue}\\`. However, a conflicting setting was discovered (\\`${otherSettingKey}: ${otherSettingValue}\\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,\n );\n }\n}\n\nfunction logKeepEnabledSourceMapSetting(\n sentryNuxtModuleOptions: SentryNuxtModuleOptions,\n settingKey: string,\n settingValue: string,\n): void {\n if (sentryNuxtModuleOptions.debug) {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] \\`${settingKey}\\` is enabled with \\`${settingValue}\\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,\n );\n }\n}\n\nfunction warnExplicitlyDisabledSourceMap(settingKey: string, isDebug: boolean | undefined): void {\n if (isDebug) {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] Source map generation is currently disabled in your Vite configuration (\\`${settingKey}: false \\`). This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \\`${settingKey}\\` (e.g. by setting them to \\`hidden\\`).`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.warn(`[Sentry] Source map generation (\\`${settingKey}\\`) is disabled in your Vite configuration.`);\n }\n}\n\nfunction logSentryEnablesSourceMap(settingKey: string, settingValue: string): void {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Enabled source map generation in the build options with \\`${settingKey}: ${settingValue}\\`.`);\n}\n"],"names":["sentryVitePlugin","sentryRollupPlugin"],"mappings":"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"}
@@ -1 +1 @@
1
- {"type":"module","version":"10.1.0"}
1
+ {"type":"module","version":"10.3.0"}
@@ -1,4 +1,3 @@
1
- import { consoleSandbox } from '@sentry/core';
2
1
  import { sentryRollupPlugin } from '@sentry/rollup-plugin';
3
2
  import { sentryVitePlugin } from '@sentry/vite-plugin';
4
3
 
@@ -50,11 +49,9 @@ function setupSourceMaps(moduleOptions, nuxt) {
50
49
  !sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload &&
51
50
  (shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)
52
51
  ) {
53
- consoleSandbox(() =>
54
- // eslint-disable-next-line no-console
55
- console.log(
56
- "[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.",
57
- ),
52
+ // eslint-disable-next-line no-console
53
+ console.log(
54
+ "[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.",
58
55
  );
59
56
  }
60
57
  }
@@ -77,15 +74,13 @@ function setupSourceMaps(moduleOptions, nuxt) {
77
74
  });
78
75
 
79
76
  if (isDebug) {
80
- consoleSandbox(() => {
81
- if (!runtime) {
82
- // eslint-disable-next-line no-console
83
- console.log("[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.");
84
- } else {
85
- // eslint-disable-next-line no-console
86
- console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);
87
- }
88
- });
77
+ if (!runtime) {
78
+ // eslint-disable-next-line no-console
79
+ console.log("[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.");
80
+ } else {
81
+ // eslint-disable-next-line no-console
82
+ console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);
83
+ }
89
84
  }
90
85
 
91
86
  // Add Sentry plugin
@@ -112,10 +107,8 @@ function setupSourceMaps(moduleOptions, nuxt) {
112
107
  validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);
113
108
 
114
109
  if (isDebug) {
115
- consoleSandbox(() => {
116
- // eslint-disable-next-line no-console
117
- console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');
118
- });
110
+ // eslint-disable-next-line no-console
111
+ console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');
119
112
  }
120
113
 
121
114
  // Add Sentry plugin
@@ -166,16 +159,14 @@ function getPluginOptions(
166
159
  // eslint-disable-next-line deprecation/deprecation
167
160
  deprecatedSourcemapsOptions.filesToDeleteAfterUpload;
168
161
 
169
- if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload) {
170
- consoleSandbox(() => {
171
- // eslint-disable-next-line no-console
172
- console.log(
173
- `[Sentry] Setting \`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete
174
- // Logging it as strings in the array
175
- .map(path => `"${path}"`)
176
- .join(', ')}]\` to delete generated source maps after they were uploaded to Sentry.`,
177
- );
178
- });
162
+ if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload && moduleOptions.debug) {
163
+ // eslint-disable-next-line no-console
164
+ console.log(
165
+ `[Sentry] Setting \`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete
166
+ // Logging it as strings in the array
167
+ .map(path => `"${path}"`)
168
+ .join(', ')}]\` to delete generated source maps after they were uploaded to Sentry.`,
169
+ );
179
170
  }
180
171
 
181
172
  return {
@@ -270,11 +261,12 @@ function changeNuxtSourceMapSettings(
270
261
  };
271
262
 
272
263
  const nuxtSourceMap = nuxt.options.sourcemap;
264
+ const isDebug = sentryModuleOptions.debug;
273
265
 
274
266
  if (typeof nuxtSourceMap === 'string' || typeof nuxtSourceMap === 'boolean' || typeof nuxtSourceMap === 'undefined') {
275
267
  switch (nuxtSourceMap) {
276
268
  case false:
277
- warnExplicitlyDisabledSourceMap('sourcemap');
269
+ warnExplicitlyDisabledSourceMap('sourcemap', isDebug);
278
270
  previousUserSourceMapSetting = { client: 'disabled', server: 'disabled' };
279
271
  break;
280
272
 
@@ -285,33 +277,33 @@ function changeNuxtSourceMapSettings(
285
277
  break;
286
278
  case undefined:
287
279
  nuxt.options.sourcemap = { server: 'hidden', client: 'hidden' };
288
- logSentryEnablesSourceMap('sourcemap.client', 'hidden');
289
- logSentryEnablesSourceMap('sourcemap.server', 'hidden');
280
+ isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');
281
+ isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');
290
282
  previousUserSourceMapSetting = { client: 'unset', server: 'unset' };
291
283
  break;
292
284
  }
293
285
  } else {
294
286
  if (nuxtSourceMap.client === false) {
295
- warnExplicitlyDisabledSourceMap('sourcemap.client');
287
+ warnExplicitlyDisabledSourceMap('sourcemap.client', isDebug);
296
288
  previousUserSourceMapSetting.client = 'disabled';
297
289
  } else if (['hidden', true].includes(nuxtSourceMap.client)) {
298
290
  logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.client', nuxtSourceMap.client.toString());
299
291
  previousUserSourceMapSetting.client = 'enabled';
300
292
  } else {
301
293
  nuxt.options.sourcemap.client = 'hidden';
302
- logSentryEnablesSourceMap('sourcemap.client', 'hidden');
294
+ isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');
303
295
  previousUserSourceMapSetting.client = 'unset';
304
296
  }
305
297
 
306
298
  if (nuxtSourceMap.server === false) {
307
- warnExplicitlyDisabledSourceMap('sourcemap.server');
299
+ warnExplicitlyDisabledSourceMap('sourcemap.server', isDebug);
308
300
  previousUserSourceMapSetting.server = 'disabled';
309
301
  } else if (['hidden', true].includes(nuxtSourceMap.server)) {
310
302
  logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.server', nuxtSourceMap.server.toString());
311
303
  previousUserSourceMapSetting.server = 'enabled';
312
304
  } else {
313
305
  nuxt.options.sourcemap.server = 'hidden';
314
- logSentryEnablesSourceMap('sourcemap.server', 'hidden');
306
+ isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');
315
307
  previousUserSourceMapSetting.server = 'unset';
316
308
  }
317
309
  }
@@ -361,12 +353,10 @@ function validateNitroSourceMapSettings(
361
353
 
362
354
  nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;
363
355
  if (isDebug) {
364
- consoleSandbox(() => {
365
- // eslint-disable-next-line no-console
366
- console.log(
367
- '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',
368
- );
369
- });
356
+ // eslint-disable-next-line no-console
357
+ console.log(
358
+ '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',
359
+ );
370
360
  }
371
361
  }
372
362
 
@@ -379,12 +369,10 @@ function validateDifferentSourceMapSettings({
379
369
 
380
370
  ) {
381
371
  if (nuxtSettingValue !== otherSettingValue) {
382
- consoleSandbox(() => {
383
- // eslint-disable-next-line no-console
384
- console.warn(
385
- `[Sentry] Source map generation settings are conflicting. Sentry uses \`${nuxtSettingKey}: ${nuxtSettingValue}\`. However, a conflicting setting was discovered (\`${otherSettingKey}: ${otherSettingValue}\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,
386
- );
387
- });
372
+ // eslint-disable-next-line no-console
373
+ console.warn(
374
+ `[Sentry] Source map generation settings are conflicting. Sentry uses \`${nuxtSettingKey}: ${nuxtSettingValue}\`. However, a conflicting setting was discovered (\`${otherSettingKey}: ${otherSettingValue}\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,
375
+ );
388
376
  }
389
377
  }
390
378
 
@@ -394,29 +382,28 @@ function logKeepEnabledSourceMapSetting(
394
382
  settingValue,
395
383
  ) {
396
384
  if (sentryNuxtModuleOptions.debug) {
397
- consoleSandbox(() => {
398
- // eslint-disable-next-line no-console
399
- console.log(
400
- `[Sentry] \`${settingKey}\` is enabled with \`${settingValue}\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,
401
- );
402
- });
385
+ // eslint-disable-next-line no-console
386
+ console.log(
387
+ `[Sentry] \`${settingKey}\` is enabled with \`${settingValue}\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,
388
+ );
403
389
  }
404
390
  }
405
391
 
406
- function warnExplicitlyDisabledSourceMap(settingKey) {
407
- consoleSandbox(() => {
392
+ function warnExplicitlyDisabledSourceMap(settingKey, isDebug) {
393
+ if (isDebug) {
408
394
  // eslint-disable-next-line no-console
409
395
  console.warn(
410
- `[Sentry] We discovered \`${settingKey}\` is set to \`false\`. This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \`${settingKey}\` (e.g. by setting them to \`'hidden'\`).`,
396
+ `[Sentry] Source map generation is currently disabled in your Vite configuration (\`${settingKey}: false \`). This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \`${settingKey}\` (e.g. by setting them to \`hidden\`).`,
411
397
  );
412
- });
398
+ } else {
399
+ // eslint-disable-next-line no-console
400
+ console.warn(`[Sentry] Source map generation (\`${settingKey}\`) is disabled in your Vite configuration.`);
401
+ }
413
402
  }
414
403
 
415
404
  function logSentryEnablesSourceMap(settingKey, settingValue) {
416
- consoleSandbox(() => {
417
- // eslint-disable-next-line no-console
418
- console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
419
- });
405
+ // eslint-disable-next-line no-console
406
+ console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
420
407
  }
421
408
 
422
409
  export { changeNuxtSourceMapSettings, extractNuxtSourceMapSetting, getPluginOptions, setupSourceMaps, validateNitroSourceMapSettings };
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMaps.js","sources":["../../../src/vite/sourceMaps.ts"],"sourcesContent":["import type { Nuxt } from '@nuxt/schema';\nimport { consoleSandbox } from '@sentry/core';\nimport { type SentryRollupPluginOptions, sentryRollupPlugin } from '@sentry/rollup-plugin';\nimport { type SentryVitePluginOptions, sentryVitePlugin } from '@sentry/vite-plugin';\nimport type { NitroConfig } from 'nitropack';\nimport type { SentryNuxtModuleOptions } from '../common/types';\n\n/**\n * Whether the user enabled (true, 'hidden', 'inline') or disabled (false) source maps\n */\nexport type UserSourceMapSetting = 'enabled' | 'disabled' | 'unset' | undefined;\n\n/** A valid source map setting */\nexport type SourceMapSetting = boolean | 'hidden' | 'inline';\n\n/**\n * Setup source maps for Sentry inside the Nuxt module during build time (in Vite for Nuxt and Rollup for Nitro).\n */\nexport function setupSourceMaps(moduleOptions: SentryNuxtModuleOptions, nuxt: Nuxt): void {\n // TODO(v11): remove deprecated options (also from SentryNuxtModuleOptions type)\n\n const isDebug = moduleOptions.debug;\n\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const sourceMapsEnabled =\n moduleOptions.sourcemaps?.disable === true\n ? false\n : moduleOptions.sourcemaps?.disable === false\n ? true\n : // eslint-disable-next-line deprecation/deprecation\n sourceMapsUploadOptions.enabled ?? true;\n\n // In case we overwrite the source map settings, we default to deleting the files\n let shouldDeleteFilesFallback = { client: true, server: true };\n\n nuxt.hook('modules:done', () => {\n if (sourceMapsEnabled && !nuxt.options.dev) {\n // Changing this setting will propagate:\n // - for client to viteConfig.build.sourceMap\n // - for server to viteConfig.build.sourceMap and nitro.sourceMap\n // On server, nitro.rollupConfig.output.sourcemap remains unaffected from this change.\n\n // ONLY THIS nuxt.sourcemap.(server/client) setting is the one Sentry will eventually overwrite with 'hidden'\n const previousSourceMapSettings = changeNuxtSourceMapSettings(nuxt, moduleOptions);\n\n shouldDeleteFilesFallback = {\n client: previousSourceMapSettings.client === 'unset',\n server: previousSourceMapSettings.server === 'unset',\n };\n\n if (\n isDebug &&\n !moduleOptions.sourcemaps?.filesToDeleteAfterUpload &&\n // eslint-disable-next-line deprecation/deprecation\n !sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload &&\n (shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)\n ) {\n consoleSandbox(() =>\n // eslint-disable-next-line no-console\n console.log(\n \"[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.\",\n ),\n );\n }\n }\n });\n\n nuxt.hook('vite:extendConfig', async (viteConfig, env) => {\n if (sourceMapsEnabled && viteConfig.mode !== 'development') {\n const runtime = env.isServer ? 'server' : env.isClient ? 'client' : undefined;\n const nuxtSourceMapSetting = extractNuxtSourceMapSetting(nuxt, runtime);\n\n viteConfig.build = viteConfig.build || {};\n const viteSourceMap = viteConfig.build.sourcemap;\n\n // Vite source map options are the same as the Nuxt source map config options (unless overwritten)\n validateDifferentSourceMapSettings({\n nuxtSettingKey: `sourcemap.${runtime}`,\n nuxtSettingValue: nuxtSourceMapSetting,\n otherSettingKey: 'viteConfig.build.sourcemap',\n otherSettingValue: viteSourceMap,\n });\n\n if (isDebug) {\n consoleSandbox(() => {\n if (!runtime) {\n // eslint-disable-next-line no-console\n console.log(\"[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.\");\n } else {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);\n }\n });\n }\n\n // Add Sentry plugin\n // Vite plugin is added on the client and server side (hook runs twice)\n // Nuxt client source map is 'false' by default. Warning about this will be shown already in an earlier step, and it's also documented that `nuxt.sourcemap.client` needs to be enabled.\n viteConfig.plugins = viteConfig.plugins || [];\n viteConfig.plugins.push(sentryVitePlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)));\n }\n });\n\n nuxt.hook('nitro:config', (nitroConfig: NitroConfig) => {\n if (sourceMapsEnabled && !nitroConfig.dev) {\n if (!nitroConfig.rollupConfig) {\n nitroConfig.rollupConfig = {};\n }\n\n if (nitroConfig.rollupConfig.plugins === null || nitroConfig.rollupConfig.plugins === undefined) {\n nitroConfig.rollupConfig.plugins = [];\n } else if (!Array.isArray(nitroConfig.rollupConfig.plugins)) {\n // `rollupConfig.plugins` can be a single plugin, so we want to put it into an array so that we can push our own plugin\n nitroConfig.rollupConfig.plugins = [nitroConfig.rollupConfig.plugins];\n }\n\n validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);\n\n if (isDebug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');\n });\n }\n\n // Add Sentry plugin\n // Runs only on server-side (Nitro)\n nitroConfig.rollupConfig.plugins.push(\n sentryRollupPlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)),\n );\n }\n });\n}\n\n/**\n * Normalizes the beginning of a path from e.g. ../../../ to ./\n */\nfunction normalizePath(path: string): string {\n return path.replace(/^(\\.\\.\\/)+/, './');\n}\n\n/**\n * Generates source maps upload options for the Sentry Vite and Rollup plugin.\n *\n * Only exported for Testing purposes.\n */\n// todo(v11): This \"eslint-disable\" can be removed again once we remove deprecated options.\n// eslint-disable-next-line complexity\nexport function getPluginOptions(\n moduleOptions: SentryNuxtModuleOptions,\n shouldDeleteFilesFallback?: { client: boolean; server: boolean },\n): SentryVitePluginOptions | SentryRollupPluginOptions {\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const shouldDeleteFilesAfterUpload = shouldDeleteFilesFallback?.client || shouldDeleteFilesFallback?.server;\n const fallbackFilesToDelete = [\n ...(shouldDeleteFilesFallback?.client ? ['.*/**/public/**/*.map'] : []),\n ...(shouldDeleteFilesFallback?.server\n ? ['.*/**/server/**/*.map', '.*/**/output/**/*.map', '.*/**/function/**/*.map']\n : []),\n ];\n\n // Check for filesToDeleteAfterUpload in new location first, then deprecated location\n const sourcemapsOptions = moduleOptions.sourcemaps || {};\n // eslint-disable-next-line deprecation/deprecation\n const deprecatedSourcemapsOptions = sourceMapsUploadOptions.sourcemaps || {};\n\n const filesToDeleteAfterUpload =\n sourcemapsOptions.filesToDeleteAfterUpload ??\n // eslint-disable-next-line deprecation/deprecation\n deprecatedSourcemapsOptions.filesToDeleteAfterUpload;\n\n if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] Setting \\`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete\n // Logging it as strings in the array\n .map(path => `\"${path}\"`)\n .join(', ')}]\\` to delete generated source maps after they were uploaded to Sentry.`,\n );\n });\n }\n\n return {\n // eslint-disable-next-line deprecation/deprecation\n org: moduleOptions.org ?? sourceMapsUploadOptions.org ?? process.env.SENTRY_ORG,\n // eslint-disable-next-line deprecation/deprecation\n project: moduleOptions.project ?? sourceMapsUploadOptions.project ?? process.env.SENTRY_PROJECT,\n // eslint-disable-next-line deprecation/deprecation\n authToken: moduleOptions.authToken ?? sourceMapsUploadOptions.authToken ?? process.env.SENTRY_AUTH_TOKEN,\n // eslint-disable-next-line deprecation/deprecation\n telemetry: moduleOptions.telemetry ?? sourceMapsUploadOptions.telemetry ?? true,\n // eslint-disable-next-line deprecation/deprecation\n url: moduleOptions.sentryUrl ?? sourceMapsUploadOptions.url ?? process.env.SENTRY_URL,\n headers: moduleOptions.headers,\n debug: moduleOptions.debug ?? false,\n // eslint-disable-next-line deprecation/deprecation\n silent: moduleOptions.silent ?? sourceMapsUploadOptions.silent ?? false,\n // eslint-disable-next-line deprecation/deprecation\n errorHandler: moduleOptions.errorHandler ?? sourceMapsUploadOptions.errorHandler,\n bundleSizeOptimizations: moduleOptions.bundleSizeOptimizations, // todo: test if this can be overridden by the user\n release: {\n // eslint-disable-next-line deprecation/deprecation\n name: moduleOptions.release?.name ?? sourceMapsUploadOptions.release?.name,\n // Support all release options from BuildTimeOptionsBase\n ...moduleOptions.release,\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.release,\n },\n _metaOptions: {\n telemetry: {\n metaFramework: 'nuxt',\n },\n },\n ...moduleOptions?.unstable_sentryBundlerPluginOptions,\n\n sourcemaps: {\n disable: moduleOptions.sourcemaps?.disable,\n // The server/client files are in different places depending on the nitro preset (e.g. '.output/server' or '.netlify/functions-internal/server')\n // We cannot determine automatically how the build folder looks like (depends on the preset), so we have to accept that source maps are uploaded multiple times (with the vitePlugin for Nuxt and the rollupPlugin for Nitro).\n // If we could know where the server/client assets are located, we could do something like this (based on the Nitro preset): isNitro ? ['./.output/server/**/*'] : ['./.output/public/**/*'],\n // eslint-disable-next-line deprecation/deprecation\n assets: sourcemapsOptions.assets ?? deprecatedSourcemapsOptions.assets ?? undefined,\n // eslint-disable-next-line deprecation/deprecation\n ignore: sourcemapsOptions.ignore ?? deprecatedSourcemapsOptions.ignore ?? undefined,\n filesToDeleteAfterUpload: filesToDeleteAfterUpload\n ? filesToDeleteAfterUpload\n : shouldDeleteFilesFallback?.server || shouldDeleteFilesFallback?.client\n ? fallbackFilesToDelete\n : undefined,\n rewriteSources: (source: string) => normalizePath(source),\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.sourcemaps,\n },\n };\n}\n\n/* There are multiple ways to set up source maps (https://github.com/getsentry/sentry-javascript/issues/13993 and https://github.com/getsentry/sentry-javascript/pull/15859)\n 1. User explicitly disabled source maps\n - keep this setting (emit a warning that errors won't be unminified in Sentry)\n - We will not upload anything\n 2. users enabled source map generation (true, hidden, inline).\n - keep this setting (don't do anything - like deletion - besides uploading)\n 3. users did not set source maps generation\n - we enable 'hidden' source maps generation\n - configure `filesToDeleteAfterUpload` to delete all .map files (we emit a log about this)\n\n Users only have to explicitly enable client source maps. Sentry only overwrites the base Nuxt source map settings as they propagate.\n */\n\n/** only exported for tests */\nexport function extractNuxtSourceMapSetting(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting; client?: SourceMapSetting } } },\n runtime: 'client' | 'server' | undefined,\n): SourceMapSetting | undefined {\n if (!runtime) {\n return undefined;\n } else {\n return typeof nuxt.options?.sourcemap === 'boolean' || typeof nuxt.options?.sourcemap === 'string'\n ? nuxt.options.sourcemap\n : nuxt.options?.sourcemap?.[runtime];\n }\n}\n\n/** only exported for testing */\nexport function changeNuxtSourceMapSettings(\n nuxt: Nuxt,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): { client: UserSourceMapSetting; server: UserSourceMapSetting } {\n nuxt.options.sourcemap = nuxt.options.sourcemap ?? { server: undefined, client: undefined };\n\n let previousUserSourceMapSetting: { client: UserSourceMapSetting; server: UserSourceMapSetting } = {\n client: undefined,\n server: undefined,\n };\n\n const nuxtSourceMap = nuxt.options.sourcemap;\n\n if (typeof nuxtSourceMap === 'string' || typeof nuxtSourceMap === 'boolean' || typeof nuxtSourceMap === 'undefined') {\n switch (nuxtSourceMap) {\n case false:\n warnExplicitlyDisabledSourceMap('sourcemap');\n previousUserSourceMapSetting = { client: 'disabled', server: 'disabled' };\n break;\n\n case 'hidden':\n case true:\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap', (nuxtSourceMap as true).toString());\n previousUserSourceMapSetting = { client: 'enabled', server: 'enabled' };\n break;\n case undefined:\n nuxt.options.sourcemap = { server: 'hidden', client: 'hidden' };\n logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting = { client: 'unset', server: 'unset' };\n break;\n }\n } else {\n if (nuxtSourceMap.client === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.client');\n previousUserSourceMapSetting.client = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.client)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.client', nuxtSourceMap.client.toString());\n previousUserSourceMapSetting.client = 'enabled';\n } else {\n nuxt.options.sourcemap.client = 'hidden';\n logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n previousUserSourceMapSetting.client = 'unset';\n }\n\n if (nuxtSourceMap.server === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.server');\n previousUserSourceMapSetting.server = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.server)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.server', nuxtSourceMap.server.toString());\n previousUserSourceMapSetting.server = 'enabled';\n } else {\n nuxt.options.sourcemap.server = 'hidden';\n logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting.server = 'unset';\n }\n }\n\n return previousUserSourceMapSetting;\n}\n\n/** Logs warnings about potentially conflicting source map settings.\n * Configures `sourcemapExcludeSources` in Nitro to make source maps usable in Sentry.\n *\n * only exported for testing\n */\nexport function validateNitroSourceMapSettings(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting } } },\n nitroConfig: NitroConfig,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): void {\n const isDebug = sentryModuleOptions.debug;\n const nuxtSourceMap = extractNuxtSourceMapSetting(nuxt, 'server');\n\n // NITRO CONFIG ---\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: 'nitro.sourceMap',\n otherSettingValue: nitroConfig.sourceMap,\n });\n\n // ROLLUP CONFIG ---\n\n nitroConfig.rollupConfig = nitroConfig.rollupConfig || {};\n nitroConfig.rollupConfig.output = nitroConfig.rollupConfig.output || { sourcemap: undefined };\n const nitroRollupSourceMap = nitroConfig.rollupConfig.output.sourcemap;\n\n // We don't override nitro.rollupConfig.output.sourcemap (undefined by default, but overrides all other server-side source map settings)\n if (typeof nitroRollupSourceMap !== 'undefined' && ['hidden', 'inline', true, false].includes(nitroRollupSourceMap)) {\n const settingKey = 'nitro.rollupConfig.output.sourcemap';\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: settingKey,\n otherSettingValue: nitroRollupSourceMap,\n });\n }\n\n nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;\n if (isDebug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',\n );\n });\n }\n}\n\nfunction validateDifferentSourceMapSettings({\n nuxtSettingKey,\n nuxtSettingValue,\n otherSettingKey,\n otherSettingValue,\n}: {\n nuxtSettingKey: string;\n nuxtSettingValue?: SourceMapSetting;\n otherSettingKey: string;\n otherSettingValue?: SourceMapSetting;\n}): void {\n if (nuxtSettingValue !== otherSettingValue) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] Source map generation settings are conflicting. Sentry uses \\`${nuxtSettingKey}: ${nuxtSettingValue}\\`. However, a conflicting setting was discovered (\\`${otherSettingKey}: ${otherSettingValue}\\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,\n );\n });\n }\n}\n\nfunction logKeepEnabledSourceMapSetting(\n sentryNuxtModuleOptions: SentryNuxtModuleOptions,\n settingKey: string,\n settingValue: string,\n): void {\n if (sentryNuxtModuleOptions.debug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] \\`${settingKey}\\` is enabled with \\`${settingValue}\\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,\n );\n });\n }\n}\n\nfunction warnExplicitlyDisabledSourceMap(settingKey: string): void {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] We discovered \\`${settingKey}\\` is set to \\`false\\`. This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \\`${settingKey}\\` (e.g. by setting them to \\`'hidden'\\`).`,\n );\n });\n}\n\nfunction logSentryEnablesSourceMap(settingKey: string, settingValue: string): void {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Enabled source map generation in the build options with \\`${settingKey}: ${settingValue}\\`.`);\n });\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceMaps.js","sources":["../../../src/vite/sourceMaps.ts"],"sourcesContent":["import type { Nuxt } from '@nuxt/schema';\nimport { type SentryRollupPluginOptions, sentryRollupPlugin } from '@sentry/rollup-plugin';\nimport { type SentryVitePluginOptions, sentryVitePlugin } from '@sentry/vite-plugin';\nimport type { NitroConfig } from 'nitropack';\nimport type { SentryNuxtModuleOptions } from '../common/types';\n\n/**\n * Whether the user enabled (true, 'hidden', 'inline') or disabled (false) source maps\n */\nexport type UserSourceMapSetting = 'enabled' | 'disabled' | 'unset' | undefined;\n\n/** A valid source map setting */\nexport type SourceMapSetting = boolean | 'hidden' | 'inline';\n\n/**\n * Setup source maps for Sentry inside the Nuxt module during build time (in Vite for Nuxt and Rollup for Nitro).\n */\nexport function setupSourceMaps(moduleOptions: SentryNuxtModuleOptions, nuxt: Nuxt): void {\n // TODO(v11): remove deprecated options (also from SentryNuxtModuleOptions type)\n\n const isDebug = moduleOptions.debug;\n\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const sourceMapsEnabled =\n moduleOptions.sourcemaps?.disable === true\n ? false\n : moduleOptions.sourcemaps?.disable === false\n ? true\n : // eslint-disable-next-line deprecation/deprecation\n sourceMapsUploadOptions.enabled ?? true;\n\n // In case we overwrite the source map settings, we default to deleting the files\n let shouldDeleteFilesFallback = { client: true, server: true };\n\n nuxt.hook('modules:done', () => {\n if (sourceMapsEnabled && !nuxt.options.dev) {\n // Changing this setting will propagate:\n // - for client to viteConfig.build.sourceMap\n // - for server to viteConfig.build.sourceMap and nitro.sourceMap\n // On server, nitro.rollupConfig.output.sourcemap remains unaffected from this change.\n\n // ONLY THIS nuxt.sourcemap.(server/client) setting is the one Sentry will eventually overwrite with 'hidden'\n const previousSourceMapSettings = changeNuxtSourceMapSettings(nuxt, moduleOptions);\n\n shouldDeleteFilesFallback = {\n client: previousSourceMapSettings.client === 'unset',\n server: previousSourceMapSettings.server === 'unset',\n };\n\n if (\n isDebug &&\n !moduleOptions.sourcemaps?.filesToDeleteAfterUpload &&\n // eslint-disable-next-line deprecation/deprecation\n !sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload &&\n (shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)\n ) {\n // eslint-disable-next-line no-console\n console.log(\n \"[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.\",\n );\n }\n }\n });\n\n nuxt.hook('vite:extendConfig', async (viteConfig, env) => {\n if (sourceMapsEnabled && viteConfig.mode !== 'development') {\n const runtime = env.isServer ? 'server' : env.isClient ? 'client' : undefined;\n const nuxtSourceMapSetting = extractNuxtSourceMapSetting(nuxt, runtime);\n\n viteConfig.build = viteConfig.build || {};\n const viteSourceMap = viteConfig.build.sourcemap;\n\n // Vite source map options are the same as the Nuxt source map config options (unless overwritten)\n validateDifferentSourceMapSettings({\n nuxtSettingKey: `sourcemap.${runtime}`,\n nuxtSettingValue: nuxtSourceMapSetting,\n otherSettingKey: 'viteConfig.build.sourcemap',\n otherSettingValue: viteSourceMap,\n });\n\n if (isDebug) {\n if (!runtime) {\n // eslint-disable-next-line no-console\n console.log(\"[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.\");\n } else {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);\n }\n }\n\n // Add Sentry plugin\n // Vite plugin is added on the client and server side (hook runs twice)\n // Nuxt client source map is 'false' by default. Warning about this will be shown already in an earlier step, and it's also documented that `nuxt.sourcemap.client` needs to be enabled.\n viteConfig.plugins = viteConfig.plugins || [];\n viteConfig.plugins.push(sentryVitePlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)));\n }\n });\n\n nuxt.hook('nitro:config', (nitroConfig: NitroConfig) => {\n if (sourceMapsEnabled && !nitroConfig.dev) {\n if (!nitroConfig.rollupConfig) {\n nitroConfig.rollupConfig = {};\n }\n\n if (nitroConfig.rollupConfig.plugins === null || nitroConfig.rollupConfig.plugins === undefined) {\n nitroConfig.rollupConfig.plugins = [];\n } else if (!Array.isArray(nitroConfig.rollupConfig.plugins)) {\n // `rollupConfig.plugins` can be a single plugin, so we want to put it into an array so that we can push our own plugin\n nitroConfig.rollupConfig.plugins = [nitroConfig.rollupConfig.plugins];\n }\n\n validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);\n\n if (isDebug) {\n // eslint-disable-next-line no-console\n console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');\n }\n\n // Add Sentry plugin\n // Runs only on server-side (Nitro)\n nitroConfig.rollupConfig.plugins.push(\n sentryRollupPlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)),\n );\n }\n });\n}\n\n/**\n * Normalizes the beginning of a path from e.g. ../../../ to ./\n */\nfunction normalizePath(path: string): string {\n return path.replace(/^(\\.\\.\\/)+/, './');\n}\n\n/**\n * Generates source maps upload options for the Sentry Vite and Rollup plugin.\n *\n * Only exported for Testing purposes.\n */\n// todo(v11): This \"eslint-disable\" can be removed again once we remove deprecated options.\n// eslint-disable-next-line complexity\nexport function getPluginOptions(\n moduleOptions: SentryNuxtModuleOptions,\n shouldDeleteFilesFallback?: { client: boolean; server: boolean },\n): SentryVitePluginOptions | SentryRollupPluginOptions {\n // eslint-disable-next-line deprecation/deprecation\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n\n const shouldDeleteFilesAfterUpload = shouldDeleteFilesFallback?.client || shouldDeleteFilesFallback?.server;\n const fallbackFilesToDelete = [\n ...(shouldDeleteFilesFallback?.client ? ['.*/**/public/**/*.map'] : []),\n ...(shouldDeleteFilesFallback?.server\n ? ['.*/**/server/**/*.map', '.*/**/output/**/*.map', '.*/**/function/**/*.map']\n : []),\n ];\n\n // Check for filesToDeleteAfterUpload in new location first, then deprecated location\n const sourcemapsOptions = moduleOptions.sourcemaps || {};\n // eslint-disable-next-line deprecation/deprecation\n const deprecatedSourcemapsOptions = sourceMapsUploadOptions.sourcemaps || {};\n\n const filesToDeleteAfterUpload =\n sourcemapsOptions.filesToDeleteAfterUpload ??\n // eslint-disable-next-line deprecation/deprecation\n deprecatedSourcemapsOptions.filesToDeleteAfterUpload;\n\n if (typeof filesToDeleteAfterUpload === 'undefined' && shouldDeleteFilesAfterUpload && moduleOptions.debug) {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] Setting \\`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete\n // Logging it as strings in the array\n .map(path => `\"${path}\"`)\n .join(', ')}]\\` to delete generated source maps after they were uploaded to Sentry.`,\n );\n }\n\n return {\n // eslint-disable-next-line deprecation/deprecation\n org: moduleOptions.org ?? sourceMapsUploadOptions.org ?? process.env.SENTRY_ORG,\n // eslint-disable-next-line deprecation/deprecation\n project: moduleOptions.project ?? sourceMapsUploadOptions.project ?? process.env.SENTRY_PROJECT,\n // eslint-disable-next-line deprecation/deprecation\n authToken: moduleOptions.authToken ?? sourceMapsUploadOptions.authToken ?? process.env.SENTRY_AUTH_TOKEN,\n // eslint-disable-next-line deprecation/deprecation\n telemetry: moduleOptions.telemetry ?? sourceMapsUploadOptions.telemetry ?? true,\n // eslint-disable-next-line deprecation/deprecation\n url: moduleOptions.sentryUrl ?? sourceMapsUploadOptions.url ?? process.env.SENTRY_URL,\n headers: moduleOptions.headers,\n debug: moduleOptions.debug ?? false,\n // eslint-disable-next-line deprecation/deprecation\n silent: moduleOptions.silent ?? sourceMapsUploadOptions.silent ?? false,\n // eslint-disable-next-line deprecation/deprecation\n errorHandler: moduleOptions.errorHandler ?? sourceMapsUploadOptions.errorHandler,\n bundleSizeOptimizations: moduleOptions.bundleSizeOptimizations, // todo: test if this can be overridden by the user\n release: {\n // eslint-disable-next-line deprecation/deprecation\n name: moduleOptions.release?.name ?? sourceMapsUploadOptions.release?.name,\n // Support all release options from BuildTimeOptionsBase\n ...moduleOptions.release,\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.release,\n },\n _metaOptions: {\n telemetry: {\n metaFramework: 'nuxt',\n },\n },\n ...moduleOptions?.unstable_sentryBundlerPluginOptions,\n\n sourcemaps: {\n disable: moduleOptions.sourcemaps?.disable,\n // The server/client files are in different places depending on the nitro preset (e.g. '.output/server' or '.netlify/functions-internal/server')\n // We cannot determine automatically how the build folder looks like (depends on the preset), so we have to accept that source maps are uploaded multiple times (with the vitePlugin for Nuxt and the rollupPlugin for Nitro).\n // If we could know where the server/client assets are located, we could do something like this (based on the Nitro preset): isNitro ? ['./.output/server/**/*'] : ['./.output/public/**/*'],\n // eslint-disable-next-line deprecation/deprecation\n assets: sourcemapsOptions.assets ?? deprecatedSourcemapsOptions.assets ?? undefined,\n // eslint-disable-next-line deprecation/deprecation\n ignore: sourcemapsOptions.ignore ?? deprecatedSourcemapsOptions.ignore ?? undefined,\n filesToDeleteAfterUpload: filesToDeleteAfterUpload\n ? filesToDeleteAfterUpload\n : shouldDeleteFilesFallback?.server || shouldDeleteFilesFallback?.client\n ? fallbackFilesToDelete\n : undefined,\n rewriteSources: (source: string) => normalizePath(source),\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.sourcemaps,\n },\n };\n}\n\n/* There are multiple ways to set up source maps (https://github.com/getsentry/sentry-javascript/issues/13993 and https://github.com/getsentry/sentry-javascript/pull/15859)\n 1. User explicitly disabled source maps\n - keep this setting (emit a warning that errors won't be unminified in Sentry)\n - We will not upload anything\n 2. users enabled source map generation (true, hidden, inline).\n - keep this setting (don't do anything - like deletion - besides uploading)\n 3. users did not set source maps generation\n - we enable 'hidden' source maps generation\n - configure `filesToDeleteAfterUpload` to delete all .map files (we emit a log about this)\n\n Users only have to explicitly enable client source maps. Sentry only overwrites the base Nuxt source map settings as they propagate.\n */\n\n/** only exported for tests */\nexport function extractNuxtSourceMapSetting(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting; client?: SourceMapSetting } } },\n runtime: 'client' | 'server' | undefined,\n): SourceMapSetting | undefined {\n if (!runtime) {\n return undefined;\n } else {\n return typeof nuxt.options?.sourcemap === 'boolean' || typeof nuxt.options?.sourcemap === 'string'\n ? nuxt.options.sourcemap\n : nuxt.options?.sourcemap?.[runtime];\n }\n}\n\n/** only exported for testing */\nexport function changeNuxtSourceMapSettings(\n nuxt: Nuxt,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): { client: UserSourceMapSetting; server: UserSourceMapSetting } {\n nuxt.options.sourcemap = nuxt.options.sourcemap ?? { server: undefined, client: undefined };\n\n let previousUserSourceMapSetting: { client: UserSourceMapSetting; server: UserSourceMapSetting } = {\n client: undefined,\n server: undefined,\n };\n\n const nuxtSourceMap = nuxt.options.sourcemap;\n const isDebug = sentryModuleOptions.debug;\n\n if (typeof nuxtSourceMap === 'string' || typeof nuxtSourceMap === 'boolean' || typeof nuxtSourceMap === 'undefined') {\n switch (nuxtSourceMap) {\n case false:\n warnExplicitlyDisabledSourceMap('sourcemap', isDebug);\n previousUserSourceMapSetting = { client: 'disabled', server: 'disabled' };\n break;\n\n case 'hidden':\n case true:\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap', (nuxtSourceMap as true).toString());\n previousUserSourceMapSetting = { client: 'enabled', server: 'enabled' };\n break;\n case undefined:\n nuxt.options.sourcemap = { server: 'hidden', client: 'hidden' };\n isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting = { client: 'unset', server: 'unset' };\n break;\n }\n } else {\n if (nuxtSourceMap.client === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.client', isDebug);\n previousUserSourceMapSetting.client = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.client)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.client', nuxtSourceMap.client.toString());\n previousUserSourceMapSetting.client = 'enabled';\n } else {\n nuxt.options.sourcemap.client = 'hidden';\n isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');\n previousUserSourceMapSetting.client = 'unset';\n }\n\n if (nuxtSourceMap.server === false) {\n warnExplicitlyDisabledSourceMap('sourcemap.server', isDebug);\n previousUserSourceMapSetting.server = 'disabled';\n } else if (['hidden', true].includes(nuxtSourceMap.server)) {\n logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.server', nuxtSourceMap.server.toString());\n previousUserSourceMapSetting.server = 'enabled';\n } else {\n nuxt.options.sourcemap.server = 'hidden';\n isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');\n previousUserSourceMapSetting.server = 'unset';\n }\n }\n\n return previousUserSourceMapSetting;\n}\n\n/** Logs warnings about potentially conflicting source map settings.\n * Configures `sourcemapExcludeSources` in Nitro to make source maps usable in Sentry.\n *\n * only exported for testing\n */\nexport function validateNitroSourceMapSettings(\n nuxt: { options: { sourcemap?: SourceMapSetting | { server?: SourceMapSetting } } },\n nitroConfig: NitroConfig,\n sentryModuleOptions: SentryNuxtModuleOptions,\n): void {\n const isDebug = sentryModuleOptions.debug;\n const nuxtSourceMap = extractNuxtSourceMapSetting(nuxt, 'server');\n\n // NITRO CONFIG ---\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: 'nitro.sourceMap',\n otherSettingValue: nitroConfig.sourceMap,\n });\n\n // ROLLUP CONFIG ---\n\n nitroConfig.rollupConfig = nitroConfig.rollupConfig || {};\n nitroConfig.rollupConfig.output = nitroConfig.rollupConfig.output || { sourcemap: undefined };\n const nitroRollupSourceMap = nitroConfig.rollupConfig.output.sourcemap;\n\n // We don't override nitro.rollupConfig.output.sourcemap (undefined by default, but overrides all other server-side source map settings)\n if (typeof nitroRollupSourceMap !== 'undefined' && ['hidden', 'inline', true, false].includes(nitroRollupSourceMap)) {\n const settingKey = 'nitro.rollupConfig.output.sourcemap';\n\n validateDifferentSourceMapSettings({\n nuxtSettingKey: 'sourcemap.server',\n nuxtSettingValue: nuxtSourceMap,\n otherSettingKey: settingKey,\n otherSettingValue: nitroRollupSourceMap,\n });\n }\n\n nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;\n if (isDebug) {\n // eslint-disable-next-line no-console\n console.log(\n '[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry.',\n );\n }\n}\n\nfunction validateDifferentSourceMapSettings({\n nuxtSettingKey,\n nuxtSettingValue,\n otherSettingKey,\n otherSettingValue,\n}: {\n nuxtSettingKey: string;\n nuxtSettingValue?: SourceMapSetting;\n otherSettingKey: string;\n otherSettingValue?: SourceMapSetting;\n}): void {\n if (nuxtSettingValue !== otherSettingValue) {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] Source map generation settings are conflicting. Sentry uses \\`${nuxtSettingKey}: ${nuxtSettingValue}\\`. However, a conflicting setting was discovered (\\`${otherSettingKey}: ${otherSettingValue}\\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`,\n );\n }\n}\n\nfunction logKeepEnabledSourceMapSetting(\n sentryNuxtModuleOptions: SentryNuxtModuleOptions,\n settingKey: string,\n settingValue: string,\n): void {\n if (sentryNuxtModuleOptions.debug) {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] \\`${settingKey}\\` is enabled with \\`${settingValue}\\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`,\n );\n }\n}\n\nfunction warnExplicitlyDisabledSourceMap(settingKey: string, isDebug: boolean | undefined): void {\n if (isDebug) {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] Source map generation is currently disabled in your Vite configuration (\\`${settingKey}: false \\`). This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \\`${settingKey}\\` (e.g. by setting them to \\`hidden\\`).`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.warn(`[Sentry] Source map generation (\\`${settingKey}\\`) is disabled in your Vite configuration.`);\n }\n}\n\nfunction logSentryEnablesSourceMap(settingKey: string, settingValue: string): void {\n // eslint-disable-next-line no-console\n console.log(`[Sentry] Enabled source map generation in the build options with \\`${settingKey}: ${settingValue}\\`.`);\n}\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.7.0"
6
6
  },
7
- "version": "10.1.0",
7
+ "version": "10.3.0",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "0.8.4",
10
10
  "unbuild": "2.0.0"
@@ -270,13 +270,8 @@ function setupSourceMaps(moduleOptions, nuxt) {
270
270
  };
271
271
  if (isDebug && !moduleOptions.sourcemaps?.filesToDeleteAfterUpload && // eslint-disable-next-line deprecation/deprecation
272
272
  !sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload && (shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)) {
273
- consoleSandbox(
274
- () => (
275
- // eslint-disable-next-line no-console
276
- console.log(
277
- "[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry."
278
- )
279
- )
273
+ console.log(
274
+ "[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry."
280
275
  );
281
276
  }
282
277
  }
@@ -294,13 +289,11 @@ function setupSourceMaps(moduleOptions, nuxt) {
294
289
  otherSettingValue: viteSourceMap
295
290
  });
296
291
  if (isDebug) {
297
- consoleSandbox(() => {
298
- if (!runtime) {
299
- console.log("[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.");
300
- } else {
301
- console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);
302
- }
303
- });
292
+ if (!runtime) {
293
+ console.log("[Sentry] Cannot detect runtime (client/server) inside hook 'vite:extendConfig'.");
294
+ } else {
295
+ console.log(`[Sentry] Adding Sentry Vite plugin to the ${runtime} runtime.`);
296
+ }
304
297
  }
305
298
  viteConfig.plugins = viteConfig.plugins || [];
306
299
  viteConfig.plugins.push(sentryVitePlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback)));
@@ -318,9 +311,7 @@ function setupSourceMaps(moduleOptions, nuxt) {
318
311
  }
319
312
  validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);
320
313
  if (isDebug) {
321
- consoleSandbox(() => {
322
- console.log("[Sentry] Adding Sentry Rollup plugin to the server runtime.");
323
- });
314
+ console.log("[Sentry] Adding Sentry Rollup plugin to the server runtime.");
324
315
  }
325
316
  nitroConfig.rollupConfig.plugins.push(
326
317
  sentryRollupPlugin(getPluginOptions(moduleOptions, shouldDeleteFilesFallback))
@@ -342,12 +333,10 @@ function getPluginOptions(moduleOptions, shouldDeleteFilesFallback) {
342
333
  const deprecatedSourcemapsOptions = sourceMapsUploadOptions.sourcemaps || {};
343
334
  const filesToDeleteAfterUpload = sourcemapsOptions.filesToDeleteAfterUpload ?? // eslint-disable-next-line deprecation/deprecation
344
335
  deprecatedSourcemapsOptions.filesToDeleteAfterUpload;
345
- if (typeof filesToDeleteAfterUpload === "undefined" && shouldDeleteFilesAfterUpload) {
346
- consoleSandbox(() => {
347
- console.log(
348
- `[Sentry] Setting \`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete.map((path) => `"${path}"`).join(", ")}]\` to delete generated source maps after they were uploaded to Sentry.`
349
- );
350
- });
336
+ if (typeof filesToDeleteAfterUpload === "undefined" && shouldDeleteFilesAfterUpload && moduleOptions.debug) {
337
+ console.log(
338
+ `[Sentry] Setting \`sentry.sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload: [${fallbackFilesToDelete.map((path) => `"${path}"`).join(", ")}]\` to delete generated source maps after they were uploaded to Sentry.`
339
+ );
351
340
  }
352
341
  return {
353
342
  // eslint-disable-next-line deprecation/deprecation
@@ -410,10 +399,11 @@ function changeNuxtSourceMapSettings(nuxt, sentryModuleOptions) {
410
399
  server: void 0
411
400
  };
412
401
  const nuxtSourceMap = nuxt.options.sourcemap;
402
+ const isDebug = sentryModuleOptions.debug;
413
403
  if (typeof nuxtSourceMap === "string" || typeof nuxtSourceMap === "boolean" || typeof nuxtSourceMap === "undefined") {
414
404
  switch (nuxtSourceMap) {
415
405
  case false:
416
- warnExplicitlyDisabledSourceMap("sourcemap");
406
+ warnExplicitlyDisabledSourceMap("sourcemap", isDebug);
417
407
  previousUserSourceMapSetting = { client: "disabled", server: "disabled" };
418
408
  break;
419
409
  case "hidden":
@@ -423,32 +413,32 @@ function changeNuxtSourceMapSettings(nuxt, sentryModuleOptions) {
423
413
  break;
424
414
  case void 0:
425
415
  nuxt.options.sourcemap = { server: "hidden", client: "hidden" };
426
- logSentryEnablesSourceMap("sourcemap.client", "hidden");
427
- logSentryEnablesSourceMap("sourcemap.server", "hidden");
416
+ isDebug && logSentryEnablesSourceMap("sourcemap.client", "hidden");
417
+ isDebug && logSentryEnablesSourceMap("sourcemap.server", "hidden");
428
418
  previousUserSourceMapSetting = { client: "unset", server: "unset" };
429
419
  break;
430
420
  }
431
421
  } else {
432
422
  if (nuxtSourceMap.client === false) {
433
- warnExplicitlyDisabledSourceMap("sourcemap.client");
423
+ warnExplicitlyDisabledSourceMap("sourcemap.client", isDebug);
434
424
  previousUserSourceMapSetting.client = "disabled";
435
425
  } else if (["hidden", true].includes(nuxtSourceMap.client)) {
436
426
  logKeepEnabledSourceMapSetting(sentryModuleOptions, "sourcemap.client", nuxtSourceMap.client.toString());
437
427
  previousUserSourceMapSetting.client = "enabled";
438
428
  } else {
439
429
  nuxt.options.sourcemap.client = "hidden";
440
- logSentryEnablesSourceMap("sourcemap.client", "hidden");
430
+ isDebug && logSentryEnablesSourceMap("sourcemap.client", "hidden");
441
431
  previousUserSourceMapSetting.client = "unset";
442
432
  }
443
433
  if (nuxtSourceMap.server === false) {
444
- warnExplicitlyDisabledSourceMap("sourcemap.server");
434
+ warnExplicitlyDisabledSourceMap("sourcemap.server", isDebug);
445
435
  previousUserSourceMapSetting.server = "disabled";
446
436
  } else if (["hidden", true].includes(nuxtSourceMap.server)) {
447
437
  logKeepEnabledSourceMapSetting(sentryModuleOptions, "sourcemap.server", nuxtSourceMap.server.toString());
448
438
  previousUserSourceMapSetting.server = "enabled";
449
439
  } else {
450
440
  nuxt.options.sourcemap.server = "hidden";
451
- logSentryEnablesSourceMap("sourcemap.server", "hidden");
441
+ isDebug && logSentryEnablesSourceMap("sourcemap.server", "hidden");
452
442
  previousUserSourceMapSetting.server = "unset";
453
443
  }
454
444
  }
@@ -477,11 +467,9 @@ function validateNitroSourceMapSettings(nuxt, nitroConfig, sentryModuleOptions)
477
467
  }
478
468
  nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;
479
469
  if (isDebug) {
480
- consoleSandbox(() => {
481
- console.log(
482
- "[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry."
483
- );
484
- });
470
+ console.log(
471
+ "[Sentry] Set `sourcemapExcludeSources: false` in the Nuxt config (`nitro.rollupConfig.output`). Source maps will now include the actual code to be able to un-minify code snippets in Sentry."
472
+ );
485
473
  }
486
474
  }
487
475
  function validateDifferentSourceMapSettings({
@@ -491,33 +479,29 @@ function validateDifferentSourceMapSettings({
491
479
  otherSettingValue
492
480
  }) {
493
481
  if (nuxtSettingValue !== otherSettingValue) {
494
- consoleSandbox(() => {
495
- console.warn(
496
- `[Sentry] Source map generation settings are conflicting. Sentry uses \`${nuxtSettingKey}: ${nuxtSettingValue}\`. However, a conflicting setting was discovered (\`${otherSettingKey}: ${otherSettingValue}\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`
497
- );
498
- });
482
+ console.warn(
483
+ `[Sentry] Source map generation settings are conflicting. Sentry uses \`${nuxtSettingKey}: ${nuxtSettingValue}\`. However, a conflicting setting was discovered (\`${otherSettingKey}: ${otherSettingValue}\`). This setting was probably explicitly set in your configuration. Sentry won't override this setting but it may affect source maps generation and upload. Without source maps, code snippets on the Sentry Issues page will remain minified.`
484
+ );
499
485
  }
500
486
  }
501
487
  function logKeepEnabledSourceMapSetting(sentryNuxtModuleOptions, settingKey, settingValue) {
502
488
  if (sentryNuxtModuleOptions.debug) {
503
- consoleSandbox(() => {
504
- console.log(
505
- `[Sentry] \`${settingKey}\` is enabled with \`${settingValue}\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`
506
- );
507
- });
489
+ console.log(
490
+ `[Sentry] \`${settingKey}\` is enabled with \`${settingValue}\`. This will correctly un-minify the code snippet on the Sentry Issue Details page.`
491
+ );
508
492
  }
509
493
  }
510
- function warnExplicitlyDisabledSourceMap(settingKey) {
511
- consoleSandbox(() => {
494
+ function warnExplicitlyDisabledSourceMap(settingKey, isDebug) {
495
+ if (isDebug) {
512
496
  console.warn(
513
- `[Sentry] We discovered \`${settingKey}\` is set to \`false\`. This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \`${settingKey}\` (e.g. by setting them to \`'hidden'\`).`
497
+ `[Sentry] Source map generation is currently disabled in your Vite configuration (\`${settingKey}: false \`). This setting is either a default setting or was explicitly set in your configuration. Sentry won't override this setting. Without source maps, code snippets on the Sentry Issues page will remain minified. To show unminified code, enable source maps in \`${settingKey}\` (e.g. by setting them to \`hidden\`).`
514
498
  );
515
- });
499
+ } else {
500
+ console.warn(`[Sentry] Source map generation (\`${settingKey}\`) is disabled in your Vite configuration.`);
501
+ }
516
502
  }
517
503
  function logSentryEnablesSourceMap(settingKey, settingValue) {
518
- consoleSandbox(() => {
519
- console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
520
- });
504
+ console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
521
505
  }
522
506
 
523
507
  const module = defineNuxtModule({
@@ -13,8 +13,18 @@ export default defineNitroPlugin((nitroApp) => {
13
13
  nitroApp.h3App.handler = patchEventHandler(nitroApp.h3App.handler);
14
14
  nitroApp.hooks.hook("beforeResponse", updateRouteBeforeResponse);
15
15
  nitroApp.hooks.hook("error", sentryCaptureErrorHook);
16
- nitroApp.hooks.hook("render:html", (html) => {
17
- addSentryTracingMetaTags(html.head);
16
+ nitroApp.hooks.hook("render:html", (html, { event }) => {
17
+ const headers = event.node.res?.getHeaders() || {};
18
+ const isPreRenderedPage = Object.keys(headers).includes("x-nitro-prerender");
19
+ const isSWRCachedPage = event?.context?.cache?.options.swr;
20
+ if (!isPreRenderedPage && !isSWRCachedPage) {
21
+ addSentryTracingMetaTags(html.head);
22
+ } else {
23
+ const reason = isPreRenderedPage ? "the page was pre-rendered" : "SWR caching is enabled for the route";
24
+ debug.log(
25
+ `Not adding Sentry tracing meta tags to HTML for ${event.path} because ${reason}. This will disable distributed tracing and prevent connecting multiple client page loads to the same server request.`
26
+ );
27
+ }
18
28
  });
19
29
  });
20
30
  function patchEventHandler(handler) {
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.server.d.ts","sourceRoot":"","sources":["../../../../src/runtime/plugins/sentry.server.ts"],"names":[],"mappings":";AAgBA,wBAWG"}
1
+ {"version":3,"file":"sentry.server.d.ts","sourceRoot":"","sources":["../../../../src/runtime/plugins/sentry.server.ts"],"names":[],"mappings":";AAeA,wBAwBG"}
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMaps.d.ts","sourceRoot":"","sources":["../../../src/vite/sourceMaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,KAAK,yBAAyB,EAAsB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,KAAK,uBAAuB,EAAoB,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhF,iCAAiC;AACjC,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAoHxF;AASD;;;;GAIG;AAGH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,uBAAuB,EACtC,yBAAyB,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/D,uBAAuB,GAAG,yBAAyB,CAoFrD;AAeD,8BAA8B;AAC9B,wBAAgB,2BAA2B,CACzC,IAAI,EAAE;IAAE,OAAO,EAAE;QAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG;YAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC;YAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EAC9G,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GACvC,gBAAgB,GAAG,SAAS,CAQ9B;AAED,iCAAiC;AACjC,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,mBAAmB,EAAE,uBAAuB,GAC3C;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAwDhE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE;IAAE,OAAO,EAAE;QAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG;YAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EACnF,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,uBAAuB,GAC3C,IAAI,CAwCN"}
1
+ {"version":3,"file":"sourceMaps.d.ts","sourceRoot":"","sources":["../../../src/vite/sourceMaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,yBAAyB,EAAsB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,KAAK,uBAAuB,EAAoB,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhF,iCAAiC;AACjC,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CA8GxF;AASD;;;;GAIG;AAGH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,uBAAuB,EACtC,yBAAyB,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/D,uBAAuB,GAAG,yBAAyB,CAkFrD;AAeD,8BAA8B;AAC9B,wBAAgB,2BAA2B,CACzC,IAAI,EAAE;IAAE,OAAO,EAAE;QAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG;YAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC;YAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EAC9G,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GACvC,gBAAgB,GAAG,SAAS,CAQ9B;AAED,iCAAiC;AACjC,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,mBAAmB,EAAE,uBAAuB,GAC3C;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAyDhE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE;IAAE,OAAO,EAAE;QAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG;YAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EACnF,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,uBAAuB,GAC3C,IAAI,CAsCN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/nuxt",
3
- "version": "10.1.0",
3
+ "version": "10.3.0",
4
4
  "description": "Official Sentry SDK for Nuxt (EXPERIMENTAL)",
5
5
  "repository": "git://github.com/getsentry/sentry-javascript.git",
6
6
  "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/nuxt",
@@ -47,13 +47,13 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@nuxt/kit": "^3.13.2",
50
- "@sentry/browser": "10.1.0",
51
- "@sentry/cloudflare": "10.1.0",
52
- "@sentry/core": "10.1.0",
53
- "@sentry/node": "10.1.0",
54
- "@sentry/rollup-plugin": "^4.0.0",
50
+ "@sentry/browser": "10.3.0",
51
+ "@sentry/cloudflare": "10.3.0",
52
+ "@sentry/core": "10.3.0",
53
+ "@sentry/node": "10.3.0",
54
+ "@sentry/rollup-plugin": "^4.0.2",
55
55
  "@sentry/vite-plugin": "^4.0.0",
56
- "@sentry/vue": "10.1.0"
56
+ "@sentry/vue": "10.3.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@nuxt/module-builder": "^0.8.4",