Skip to content

Commit 1176887

Browse files
committed
feat: Add @sentry/bundler-plugins core package
1 parent c63ec4d commit 1176887

87 files changed

Lines changed: 355 additions & 135 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ yarn-error.log
1111
packages/**/yarn.lock
1212

1313
.DS_Store
14-
packages/bundler-plugin-core/src/version.ts
14+
packages/bundler-plugins/src/core/version.ts
1515
packages/integration-tests-next/fixtures/**/pnpm-lock.yaml

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"workspaces": [
99
"packages/babel-plugin-component-annotate",
1010
"packages/bundler-plugin-core",
11+
"packages/bundler-plugins",
1112
"packages/dev-utils",
1213
"packages/esbuild-plugin",
1314
"packages/playground",

packages/babel-plugin-component-annotate/package.json

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,13 @@
4545
"clean": "run-s clean:build",
4646
"clean:all": "run-p clean clean:deps",
4747
"clean:build": "premove ./dist *.tgz",
48-
"clean:deps": "premove node_modules",
49-
"test": "vitest run"
48+
"clean:deps": "premove node_modules"
49+
},
50+
"dependencies": {
51+
"@sentry/bundler-plugins": "5.3.0"
5052
},
5153
"devDependencies": {
52-
"@babel/core": "7.18.5",
53-
"@types/babel__core": "^7.20.5",
54-
"@babel/preset-react": "^7.23.3",
5554
"@types/node": "^18.6.3",
56-
"vitest": "^4.0.0",
5755
"premove": "^4.0.0",
5856
"rolldown": "^1.0.0"
5957
},

packages/babel-plugin-component-annotate/rollup.config.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import packageJson from "./package.json" with { type: "json" };
22

