@sentry/nuxt 10.0.0 → 10.2.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.
- package/build/cjs/vite/sourceMaps.js +102 -78
- package/build/cjs/vite/sourceMaps.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/vite/sourceMaps.js +102 -78
- package/build/esm/vite/sourceMaps.js.map +1 -1
- package/build/module/module.d.mts +27 -6
- package/build/module/module.d.ts +27 -6
- package/build/module/module.json +1 -1
- package/build/module/module.mjs +73 -65
- package/build/module/runtime/plugins/sentry.server.js +12 -2
- package/build/types/common/types.d.ts +27 -6
- package/build/types/common/types.d.ts.map +1 -1
- package/build/types/runtime/plugins/sentry.server.d.ts.map +1 -1
- package/build/types/vite/sourceMaps.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -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
|
|
|
@@ -10,10 +9,20 @@ import { sentryVitePlugin } from '@sentry/vite-plugin';
|
|
|
10
9
|
* Setup source maps for Sentry inside the Nuxt module during build time (in Vite for Nuxt and Rollup for Nitro).
|
|
11
10
|
*/
|
|
12
11
|
function setupSourceMaps(moduleOptions, nuxt) {
|
|
12
|
+
// TODO(v11): remove deprecated options (also from SentryNuxtModuleOptions type)
|
|
13
|
+
|
|
13
14
|
const isDebug = moduleOptions.debug;
|
|
14
15
|
|
|
16
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
15
17
|
const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};
|
|
16
|
-
|
|
18
|
+
|
|
19
|
+
const sourceMapsEnabled =
|
|
20
|
+
moduleOptions.sourcemaps?.disable === true
|
|
21
|
+
? false
|
|
22
|
+
: moduleOptions.sourcemaps?.disable === false
|
|
23
|
+
? true
|
|
24
|
+
: // eslint-disable-next-line deprecation/deprecation
|
|
25
|
+
sourceMapsUploadOptions.enabled ?? true;
|
|
17
26
|
|
|
18
27
|
// In case we overwrite the source map settings, we default to deleting the files
|
|
19
28
|
let shouldDeleteFilesFallback = { client: true, server: true };
|
|
@@ -35,14 +44,14 @@ function setupSourceMaps(moduleOptions, nuxt) {
|
|
|
35
44
|
|
|
36
45
|
if (
|
|
37
46
|
isDebug &&
|
|
47
|
+
!moduleOptions.sourcemaps?.filesToDeleteAfterUpload &&
|
|
48
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
38
49
|
!sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload &&
|
|
39
50
|
(shouldDeleteFilesFallback.client || shouldDeleteFilesFallback.server)
|
|
40
51
|
) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"[Sentry] As Sentry enabled `'hidden'` source maps, source maps will be automatically deleted after uploading them to Sentry.",
|
|
45
|
-
),
|
|
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.",
|
|
46
55
|
);
|
|
47
56
|
}
|
|
48
57
|
}
|
|
@@ -65,15 +74,13 @@ function setupSourceMaps(moduleOptions, nuxt) {
|
|
|
65
74
|
});
|
|
66
75
|
|
|
67
76
|
if (isDebug) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
});
|
|
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
|
+
}
|
|
77
84
|
}
|
|
78
85
|
|
|
79
86
|
// Add Sentry plugin
|
|
@@ -100,10 +107,8 @@ function setupSourceMaps(moduleOptions, nuxt) {
|
|
|
100
107
|
validateNitroSourceMapSettings(nuxt, nitroConfig, moduleOptions);
|
|
101
108
|
|
|
102
109
|
if (isDebug) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');
|
|
106
|
-
});
|
|
110
|
+
// eslint-disable-next-line no-console
|
|
111
|
+
console.log('[Sentry] Adding Sentry Rollup plugin to the server runtime.');
|
|
107
112
|
}
|
|
108
113
|
|
|
109
114
|
// Add Sentry plugin
|
|
@@ -127,10 +132,13 @@ function normalizePath(path) {
|
|
|
127
132
|
*
|
|
128
133
|
* Only exported for Testing purposes.
|
|
129
134
|
*/
|
|
135
|
+
// todo(v11): This "eslint-disable" can be removed again once we remove deprecated options.
|
|
136
|
+
// eslint-disable-next-line complexity
|
|
130
137
|
function getPluginOptions(
|
|
131
138
|
moduleOptions,
|
|
132
139
|
shouldDeleteFilesFallback,
|
|
133
140
|
) {
|
|
141
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
134
142
|
const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};
|
|
135
143
|
|
|
136
144
|
const shouldDeleteFilesAfterUpload = shouldDeleteFilesFallback?.client || shouldDeleteFilesFallback?.server;
|
|
@@ -141,32 +149,49 @@ function getPluginOptions(
|
|
|
141
149
|
: []),
|
|
142
150
|
];
|
|
143
151
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
// Check for filesToDeleteAfterUpload in new location first, then deprecated location
|
|
153
|
+
const sourcemapsOptions = moduleOptions.sourcemaps || {};
|
|
154
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
155
|
+
const deprecatedSourcemapsOptions = sourceMapsUploadOptions.sourcemaps || {};
|
|
156
|
+
|
|
157
|
+
const filesToDeleteAfterUpload =
|
|
158
|
+
sourcemapsOptions.filesToDeleteAfterUpload ??
|
|
159
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
160
|
+
deprecatedSourcemapsOptions.filesToDeleteAfterUpload;
|
|
161
|
+
|
|
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
|
+
);
|
|
157
170
|
}
|
|
158
171
|
|
|
159
172
|
return {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
173
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
174
|
+
org: moduleOptions.org ?? sourceMapsUploadOptions.org ?? process.env.SENTRY_ORG,
|
|
175
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
176
|
+
project: moduleOptions.project ?? sourceMapsUploadOptions.project ?? process.env.SENTRY_PROJECT,
|
|
177
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
178
|
+
authToken: moduleOptions.authToken ?? sourceMapsUploadOptions.authToken ?? process.env.SENTRY_AUTH_TOKEN,
|
|
179
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
180
|
+
telemetry: moduleOptions.telemetry ?? sourceMapsUploadOptions.telemetry ?? true,
|
|
181
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
182
|
+
url: moduleOptions.sentryUrl ?? sourceMapsUploadOptions.url ?? process.env.SENTRY_URL,
|
|
183
|
+
headers: moduleOptions.headers,
|
|
165
184
|
debug: moduleOptions.debug ?? false,
|
|
166
|
-
|
|
167
|
-
|
|
185
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
186
|
+
silent: moduleOptions.silent ?? sourceMapsUploadOptions.silent ?? false,
|
|
187
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
188
|
+
errorHandler: moduleOptions.errorHandler ?? sourceMapsUploadOptions.errorHandler,
|
|
189
|
+
bundleSizeOptimizations: moduleOptions.bundleSizeOptimizations, // todo: test if this can be overridden by the user
|
|
168
190
|
release: {
|
|
169
|
-
|
|
191
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
192
|
+
name: moduleOptions.release?.name ?? sourceMapsUploadOptions.release?.name,
|
|
193
|
+
// Support all release options from BuildTimeOptionsBase
|
|
194
|
+
...moduleOptions.release,
|
|
170
195
|
...moduleOptions?.unstable_sentryBundlerPluginOptions?.release,
|
|
171
196
|
},
|
|
172
197
|
_metaOptions: {
|
|
@@ -177,13 +202,16 @@ function getPluginOptions(
|
|
|
177
202
|
...moduleOptions?.unstable_sentryBundlerPluginOptions,
|
|
178
203
|
|
|
179
204
|
sourcemaps: {
|
|
205
|
+
disable: moduleOptions.sourcemaps?.disable,
|
|
180
206
|
// The server/client files are in different places depending on the nitro preset (e.g. '.output/server' or '.netlify/functions-internal/server')
|
|
181
207
|
// 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).
|
|
182
208
|
// 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/**/*'],
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
209
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
210
|
+
assets: sourcemapsOptions.assets ?? deprecatedSourcemapsOptions.assets ?? undefined,
|
|
211
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
212
|
+
ignore: sourcemapsOptions.ignore ?? deprecatedSourcemapsOptions.ignore ?? undefined,
|
|
213
|
+
filesToDeleteAfterUpload: filesToDeleteAfterUpload
|
|
214
|
+
? filesToDeleteAfterUpload
|
|
187
215
|
: shouldDeleteFilesFallback?.server || shouldDeleteFilesFallback?.client
|
|
188
216
|
? fallbackFilesToDelete
|
|
189
217
|
: undefined,
|
|
@@ -233,11 +261,12 @@ function changeNuxtSourceMapSettings(
|
|
|
233
261
|
};
|
|
234
262
|
|
|
235
263
|
const nuxtSourceMap = nuxt.options.sourcemap;
|
|
264
|
+
const isDebug = sentryModuleOptions.debug;
|
|
236
265
|
|
|
237
266
|
if (typeof nuxtSourceMap === 'string' || typeof nuxtSourceMap === 'boolean' || typeof nuxtSourceMap === 'undefined') {
|
|
238
267
|
switch (nuxtSourceMap) {
|
|
239
268
|
case false:
|
|
240
|
-
warnExplicitlyDisabledSourceMap('sourcemap');
|
|
269
|
+
warnExplicitlyDisabledSourceMap('sourcemap', isDebug);
|
|
241
270
|
previousUserSourceMapSetting = { client: 'disabled', server: 'disabled' };
|
|
242
271
|
break;
|
|
243
272
|
|
|
@@ -248,33 +277,33 @@ function changeNuxtSourceMapSettings(
|
|
|
248
277
|
break;
|
|
249
278
|
case undefined:
|
|
250
279
|
nuxt.options.sourcemap = { server: 'hidden', client: 'hidden' };
|
|
251
|
-
logSentryEnablesSourceMap('sourcemap.client', 'hidden');
|
|
252
|
-
logSentryEnablesSourceMap('sourcemap.server', 'hidden');
|
|
280
|
+
isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');
|
|
281
|
+
isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');
|
|
253
282
|
previousUserSourceMapSetting = { client: 'unset', server: 'unset' };
|
|
254
283
|
break;
|
|
255
284
|
}
|
|
256
285
|
} else {
|
|
257
286
|
if (nuxtSourceMap.client === false) {
|
|
258
|
-
warnExplicitlyDisabledSourceMap('sourcemap.client');
|
|
287
|
+
warnExplicitlyDisabledSourceMap('sourcemap.client', isDebug);
|
|
259
288
|
previousUserSourceMapSetting.client = 'disabled';
|
|
260
289
|
} else if (['hidden', true].includes(nuxtSourceMap.client)) {
|
|
261
290
|
logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.client', nuxtSourceMap.client.toString());
|
|
262
291
|
previousUserSourceMapSetting.client = 'enabled';
|
|
263
292
|
} else {
|
|
264
293
|
nuxt.options.sourcemap.client = 'hidden';
|
|
265
|
-
logSentryEnablesSourceMap('sourcemap.client', 'hidden');
|
|
294
|
+
isDebug && logSentryEnablesSourceMap('sourcemap.client', 'hidden');
|
|
266
295
|
previousUserSourceMapSetting.client = 'unset';
|
|
267
296
|
}
|
|
268
297
|
|
|
269
298
|
if (nuxtSourceMap.server === false) {
|
|
270
|
-
warnExplicitlyDisabledSourceMap('sourcemap.server');
|
|
299
|
+
warnExplicitlyDisabledSourceMap('sourcemap.server', isDebug);
|
|
271
300
|
previousUserSourceMapSetting.server = 'disabled';
|
|
272
301
|
} else if (['hidden', true].includes(nuxtSourceMap.server)) {
|
|
273
302
|
logKeepEnabledSourceMapSetting(sentryModuleOptions, 'sourcemap.server', nuxtSourceMap.server.toString());
|
|
274
303
|
previousUserSourceMapSetting.server = 'enabled';
|
|
275
304
|
} else {
|
|
276
305
|
nuxt.options.sourcemap.server = 'hidden';
|
|
277
|
-
logSentryEnablesSourceMap('sourcemap.server', 'hidden');
|
|
306
|
+
isDebug && logSentryEnablesSourceMap('sourcemap.server', 'hidden');
|
|
278
307
|
previousUserSourceMapSetting.server = 'unset';
|
|
279
308
|
}
|
|
280
309
|
}
|
|
@@ -324,12 +353,10 @@ function validateNitroSourceMapSettings(
|
|
|
324
353
|
|
|
325
354
|
nitroConfig.rollupConfig.output.sourcemapExcludeSources = false;
|
|
326
355
|
if (isDebug) {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
);
|
|
332
|
-
});
|
|
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
|
+
);
|
|
333
360
|
}
|
|
334
361
|
}
|
|
335
362
|
|
|
@@ -342,12 +369,10 @@ function validateDifferentSourceMapSettings({
|
|
|
342
369
|
|
|
343
370
|
) {
|
|
344
371
|
if (nuxtSettingValue !== otherSettingValue) {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
);
|
|
350
|
-
});
|
|
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
|
+
);
|
|
351
376
|
}
|
|
352
377
|
}
|
|
353
378
|
|
|
@@ -357,29 +382,28 @@ function logKeepEnabledSourceMapSetting(
|
|
|
357
382
|
settingValue,
|
|
358
383
|
) {
|
|
359
384
|
if (sentryNuxtModuleOptions.debug) {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
);
|
|
365
|
-
});
|
|
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
|
+
);
|
|
366
389
|
}
|
|
367
390
|
}
|
|
368
391
|
|
|
369
|
-
function warnExplicitlyDisabledSourceMap(settingKey) {
|
|
370
|
-
|
|
392
|
+
function warnExplicitlyDisabledSourceMap(settingKey, isDebug) {
|
|
393
|
+
if (isDebug) {
|
|
371
394
|
// eslint-disable-next-line no-console
|
|
372
395
|
console.warn(
|
|
373
|
-
`[Sentry]
|
|
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\`).`,
|
|
374
397
|
);
|
|
375
|
-
}
|
|
398
|
+
} else {
|
|
399
|
+
// eslint-disable-next-line no-console
|
|
400
|
+
console.warn(`[Sentry] Source map generation (\`${settingKey}\`) is disabled in your Vite configuration.`);
|
|
401
|
+
}
|
|
376
402
|
}
|
|
377
403
|
|
|
378
404
|
function logSentryEnablesSourceMap(settingKey, settingValue) {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
|
|
382
|
-
});
|
|
405
|
+
// eslint-disable-next-line no-console
|
|
406
|
+
console.log(`[Sentry] Enabled source map generation in the build options with \`${settingKey}: ${settingValue}\`.`);
|
|
383
407
|
}
|
|
384
408
|
|
|
385
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 const isDebug = moduleOptions.debug;\n\n const sourceMapsUploadOptions = moduleOptions.sourceMapsUploadOptions || {};\n const sourceMapsEnabled = 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 !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 */\nexport function getPluginOptions(\n moduleOptions: SentryNuxtModuleOptions,\n shouldDeleteFilesFallback?: { client: boolean; server: boolean },\n): SentryVitePluginOptions | SentryRollupPluginOptions {\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 if (\n typeof sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload === 'undefined' &&\n shouldDeleteFilesAfterUpload\n ) {\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 org: sourceMapsUploadOptions.org ?? process.env.SENTRY_ORG,\n project: sourceMapsUploadOptions.project ?? process.env.SENTRY_PROJECT,\n authToken: sourceMapsUploadOptions.authToken ?? process.env.SENTRY_AUTH_TOKEN,\n telemetry: sourceMapsUploadOptions.telemetry ?? true,\n url: sourceMapsUploadOptions.url ?? process.env.SENTRY_URL,\n debug: moduleOptions.debug ?? false,\n silent: sourceMapsUploadOptions.silent ?? false,\n errorHandler: sourceMapsUploadOptions.errorHandler,\n release: {\n name: sourceMapsUploadOptions.release?.name,\n ...moduleOptions?.unstable_sentryBundlerPluginOptions?.release,\n },\n _metaOptions: {\n telemetry: {\n metaFramework: 'nuxt',\n },\n },\n ...moduleOptions?.unstable_sentryBundlerPluginOptions,\n\n sourcemaps: {\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 assets: sourceMapsUploadOptions.sourcemaps?.assets ?? undefined,\n ignore: sourceMapsUploadOptions.sourcemaps?.ignore ?? undefined,\n filesToDeleteAfterUpload: sourceMapsUploadOptions.sourcemaps?.filesToDeleteAfterUpload\n ? sourceMapsUploadOptions.sourcemaps?.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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
+
import { BuildTimeOptionsBase } from '@sentry/core';
|
|
2
3
|
import { SentryRollupPluginOptions } from '@sentry/rollup-plugin';
|
|
3
4
|
import { SentryVitePluginOptions } from '@sentry/vite-plugin';
|
|
4
5
|
|
|
@@ -7,6 +8,7 @@ type SourceMapsOptions = {
|
|
|
7
8
|
* Suppresses all logs.
|
|
8
9
|
*
|
|
9
10
|
* @default false
|
|
11
|
+
* @deprecated Use option `silent` instead of `sourceMapsUploadOptions.silent`
|
|
10
12
|
*/
|
|
11
13
|
silent?: boolean;
|
|
12
14
|
/**
|
|
@@ -23,12 +25,16 @@ type SourceMapsOptions = {
|
|
|
23
25
|
* console.warn(err);
|
|
24
26
|
* }
|
|
25
27
|
* ```
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Use option `errorHandler` instead of `sourceMapsUploadOptions.errorHandler`
|
|
26
30
|
*/
|
|
27
31
|
errorHandler?: (err: Error) => void;
|
|
28
32
|
/**
|
|
29
33
|
* Options related to managing the Sentry releases for a build.
|
|
30
34
|
*
|
|
31
35
|
* More info: https://docs.sentry.io/product/releases/
|
|
36
|
+
*
|
|
37
|
+
* @deprecated Use option `release` instead of `sourceMapsUploadOptions.release`
|
|
32
38
|
*/
|
|
33
39
|
release?: {
|
|
34
40
|
/**
|
|
@@ -41,6 +47,8 @@ type SourceMapsOptions = {
|
|
|
41
47
|
* (the latter requires access to git CLI and for the root directory to be a valid repository)
|
|
42
48
|
*
|
|
43
49
|
* If you didn't provide a value and the plugin can't automatically detect one, no release will be created.
|
|
50
|
+
*
|
|
51
|
+
* @deprecated Use `release.name` instead of `sourceMapsUploadOptions.release.name`
|
|
44
52
|
*/
|
|
45
53
|
name?: string;
|
|
46
54
|
};
|
|
@@ -49,6 +57,7 @@ type SourceMapsOptions = {
|
|
|
49
57
|
* automatically generate and upload source maps to Sentry during a production build.
|
|
50
58
|
*
|
|
51
59
|
* @default true
|
|
60
|
+
* @deprecated Use option `sourcemaps.disable` instead of `sourceMapsUploadOptions.enabled`
|
|
52
61
|
*/
|
|
53
62
|
enabled?: boolean;
|
|
54
63
|
/**
|
|
@@ -58,22 +67,27 @@ type SourceMapsOptions = {
|
|
|
58
67
|
*
|
|
59
68
|
* To create an auth token, follow this guide:
|
|
60
69
|
* @see https://docs.sentry.io/product/accounts/auth-tokens/#organization-auth-tokens
|
|
70
|
+
* @deprecated Use option `authToken` instead of `sourceMapsUploadOptions.authToken`
|
|
61
71
|
*/
|
|
62
72
|
authToken?: string;
|
|
63
73
|
/**
|
|
64
74
|
* The organization slug of your Sentry organization.
|
|
65
75
|
* Instead of specifying this option, you can also set the `SENTRY_ORG` environment variable.
|
|
76
|
+
* @deprecated Use option `org` instead of `sourceMapsUploadOptions.org`
|
|
66
77
|
*/
|
|
67
78
|
org?: string;
|
|
68
79
|
/**
|
|
69
80
|
* The URL of your Sentry instance if you're using self-hosted Sentry.
|
|
70
81
|
*
|
|
71
82
|
* @default https://sentry.io by default the plugin will point towards the Sentry SaaS URL
|
|
83
|
+
* @deprecated Use `sentryUrl` instead of `sourceMapsUploadOptions.url`
|
|
72
84
|
*/
|
|
73
85
|
url?: string;
|
|
74
86
|
/**
|
|
75
87
|
* The project slug of your Sentry project.
|
|
76
88
|
* Instead of specifying this option, you can also set the `SENTRY_PROJECT` environment variable.
|
|
89
|
+
*
|
|
90
|
+
* @deprecated Use option `project` instead of `sourceMapsUploadOptions.project`
|
|
77
91
|
*/
|
|
78
92
|
project?: string;
|
|
79
93
|
/**
|
|
@@ -81,10 +95,13 @@ type SourceMapsOptions = {
|
|
|
81
95
|
* It will not collect any sensitive or user-specific data.
|
|
82
96
|
*
|
|
83
97
|
* @default true
|
|
98
|
+
* @deprecated Use option `telemetry` instead of `sourceMapsUploadOptions.telemetry`
|
|
84
99
|
*/
|
|
85
100
|
telemetry?: boolean;
|
|
86
101
|
/**
|
|
87
102
|
* Options related to sourcemaps
|
|
103
|
+
*
|
|
104
|
+
* @deprecated Use option `sourcemaps` instead of `sourceMapsUploadOptions.sourcemaps`
|
|
88
105
|
*/
|
|
89
106
|
sourcemaps?: {
|
|
90
107
|
/**
|
|
@@ -96,6 +113,8 @@ type SourceMapsOptions = {
|
|
|
96
113
|
*
|
|
97
114
|
* The globbing patterns must follow the implementation of the `glob` package.
|
|
98
115
|
* @see https://www.npmjs.com/package/glob#glob-primer
|
|
116
|
+
*
|
|
117
|
+
* @deprecated Use option `sourcemaps.assets` instead of `sourceMapsUploadOptions.sourcemaps.assets`
|
|
99
118
|
*/
|
|
100
119
|
assets?: string | Array<string>;
|
|
101
120
|
/**
|
|
@@ -105,6 +124,8 @@ type SourceMapsOptions = {
|
|
|
105
124
|
* or the default value for `assets` are uploaded.
|
|
106
125
|
*
|
|
107
126
|
* The globbing patterns follow the implementation of the glob package. (https://www.npmjs.com/package/glob)
|
|
127
|
+
*
|
|
128
|
+
* @deprecated Use option `sourcemaps.ignore` instead of `sourceMapsUploadOptions.sourcemaps.ignore`
|
|
108
129
|
*/
|
|
109
130
|
ignore?: string | Array<string>;
|
|
110
131
|
/**
|
|
@@ -114,6 +135,8 @@ type SourceMapsOptions = {
|
|
|
114
135
|
* @default [] - By default no files are deleted.
|
|
115
136
|
*
|
|
116
137
|
* The globbing patterns follow the implementation of the glob package. (https://www.npmjs.com/package/glob)
|
|
138
|
+
*
|
|
139
|
+
* @deprecated Use option `sourcemaps.filesToDeleteAfterUpload` instead of `sourceMapsUploadOptions.sourcemaps.filesToDeleteAfterUpload`
|
|
117
140
|
*/
|
|
118
141
|
filesToDeleteAfterUpload?: string | Array<string>;
|
|
119
142
|
};
|
|
@@ -121,7 +144,7 @@ type SourceMapsOptions = {
|
|
|
121
144
|
/**
|
|
122
145
|
* Build options for the Sentry module. These options are used during build-time by the Sentry SDK.
|
|
123
146
|
*/
|
|
124
|
-
type SentryNuxtModuleOptions = {
|
|
147
|
+
type SentryNuxtModuleOptions = BuildTimeOptionsBase & {
|
|
125
148
|
/**
|
|
126
149
|
* Enable the Sentry Nuxt Module.
|
|
127
150
|
*
|
|
@@ -133,13 +156,11 @@ type SentryNuxtModuleOptions = {
|
|
|
133
156
|
*
|
|
134
157
|
* These options are always read from the `sentry` module options in the `nuxt.config.(js|ts).
|
|
135
158
|
* Do not define them in the `sentry.client.config.(js|ts)` or `sentry.server.config.(js|ts)` files.
|
|
159
|
+
*
|
|
160
|
+
* @deprecated This option was deprecated as it adds unnecessary nesting.
|
|
161
|
+
* Put the options one level higher to the root-level of the `sentry` module options.
|
|
136
162
|
*/
|
|
137
163
|
sourceMapsUploadOptions?: SourceMapsOptions;
|
|
138
|
-
/**
|
|
139
|
-
* Enable debug functionality of the SDK during build-time.
|
|
140
|
-
* Enabling this will give you, for example, logs about source maps.
|
|
141
|
-
*/
|
|
142
|
-
debug?: boolean;
|
|
143
164
|
/**
|
|
144
165
|
*
|
|
145
166
|
* Enables (partial) server tracing by automatically injecting Sentry for environments where modifying the node option `--import` is not possible.
|