From b614eda277708f1a2b233c37ac3211aafc9d7271 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Tue, 11 Jun 2024 11:16:22 +0000 Subject: [PATCH 1/5] feat(nextjs): Add `deleteSourcemapsAfterUpload` option --- packages/nextjs/src/config/types.ts | 3 +-- packages/nextjs/src/config/webpackPluginOptions.ts | 11 +++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/nextjs/src/config/types.ts b/packages/nextjs/src/config/types.ts index b6207b8d67f9..b84c55e5611f 100644 --- a/packages/nextjs/src/config/types.ts +++ b/packages/nextjs/src/config/types.ts @@ -153,8 +153,7 @@ export type SentryBuildOptions = { * * Defaults to `false`. */ - // TODO: Add this option - // deleteSourcemapsAfterUpload?: boolean; + deleteSourcemapsAfterUpload?: boolean; }; /** diff --git a/packages/nextjs/src/config/webpackPluginOptions.ts b/packages/nextjs/src/config/webpackPluginOptions.ts index d428a7f52a73..05ddb24c9172 100644 --- a/packages/nextjs/src/config/webpackPluginOptions.ts +++ b/packages/nextjs/src/config/webpackPluginOptions.ts @@ -74,10 +74,13 @@ export function getWebpackPluginOptions( }, assets: sentryBuildOptions.sourcemaps?.assets ?? sourcemapUploadAssets, ignore: sentryBuildOptions.sourcemaps?.ignore ?? sourcemapUploadIgnore, - // TODO: Add this functionality - // filesToDeleteAfterUpload: sentryBuildOptions.sourcemaps?.deleteSourcemapsAfterUpload - // ? path.join(distDirAbsPath, '**', '*.js.map') - // : undefined, + filesToDeleteAfterUpload: sentryBuildOptions.sourcemaps?.deleteSourcemapsAfterUpload + ? [ + path.join(distDirAbsPath, '**', '*.js.map'), + path.join(distDirAbsPath, '**', '*.mjs.map'), + path.join(distDirAbsPath, '**', '*.cjs.map'), + ] + : undefined, ...sentryBuildOptions.unstable_sentryWebpackPluginOptions?.sourcemaps, }, release: { From 67c11117f0f66f1d7c2619e7b95be13e8668cefe Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Tue, 11 Jun 2024 11:49:21 +0000 Subject: [PATCH 2/5] e2e test --- .../test-applications/nextjs-app-dir/assert-build.ts | 8 ++++++++ .../test-applications/nextjs-app-dir/next.config.js | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/assert-build.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/assert-build.ts index 0c072c367e53..58453223a4cb 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/assert-build.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/assert-build.ts @@ -1,4 +1,5 @@ import * as fs from 'fs'; +import * as path from 'path'; import * as assert from 'assert/strict'; const packageJson = require('./package.json'); @@ -20,4 +21,11 @@ assert.match(buildStdout, /(λ|ƒ) \/server-component/); assert.match(buildStdout, /(λ|ƒ) \/server-component\/parameter\/\[\.\.\.parameters\]/); assert.match(buildStdout, /(λ|ƒ) \/server-component\/parameter\/\[parameter\]/); +// Read the contents of the directory +const files = fs.readdirSync(path.join(process.cwd(), '.next', 'server')); +const mapFiles = files.filter(file => path.extname(file) === '.map'); +if (mapFiles.length > 0) { + throw new Error('.map files found even though `sourcemaps.deleteSourcemapsAfterUpload` option is set!'); +} + export {}; diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/next.config.js b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/next.config.js index b8bf26536292..dce0071a44b9 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/next.config.js +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/next.config.js @@ -9,5 +9,8 @@ const nextConfig = { }; module.exports = withSentryConfig(nextConfig, { - silent: true, + debug: true, + sourcemaps: { + deleteSourcemapsAfterUpload: true, + }, }); From 4312c1a76fe93edc4a44afe28fd7f5db38a35568 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Wed, 19 Jun 2024 14:50:38 +0000 Subject: [PATCH 3/5] bump bundler plugin --- packages/astro/package.json | 2 +- packages/nextjs/package.json | 2 +- packages/sveltekit/package.json | 2 +- yarn.lock | 38 ++++++++++++++++----------------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/astro/package.json b/packages/astro/package.json index 2fd4c8a2cdb4..0124233096e0 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -66,7 +66,7 @@ "@sentry/node": "8.8.0", "@sentry/types": "8.8.0", "@sentry/utils": "8.8.0", - "@sentry/vite-plugin": "^2.18.0" + "@sentry/vite-plugin": "^2.19.0" }, "devDependencies": { "astro": "^3.5.0", diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 479fb9ee69d8..6c2c2c524530 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -74,7 +74,7 @@ "@sentry/types": "8.8.0", "@sentry/utils": "8.8.0", "@sentry/vercel-edge": "8.8.0", - "@sentry/webpack-plugin": "2.18.0", + "@sentry/webpack-plugin": "2.19.0", "chalk": "3.0.0", "resolve": "1.22.8", "rollup": "3.29.4", diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index 0ef4e41c238c..3bf964007a8b 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -43,7 +43,7 @@ "@sentry/svelte": "8.8.0", "@sentry/types": "8.8.0", "@sentry/utils": "8.8.0", - "@sentry/vite-plugin": "2.18.0", + "@sentry/vite-plugin": "2.19.0", "magic-string": "0.30.7", "magicast": "0.2.8", "sorcery": "0.11.0" diff --git a/yarn.lock b/yarn.lock index e83c8fe9f310..af0c29450089 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7191,10 +7191,10 @@ resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.16.0.tgz#c831713b85516fb3f9da2985836ddf444dc634e6" integrity sha512-+uy1qPkA5MSNgJ0L9ur/vNTydfdHwHnBX2RQ+0thsvkqf90fU788YjkkXwUiBBNuqNyI69JiOW6frixAWy7oUg== -"@sentry/babel-plugin-component-annotate@2.18.0": - version "2.18.0" - resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.18.0.tgz#3bee98f94945643b0762ceed1f6cca60db52bdbd" - integrity sha512-9L4RbhS3WNtc/SokIhc0dwgcvs78YSQPakZejsrIgnzLzCi8mS6PeT+BY0+QCtsXxjd1egM8hqcJeB0lukBkXA== +"@sentry/babel-plugin-component-annotate@2.19.0": + version "2.19.0" + resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.19.0.tgz#70dcccb336bcec24148e1c9cd4e37724cebf5673" + integrity sha512-N2k8cMYu/7X6mzAH5j6bMeNcXQBJLL0lVAF63TDS57hUiT1v2uEqbeYFdH2CZBHb2LepLbMRXmvErIwy76FLTw== "@sentry/bundler-plugin-core@2.16.0": version "2.16.0" @@ -7210,13 +7210,13 @@ magic-string "0.27.0" unplugin "1.0.1" -"@sentry/bundler-plugin-core@2.18.0": - version "2.18.0" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.18.0.tgz#2411cd934e9510c53a2e682497a74172485ac817" - integrity sha512-JvxVgsMFmDsU0Dgcx1CeFUC1scxOVSAOzOcE06qKAVm9BZzxHpI53iNfeMOXwVTUolD8LZVIfgOjkiXfwN/UPQ== +"@sentry/bundler-plugin-core@2.19.0": + version "2.19.0" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.19.0.tgz#c21935ff5aea9daccfa4c9e0db405aecdec292f6" + integrity sha512-PGTwpue2k4HnLlCuvLeg+cILPWHJorzheNq8KVlXed8mpb8kxKeY9EWQFxBqPS+XyktOMAxZmCMZfKdnHNaJVQ== dependencies: "@babel/core" "^7.18.5" - "@sentry/babel-plugin-component-annotate" "2.18.0" + "@sentry/babel-plugin-component-annotate" "2.19.0" "@sentry/cli" "^2.22.3" dotenv "^16.3.1" find-up "^5.0.0" @@ -7278,12 +7278,12 @@ "@sentry/cli-win32-i686" "2.32.1" "@sentry/cli-win32-x64" "2.32.1" -"@sentry/vite-plugin@2.18.0", "@sentry/vite-plugin@^2.18.0": - version "2.18.0" - resolved "https://registry.yarnpkg.com/@sentry/vite-plugin/-/vite-plugin-2.18.0.tgz#f263f150b64591ac4db7f4e9a0b2cd8a03cada73" - integrity sha512-yY8QSvbMjRpG5pzN6lnW5guZhyTDSGeWwM9tDyT9ix/ShODy/eE6jErisBtlo50lFJuew7x79WXnVykvds4Ddg== +"@sentry/vite-plugin@2.19.0", "@sentry/vite-plugin@^2.19.0": + version "2.19.0" + resolved "https://registry.yarnpkg.com/@sentry/vite-plugin/-/vite-plugin-2.19.0.tgz#c7938fb13eee15036963b87d7b12c4fc851e488b" + integrity sha512-xmntz/bvRwhhU9q2thZas1vQQch9CLMyD8oCfYlNqN57t5XKhIs2dsCU/uS7HCnxIXuuUb/cZtIS7AXVg16fFA== dependencies: - "@sentry/bundler-plugin-core" "2.18.0" + "@sentry/bundler-plugin-core" "2.19.0" unplugin "1.0.1" "@sentry/webpack-plugin@2.16.0": @@ -7295,12 +7295,12 @@ unplugin "1.0.1" uuid "^9.0.0" -"@sentry/webpack-plugin@2.18.0": - version "2.18.0" - resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.18.0.tgz#f0955d28b1271e9a8b6a2927ab98b1688d7b03e1" - integrity sha512-iQ5OCvuoaIanbq4GRqj4Azay86mVpa64pP9Oi3EJpaURGZNLqwE7bWq9tkr1Dr7zBPBZN7QBmLD3OOeOSzbHuA== +"@sentry/webpack-plugin@2.19.0": + version "2.19.0" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.19.0.tgz#e2c011c15b9aed16916257a0eb883d0e1839d783" + integrity sha512-+TtwOAycYHX8uO/qGI81dFLW6opg4b/SZ/oJSC2K0sf8GUow6rv8RKcuzl4oPj3/QF1fuwsH7n8QCXm1XDMRdA== dependencies: - "@sentry/bundler-plugin-core" "2.18.0" + "@sentry/bundler-plugin-core" "2.19.0" unplugin "1.0.1" uuid "^9.0.0" From a41a835e56b0ac963e270667db6fccfc70c78a94 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Thu, 20 Jun 2024 09:40:17 +0000 Subject: [PATCH 4/5] tests --- packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts b/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts index 44f34362162f..92407127fe47 100644 --- a/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts +++ b/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts @@ -43,7 +43,7 @@ describe('sentrySvelteKit()', () => { expect(plugins).toBeInstanceOf(Array); // 1 auto instrument plugin + 5 source maps plugins - expect(plugins).toHaveLength(6); + expect(plugins).toHaveLength(7); }); it('returns the custom sentry source maps upload plugin, unmodified sourcemaps plugins and the auto-instrument plugin by default', async () => { @@ -83,7 +83,7 @@ describe('sentrySvelteKit()', () => { it("doesn't return the auto instrument plugin if autoInstrument is `false`", async () => { const plugins = await getSentrySvelteKitPlugins({ autoInstrument: false }); const pluginNames = plugins.map(plugin => plugin.name); - expect(plugins).toHaveLength(5); + expect(plugins).toHaveLength(6); expect(pluginNames).not.toContain('sentry-upload-source-maps'); }); From 619b1c8df38e2bf621fa5fdd75fd8f2b386e9d1e Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Thu, 20 Jun 2024 10:13:24 +0000 Subject: [PATCH 5/5] more tst --- packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts b/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts index 92407127fe47..f2916cb33020 100644 --- a/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts +++ b/packages/sveltekit/test/vite/sentrySvelteKitPlugins.test.ts @@ -57,6 +57,7 @@ describe('sentrySvelteKit()', () => { 'sentry-vite-release-injection-plugin', 'sentry-debug-id-upload-plugin', 'sentry-vite-debug-id-injection-plugin', + 'sentry-file-deletion-plugin', // custom source maps plugin: 'sentry-upload-sveltekit-source-maps', ]);