3+
const deps = Object.keys(packageJson.dependencies ?? {});
4+
35
export default {
46
platform: "node",
57
input: ["src/index.ts"],
6-
external: Object.keys(packageJson.dependencies ?? []),
8+
external: (id) => deps.some((dep) => id === dep || id.startsWith(`${dep}/`)),
79
output: [
810
{
911
file: packageJson.module,

packages/bundler-plugin-core/package.json

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
"module": "dist/esm/index.mjs",
3434
"types": "dist/types/index.d.ts",
3535
"scripts": {
36-
"prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
37-
"build": "premove ./out && run-p build:rollup build:types && run-s build:npm",
36+
"build": "premove ./dist && run-p build:rollup build:types && run-s build:npm",
3837
"build:watch": "run-p build:rollup:watch build:types:watch",
3938
"build:rollup": "rolldown --config rollup.config.mjs",
4039
"build:rollup:watch": "rolldown --config rollup.config.mjs --watch --no-watch.clearScreen",
@@ -47,26 +46,15 @@
4746
"clean": "run-s clean:build",
4847
"clean:all": "run-p clean clean:deps",
4948
"clean:build": "premove ./dist *.tgz",
50-
"clean:deps": "premove node_modules",
51-
"pretest": "yarn prebuild",
52-
"test": "vitest run"
49+
"clean:deps": "premove node_modules"
5350
},
5451
"dependencies": {
55-
"@babel/core": "^7.18.5",
56-
"@sentry/babel-plugin-component-annotate": "5.3.0",
57-
"@sentry/cli": "^2.58.6",
58-
"dotenv": "^16.3.1",
59-
"find-up": "^5.0.0",
60-
"glob": "^13.0.6",
61-
"magic-string": "~0.30.8"
52+
"@sentry/bundler-plugins": "5.3.0"
6253
},
6354
"devDependencies": {
64-
"@sentry/core": "10.56.0",
65-
"@sentry/types": "10.56.0",
6655
"@types/node": "^18.6.3",
6756
"premove": "^4.0.0",
68-
"rolldown": "^1.0.0",
69-
"vitest": "^4.0.0"
57+
"rolldown": "^1.0.0"
7058
},
7159
"volta": {
7260
"extends": "../../package.json"

packages/bundler-plugin-core/rollup.config.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import packageJson from "./package.json" with { type: "json" };
22

3+
const deps = Object.keys(packageJson.dependencies ?? {});
4+
35
export default {
46
platform: "node",
57
input: ["src/index.ts"],
6-
external: Object.keys(packageJson.dependencies),
8+
external: (id) => deps.some((dep) => id === dep || id.startsWith(`${dep}/`)),
79
output: [
810
{
911
file: packageJson.module,
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dist
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
{
2+
"name": "@sentry/bundler-plugins",
3+
"version": "5.3.0",
4+
"description": "Sentry Bundler Plugins",
5+
"repository": "git://github.com/getsentry/sentry-javascript-bundler-plugins.git",
6+
"homepage": "https://github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/bundler-plugins",
7+
"author": "Sentry",
8+
"license": "MIT",
9+
"publishConfig": {
10+
"access": "public"
11+
},
12+
"files": [
13+
"dist",
14+
"sentry-release-injection-file.js",
15+
"sentry-esbuild-debugid-injection-file.js"
16+
],
17+
"exports": {
18+
"./webpack": {
19+
"types": "./dist/types/webpack/index.d.ts",
20+
"import": "./dist/esm/webpack/index.mjs",
21+
"require": "./dist/cjs/webpack/index.js"
22+
},
23+
"./webpack5": {
24+
"types": "./dist/types/webpack/webpack5.d.ts",
25+
"import": "./dist/esm/webpack/webpack5.mjs",
26+
"require": "./dist/cjs/webpack/webpack5.js"
27+
},
28+
"./rollup": {
29+
"types": "./dist/types/rollup/index.d.ts",
30+
"import": "./dist/esm/rollup/index.mjs",
31+
"require": "./dist/cjs/rollup/index.js"
32+
},
33+
"./vite": {
34+
"types": "./dist/types/vite/index.d.ts",
35+
"import": "./dist/esm/vite/index.mjs",
36+
"require": "./dist/cjs/vite/index.js"
37+
},
38+
"./esbuild": {
39+
"types": "./dist/types/esbuild/index.d.ts",
40+
"import": "./dist/esm/esbuild/index.mjs",
41+
"require": "./dist/cjs/esbuild/index.js"
42+
},
43+
"./core": {
44+
"types": "./dist/types/core/index.d.ts",
45+
"import": "./dist/esm/core/index.mjs",
46+
"require": "./dist/cjs/core/index.js"
47+
},
48+
"./babel-plugin": {
49+
"types": "./dist/types/babel-plugin/index.d.ts",
50+
"import": "./dist/esm/babel-plugin/index.mjs",
51+
"require": "./dist/cjs/babel-plugin/index.js"
52+
},
53+
"./sentry-release-injection-file": {
54+
"import": "./sentry-release-injection-file.js",
55+
"require": "./sentry-release-injection-file.js"
56+
},
57+
"./sentry-esbuild-debugid-injection-file": {
58+
"import": "./sentry-esbuild-debugid-injection-file.js",
59+
"require": "./sentry-esbuild-debugid-injection-file.js"
60+
},
61+
"./webpack-loader": {
62+
"require": "./dist/cjs/webpack/component-annotation-transform.js"
63+
}
64+
},
65+
"scripts": {
66+
"prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/core/version.ts",
67+
"build": "premove ./dist && run-p build:rollup build:types && run-s build:npm",
68+
"build:watch": "run-p build:rollup:watch build:types:watch",
69+
"build:rollup": "rolldown --config rollup.config.mjs",
70+
"build:rollup:watch": "rolldown --config rollup.config.mjs --watch --no-watch.clearScreen",
71+
"build:types": "tsc --project types.tsconfig.json",
72+
"build:types:watch": "tsc --project types.tsconfig.json --watch --preserveWatchOutput",
73+
"build:npm": "npm pack",
74+
"check:types": "run-p check:types:src check:types:test",
75+
"check:types:src": "tsc --project ./tsconfig.json --noEmit",
76+
"check:types:test": "tsc --project ./test/tsconfig.json --noEmit",
77+
"clean": "run-s clean:build",
78+
"clean:all": "run-p clean clean:deps",
79+
"clean:build": "premove ./dist *.tgz",
80+
"clean:deps": "premove node_modules",
81+
"pretest": "yarn prebuild",
82+
"test": "vitest run"
83+
},
84+
"dependencies": {
85+
"@babel/core": "^7.18.5",
86+
"@sentry/cli": "^2.58.6",
87+
"dotenv": "^16.3.1",
88+
"find-up": "^5.0.0",
89+
"glob": "^13.0.6",
90+
"magic-string": "~0.30.8"
91+
},
92+
"peerDependencies": {
93+
"rollup": ">=3.2.0",
94+
"webpack": ">=5.0.0"
95+
},
96+
"peerDependenciesMeta": {
97+
"rollup": {
98+
"optional": true
99+
},
100+
"webpack": {
101+
"optional": true
102+
}
103+
},
104+
"devDependencies": {
105+
"@babel/preset-react": "^7.23.3",
106+
"@sentry/core": "10.56.0",
107+
"@sentry/types": "10.56.0",
108+
"@sentry-internal/dev-utils": "5.3.0",
109+
"@types/babel__core": "^7.20.5",
110+
"@types/node": "^18.6.3",
111+
"@types/webpack": "npm:@types/webpack@^4",
112+
"premove": "^4.0.0",
113+
"rolldown": "^1.0.0",
114+
"vitest": "^4.0.0",
115+
"webpack": "5.76.0"
116+
},
117+
"volta": {
118+
"extends": "../../package.json"
119+
},
120+
"engines": {
121+
"node": ">= 18"
122+
},
123+
"sideEffects": [
124+
"./sentry-release-injection-file.js",
125+
"./sentry-esbuild-debugid-injection-file.js"
126+
]
127+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import packageJson from "./package.json" with { type: "json" };
2+
import modulePackage from "module";
3+
import path from "node:path";
4+
import { fileURLToPath } from "node:url";
5+
6+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
7+
const srcDir = path.resolve(__dirname, "src");
8+
9+
const external = [
10+
...Object.keys(packageJson.dependencies || {}),
11+
...modulePackage.builtinModules,
12+
"webpack",
13+
"rollup",
14+
"vite",
15+
];
16+
17+
export default {
18+
platform: "node",
19+
input: [
20+
"src/babel-plugin/index.ts",
21+
"src/core/index.ts",
22+
"src/rollup/index.ts",
23+
"src/vite/index.ts",
24+
"src/esbuild/index.ts",
25+
"src/webpack/index.ts",
26+
"src/webpack/webpack5.ts",
27+
"src/webpack/component-annotation-transform.ts",
28+
],
29+
external,
30+
output: [
31+
{
32+
dir: "./dist/esm",
33+
format: "esm",
34+
exports: "named",
35+
sourcemap: true,
36+
entryFileNames: (chunkInfo) => {
37+
if (chunkInfo.facadeModuleId) {
38+
const rel = path.relative(srcDir, chunkInfo.facadeModuleId);
39+
return rel.replace(/\.ts$/, ".mjs");
40+
}
41+
return "[name].mjs";
42+
},
43+
chunkFileNames: "_chunks/[name]-[hash].mjs",
44+
},
45+
{
46+
dir: "./dist/cjs",
47+
format: "cjs",
48+
exports: "named",
49+
sourcemap: true,
50+
entryFileNames: (chunkInfo) => {
51+
if (chunkInfo.facadeModuleId) {
52+
const rel = path.relative(srcDir, chunkInfo.facadeModuleId);
53+
return rel.replace(/\.ts$/, ".js");
54+
}
55+
return "[name].js";
56+
},
57+
chunkFileNames: "_chunks/[name]-[hash].js",
58+
},
59+
],
60+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
try {
2+
let globalObject =
3+
"undefined" != typeof window
4+
? window
5+
: "undefined" != typeof global
6+
? global
7+
: "undefined" != typeof globalThis
8+
? global
9+
: "undefined" != typeof self
10+
? self
11+
: {};
12+
13+
let stack = new globalObject.Error().stack;
14+
15+
if (stack) {
16+
globalObject._sentryDebugIds = globalObject._sentryDebugIds || {};
17+
globalObject._sentryDebugIds[stack] = "__SENTRY_DEBUG_ID__";
18+
globalObject._sentryDebugIdIdentifier = "sentry-dbid-__SENTRY_DEBUG_ID__";
19+
}
20+
} catch {}

0 commit comments

Comments
 (0)