From 11768875d66184978a4a18c2eaa27c255ba36a45 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 4 Jun 2026 14:39:11 +0100 Subject: [PATCH 1/5] feat: Add `@sentry/bundler-plugins` core package --- .gitignore | 2 +- package.json | 1 + .../package.json | 10 +- .../rollup.config.mjs | 4 +- packages/bundler-plugin-core/package.json | 20 +-- .../bundler-plugin-core/rollup.config.mjs | 4 +- packages/bundler-plugins/.gitignore | 1 + packages/bundler-plugins/package.json | 127 ++++++++++++++++++ packages/bundler-plugins/rollup.config.mjs | 60 +++++++++ .../sentry-esbuild-debugid-injection-file.js | 20 +++ .../sentry-release-injection-file.js | 4 + .../src/babel-plugin}/constants.ts | 0 .../src/babel-plugin}/experimental.ts | 0 .../src/babel-plugin}/index.ts | 0 .../src/core}/build-plugin-manager.ts | 0 .../src/core}/debug-id-upload.ts | 0 .../src => bundler-plugins/src/core}/glob.ts | 0 .../src => bundler-plugins/src/core}/index.ts | 0 .../src/core}/logger.ts | 0 .../src/core}/options-mapping.ts | 0 .../src/core}/sentry/telemetry.ts | 0 .../src/core}/sentry/transports.ts | 0 .../src => bundler-plugins/src/core}/types.ts | 0 .../src => bundler-plugins/src/core}/utils.ts | 0 .../src/esbuild}/index.ts | 0 .../src/rollup}/index.ts | 0 .../src => bundler-plugins/src/vite}/index.ts | 0 .../component-annotation-transform.ts | 0 .../src/webpack}/index.ts | 0 .../src/webpack}/webpack4and5.ts | 36 +++-- .../src/webpack}/webpack5.ts | 0 .../__snapshots__/test-plugin.test.ts.snap | 0 .../test/babel-plugin}/experimental.test.ts | 2 +- .../test/babel-plugin}/sentry-label.test.ts | 2 +- .../test/babel-plugin}/test-plugin.test.ts | 2 +- .../core}/__snapshots__/utils.test.ts.snap | 0 .../test/core}/build-plugin-manager.test.ts | 14 +- .../test/core}/debug-id-upload.test.ts | 6 +- .../deeply/nested/index.js | 0 .../deeply/nested/package.json | 0 .../deeply-nested-package/package.json | 0 .../deeply/nested/index.js | 0 .../deeply/nested/package.json | 0 .../nested-error-package/package.json | 0 .../nested-package/deeply/nested/index.js | 0 .../nested-package/deeply/nested/package.json | 0 .../fixtures/nested-package/package.json | 0 .../no-valid-package/deeply/nested/index.js | 0 .../deeply/nested/package.json | 0 .../adjacent-sourcemap/index.js | 0 .../adjacent-sourcemap/index.js.map | 0 .../separate-directory/bundles/index.js | 0 .../sourcemaps/index.js.map | 0 .../test/core}/glob.test.ts | 2 +- .../test/core}/index.test.ts | 4 +- .../test/core}/option-mappings.test.ts | 6 +- .../test/core}/sentry/logger.test.ts | 2 +- .../core}/sentry/resolve-source-maps.test.ts | 4 +- .../test/core}/sentry/telemetry.test.ts | 9 +- .../test/core}/utils.test.ts | 4 +- .../test/esbuild}/public-api.test.ts | 2 +- .../__snapshots__/public-api.test.ts.snap | 0 .../test/rollup}/public-api.test.ts | 2 +- packages/bundler-plugins/test/tsconfig.json | 8 ++ .../test/vite}/public-api.test.ts | 2 +- .../test/webpack}/public-api.test.ts | 2 +- .../test/webpack}/webpack5.test.ts | 2 +- packages/bundler-plugins/tsconfig.json | 8 ++ packages/bundler-plugins/types.tsconfig.json | 11 ++ packages/esbuild-plugin/package.json | 4 +- packages/esbuild-plugin/rollup.config.mjs | 4 +- .../fixtures/esbuild/package.json | 1 + .../fixtures/rolldown/package.json | 1 + .../fixtures/rollup3/package.json | 1 + .../fixtures/rollup4/package.json | 1 + .../fixtures/vite4/package.json | 1 + .../fixtures/vite6/package.json | 1 + .../fixtures/vite7/package.json | 1 + .../fixtures/vite8/package.json | 1 + .../fixtures/webpack5/package.json | 1 + packages/rollup-plugin/package.json | 5 +- packages/rollup-plugin/rollup.config.mjs | 4 +- packages/vite-plugin/package.json | 5 +- packages/vite-plugin/rollup.config.mjs | 4 +- packages/webpack-plugin/package.json | 4 +- packages/webpack-plugin/rollup.config.mjs | 7 +- yarn.lock | 61 ++------- 87 files changed, 355 insertions(+), 135 deletions(-) create mode 100644 packages/bundler-plugins/.gitignore create mode 100644 packages/bundler-plugins/package.json create mode 100644 packages/bundler-plugins/rollup.config.mjs create mode 100644 packages/bundler-plugins/sentry-esbuild-debugid-injection-file.js create mode 100644 packages/bundler-plugins/sentry-release-injection-file.js rename packages/{babel-plugin-component-annotate/src => bundler-plugins/src/babel-plugin}/constants.ts (100%) rename packages/{babel-plugin-component-annotate/src => bundler-plugins/src/babel-plugin}/experimental.ts (100%) rename packages/{babel-plugin-component-annotate/src => bundler-plugins/src/babel-plugin}/index.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/build-plugin-manager.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/debug-id-upload.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/glob.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/index.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/logger.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/options-mapping.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/sentry/telemetry.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/sentry/transports.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/types.ts (100%) rename packages/{bundler-plugin-core/src => bundler-plugins/src/core}/utils.ts (100%) rename packages/{esbuild-plugin/src => bundler-plugins/src/esbuild}/index.ts (100%) rename packages/{rollup-plugin/src => bundler-plugins/src/rollup}/index.ts (100%) rename packages/{vite-plugin/src => bundler-plugins/src/vite}/index.ts (100%) rename packages/{webpack-plugin/src => bundler-plugins/src/webpack}/component-annotation-transform.ts (100%) rename packages/{webpack-plugin/src => bundler-plugins/src/webpack}/index.ts (100%) rename packages/{webpack-plugin/src => bundler-plugins/src/webpack}/webpack4and5.ts (90%) rename packages/{webpack-plugin/src => bundler-plugins/src/webpack}/webpack5.ts (100%) rename packages/{babel-plugin-component-annotate/test => bundler-plugins/test/babel-plugin}/__snapshots__/test-plugin.test.ts.snap (100%) rename packages/{babel-plugin-component-annotate/test => bundler-plugins/test/babel-plugin}/experimental.test.ts (99%) rename packages/{babel-plugin-component-annotate/test => bundler-plugins/test/babel-plugin}/sentry-label.test.ts (99%) rename packages/{babel-plugin-component-annotate/test => bundler-plugins/test/babel-plugin}/test-plugin.test.ts (99%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/__snapshots__/utils.test.ts.snap (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/build-plugin-manager.test.ts (98%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/debug-id-upload.test.ts (91%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/deeply-nested-package/deeply/nested/index.js (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/deeply-nested-package/deeply/nested/package.json (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/deeply-nested-package/package.json (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/nested-error-package/deeply/nested/index.js (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/nested-error-package/deeply/nested/package.json (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/nested-error-package/package.json (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/nested-package/deeply/nested/index.js (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/nested-package/deeply/nested/package.json (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/nested-package/package.json (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/no-valid-package/deeply/nested/index.js (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/no-valid-package/deeply/nested/package.json (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/resolve-source-maps/adjacent-sourcemap/index.js (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/resolve-source-maps/adjacent-sourcemap/index.js.map (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/resolve-source-maps/separate-directory/bundles/index.js (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/fixtures/resolve-source-maps/separate-directory/sourcemaps/index.js.map (100%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/glob.test.ts (99%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/index.test.ts (97%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/option-mappings.test.ts (98%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/sentry/logger.test.ts (98%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/sentry/resolve-source-maps.test.ts (97%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/sentry/telemetry.test.ts (94%) rename packages/{bundler-plugin-core/test => bundler-plugins/test/core}/utils.test.ts (98%) rename packages/{esbuild-plugin/test => bundler-plugins/test/esbuild}/public-api.test.ts (91%) rename packages/{rollup-plugin/test => bundler-plugins/test/rollup}/__snapshots__/public-api.test.ts.snap (100%) rename packages/{rollup-plugin/test => bundler-plugins/test/rollup}/public-api.test.ts (99%) create mode 100644 packages/bundler-plugins/test/tsconfig.json rename packages/{vite-plugin/test => bundler-plugins/test/vite}/public-api.test.ts (95%) rename packages/{webpack-plugin/test => bundler-plugins/test/webpack}/public-api.test.ts (91%) rename packages/{webpack-plugin/test => bundler-plugins/test/webpack}/webpack5.test.ts (91%) create mode 100644 packages/bundler-plugins/tsconfig.json create mode 100644 packages/bundler-plugins/types.tsconfig.json diff --git a/.gitignore b/.gitignore index 47a8abf5..1126d8eb 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,5 @@ yarn-error.log packages/**/yarn.lock .DS_Store -packages/bundler-plugin-core/src/version.ts +packages/bundler-plugins/src/core/version.ts packages/integration-tests-next/fixtures/**/pnpm-lock.yaml diff --git a/package.json b/package.json index d9bac504..8d03e524 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "workspaces": [ "packages/babel-plugin-component-annotate", "packages/bundler-plugin-core", + "packages/bundler-plugins", "packages/dev-utils", "packages/esbuild-plugin", "packages/playground", diff --git a/packages/babel-plugin-component-annotate/package.json b/packages/babel-plugin-component-annotate/package.json index be6f555f..6506229f 100644 --- a/packages/babel-plugin-component-annotate/package.json +++ b/packages/babel-plugin-component-annotate/package.json @@ -45,15 +45,13 @@ "clean": "run-s clean:build", "clean:all": "run-p clean clean:deps", "clean:build": "premove ./dist *.tgz", - "clean:deps": "premove node_modules", - "test": "vitest run" + "clean:deps": "premove node_modules" + }, + "dependencies": { + "@sentry/bundler-plugins": "5.3.0" }, "devDependencies": { - "@babel/core": "7.18.5", - "@types/babel__core": "^7.20.5", - "@babel/preset-react": "^7.23.3", "@types/node": "^18.6.3", - "vitest": "^4.0.0", "premove": "^4.0.0", "rolldown": "^1.0.0" }, diff --git a/packages/babel-plugin-component-annotate/rollup.config.mjs b/packages/babel-plugin-component-annotate/rollup.config.mjs index 656ebdad..4e04614e 100644 --- a/packages/babel-plugin-component-annotate/rollup.config.mjs +++ b/packages/babel-plugin-component-annotate/rollup.config.mjs @@ -1,9 +1,11 @@ import packageJson from "./package.json" with { type: "json" }; +const deps = Object.keys(packageJson.dependencies ?? {}); + export default { platform: "node", input: ["src/index.ts"], - external: Object.keys(packageJson.dependencies ?? []), + external: (id) => deps.some((dep) => id === dep || id.startsWith(`${dep}/`)), output: [ { file: packageJson.module, diff --git a/packages/bundler-plugin-core/package.json b/packages/bundler-plugin-core/package.json index f511ed1b..a71fa7d9 100644 --- a/packages/bundler-plugin-core/package.json +++ b/packages/bundler-plugin-core/package.json @@ -33,8 +33,7 @@ "module": "dist/esm/index.mjs", "types": "dist/types/index.d.ts", "scripts": { - "prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts", - "build": "premove ./out && run-p build:rollup build:types && run-s build:npm", + "build": "premove ./dist && run-p build:rollup build:types && run-s build:npm", "build:watch": "run-p build:rollup:watch build:types:watch", "build:rollup": "rolldown --config rollup.config.mjs", "build:rollup:watch": "rolldown --config rollup.config.mjs --watch --no-watch.clearScreen", @@ -47,26 +46,15 @@ "clean": "run-s clean:build", "clean:all": "run-p clean clean:deps", "clean:build": "premove ./dist *.tgz", - "clean:deps": "premove node_modules", - "pretest": "yarn prebuild", - "test": "vitest run" + "clean:deps": "premove node_modules" }, "dependencies": { - "@babel/core": "^7.18.5", - "@sentry/babel-plugin-component-annotate": "5.3.0", - "@sentry/cli": "^2.58.6", - "dotenv": "^16.3.1", - "find-up": "^5.0.0", - "glob": "^13.0.6", - "magic-string": "~0.30.8" + "@sentry/bundler-plugins": "5.3.0" }, "devDependencies": { - "@sentry/core": "10.56.0", - "@sentry/types": "10.56.0", "@types/node": "^18.6.3", "premove": "^4.0.0", - "rolldown": "^1.0.0", - "vitest": "^4.0.0" + "rolldown": "^1.0.0" }, "volta": { "extends": "../../package.json" diff --git a/packages/bundler-plugin-core/rollup.config.mjs b/packages/bundler-plugin-core/rollup.config.mjs index 98d8b5dd..4e04614e 100644 --- a/packages/bundler-plugin-core/rollup.config.mjs +++ b/packages/bundler-plugin-core/rollup.config.mjs @@ -1,9 +1,11 @@ import packageJson from "./package.json" with { type: "json" }; +const deps = Object.keys(packageJson.dependencies ?? {}); + export default { platform: "node", input: ["src/index.ts"], - external: Object.keys(packageJson.dependencies), + external: (id) => deps.some((dep) => id === dep || id.startsWith(`${dep}/`)), output: [ { file: packageJson.module, diff --git a/packages/bundler-plugins/.gitignore b/packages/bundler-plugins/.gitignore new file mode 100644 index 00000000..1521c8b7 --- /dev/null +++ b/packages/bundler-plugins/.gitignore @@ -0,0 +1 @@ +dist diff --git a/packages/bundler-plugins/package.json b/packages/bundler-plugins/package.json new file mode 100644 index 00000000..44ad4d31 --- /dev/null +++ b/packages/bundler-plugins/package.json @@ -0,0 +1,127 @@ +{ + "name": "@sentry/bundler-plugins", + "version": "5.3.0", + "description": "Sentry Bundler Plugins", + "repository": "git://github.com/getsentry/sentry-javascript-bundler-plugins.git", + "homepage": "https://github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/bundler-plugins", + "author": "Sentry", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "files": [ + "dist", + "sentry-release-injection-file.js", + "sentry-esbuild-debugid-injection-file.js" + ], + "exports": { + "./webpack": { + "types": "./dist/types/webpack/index.d.ts", + "import": "./dist/esm/webpack/index.mjs", + "require": "./dist/cjs/webpack/index.js" + }, + "./webpack5": { + "types": "./dist/types/webpack/webpack5.d.ts", + "import": "./dist/esm/webpack/webpack5.mjs", + "require": "./dist/cjs/webpack/webpack5.js" + }, + "./rollup": { + "types": "./dist/types/rollup/index.d.ts", + "import": "./dist/esm/rollup/index.mjs", + "require": "./dist/cjs/rollup/index.js" + }, + "./vite": { + "types": "./dist/types/vite/index.d.ts", + "import": "./dist/esm/vite/index.mjs", + "require": "./dist/cjs/vite/index.js" + }, + "./esbuild": { + "types": "./dist/types/esbuild/index.d.ts", + "import": "./dist/esm/esbuild/index.mjs", + "require": "./dist/cjs/esbuild/index.js" + }, + "./core": { + "types": "./dist/types/core/index.d.ts", + "import": "./dist/esm/core/index.mjs", + "require": "./dist/cjs/core/index.js" + }, + "./babel-plugin": { + "types": "./dist/types/babel-plugin/index.d.ts", + "import": "./dist/esm/babel-plugin/index.mjs", + "require": "./dist/cjs/babel-plugin/index.js" + }, + "./sentry-release-injection-file": { + "import": "./sentry-release-injection-file.js", + "require": "./sentry-release-injection-file.js" + }, + "./sentry-esbuild-debugid-injection-file": { + "import": "./sentry-esbuild-debugid-injection-file.js", + "require": "./sentry-esbuild-debugid-injection-file.js" + }, + "./webpack-loader": { + "require": "./dist/cjs/webpack/component-annotation-transform.js" + } + }, + "scripts": { + "prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/core/version.ts", + "build": "premove ./dist && run-p build:rollup build:types && run-s build:npm", + "build:watch": "run-p build:rollup:watch build:types:watch", + "build:rollup": "rolldown --config rollup.config.mjs", + "build:rollup:watch": "rolldown --config rollup.config.mjs --watch --no-watch.clearScreen", + "build:types": "tsc --project types.tsconfig.json", + "build:types:watch": "tsc --project types.tsconfig.json --watch --preserveWatchOutput", + "build:npm": "npm pack", + "check:types": "run-p check:types:src check:types:test", + "check:types:src": "tsc --project ./tsconfig.json --noEmit", + "check:types:test": "tsc --project ./test/tsconfig.json --noEmit", + "clean": "run-s clean:build", + "clean:all": "run-p clean clean:deps", + "clean:build": "premove ./dist *.tgz", + "clean:deps": "premove node_modules", + "pretest": "yarn prebuild", + "test": "vitest run" + }, + "dependencies": { + "@babel/core": "^7.18.5", + "@sentry/cli": "^2.58.6", + "dotenv": "^16.3.1", + "find-up": "^5.0.0", + "glob": "^13.0.6", + "magic-string": "~0.30.8" + }, + "peerDependencies": { + "rollup": ">=3.2.0", + "webpack": ">=5.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "webpack": { + "optional": true + } + }, + "devDependencies": { + "@babel/preset-react": "^7.23.3", + "@sentry/core": "10.56.0", + "@sentry/types": "10.56.0", + "@sentry-internal/dev-utils": "5.3.0", + "@types/babel__core": "^7.20.5", + "@types/node": "^18.6.3", + "@types/webpack": "npm:@types/webpack@^4", + "premove": "^4.0.0", + "rolldown": "^1.0.0", + "vitest": "^4.0.0", + "webpack": "5.76.0" + }, + "volta": { + "extends": "../../package.json" + }, + "engines": { + "node": ">= 18" + }, + "sideEffects": [ + "./sentry-release-injection-file.js", + "./sentry-esbuild-debugid-injection-file.js" + ] +} diff --git a/packages/bundler-plugins/rollup.config.mjs b/packages/bundler-plugins/rollup.config.mjs new file mode 100644 index 00000000..8068953e --- /dev/null +++ b/packages/bundler-plugins/rollup.config.mjs @@ -0,0 +1,60 @@ +import packageJson from "./package.json" with { type: "json" }; +import modulePackage from "module"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const srcDir = path.resolve(__dirname, "src"); + +const external = [ + ...Object.keys(packageJson.dependencies || {}), + ...modulePackage.builtinModules, + "webpack", + "rollup", + "vite", +]; + +export default { + platform: "node", + input: [ + "src/babel-plugin/index.ts", + "src/core/index.ts", + "src/rollup/index.ts", + "src/vite/index.ts", + "src/esbuild/index.ts", + "src/webpack/index.ts", + "src/webpack/webpack5.ts", + "src/webpack/component-annotation-transform.ts", + ], + external, + output: [ + { + dir: "./dist/esm", + format: "esm", + exports: "named", + sourcemap: true, + entryFileNames: (chunkInfo) => { + if (chunkInfo.facadeModuleId) { + const rel = path.relative(srcDir, chunkInfo.facadeModuleId); + return rel.replace(/\.ts$/, ".mjs"); + } + return "[name].mjs"; + }, + chunkFileNames: "_chunks/[name]-[hash].mjs", + }, + { + dir: "./dist/cjs", + format: "cjs", + exports: "named", + sourcemap: true, + entryFileNames: (chunkInfo) => { + if (chunkInfo.facadeModuleId) { + const rel = path.relative(srcDir, chunkInfo.facadeModuleId); + return rel.replace(/\.ts$/, ".js"); + } + return "[name].js"; + }, + chunkFileNames: "_chunks/[name]-[hash].js", + }, + ], +}; diff --git a/packages/bundler-plugins/sentry-esbuild-debugid-injection-file.js b/packages/bundler-plugins/sentry-esbuild-debugid-injection-file.js new file mode 100644 index 00000000..06ad5071 --- /dev/null +++ b/packages/bundler-plugins/sentry-esbuild-debugid-injection-file.js @@ -0,0 +1,20 @@ +try { + let globalObject = + "undefined" != typeof window + ? window + : "undefined" != typeof global + ? global + : "undefined" != typeof globalThis + ? global + : "undefined" != typeof self + ? self + : {}; + + let stack = new globalObject.Error().stack; + + if (stack) { + globalObject._sentryDebugIds = globalObject._sentryDebugIds || {}; + globalObject._sentryDebugIds[stack] = "__SENTRY_DEBUG_ID__"; + globalObject._sentryDebugIdIdentifier = "sentry-dbid-__SENTRY_DEBUG_ID__"; + } +} catch {} diff --git a/packages/bundler-plugins/sentry-release-injection-file.js b/packages/bundler-plugins/sentry-release-injection-file.js new file mode 100644 index 00000000..51de6958 --- /dev/null +++ b/packages/bundler-plugins/sentry-release-injection-file.js @@ -0,0 +1,4 @@ +// This const is used for nothing except to make this file identifiable via its content. +// We search for "_sentry_release_injection_file" in the plugin to determine for sure that the file we look at is the release injection file. + +// _sentry_release_injection_file diff --git a/packages/babel-plugin-component-annotate/src/constants.ts b/packages/bundler-plugins/src/babel-plugin/constants.ts similarity index 100% rename from packages/babel-plugin-component-annotate/src/constants.ts rename to packages/bundler-plugins/src/babel-plugin/constants.ts diff --git a/packages/babel-plugin-component-annotate/src/experimental.ts b/packages/bundler-plugins/src/babel-plugin/experimental.ts similarity index 100% rename from packages/babel-plugin-component-annotate/src/experimental.ts rename to packages/bundler-plugins/src/babel-plugin/experimental.ts diff --git a/packages/babel-plugin-component-annotate/src/index.ts b/packages/bundler-plugins/src/babel-plugin/index.ts similarity index 100% rename from packages/babel-plugin-component-annotate/src/index.ts rename to packages/bundler-plugins/src/babel-plugin/index.ts diff --git a/packages/bundler-plugin-core/src/build-plugin-manager.ts b/packages/bundler-plugins/src/core/build-plugin-manager.ts similarity index 100% rename from packages/bundler-plugin-core/src/build-plugin-manager.ts rename to packages/bundler-plugins/src/core/build-plugin-manager.ts diff --git a/packages/bundler-plugin-core/src/debug-id-upload.ts b/packages/bundler-plugins/src/core/debug-id-upload.ts similarity index 100% rename from packages/bundler-plugin-core/src/debug-id-upload.ts rename to packages/bundler-plugins/src/core/debug-id-upload.ts diff --git a/packages/bundler-plugin-core/src/glob.ts b/packages/bundler-plugins/src/core/glob.ts similarity index 100% rename from packages/bundler-plugin-core/src/glob.ts rename to packages/bundler-plugins/src/core/glob.ts diff --git a/packages/bundler-plugin-core/src/index.ts b/packages/bundler-plugins/src/core/index.ts similarity index 100% rename from packages/bundler-plugin-core/src/index.ts rename to packages/bundler-plugins/src/core/index.ts diff --git a/packages/bundler-plugin-core/src/logger.ts b/packages/bundler-plugins/src/core/logger.ts similarity index 100% rename from packages/bundler-plugin-core/src/logger.ts rename to packages/bundler-plugins/src/core/logger.ts diff --git a/packages/bundler-plugin-core/src/options-mapping.ts b/packages/bundler-plugins/src/core/options-mapping.ts similarity index 100% rename from packages/bundler-plugin-core/src/options-mapping.ts rename to packages/bundler-plugins/src/core/options-mapping.ts diff --git a/packages/bundler-plugin-core/src/sentry/telemetry.ts b/packages/bundler-plugins/src/core/sentry/telemetry.ts similarity index 100% rename from packages/bundler-plugin-core/src/sentry/telemetry.ts rename to packages/bundler-plugins/src/core/sentry/telemetry.ts diff --git a/packages/bundler-plugin-core/src/sentry/transports.ts b/packages/bundler-plugins/src/core/sentry/transports.ts similarity index 100% rename from packages/bundler-plugin-core/src/sentry/transports.ts rename to packages/bundler-plugins/src/core/sentry/transports.ts diff --git a/packages/bundler-plugin-core/src/types.ts b/packages/bundler-plugins/src/core/types.ts similarity index 100% rename from packages/bundler-plugin-core/src/types.ts rename to packages/bundler-plugins/src/core/types.ts diff --git a/packages/bundler-plugin-core/src/utils.ts b/packages/bundler-plugins/src/core/utils.ts similarity index 100% rename from packages/bundler-plugin-core/src/utils.ts rename to packages/bundler-plugins/src/core/utils.ts diff --git a/packages/esbuild-plugin/src/index.ts b/packages/bundler-plugins/src/esbuild/index.ts similarity index 100% rename from packages/esbuild-plugin/src/index.ts rename to packages/bundler-plugins/src/esbuild/index.ts diff --git a/packages/rollup-plugin/src/index.ts b/packages/bundler-plugins/src/rollup/index.ts similarity index 100% rename from packages/rollup-plugin/src/index.ts rename to packages/bundler-plugins/src/rollup/index.ts diff --git a/packages/vite-plugin/src/index.ts b/packages/bundler-plugins/src/vite/index.ts similarity index 100% rename from packages/vite-plugin/src/index.ts rename to packages/bundler-plugins/src/vite/index.ts diff --git a/packages/webpack-plugin/src/component-annotation-transform.ts b/packages/bundler-plugins/src/webpack/component-annotation-transform.ts similarity index 100% rename from packages/webpack-plugin/src/component-annotation-transform.ts rename to packages/bundler-plugins/src/webpack/component-annotation-transform.ts diff --git a/packages/webpack-plugin/src/index.ts b/packages/bundler-plugins/src/webpack/index.ts similarity index 100% rename from packages/webpack-plugin/src/index.ts rename to packages/bundler-plugins/src/webpack/index.ts diff --git a/packages/webpack-plugin/src/webpack4and5.ts b/packages/bundler-plugins/src/webpack/webpack4and5.ts similarity index 90% rename from packages/webpack-plugin/src/webpack4and5.ts rename to packages/bundler-plugins/src/webpack/webpack4and5.ts index a89aee6e..4a006dc8 100644 --- a/packages/webpack-plugin/src/webpack4and5.ts +++ b/packages/bundler-plugins/src/webpack/webpack4and5.ts @@ -1,4 +1,4 @@ -import type { Options } from "@sentry/bundler-plugin-core"; +import type { Options } from "../core/index"; import { createSentryBuildPluginManager, generateReleaseInjectorCode, @@ -8,22 +8,34 @@ import { CodeInjection, getDebugIdSnippet, createDebugIdUploadFunction, -} from "@sentry/bundler-plugin-core"; +} from "../core/index"; import * as path from "node:path"; import { fileURLToPath } from "node:url"; import { createRequire } from "node:module"; import { randomUUID } from "node:crypto"; -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore Rollup transpiles import.meta for us for CJS -const dirname = path.dirname(fileURLToPath(import.meta.url)); - -const COMPONENT_ANNOTATION_LOADER = path.resolve( - dirname, - typeof __dirname !== "undefined" - ? "component-annotation-transform.js" // CJS - : "component-annotation-transform.mjs" // ESM -); +const _req = createRequire(import.meta.url); + +// Resolve the loader path via the package's own exports. +// webpack4and5.ts may end up in a shared chunk (_chunks/) whose import.meta.url +// does not point to the webpack/ directory where the transform file lives, so +// a path-relative lookup would fail. Using require.resolve on the package export +// always finds the correct installed file regardless of chunk placement. +let COMPONENT_ANNOTATION_LOADER: string; +try { + COMPONENT_ANNOTATION_LOADER = _req.resolve("@sentry/bundler-plugins/webpack-loader"); +} catch { + // Fallback for non-packaged environments (e.g., monorepo source runs without dist) + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore Rollup transpiles import.meta for us for CJS + const dirname = path.dirname(fileURLToPath(import.meta.url)); + COMPONENT_ANNOTATION_LOADER = path.resolve( + dirname, + typeof __dirname !== "undefined" + ? "component-annotation-transform.js" // CJS + : "component-annotation-transform.mjs" // ESM + ); +} // since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version // https://github.com/webpack/webpack/commit/65eca2e529ce1d79b79200d4bdb1ce1b81141459 diff --git a/packages/webpack-plugin/src/webpack5.ts b/packages/bundler-plugins/src/webpack/webpack5.ts similarity index 100% rename from packages/webpack-plugin/src/webpack5.ts rename to packages/bundler-plugins/src/webpack/webpack5.ts diff --git a/packages/babel-plugin-component-annotate/test/__snapshots__/test-plugin.test.ts.snap b/packages/bundler-plugins/test/babel-plugin/__snapshots__/test-plugin.test.ts.snap similarity index 100% rename from packages/babel-plugin-component-annotate/test/__snapshots__/test-plugin.test.ts.snap rename to packages/bundler-plugins/test/babel-plugin/__snapshots__/test-plugin.test.ts.snap diff --git a/packages/babel-plugin-component-annotate/test/experimental.test.ts b/packages/bundler-plugins/test/babel-plugin/experimental.test.ts similarity index 99% rename from packages/babel-plugin-component-annotate/test/experimental.test.ts rename to packages/bundler-plugins/test/babel-plugin/experimental.test.ts index 121582ff..29b04dee 100644 --- a/packages/babel-plugin-component-annotate/test/experimental.test.ts +++ b/packages/bundler-plugins/test/babel-plugin/experimental.test.ts @@ -25,7 +25,7 @@ import { describe, it, expect } from "vitest"; import { transform } from "@babel/core"; -import { experimentalComponentNameAnnotatePlugin as plugin } from "../src/index"; +import { experimentalComponentNameAnnotatePlugin as plugin } from "../../src/babel-plugin/index"; const BananasPizzaAppStandardInput = `import React, { Component } from 'react'; import { StyleSheet, Text, TextInput, View, Image, UIManager } from 'react-native'; diff --git a/packages/babel-plugin-component-annotate/test/sentry-label.test.ts b/packages/bundler-plugins/test/babel-plugin/sentry-label.test.ts similarity index 99% rename from packages/babel-plugin-component-annotate/test/sentry-label.test.ts rename to packages/bundler-plugins/test/babel-plugin/sentry-label.test.ts index e11f0af7..822eb95f 100644 --- a/packages/babel-plugin-component-annotate/test/sentry-label.test.ts +++ b/packages/bundler-plugins/test/babel-plugin/sentry-label.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect } from "vitest"; import type { BabelFileResult } from "@babel/core"; import { transform } from "@babel/core"; -import plugin from "../src/index"; +import plugin from "../../src/babel-plugin/index"; function transformWith(code: string, opts: Record = {}): BabelFileResult | null { return transform(code, { diff --git a/packages/babel-plugin-component-annotate/test/test-plugin.test.ts b/packages/bundler-plugins/test/babel-plugin/test-plugin.test.ts similarity index 99% rename from packages/babel-plugin-component-annotate/test/test-plugin.test.ts rename to packages/bundler-plugins/test/babel-plugin/test-plugin.test.ts index cb9b61eb..84d97796 100644 --- a/packages/babel-plugin-component-annotate/test/test-plugin.test.ts +++ b/packages/bundler-plugins/test/babel-plugin/test-plugin.test.ts @@ -25,7 +25,7 @@ import { describe, it, expect } from "vitest"; import { transform } from "@babel/core"; -import plugin from "../src/index"; +import plugin from "../../src/babel-plugin/index"; const BananasPizzaAppStandardInput = `import React, { Component } from 'react'; import { StyleSheet, Text, TextInput, View, Image, UIManager } from 'react-native'; diff --git a/packages/bundler-plugin-core/test/__snapshots__/utils.test.ts.snap b/packages/bundler-plugins/test/core/__snapshots__/utils.test.ts.snap similarity index 100% rename from packages/bundler-plugin-core/test/__snapshots__/utils.test.ts.snap rename to packages/bundler-plugins/test/core/__snapshots__/utils.test.ts.snap diff --git a/packages/bundler-plugin-core/test/build-plugin-manager.test.ts b/packages/bundler-plugins/test/core/build-plugin-manager.test.ts similarity index 98% rename from packages/bundler-plugin-core/test/build-plugin-manager.test.ts rename to packages/bundler-plugins/test/core/build-plugin-manager.test.ts index 4dba3308..49717c60 100644 --- a/packages/bundler-plugin-core/test/build-plugin-manager.test.ts +++ b/packages/bundler-plugins/test/core/build-plugin-manager.test.ts @@ -1,10 +1,10 @@ import { createSentryBuildPluginManager, _resetDeployedReleasesForTesting, -} from "../src/build-plugin-manager"; +} from "../../src/core/build-plugin-manager"; import fs from "fs"; -import { globFiles } from "../src/glob"; -import { prepareBundleForDebugIdUpload } from "../src/debug-id-upload"; +import { globFiles } from "../../src/core/glob"; +import { prepareBundleForDebugIdUpload } from "../../src/core/debug-id-upload"; import type { MockedFunction } from "vitest"; import { describe, it, expect, afterEach, beforeEach, vi } from "vitest"; @@ -32,8 +32,8 @@ vi.mock("@sentry/cli", () => ({ }, })); -vi.mock("../src/sentry/telemetry", async () => ({ - ...(await vi.importActual("../src/sentry/telemetry")), +vi.mock("../../src/core/sentry/telemetry", async () => ({ + ...(await vi.importActual("../../src/core/sentry/telemetry")), safeFlushTelemetry: vi.fn(), })); @@ -42,8 +42,8 @@ vi.mock("@sentry/core", async () => ({ startSpan: vi.fn((options: unknown, callback: () => unknown) => callback()), })); -vi.mock("../src/glob"); -vi.mock("../src/debug-id-upload"); +vi.mock("../../src/core/glob"); +vi.mock("../../src/core/debug-id-upload"); const mockGlobFiles = globFiles as MockedFunction; const mockPrepareBundleForDebugIdUpload = diff --git a/packages/bundler-plugin-core/test/debug-id-upload.test.ts b/packages/bundler-plugins/test/core/debug-id-upload.test.ts similarity index 91% rename from packages/bundler-plugin-core/test/debug-id-upload.test.ts rename to packages/bundler-plugins/test/core/debug-id-upload.test.ts index 49ff8d4c..f4651fea 100644 --- a/packages/bundler-plugin-core/test/debug-id-upload.test.ts +++ b/packages/bundler-plugins/test/core/debug-id-upload.test.ts @@ -2,9 +2,9 @@ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"; import * as fs from "fs"; import * as path from "path"; import * as os from "os"; -import { prepareBundleForDebugIdUpload } from "../src/debug-id-upload"; -import type { RewriteSourcesHook } from "../src/types"; -import type { Logger } from "../src"; +import { prepareBundleForDebugIdUpload } from "../../src/core/debug-id-upload"; +import type { RewriteSourcesHook } from "../../src/core/types"; +import type { Logger } from "../../src/core"; describe("prepareBundleForDebugIdUpload", () => { let tmpDir: string; diff --git a/packages/bundler-plugin-core/test/fixtures/deeply-nested-package/deeply/nested/index.js b/packages/bundler-plugins/test/core/fixtures/deeply-nested-package/deeply/nested/index.js similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/deeply-nested-package/deeply/nested/index.js rename to packages/bundler-plugins/test/core/fixtures/deeply-nested-package/deeply/nested/index.js diff --git a/packages/bundler-plugin-core/test/fixtures/deeply-nested-package/deeply/nested/package.json b/packages/bundler-plugins/test/core/fixtures/deeply-nested-package/deeply/nested/package.json similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/deeply-nested-package/deeply/nested/package.json rename to packages/bundler-plugins/test/core/fixtures/deeply-nested-package/deeply/nested/package.json diff --git a/packages/bundler-plugin-core/test/fixtures/deeply-nested-package/package.json b/packages/bundler-plugins/test/core/fixtures/deeply-nested-package/package.json similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/deeply-nested-package/package.json rename to packages/bundler-plugins/test/core/fixtures/deeply-nested-package/package.json diff --git a/packages/bundler-plugin-core/test/fixtures/nested-error-package/deeply/nested/index.js b/packages/bundler-plugins/test/core/fixtures/nested-error-package/deeply/nested/index.js similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/nested-error-package/deeply/nested/index.js rename to packages/bundler-plugins/test/core/fixtures/nested-error-package/deeply/nested/index.js diff --git a/packages/bundler-plugin-core/test/fixtures/nested-error-package/deeply/nested/package.json b/packages/bundler-plugins/test/core/fixtures/nested-error-package/deeply/nested/package.json similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/nested-error-package/deeply/nested/package.json rename to packages/bundler-plugins/test/core/fixtures/nested-error-package/deeply/nested/package.json diff --git a/packages/bundler-plugin-core/test/fixtures/nested-error-package/package.json b/packages/bundler-plugins/test/core/fixtures/nested-error-package/package.json similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/nested-error-package/package.json rename to packages/bundler-plugins/test/core/fixtures/nested-error-package/package.json diff --git a/packages/bundler-plugin-core/test/fixtures/nested-package/deeply/nested/index.js b/packages/bundler-plugins/test/core/fixtures/nested-package/deeply/nested/index.js similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/nested-package/deeply/nested/index.js rename to packages/bundler-plugins/test/core/fixtures/nested-package/deeply/nested/index.js diff --git a/packages/bundler-plugin-core/test/fixtures/nested-package/deeply/nested/package.json b/packages/bundler-plugins/test/core/fixtures/nested-package/deeply/nested/package.json similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/nested-package/deeply/nested/package.json rename to packages/bundler-plugins/test/core/fixtures/nested-package/deeply/nested/package.json diff --git a/packages/bundler-plugin-core/test/fixtures/nested-package/package.json b/packages/bundler-plugins/test/core/fixtures/nested-package/package.json similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/nested-package/package.json rename to packages/bundler-plugins/test/core/fixtures/nested-package/package.json diff --git a/packages/bundler-plugin-core/test/fixtures/no-valid-package/deeply/nested/index.js b/packages/bundler-plugins/test/core/fixtures/no-valid-package/deeply/nested/index.js similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/no-valid-package/deeply/nested/index.js rename to packages/bundler-plugins/test/core/fixtures/no-valid-package/deeply/nested/index.js diff --git a/packages/bundler-plugin-core/test/fixtures/no-valid-package/deeply/nested/package.json b/packages/bundler-plugins/test/core/fixtures/no-valid-package/deeply/nested/package.json similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/no-valid-package/deeply/nested/package.json rename to packages/bundler-plugins/test/core/fixtures/no-valid-package/deeply/nested/package.json diff --git a/packages/bundler-plugin-core/test/fixtures/resolve-source-maps/adjacent-sourcemap/index.js b/packages/bundler-plugins/test/core/fixtures/resolve-source-maps/adjacent-sourcemap/index.js similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/resolve-source-maps/adjacent-sourcemap/index.js rename to packages/bundler-plugins/test/core/fixtures/resolve-source-maps/adjacent-sourcemap/index.js diff --git a/packages/bundler-plugin-core/test/fixtures/resolve-source-maps/adjacent-sourcemap/index.js.map b/packages/bundler-plugins/test/core/fixtures/resolve-source-maps/adjacent-sourcemap/index.js.map similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/resolve-source-maps/adjacent-sourcemap/index.js.map rename to packages/bundler-plugins/test/core/fixtures/resolve-source-maps/adjacent-sourcemap/index.js.map diff --git a/packages/bundler-plugin-core/test/fixtures/resolve-source-maps/separate-directory/bundles/index.js b/packages/bundler-plugins/test/core/fixtures/resolve-source-maps/separate-directory/bundles/index.js similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/resolve-source-maps/separate-directory/bundles/index.js rename to packages/bundler-plugins/test/core/fixtures/resolve-source-maps/separate-directory/bundles/index.js diff --git a/packages/bundler-plugin-core/test/fixtures/resolve-source-maps/separate-directory/sourcemaps/index.js.map b/packages/bundler-plugins/test/core/fixtures/resolve-source-maps/separate-directory/sourcemaps/index.js.map similarity index 100% rename from packages/bundler-plugin-core/test/fixtures/resolve-source-maps/separate-directory/sourcemaps/index.js.map rename to packages/bundler-plugins/test/core/fixtures/resolve-source-maps/separate-directory/sourcemaps/index.js.map diff --git a/packages/bundler-plugin-core/test/glob.test.ts b/packages/bundler-plugins/test/core/glob.test.ts similarity index 99% rename from packages/bundler-plugin-core/test/glob.test.ts rename to packages/bundler-plugins/test/core/glob.test.ts index 808d3e91..9411a7bc 100644 --- a/packages/bundler-plugin-core/test/glob.test.ts +++ b/packages/bundler-plugins/test/core/glob.test.ts @@ -1,7 +1,7 @@ import * as fs from "fs"; import * as path from "path"; import * as os from "os"; -import { globFiles } from "../src/glob"; +import { globFiles } from "../../src/core/glob"; import { describe, it, expect, beforeEach, afterEach } from "vitest"; let tmpDir: string; diff --git a/packages/bundler-plugin-core/test/index.test.ts b/packages/bundler-plugins/test/core/index.test.ts similarity index 97% rename from packages/bundler-plugin-core/test/index.test.ts rename to packages/bundler-plugins/test/core/index.test.ts index fe4c03f0..5f9ee192 100644 --- a/packages/bundler-plugin-core/test/index.test.ts +++ b/packages/bundler-plugins/test/core/index.test.ts @@ -1,5 +1,5 @@ -import { getDebugIdSnippet } from "../src"; -import { containsOnlyImports } from "../src/utils"; +import { getDebugIdSnippet } from "../../src/core"; +import { containsOnlyImports } from "../../src/core/utils"; import { describe, it, expect } from "vitest"; describe("getDebugIdSnippet", () => { diff --git a/packages/bundler-plugin-core/test/option-mappings.test.ts b/packages/bundler-plugins/test/core/option-mappings.test.ts similarity index 98% rename from packages/bundler-plugin-core/test/option-mappings.test.ts rename to packages/bundler-plugins/test/core/option-mappings.test.ts index 7194adf3..c50d5187 100644 --- a/packages/bundler-plugin-core/test/option-mappings.test.ts +++ b/packages/bundler-plugins/test/core/option-mappings.test.ts @@ -1,6 +1,6 @@ -import type { Options } from "../src"; -import type { NormalizedOptions } from "../src/options-mapping"; -import { normalizeUserOptions, validateOptions } from "../src/options-mapping"; +import type { Options } from "../../src/core"; +import type { NormalizedOptions } from "../../src/core/options-mapping"; +import { normalizeUserOptions, validateOptions } from "../../src/core/options-mapping"; import { describe, it, test, expect, afterEach, vi, beforeEach } from "vitest"; describe("normalizeUserOptions()", () => { diff --git a/packages/bundler-plugin-core/test/sentry/logger.test.ts b/packages/bundler-plugins/test/core/sentry/logger.test.ts similarity index 98% rename from packages/bundler-plugin-core/test/sentry/logger.test.ts rename to packages/bundler-plugins/test/core/sentry/logger.test.ts index 1bb5d414..0e265569 100644 --- a/packages/bundler-plugin-core/test/sentry/logger.test.ts +++ b/packages/bundler-plugins/test/core/sentry/logger.test.ts @@ -1,4 +1,4 @@ -import { createLogger } from "../../src/logger"; +import { createLogger } from "../../../src/core/logger"; import { describe, it, expect, vi, afterEach } from "vitest"; describe("Logger", () => { diff --git a/packages/bundler-plugin-core/test/sentry/resolve-source-maps.test.ts b/packages/bundler-plugins/test/core/sentry/resolve-source-maps.test.ts similarity index 97% rename from packages/bundler-plugin-core/test/sentry/resolve-source-maps.test.ts rename to packages/bundler-plugins/test/core/sentry/resolve-source-maps.test.ts index 8a9530f8..b7a5a2af 100644 --- a/packages/bundler-plugin-core/test/sentry/resolve-source-maps.test.ts +++ b/packages/bundler-plugins/test/core/sentry/resolve-source-maps.test.ts @@ -1,8 +1,8 @@ import * as path from "path"; import * as fs from "fs"; import * as url from "url"; -import { determineSourceMapPathFromBundle } from "../../src/debug-id-upload"; -import { createLogger } from "../../src/logger"; +import { determineSourceMapPathFromBundle } from "../../../src/core/debug-id-upload"; +import { createLogger } from "../../../src/core/logger"; import { describe, it, expect, vi } from "vitest"; const logger = createLogger({ prefix: "[resolve-source-maps-test]", silent: false, debug: false }); diff --git a/packages/bundler-plugin-core/test/sentry/telemetry.test.ts b/packages/bundler-plugins/test/core/sentry/telemetry.test.ts similarity index 94% rename from packages/bundler-plugin-core/test/sentry/telemetry.test.ts rename to packages/bundler-plugins/test/core/sentry/telemetry.test.ts index 97e63616..5474f6e5 100644 --- a/packages/bundler-plugin-core/test/sentry/telemetry.test.ts +++ b/packages/bundler-plugins/test/core/sentry/telemetry.test.ts @@ -1,7 +1,10 @@ import type { Scope } from "@sentry/core"; -import type { NormalizedOptions } from "../../src/options-mapping"; -import { normalizeUserOptions } from "../../src/options-mapping"; -import { allowedToSendTelemetry, setTelemetryDataOnScope } from "../../src/sentry/telemetry"; +import type { NormalizedOptions } from "../../../src/core/options-mapping"; +import { normalizeUserOptions } from "../../../src/core/options-mapping"; +import { + allowedToSendTelemetry, + setTelemetryDataOnScope, +} from "../../../src/core/sentry/telemetry"; import { describe, it, expect, afterEach, beforeEach, vi } from "vitest"; const { mockCliExecute } = vi.hoisted(() => ({ diff --git a/packages/bundler-plugin-core/test/utils.test.ts b/packages/bundler-plugins/test/core/utils.test.ts similarity index 98% rename from packages/bundler-plugin-core/test/utils.test.ts rename to packages/bundler-plugins/test/core/utils.test.ts index 11a32135..e229cccd 100644 --- a/packages/bundler-plugin-core/test/utils.test.ts +++ b/packages/bundler-plugins/test/core/utils.test.ts @@ -7,7 +7,7 @@ import { replaceBooleanFlagsInCode, serializeIgnoreOptions, stringToUUID, -} from "../src/utils"; +} from "../../src/core/utils"; import fs from "fs"; import { describe, it, expect, test, vi } from "vitest"; @@ -23,7 +23,7 @@ describe("getPackageJson", () => { test("it works for this package", () => { const packageJson = getPackageJson(); // eslint-disable-next-line @typescript-eslint/no-var-requires - const expected = require("../package.json") as PackageJson; + const expected = require("../../package.json") as PackageJson; expect(packageJson).toEqual(expected); }); diff --git a/packages/esbuild-plugin/test/public-api.test.ts b/packages/bundler-plugins/test/esbuild/public-api.test.ts similarity index 91% rename from packages/esbuild-plugin/test/public-api.test.ts rename to packages/bundler-plugins/test/esbuild/public-api.test.ts index a540fc0e..04a694e2 100644 --- a/packages/esbuild-plugin/test/public-api.test.ts +++ b/packages/bundler-plugins/test/esbuild/public-api.test.ts @@ -1,4 +1,4 @@ -import { sentryEsbuildPlugin } from "../src"; +import { sentryEsbuildPlugin } from "../../src/esbuild"; import type { Plugin } from "esbuild"; import { describe, it, expect, test } from "vitest"; diff --git a/packages/rollup-plugin/test/__snapshots__/public-api.test.ts.snap b/packages/bundler-plugins/test/rollup/__snapshots__/public-api.test.ts.snap similarity index 100% rename from packages/rollup-plugin/test/__snapshots__/public-api.test.ts.snap rename to packages/bundler-plugins/test/rollup/__snapshots__/public-api.test.ts.snap diff --git a/packages/rollup-plugin/test/public-api.test.ts b/packages/bundler-plugins/test/rollup/public-api.test.ts similarity index 99% rename from packages/rollup-plugin/test/public-api.test.ts rename to packages/bundler-plugins/test/rollup/public-api.test.ts index c0f6dc9c..3b4113c0 100644 --- a/packages/rollup-plugin/test/public-api.test.ts +++ b/packages/bundler-plugins/test/rollup/public-api.test.ts @@ -1,4 +1,4 @@ -import { sentryRollupPlugin } from "../src"; +import { sentryRollupPlugin } from "../../src/rollup"; import type { Plugin, SourceMap } from "rollup"; import { describe, it, expect, test, beforeEach, vi } from "vitest"; diff --git a/packages/bundler-plugins/test/tsconfig.json b/packages/bundler-plugins/test/tsconfig.json new file mode 100644 index 00000000..76d0c9cf --- /dev/null +++ b/packages/bundler-plugins/test/tsconfig.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../tsconfig.json", + "include": ["../src/**/*", "./**/*"], + "compilerOptions": { + "types": ["node"] + } +} diff --git a/packages/vite-plugin/test/public-api.test.ts b/packages/bundler-plugins/test/vite/public-api.test.ts similarity index 95% rename from packages/vite-plugin/test/public-api.test.ts rename to packages/bundler-plugins/test/vite/public-api.test.ts index 285cb4ce..43e93467 100644 --- a/packages/vite-plugin/test/public-api.test.ts +++ b/packages/bundler-plugins/test/vite/public-api.test.ts @@ -1,4 +1,4 @@ -import { sentryVitePlugin } from "../src"; +import { sentryVitePlugin } from "../../src/vite"; import { describe, it, expect, test, beforeEach, vi } from "vitest"; test("Vite plugin should exist", () => { diff --git a/packages/webpack-plugin/test/public-api.test.ts b/packages/bundler-plugins/test/webpack/public-api.test.ts similarity index 91% rename from packages/webpack-plugin/test/public-api.test.ts rename to packages/bundler-plugins/test/webpack/public-api.test.ts index dbea8a52..098e48f2 100644 --- a/packages/webpack-plugin/test/public-api.test.ts +++ b/packages/bundler-plugins/test/webpack/public-api.test.ts @@ -1,5 +1,5 @@ import type { WebpackPluginInstance } from "webpack"; -import { sentryWebpackPlugin } from "../src"; +import { sentryWebpackPlugin } from "../../src/webpack"; import { describe, it, expect, test } from "vitest"; test("Webpack plugin should exist", () => { diff --git a/packages/webpack-plugin/test/webpack5.test.ts b/packages/bundler-plugins/test/webpack/webpack5.test.ts similarity index 91% rename from packages/webpack-plugin/test/webpack5.test.ts rename to packages/bundler-plugins/test/webpack/webpack5.test.ts index 0134d113..b6ab5d8d 100644 --- a/packages/webpack-plugin/test/webpack5.test.ts +++ b/packages/bundler-plugins/test/webpack/webpack5.test.ts @@ -1,5 +1,5 @@ import type { WebpackPluginInstance } from "webpack"; -import { sentryWebpackPlugin } from "../src/index"; +import { sentryWebpackPlugin } from "../../src/webpack/index"; import { describe, it, expect, test } from "vitest"; test("Webpack plugin should exist", () => { diff --git a/packages/bundler-plugins/tsconfig.json b/packages/bundler-plugins/tsconfig.json new file mode 100644 index 00000000..088fbb9b --- /dev/null +++ b/packages/bundler-plugins/tsconfig.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../tsconfig.json", + "include": ["./src/**/*.ts", "./package.json"], + "compilerOptions": { + "esModuleInterop": true + } +} diff --git a/packages/bundler-plugins/types.tsconfig.json b/packages/bundler-plugins/types.tsconfig.json new file mode 100644 index 00000000..e427dd96 --- /dev/null +++ b/packages/bundler-plugins/types.tsconfig.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "include": ["./src/**/*"], + "compilerOptions": { + "rootDir": "./src", + "declaration": true, + "emitDeclarationOnly": true, + "declarationDir": "./dist/types" + } +} diff --git a/packages/esbuild-plugin/package.json b/packages/esbuild-plugin/package.json index 28783841..153bdb37 100644 --- a/packages/esbuild-plugin/package.json +++ b/packages/esbuild-plugin/package.json @@ -43,16 +43,14 @@ "clean:all": "run-p clean clean:deps", "clean:build": "premove ./dist *.tgz", "clean:deps": "premove node_modules", - "test": "vitest run", "prepack": "node ./prepack.mjs" }, "dependencies": { - "@sentry/bundler-plugin-core": "5.3.0" + "@sentry/bundler-plugins": "5.3.0" }, "devDependencies": { "@sentry-internal/dev-utils": "5.3.0", "@types/node": "^18.6.3", - "vitest": "^4.0.0", "premove": "^4.0.0", "rolldown": "^1.0.0" }, diff --git a/packages/esbuild-plugin/rollup.config.mjs b/packages/esbuild-plugin/rollup.config.mjs index 98d8b5dd..4e04614e 100644 --- a/packages/esbuild-plugin/rollup.config.mjs +++ b/packages/esbuild-plugin/rollup.config.mjs @@ -1,9 +1,11 @@ import packageJson from "./package.json" with { type: "json" }; +const deps = Object.keys(packageJson.dependencies ?? {}); + export default { platform: "node", input: ["src/index.ts"], - external: Object.keys(packageJson.dependencies), + external: (id) => deps.some((dep) => id === dep || id.startsWith(`${dep}/`)), output: [ { file: packageJson.module, diff --git a/packages/integration-tests-next/fixtures/esbuild/package.json b/packages/integration-tests-next/fixtures/esbuild/package.json index ae9341e2..b6f09666 100644 --- a/packages/integration-tests-next/fixtures/esbuild/package.json +++ b/packages/integration-tests-next/fixtures/esbuild/package.json @@ -9,6 +9,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/esbuild-plugin": "file:../../../esbuild-plugin/sentry-esbuild-plugin-5.3.0.tgz", "@sentry/babel-plugin-component-annotate": "file:../../../babel-plugin-component-annotate/sentry-babel-plugin-component-annotate-5.3.0.tgz" diff --git a/packages/integration-tests-next/fixtures/rolldown/package.json b/packages/integration-tests-next/fixtures/rolldown/package.json index 1aec87ac..43b95341 100644 --- a/packages/integration-tests-next/fixtures/rolldown/package.json +++ b/packages/integration-tests-next/fixtures/rolldown/package.json @@ -10,6 +10,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/rollup-plugin": "file:../../../rollup-plugin/sentry-rollup-plugin-5.3.0.tgz", "@sentry/babel-plugin-component-annotate": "file:../../../babel-plugin-component-annotate/sentry-babel-plugin-component-annotate-5.3.0.tgz" diff --git a/packages/integration-tests-next/fixtures/rollup3/package.json b/packages/integration-tests-next/fixtures/rollup3/package.json index 53cd21e6..aa29336e 100644 --- a/packages/integration-tests-next/fixtures/rollup3/package.json +++ b/packages/integration-tests-next/fixtures/rollup3/package.json @@ -12,6 +12,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/rollup-plugin": "file:../../../rollup-plugin/sentry-rollup-plugin-5.3.0.tgz", "@sentry/babel-plugin-component-annotate": "file:../../../babel-plugin-component-annotate/sentry-babel-plugin-component-annotate-5.3.0.tgz" diff --git a/packages/integration-tests-next/fixtures/rollup4/package.json b/packages/integration-tests-next/fixtures/rollup4/package.json index 944d4479..5abcc765 100644 --- a/packages/integration-tests-next/fixtures/rollup4/package.json +++ b/packages/integration-tests-next/fixtures/rollup4/package.json @@ -12,6 +12,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/rollup-plugin": "file:../../../rollup-plugin/sentry-rollup-plugin-5.3.0.tgz", "@sentry/babel-plugin-component-annotate": "file:../../../babel-plugin-component-annotate/sentry-babel-plugin-component-annotate-5.3.0.tgz" diff --git a/packages/integration-tests-next/fixtures/vite4/package.json b/packages/integration-tests-next/fixtures/vite4/package.json index 0a10b4e9..cd6089fc 100644 --- a/packages/integration-tests-next/fixtures/vite4/package.json +++ b/packages/integration-tests-next/fixtures/vite4/package.json @@ -11,6 +11,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/rollup-plugin": "file:../../../rollup-plugin/sentry-rollup-plugin-5.3.0.tgz", "@sentry/vite-plugin": "file:../../../vite-plugin/sentry-vite-plugin-5.3.0.tgz", diff --git a/packages/integration-tests-next/fixtures/vite6/package.json b/packages/integration-tests-next/fixtures/vite6/package.json index 038495ef..adf5500e 100644 --- a/packages/integration-tests-next/fixtures/vite6/package.json +++ b/packages/integration-tests-next/fixtures/vite6/package.json @@ -9,6 +9,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/rollup-plugin": "file:../../../rollup-plugin/sentry-rollup-plugin-5.3.0.tgz", "@sentry/vite-plugin": "file:../../../vite-plugin/sentry-vite-plugin-5.3.0.tgz", diff --git a/packages/integration-tests-next/fixtures/vite7/package.json b/packages/integration-tests-next/fixtures/vite7/package.json index 9a7ea880..14b5d21e 100644 --- a/packages/integration-tests-next/fixtures/vite7/package.json +++ b/packages/integration-tests-next/fixtures/vite7/package.json @@ -11,6 +11,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/rollup-plugin": "file:../../../rollup-plugin/sentry-rollup-plugin-5.3.0.tgz", "@sentry/vite-plugin": "file:../../../vite-plugin/sentry-vite-plugin-5.3.0.tgz", diff --git a/packages/integration-tests-next/fixtures/vite8/package.json b/packages/integration-tests-next/fixtures/vite8/package.json index 6843a41a..0ee48e39 100644 --- a/packages/integration-tests-next/fixtures/vite8/package.json +++ b/packages/integration-tests-next/fixtures/vite8/package.json @@ -11,6 +11,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/rollup-plugin": "file:../../../rollup-plugin/sentry-rollup-plugin-5.3.0.tgz", "@sentry/vite-plugin": "file:../../../vite-plugin/sentry-vite-plugin-5.3.0.tgz", diff --git a/packages/integration-tests-next/fixtures/webpack5/package.json b/packages/integration-tests-next/fixtures/webpack5/package.json index 7b433701..20bf49a2 100644 --- a/packages/integration-tests-next/fixtures/webpack5/package.json +++ b/packages/integration-tests-next/fixtures/webpack5/package.json @@ -12,6 +12,7 @@ }, "pnpm": { "overrides": { + "@sentry/bundler-plugins": "file:../../../bundler-plugins/sentry-bundler-plugins-5.3.0.tgz", "@sentry/bundler-plugin-core": "file:../../../bundler-plugin-core/sentry-bundler-plugin-core-5.3.0.tgz", "@sentry/webpack-plugin": "file:../../../webpack-plugin/sentry-webpack-plugin-5.3.0.tgz", "@sentry/babel-plugin-component-annotate": "file:../../../babel-plugin-component-annotate/sentry-babel-plugin-component-annotate-5.3.0.tgz" diff --git a/packages/rollup-plugin/package.json b/packages/rollup-plugin/package.json index bef25022..8bfa911a 100644 --- a/packages/rollup-plugin/package.json +++ b/packages/rollup-plugin/package.json @@ -44,12 +44,10 @@ "clean:all": "run-p clean clean:deps", "clean:build": "premove ./dist *.tgz", "clean:deps": "premove node_modules", - "test": "vitest run", "prepack": "node ./prepack.mjs" }, "dependencies": { - "@sentry/bundler-plugin-core": "5.3.0", - "magic-string": "~0.30.8" + "@sentry/bundler-plugins": "5.3.0" }, "peerDependencies": { "rollup": ">=3.2.0" @@ -62,7 +60,6 @@ "devDependencies": { "@sentry-internal/dev-utils": "5.3.0", "@types/node": "^18.6.3", - "vitest": "^4.0.0", "premove": "^4.0.0", "rolldown": "^1.0.0" }, diff --git a/packages/rollup-plugin/rollup.config.mjs b/packages/rollup-plugin/rollup.config.mjs index 98d8b5dd..4e04614e 100644 --- a/packages/rollup-plugin/rollup.config.mjs +++ b/packages/rollup-plugin/rollup.config.mjs @@ -1,9 +1,11 @@ import packageJson from "./package.json" with { type: "json" }; +const deps = Object.keys(packageJson.dependencies ?? {}); + export default { platform: "node", input: ["src/index.ts"], - external: Object.keys(packageJson.dependencies), + external: (id) => deps.some((dep) => id === dep || id.startsWith(`${dep}/`)), output: [ { file: packageJson.module, diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index a113eaaa..16075874 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -43,17 +43,14 @@ "clean:all": "run-p clean clean:deps", "clean:build": "premove ./dist *.tgz", "clean:deps": "premove node_modules", - "test": "vitest run", "prepack": "node ./prepack.mjs" }, "dependencies": { - "@sentry/bundler-plugin-core": "5.3.0", - "@sentry/rollup-plugin": "5.3.0" + "@sentry/bundler-plugins": "5.3.0" }, "devDependencies": { "@sentry-internal/dev-utils": "5.3.0", "@types/node": "^18.6.3", - "vitest": "^4.0.0", "premove": "^4.0.0", "rolldown": "^1.0.0" }, diff --git a/packages/vite-plugin/rollup.config.mjs b/packages/vite-plugin/rollup.config.mjs index 98d8b5dd..4e04614e 100644 --- a/packages/vite-plugin/rollup.config.mjs +++ b/packages/vite-plugin/rollup.config.mjs @@ -1,9 +1,11 @@ import packageJson from "./package.json" with { type: "json" }; +const deps = Object.keys(packageJson.dependencies ?? {}); + export default { platform: "node", input: ["src/index.ts"], - external: Object.keys(packageJson.dependencies), + external: (id) => deps.some((dep) => id === dep || id.startsWith(`${dep}/`)), output: [ { file: packageJson.module, diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index a8c39130..d3677ac3 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -48,17 +48,15 @@ "clean:all": "run-p clean clean:deps", "clean:build": "premove ./dist *.tgz", "clean:deps": "premove node_modules", - "test": "vitest run", "prepack": "node ./prepack.mjs" }, "dependencies": { - "@sentry/bundler-plugin-core": "5.3.0" + "@sentry/bundler-plugins": "5.3.0" }, "devDependencies": { "@sentry-internal/dev-utils": "5.3.0", "@types/node": "^18.6.3", "@types/webpack": "npm:@types/webpack@^4", - "vitest": "^4.0.0", "premove": "^4.0.0", "rolldown": "^1.0.0", "webpack": "5.76.0" diff --git a/packages/webpack-plugin/rollup.config.mjs b/packages/webpack-plugin/rollup.config.mjs index 3895fc9c..0b39609f 100644 --- a/packages/webpack-plugin/rollup.config.mjs +++ b/packages/webpack-plugin/rollup.config.mjs @@ -3,8 +3,11 @@ import modulePackage from "module"; export default { platform: "node", - input: ["src/index.ts", "src/webpack5.ts", "src/component-annotation-transform.ts"], - external: [...Object.keys(packageJson.dependencies), ...modulePackage.builtinModules, "webpack"], + input: ["src/index.ts", "src/webpack5.ts"], + external: (id) => + [...Object.keys(packageJson.dependencies), ...modulePackage.builtinModules].some( + (dep) => id === dep || id.startsWith(`${dep}/`) + ), output: [ { dir: "./dist/esm", diff --git a/yarn.lock b/yarn.lock index 9db5b31f..fab98a70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0", "@ampproject/remapping@^2.2.0": +"@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== @@ -10,7 +10,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.16.7", "@babel/code-frame@^7.23.5": +"@babel/code-frame@^7.23.5": version "7.23.5" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== @@ -23,27 +23,6 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@7.18.5": - version "7.18.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000" - integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.5" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.5" - "@babel/types" "^7.18.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - "@babel/core@^7.18.5": version "7.24.0" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" @@ -65,7 +44,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.18.2", "@babel/generator@^7.23.6": +"@babel/generator@^7.23.6": version "7.23.6" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== @@ -82,7 +61,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.18.2", "@babel/helper-compilation-targets@^7.23.6": +"@babel/helper-compilation-targets@^7.23.6": version "7.23.6" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== @@ -120,7 +99,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.18.0", "@babel/helper-module-transforms@^7.23.3": +"@babel/helper-module-transforms@^7.23.3": version "7.23.3" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== @@ -165,7 +144,7 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helpers@^7.18.2", "@babel/helpers@^7.24.0": +"@babel/helpers@^7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== @@ -183,7 +162,7 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.18.5", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== @@ -240,7 +219,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.23.3" -"@babel/template@^7.16.7", "@babel/template@^7.22.15", "@babel/template@^7.24.0": +"@babel/template@^7.22.15", "@babel/template@^7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== @@ -249,7 +228,7 @@ "@babel/parser" "^7.24.0" "@babel/types" "^7.24.0" -"@babel/traverse@^7.18.5", "@babel/traverse@^7.24.0": +"@babel/traverse@^7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== @@ -265,7 +244,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.4", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.0": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== @@ -289,13 +268,6 @@ dependencies: tslib "^2.4.0" -"@emnapi/wasi-threads@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" - integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== - dependencies: - tslib "^2.4.0" - "@emnapi/wasi-threads@1.2.1": version "1.2.1" resolved "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz#28fed21a1ba1ce797c44a070abc94d42f3ae8548" @@ -2055,11 +2027,6 @@ content-type@~1.0.4: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -3160,7 +3127,7 @@ json-schema-traverse@^0.4.1: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json5@^2.2.1, json5@^2.2.2, json5@^2.2.3: +json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -3348,7 +3315,7 @@ ms@2.1.3: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@^3.3.11, nanoid@^3.3.6: +nanoid@^3.3.11: version "3.3.11" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== @@ -3966,7 +3933,7 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -4053,7 +4020,7 @@ signal-exit@^3.0.2: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -source-map-js@^1.0.2, source-map-js@^1.2.1: +source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== From c7407fd28acb1f6509038bc2c2d86c48bc58bb47 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 4 Jun 2026 14:39:26 +0100 Subject: [PATCH 2/5] Add stubs after renames --- packages/babel-plugin-component-annotate/src/index.ts | 4 ++++ packages/bundler-plugin-core/src/index.ts | 1 + packages/esbuild-plugin/src/index.ts | 1 + packages/rollup-plugin/src/index.ts | 1 + packages/vite-plugin/src/index.ts | 1 + packages/webpack-plugin/src/index.ts | 1 + packages/webpack-plugin/src/webpack5.ts | 1 + 7 files changed, 10 insertions(+) create mode 100644 packages/babel-plugin-component-annotate/src/index.ts create mode 100644 packages/bundler-plugin-core/src/index.ts create mode 100644 packages/esbuild-plugin/src/index.ts create mode 100644 packages/rollup-plugin/src/index.ts create mode 100644 packages/vite-plugin/src/index.ts create mode 100644 packages/webpack-plugin/src/index.ts create mode 100644 packages/webpack-plugin/src/webpack5.ts diff --git a/packages/babel-plugin-component-annotate/src/index.ts b/packages/babel-plugin-component-annotate/src/index.ts new file mode 100644 index 00000000..e3970985 --- /dev/null +++ b/packages/babel-plugin-component-annotate/src/index.ts @@ -0,0 +1,4 @@ +export { + default, + experimentalComponentNameAnnotatePlugin, +} from "@sentry/bundler-plugins/babel-plugin"; diff --git a/packages/bundler-plugin-core/src/index.ts b/packages/bundler-plugin-core/src/index.ts new file mode 100644 index 00000000..cec33da9 --- /dev/null +++ b/packages/bundler-plugin-core/src/index.ts @@ -0,0 +1 @@ +export * from "@sentry/bundler-plugins/core"; diff --git a/packages/esbuild-plugin/src/index.ts b/packages/esbuild-plugin/src/index.ts new file mode 100644 index 00000000..e1929d6b --- /dev/null +++ b/packages/esbuild-plugin/src/index.ts @@ -0,0 +1 @@ +export * from "@sentry/bundler-plugins/esbuild"; diff --git a/packages/rollup-plugin/src/index.ts b/packages/rollup-plugin/src/index.ts new file mode 100644 index 00000000..bd60cf6c --- /dev/null +++ b/packages/rollup-plugin/src/index.ts @@ -0,0 +1 @@ +export * from "@sentry/bundler-plugins/rollup"; diff --git a/packages/vite-plugin/src/index.ts b/packages/vite-plugin/src/index.ts new file mode 100644 index 00000000..d8ab78aa --- /dev/null +++ b/packages/vite-plugin/src/index.ts @@ -0,0 +1 @@ +export * from "@sentry/bundler-plugins/vite"; diff --git a/packages/webpack-plugin/src/index.ts b/packages/webpack-plugin/src/index.ts new file mode 100644 index 00000000..8319369d --- /dev/null +++ b/packages/webpack-plugin/src/index.ts @@ -0,0 +1 @@ +export * from "@sentry/bundler-plugins/webpack"; diff --git a/packages/webpack-plugin/src/webpack5.ts b/packages/webpack-plugin/src/webpack5.ts new file mode 100644 index 00000000..86e5b39d --- /dev/null +++ b/packages/webpack-plugin/src/webpack5.ts @@ -0,0 +1 @@ +export * from "@sentry/bundler-plugins/webpack5"; From 859fcca502f11d5569db0ac9876a083d74409691 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 4 Jun 2026 15:55:34 +0100 Subject: [PATCH 3/5] Fix imports --- packages/bundler-plugins/src/core/index.ts | 2 +- packages/bundler-plugins/src/esbuild/index.ts | 8 ++++---- packages/bundler-plugins/src/rollup/index.ts | 8 ++++---- packages/bundler-plugins/src/vite/index.ts | 8 ++++---- packages/bundler-plugins/src/webpack/index.ts | 2 +- packages/bundler-plugins/src/webpack/webpack5.ts | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/bundler-plugins/src/core/index.ts b/packages/bundler-plugins/src/core/index.ts index a42ec5ab..425c86f9 100644 --- a/packages/bundler-plugins/src/core/index.ts +++ b/packages/bundler-plugins/src/core/index.ts @@ -1,7 +1,7 @@ import { transformAsync } from "@babel/core"; import componentNameAnnotatePlugin, { experimentalComponentNameAnnotatePlugin, -} from "@sentry/babel-plugin-component-annotate"; +} from "../babel-plugin"; import SentryCli from "@sentry/cli"; import { debug } from "@sentry/core"; import * as fs from "fs"; diff --git a/packages/bundler-plugins/src/esbuild/index.ts b/packages/bundler-plugins/src/esbuild/index.ts index 8da22f9a..57d5b2b6 100644 --- a/packages/bundler-plugins/src/esbuild/index.ts +++ b/packages/bundler-plugins/src/esbuild/index.ts @@ -1,4 +1,4 @@ -import type { Options } from "@sentry/bundler-plugin-core"; +import type { Options } from "../core"; import { createSentryBuildPluginManager, generateReleaseInjectorCode, @@ -6,7 +6,7 @@ import { getDebugIdSnippet, createDebugIdUploadFunction, CodeInjection, -} from "@sentry/bundler-plugin-core"; +} from "../core"; import * as path from "node:path"; import { createRequire } from "node:module"; import { randomUUID } from "node:crypto"; @@ -308,5 +308,5 @@ export function sentryEsbuildPlugin(userOptions: Options = {}): any { // eslint-disable-next-line @typescript-eslint/no-explicit-any export default sentryEsbuildPlugin; -export type { Options as SentryEsbuildPluginOptions } from "@sentry/bundler-plugin-core"; -export { sentryCliBinaryExists } from "@sentry/bundler-plugin-core"; +export type { Options as SentryEsbuildPluginOptions } from "../core"; +export { sentryCliBinaryExists } from "../core"; diff --git a/packages/bundler-plugins/src/rollup/index.ts b/packages/bundler-plugins/src/rollup/index.ts index 21c8ce7a..926e4c47 100644 --- a/packages/bundler-plugins/src/rollup/index.ts +++ b/packages/bundler-plugins/src/rollup/index.ts @@ -1,4 +1,4 @@ -import type { Options } from "@sentry/bundler-plugin-core"; +import type { Options } from "../core"; import { createSentryBuildPluginManager, generateReleaseInjectorCode, @@ -13,7 +13,7 @@ import { createComponentNameAnnotateHooks, replaceBooleanFlagsInCode, CodeInjection, -} from "@sentry/bundler-plugin-core"; +} from "../core"; import type { SourceMap } from "magic-string"; import MagicString from "magic-string"; import type { TransformResult } from "rollup"; @@ -261,5 +261,5 @@ export function sentryRollupPlugin(userOptions: Options = {}): any { return [_rollupPluginInternal(userOptions, "rollup")]; } -export type { Options as SentryRollupPluginOptions } from "@sentry/bundler-plugin-core"; -export { sentryCliBinaryExists } from "@sentry/bundler-plugin-core"; +export type { Options as SentryRollupPluginOptions } from "../core"; +export { sentryCliBinaryExists } from "../core"; diff --git a/packages/bundler-plugins/src/vite/index.ts b/packages/bundler-plugins/src/vite/index.ts index c4fc5620..6ca804ea 100644 --- a/packages/bundler-plugins/src/vite/index.ts +++ b/packages/bundler-plugins/src/vite/index.ts @@ -1,5 +1,5 @@ -import type { SentryRollupPluginOptions } from "@sentry/rollup-plugin"; -import { _rollupPluginInternal } from "@sentry/rollup-plugin"; +import type { SentryRollupPluginOptions } from "../rollup"; +import { _rollupPluginInternal } from "../rollup"; import { createRequire } from "node:module"; interface SentryVitePlugin { @@ -30,5 +30,5 @@ export const sentryVitePlugin = (options?: SentryRollupPluginOptions): SentryVit ]; }; -export type { Options as SentryVitePluginOptions } from "@sentry/bundler-plugin-core"; -export { sentryCliBinaryExists } from "@sentry/bundler-plugin-core"; +export type { Options as SentryVitePluginOptions } from "../core"; +export { sentryCliBinaryExists } from "../core"; diff --git a/packages/bundler-plugins/src/webpack/index.ts b/packages/bundler-plugins/src/webpack/index.ts index 8e329568..a63ffaa2 100644 --- a/packages/bundler-plugins/src/webpack/index.ts +++ b/packages/bundler-plugins/src/webpack/index.ts @@ -13,6 +13,6 @@ export const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any DefinePlugin, }); -export { sentryCliBinaryExists } from "@sentry/bundler-plugin-core"; +export { sentryCliBinaryExists } from "../core"; export type { SentryWebpackPluginOptions }; diff --git a/packages/bundler-plugins/src/webpack/webpack5.ts b/packages/bundler-plugins/src/webpack/webpack5.ts index fb77007c..410b660c 100644 --- a/packages/bundler-plugins/src/webpack/webpack5.ts +++ b/packages/bundler-plugins/src/webpack/webpack5.ts @@ -7,6 +7,6 @@ const createSentryWebpackPlugin = sentryWebpackPluginFactory(); export const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any = createSentryWebpackPlugin; -export { sentryCliBinaryExists } from "@sentry/bundler-plugin-core"; +export { sentryCliBinaryExists } from "../core"; export type { SentryWebpackPluginOptions }; From da28bb8f564b7a4fed1483d168dc058391a82a36 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 4 Jun 2026 15:59:50 +0100 Subject: [PATCH 4/5] Fix formatting --- .oxfmtrc.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.oxfmtrc.json b/.oxfmtrc.json index ba18e1d9..b34fe264 100644 --- a/.oxfmtrc.json +++ b/.oxfmtrc.json @@ -3,5 +3,9 @@ "printWidth": 100, "experimentalSortPackageJson": false, "trailingComma": "es5", - "ignorePatterns": ["packages/bundler-plugin-core/test/fixtures", ".nxcache"] + "ignorePatterns": [ + "packages/bundler-plugin-core/test/fixtures", + "packages/bundler-plugins/test/core/fixtures", + ".nxcache" + ] } From ce5db09c7b9fafea06e58bc3cdc54fa4235212c7 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 4 Jun 2026 17:10:12 +0100 Subject: [PATCH 5/5] PR review --- packages/esbuild-plugin/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/esbuild-plugin/src/index.ts b/packages/esbuild-plugin/src/index.ts index e1929d6b..80e70f70 100644 --- a/packages/esbuild-plugin/src/index.ts +++ b/packages/esbuild-plugin/src/index.ts @@ -1 +1,2 @@ export * from "@sentry/bundler-plugins/esbuild"; +export { default } from "@sentry/bundler-plugins/esbuild";