@sentry/webpack-plugin 4.7.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/cjs/index.js +25 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/webpack4and5.js +6 -5
- package/dist/cjs/webpack4and5.js.map +1 -1
- package/dist/esm/index.mjs +26 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/webpack4and5.mjs +6 -6
- package/dist/esm/webpack4and5.mjs.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -123,6 +123,7 @@ SENTRY_PROJECT=frontend-team-a,frontend-team-b,frontend-team-c
|
|
|
123
123
|
- [`reactComponentAnnotation`](#reactcomponentannotation)
|
|
124
124
|
- [`enabled`](#reactcomponentannotationenabled)
|
|
125
125
|
- [`ignoredComponents`](#reactcomponentannotationignoredcomponents)
|
|
126
|
+
- [`_experimentalInjectIntoHtml`](#reactcomponentannotation_experimentalinjectintohtml)
|
|
126
127
|
- [`moduleMetadata`](#modulemetadata)
|
|
127
128
|
- [`applicationKey`](#applicationkey)
|
|
128
129
|
- [`_experiments`](#_experiments)
|
|
@@ -663,6 +664,12 @@ Type: `string[]`
|
|
|
663
664
|
|
|
664
665
|
A list of strings representing the names of components to ignore. The plugin will not perform apply `data-sentry` annotations on the DOM element for these components.
|
|
665
666
|
|
|
667
|
+
### `reactComponentAnnotation._experimentalInjectIntoHtml`
|
|
668
|
+
|
|
669
|
+
Type: `boolean`
|
|
670
|
+
|
|
671
|
+
An experimental component annotation injection mode that injects annotations into HTML rather than React components.
|
|
672
|
+
|
|
666
673
|
### `moduleMetadata`
|
|
667
674
|
|
|
668
675
|
Type: `Record<string, any> | (args: { org?: string; project?: string; release?: string; }) => Record<string, any>`
|
package/dist/cjs/index.js
CHANGED
|
@@ -31,13 +31,37 @@ var webpack4or5__namespace = /*#__PURE__*/_interopNamespace(webpack4or5);
|
|
|
31
31
|
var _webpack4or5$default, _webpack4or5$default2;
|
|
32
32
|
var BannerPlugin = (webpack4or5__namespace === null || webpack4or5__namespace === void 0 ? void 0 : webpack4or5__namespace.BannerPlugin) || (webpack4or5__namespace === null || webpack4or5__namespace === void 0 ? void 0 : (_webpack4or5$default = webpack4or5__namespace["default"]) === null || _webpack4or5$default === void 0 ? void 0 : _webpack4or5$default.BannerPlugin);
|
|
33
33
|
var DefinePlugin = (webpack4or5__namespace === null || webpack4or5__namespace === void 0 ? void 0 : webpack4or5__namespace.DefinePlugin) || (webpack4or5__namespace === null || webpack4or5__namespace === void 0 ? void 0 : (_webpack4or5$default2 = webpack4or5__namespace["default"]) === null || _webpack4or5$default2 === void 0 ? void 0 : _webpack4or5$default2.DefinePlugin);
|
|
34
|
+
|
|
35
|
+
// Detect webpack major version for telemetry (helps differentiate webpack 4 vs 5 usage)
|
|
36
|
+
function getWebpackMajorVersion() {
|
|
37
|
+
try {
|
|
38
|
+
var _webpack$version, _webpack$default;
|
|
39
|
+
var webpack = webpack4or5__namespace;
|
|
40
|
+
var version = (_webpack$version = webpack === null || webpack === void 0 ? void 0 : webpack.version) !== null && _webpack$version !== void 0 ? _webpack$version : webpack === null || webpack === void 0 ? void 0 : (_webpack$default = webpack["default"]) === null || _webpack$default === void 0 ? void 0 : _webpack$default.version;
|
|
41
|
+
var _webpackMajorVersion = version === null || version === void 0 ? void 0 : version.split(".")[0]; // "4" or "5"
|
|
42
|
+
return _webpackMajorVersion;
|
|
43
|
+
} catch (error) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
var webpackMajorVersion = getWebpackMajorVersion();
|
|
34
48
|
var sentryUnplugin = webpack4and5.sentryWebpackUnpluginFactory({
|
|
35
49
|
BannerPlugin: BannerPlugin,
|
|
36
50
|
DefinePlugin: DefinePlugin
|
|
37
51
|
});
|
|
38
52
|
|
|
39
53
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
-
var sentryWebpackPlugin =
|
|
54
|
+
var sentryWebpackPlugin = function sentryWebpackPlugin(options) {
|
|
55
|
+
var _options$_metaOptions, _options$_metaOptions2, _options$_metaOptions3, _options$_metaOptions4;
|
|
56
|
+
var enhancedOptions = webpack4and5._objectSpread2(webpack4and5._objectSpread2({}, options), {}, {
|
|
57
|
+
_metaOptions: webpack4and5._objectSpread2(webpack4and5._objectSpread2({}, options === null || options === void 0 ? void 0 : options._metaOptions), {}, {
|
|
58
|
+
telemetry: webpack4and5._objectSpread2(webpack4and5._objectSpread2({}, options === null || options === void 0 ? void 0 : (_options$_metaOptions = options._metaOptions) === null || _options$_metaOptions === void 0 ? void 0 : _options$_metaOptions.telemetry), {}, {
|
|
59
|
+
bundlerMajorVersion: (_options$_metaOptions2 = options === null || options === void 0 ? void 0 : (_options$_metaOptions3 = options._metaOptions) === null || _options$_metaOptions3 === void 0 ? void 0 : (_options$_metaOptions4 = _options$_metaOptions3.telemetry) === null || _options$_metaOptions4 === void 0 ? void 0 : _options$_metaOptions4.bundlerMajorVersion) !== null && _options$_metaOptions2 !== void 0 ? _options$_metaOptions2 : webpackMajorVersion
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
return sentryUnplugin.webpack(enhancedOptions);
|
|
64
|
+
};
|
|
41
65
|
|
|
42
66
|
Object.defineProperty(exports, 'sentryCliBinaryExists', {
|
|
43
67
|
enumerable: true,
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { SentryWebpackPluginOptions, sentryWebpackUnpluginFactory } from \"./webpack4and5\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webpack4or5 from \"webpack\";\n\nconst BannerPlugin = webpack4or5?.BannerPlugin || webpack4or5?.default?.BannerPlugin;\n\nconst DefinePlugin = webpack4or5?.DefinePlugin || webpack4or5?.default?.DefinePlugin;\n\nconst sentryUnplugin = sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { SentryWebpackPluginOptions, sentryWebpackUnpluginFactory } from \"./webpack4and5\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webpack4or5 from \"webpack\";\n\nconst BannerPlugin = webpack4or5?.BannerPlugin || webpack4or5?.default?.BannerPlugin;\n\nconst DefinePlugin = webpack4or5?.DefinePlugin || webpack4or5?.default?.DefinePlugin;\n\n// Detect webpack major version for telemetry (helps differentiate webpack 4 vs 5 usage)\nfunction getWebpackMajorVersion(): string | undefined {\n try {\n const webpack = webpack4or5 as unknown as\n | { version?: string; default?: { version?: string } }\n | undefined;\n const version = webpack?.version ?? webpack?.default?.version;\n const webpackMajorVersion = version?.split(\".\")[0]; // \"4\" or \"5\"\n return webpackMajorVersion;\n } catch (error) {\n return undefined;\n }\n}\n\nconst webpackMajorVersion = getWebpackMajorVersion();\n\nconst sentryUnplugin = sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any = (options) => {\n const enhancedOptions: SentryWebpackPluginOptions = {\n ...options,\n _metaOptions: {\n ...options?._metaOptions,\n telemetry: {\n ...options?._metaOptions?.telemetry,\n bundlerMajorVersion:\n options?._metaOptions?.telemetry?.bundlerMajorVersion ?? webpackMajorVersion,\n },\n },\n };\n return sentryUnplugin.webpack(enhancedOptions);\n};\n\nexport { sentryCliBinaryExists } from \"@sentry/bundler-plugin-core\";\n\nexport type { SentryWebpackPluginOptions };\n"],"names":["BannerPlugin","webpack4or5","_webpack4or5$default","DefinePlugin","_webpack4or5$default2","getWebpackMajorVersion","_webpack$version","_webpack$default","webpack","version","webpackMajorVersion","split","error","undefined","sentryUnplugin","sentryWebpackUnpluginFactory","sentryWebpackPlugin","options","_options$_metaOptions","_options$_metaOptions2","_options$_metaOptions3","_options$_metaOptions4","enhancedOptions","_objectSpread","_metaOptions","telemetry","bundlerMajorVersion"],"mappings":"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"}
|
package/dist/cjs/webpack4and5.js
CHANGED
|
@@ -97,14 +97,14 @@ function webpackInjectionPlugin(UnsafeBannerPlugin) {
|
|
|
97
97
|
raw: true,
|
|
98
98
|
include: /\.(js|ts|jsx|tsx|mjs|cjs)(\?[^?]*)?(#[^#]*)?$/,
|
|
99
99
|
banner: function banner(arg) {
|
|
100
|
-
var codeToInject = injectionCode;
|
|
100
|
+
var codeToInject = injectionCode.clone();
|
|
101
101
|
if (debugIds) {
|
|
102
102
|
var _arg$chunk$contentHas, _arg$chunk, _arg$chunk$contentHas2, _arg$chunk2;
|
|
103
103
|
var hash = (_arg$chunk$contentHas = arg === null || arg === void 0 ? void 0 : (_arg$chunk = arg.chunk) === null || _arg$chunk === void 0 ? void 0 : (_arg$chunk$contentHas2 = _arg$chunk.contentHash) === null || _arg$chunk$contentHas2 === void 0 ? void 0 : _arg$chunk$contentHas2.javascript) !== null && _arg$chunk$contentHas !== void 0 ? _arg$chunk$contentHas : arg === null || arg === void 0 ? void 0 : (_arg$chunk2 = arg.chunk) === null || _arg$chunk2 === void 0 ? void 0 : _arg$chunk2.hash;
|
|
104
104
|
var debugId = hash ? bundlerPluginCore.stringToUUID(hash) : uuid.v4();
|
|
105
|
-
codeToInject
|
|
105
|
+
codeToInject.append(bundlerPluginCore.getDebugIdSnippet(debugId));
|
|
106
106
|
}
|
|
107
|
-
return codeToInject;
|
|
107
|
+
return codeToInject.code();
|
|
108
108
|
}
|
|
109
109
|
}));
|
|
110
110
|
}
|
|
@@ -112,7 +112,7 @@ function webpackInjectionPlugin(UnsafeBannerPlugin) {
|
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
function webpackComponentNameAnnotatePlugin() {
|
|
115
|
-
return function (ignoredComponents) {
|
|
115
|
+
return function (ignoredComponents, injectIntoHtml) {
|
|
116
116
|
return {
|
|
117
117
|
name: "sentry-webpack-component-name-annotate-plugin",
|
|
118
118
|
enforce: "pre",
|
|
@@ -120,7 +120,7 @@ function webpackComponentNameAnnotatePlugin() {
|
|
|
120
120
|
transformInclude: function transformInclude(id) {
|
|
121
121
|
return id.endsWith(".tsx") || id.endsWith(".jsx");
|
|
122
122
|
},
|
|
123
|
-
transform: bundlerPluginCore.createComponentNameAnnotateHooks(ignoredComponents).transform
|
|
123
|
+
transform: bundlerPluginCore.createComponentNameAnnotateHooks(ignoredComponents, injectIntoHtml).transform
|
|
124
124
|
};
|
|
125
125
|
};
|
|
126
126
|
}
|
|
@@ -197,5 +197,6 @@ function sentryWebpackUnpluginFactory() {
|
|
|
197
197
|
});
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
+
exports._objectSpread2 = _objectSpread2;
|
|
200
201
|
exports.sentryWebpackUnpluginFactory = sentryWebpackUnpluginFactory;
|
|
201
202
|
//# sourceMappingURL=webpack4and5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack4and5.js","sources":["../../src/webpack4and5.ts"],"sourcesContent":["import {\n getDebugIdSnippet,\n Options,\n sentryUnpluginFactory,\n stringToUUID,\n SentrySDKBuildFlags,\n createComponentNameAnnotateHooks,\n Logger,\n} from \"@sentry/bundler-plugin-core\";\nimport * as path from \"path\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n// since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version\n// https://github.com/webpack/webpack/commit/65eca2e529ce1d79b79200d4bdb1ce1b81141459\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n contentHash?: {\n javascript?: string;\n };\n };\n}\n\ntype UnsafeBannerPlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\ntype UnsafeDefinePlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\nfunction webpackInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string, debugIds: boolean) => UnpluginOptions {\n return (injectionCode: string, debugIds: boolean): UnpluginOptions => ({\n name: \"sentry-webpack-injection-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const BannerPlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.BannerPlugin || UnsafeBannerPlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new BannerPlugin({\n raw: true,\n include: /\\.(js|ts|jsx|tsx|mjs|cjs)(\\?[^?]*)?(#[^#]*)?$/,\n banner: (arg?: BannerPluginCallbackArg) => {\n let codeToInject = injectionCode;\n if (debugIds) {\n const hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(hash) : uuidv4();\n codeToInject += getDebugIdSnippet(debugId);\n }\n return codeToInject;\n },\n })\n );\n },\n });\n}\n\nfunction webpackComponentNameAnnotatePlugin(): (ignoredComponents?: string[]) => UnpluginOptions {\n return (ignoredComponents?: string[]) => ({\n name: \"sentry-webpack-component-name-annotate-plugin\",\n enforce: \"pre\",\n // Webpack needs this hook for loader logic, so the plugin is not run on unsupported file types\n transformInclude(id) {\n return id.endsWith(\".tsx\") || id.endsWith(\".jsx\");\n },\n transform: createComponentNameAnnotateHooks(ignoredComponents).transform,\n });\n}\n\nfunction webpackBundleSizeOptimizationsPlugin(\n UnsafeDefinePlugin: UnsafeDefinePlugin | undefined\n): (replacementValues: SentrySDKBuildFlags) => UnpluginOptions {\n return (replacementValues: SentrySDKBuildFlags) => ({\n name: \"sentry-webpack-bundle-size-optimizations-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const DefinePlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.DefinePlugin || UnsafeDefinePlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new DefinePlugin({\n ...replacementValues,\n })\n );\n },\n });\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n createDependencyOnBuildArtifacts: () => () => void,\n forceExitOnBuildCompletion?: boolean\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\n const freeGlobalDependencyOnDebugIdSourcemapArtifacts = createDependencyOnBuildArtifacts();\n\n compiler.hooks.afterEmit.tapAsync(pluginName, (compilation, callback: () => void) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const outputPath = (compilation.outputOptions.path as string | undefined) ?? path.resolve();\n const buildArtifacts = Object.keys(compilation.assets as Record<string, unknown>).map(\n (asset) => path.join(outputPath, asset)\n );\n void upload(buildArtifacts)\n .then(() => {\n callback();\n })\n .finally(() => {\n freeGlobalDependencyOnDebugIdSourcemapArtifacts();\n });\n });\n\n if (forceExitOnBuildCompletion && compiler.options.mode === \"production\") {\n compiler.hooks.done.tap(pluginName, () => {\n setTimeout(() => {\n logger.debug(\"Exiting process after debug file upload\");\n process.exit(0);\n });\n });\n }\n },\n };\n}\n\n/**\n * The factory function accepts BannerPlugin and DefinePlugin classes in\n * order to avoid direct dependencies on webpack.\n *\n * This allow us to export version of the plugin for webpack 5.1+ and compatible environments.\n *\n * Since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version.\n */\nexport function sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n}: {\n BannerPlugin?: UnsafeBannerPlugin;\n DefinePlugin?: UnsafeDefinePlugin;\n} = {}): ReturnType<typeof sentryUnpluginFactory> {\n return sentryUnpluginFactory({\n injectionPlugin: webpackInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin(DefinePlugin),\n });\n}\n\nexport type SentryWebpackPluginOptions = Options & {\n _experiments?: Options[\"_experiments\"] & {\n /**\n * If enabled, the webpack plugin will exit the build process after the build completes.\n * Use this with caution, as it will terminate the process.\n *\n * More information: https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/345\n *\n * @default false\n */\n forceExitOnBuildCompletion?: boolean;\n };\n};\n"],"names":["webpackInjectionPlugin","UnsafeBannerPlugin","injectionCode","debugIds","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","arg","codeToInject","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","getDebugIdSnippet","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdUploadPlugin","upload","logger","createDependencyOnBuildArtifacts","forceExitOnBuildCompletion","pluginName","freeGlobalDependencyOnDebugIdSourcemapArtifacts","hooks","afterEmit","tapAsync","compilation","callback","_ref","outputPath","outputOptions","path","resolve","buildArtifacts","Object","keys","assets","map","asset","join","then","mode","done","tap","setTimeout","debug","process","exit","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","injectionPlugin","componentNameAnnotatePlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webpack4and5.js","sources":["../../src/webpack4and5.ts"],"sourcesContent":["import {\n Options,\n sentryUnpluginFactory,\n stringToUUID,\n SentrySDKBuildFlags,\n createComponentNameAnnotateHooks,\n Logger,\n CodeInjection,\n getDebugIdSnippet,\n} from \"@sentry/bundler-plugin-core\";\nimport * as path from \"path\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n// since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version\n// https://github.com/webpack/webpack/commit/65eca2e529ce1d79b79200d4bdb1ce1b81141459\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n contentHash?: {\n javascript?: string;\n };\n };\n}\n\ntype UnsafeBannerPlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\ntype UnsafeDefinePlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\nfunction webpackInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: CodeInjection, debugIds: boolean) => UnpluginOptions {\n return (injectionCode: CodeInjection, debugIds: boolean): UnpluginOptions => ({\n name: \"sentry-webpack-injection-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const BannerPlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.BannerPlugin || UnsafeBannerPlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new BannerPlugin({\n raw: true,\n include: /\\.(js|ts|jsx|tsx|mjs|cjs)(\\?[^?]*)?(#[^#]*)?$/,\n banner: (arg?: BannerPluginCallbackArg) => {\n const codeToInject = injectionCode.clone();\n if (debugIds) {\n const hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(hash) : uuidv4();\n codeToInject.append(getDebugIdSnippet(debugId));\n }\n return codeToInject.code();\n },\n })\n );\n },\n });\n}\n\nfunction webpackComponentNameAnnotatePlugin(): (\n ignoredComponents: string[],\n injectIntoHtml: boolean\n) => UnpluginOptions {\n return (ignoredComponents: string[], injectIntoHtml: boolean) => ({\n name: \"sentry-webpack-component-name-annotate-plugin\",\n enforce: \"pre\",\n // Webpack needs this hook for loader logic, so the plugin is not run on unsupported file types\n transformInclude(id) {\n return id.endsWith(\".tsx\") || id.endsWith(\".jsx\");\n },\n transform: createComponentNameAnnotateHooks(ignoredComponents, injectIntoHtml).transform,\n });\n}\n\nfunction webpackBundleSizeOptimizationsPlugin(\n UnsafeDefinePlugin: UnsafeDefinePlugin | undefined\n): (replacementValues: SentrySDKBuildFlags) => UnpluginOptions {\n return (replacementValues: SentrySDKBuildFlags) => ({\n name: \"sentry-webpack-bundle-size-optimizations-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const DefinePlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.DefinePlugin || UnsafeDefinePlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new DefinePlugin({\n ...replacementValues,\n })\n );\n },\n });\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n createDependencyOnBuildArtifacts: () => () => void,\n forceExitOnBuildCompletion?: boolean\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\n const freeGlobalDependencyOnDebugIdSourcemapArtifacts = createDependencyOnBuildArtifacts();\n\n compiler.hooks.afterEmit.tapAsync(pluginName, (compilation, callback: () => void) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const outputPath = (compilation.outputOptions.path as string | undefined) ?? path.resolve();\n const buildArtifacts = Object.keys(compilation.assets as Record<string, unknown>).map(\n (asset) => path.join(outputPath, asset)\n );\n void upload(buildArtifacts)\n .then(() => {\n callback();\n })\n .finally(() => {\n freeGlobalDependencyOnDebugIdSourcemapArtifacts();\n });\n });\n\n if (forceExitOnBuildCompletion && compiler.options.mode === \"production\") {\n compiler.hooks.done.tap(pluginName, () => {\n setTimeout(() => {\n logger.debug(\"Exiting process after debug file upload\");\n process.exit(0);\n });\n });\n }\n },\n };\n}\n\n/**\n * The factory function accepts BannerPlugin and DefinePlugin classes in\n * order to avoid direct dependencies on webpack.\n *\n * This allow us to export version of the plugin for webpack 5.1+ and compatible environments.\n *\n * Since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version.\n */\nexport function sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n}: {\n BannerPlugin?: UnsafeBannerPlugin;\n DefinePlugin?: UnsafeDefinePlugin;\n} = {}): ReturnType<typeof sentryUnpluginFactory> {\n return sentryUnpluginFactory({\n injectionPlugin: webpackInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin(DefinePlugin),\n });\n}\n\nexport type SentryWebpackPluginOptions = Options & {\n _experiments?: Options[\"_experiments\"] & {\n /**\n * If enabled, the webpack plugin will exit the build process after the build completes.\n * Use this with caution, as it will terminate the process.\n *\n * More information: https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/345\n *\n * @default false\n */\n forceExitOnBuildCompletion?: boolean;\n };\n};\n"],"names":["webpackInjectionPlugin","UnsafeBannerPlugin","injectionCode","debugIds","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","arg","codeToInject","clone","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","append","getDebugIdSnippet","code","webpackComponentNameAnnotatePlugin","ignoredComponents","injectIntoHtml","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdUploadPlugin","upload","logger","createDependencyOnBuildArtifacts","forceExitOnBuildCompletion","pluginName","freeGlobalDependencyOnDebugIdSourcemapArtifacts","hooks","afterEmit","tapAsync","compilation","callback","_ref","outputPath","outputOptions","path","resolve","buildArtifacts","Object","keys","assets","map","asset","join","then","mode","done","tap","setTimeout","debug","process","exit","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","injectionPlugin","componentNameAnnotatePlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;AACA;AAqBA,SAASA,sBAAsBA,CAC7BC,kBAAkD,EACoB;EACtE,OAAO,UAACC,aAA4B,EAAEC,QAAiB,EAAA;IAAA,OAAuB;AAC5EC,MAAAA,IAAI,EAAE,iCAAiC;MACvCC,OAAO,EAAA,SAAAA,OAACC,CAAAA,QAAQ,EAAE;AAAA,QAAA,IAAAC,iBAAA,CAAA;AAChB;AACA;AACA;AACA,QAAA,IAAMC,YAAY;AAChB;AACA;AACA;AACA,QAAA,CAAAF,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,iBAAA,GAARD,QAAQ,CAAED,OAAO,MAAA,IAAA,IAAAE,iBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAmBC,YAAY,KAAIP,kBAAkB,CAAA;QAEvDK,QAAQ,CAACG,OAAO,CAACC,OAAO,GAAGJ,QAAQ,CAACG,OAAO,CAACC,OAAO,IAAI,EAAE,CAAA;AACzDJ,QAAAA,QAAQ,CAACG,OAAO,CAACC,OAAO,CAACC,IAAI;AAC3B;AACA,QAAA,IAAIH,YAAY,CAAC;AACfI,UAAAA,GAAG,EAAE,IAAI;AACTC,UAAAA,OAAO,EAAE,+CAA+C;AACxDC,UAAAA,MAAM,EAAE,SAAAA,MAACC,CAAAA,GAA6B,EAAK;AACzC,YAAA,IAAMC,YAAY,GAAGd,aAAa,CAACe,KAAK,EAAE,CAAA;AAC1C,YAAA,IAAId,QAAQ,EAAE;AAAA,cAAA,IAAAe,qBAAA,EAAAC,UAAA,EAAAC,sBAAA,EAAAC,WAAA,CAAA;cACZ,IAAMC,IAAI,IAAAJ,qBAAA,GAAGH,GAAG,KAAHA,IAAAA,IAAAA,GAAG,wBAAAI,UAAA,GAAHJ,GAAG,CAAEQ,KAAK,cAAAJ,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,sBAAA,GAAVD,UAAA,CAAYK,WAAW,MAAAJ,IAAAA,IAAAA,sBAAA,uBAAvBA,sBAAA,CAAyBK,UAAU,MAAAP,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAAIH,GAAG,KAAHA,IAAAA,IAAAA,GAAG,wBAAAM,WAAA,GAAHN,GAAG,CAAEQ,KAAK,cAAAF,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,WAAA,CAAYC,IAAI,CAAA;cACpE,IAAMI,OAAO,GAAGJ,IAAI,GAAGK,8BAAY,CAACL,IAAI,CAAC,GAAGM,OAAM,EAAE,CAAA;AACpDZ,cAAAA,YAAY,CAACa,MAAM,CAACC,mCAAiB,CAACJ,OAAO,CAAC,CAAC,CAAA;AACjD,aAAA;AACA,YAAA,OAAOV,YAAY,CAACe,IAAI,EAAE,CAAA;AAC5B,WAAA;AACF,SAAC,CACH,CAAC,CAAA;AACH,OAAA;KACD,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASC,kCAAkCA,GAGtB;EACnB,OAAO,UAACC,iBAA2B,EAAEC,cAAuB,EAAA;IAAA,OAAM;AAChE9B,MAAAA,IAAI,EAAE,+CAA+C;AACrD+B,MAAAA,OAAO,EAAE,KAAK;AACd;MACAC,gBAAgB,EAAA,SAAAA,gBAACC,CAAAA,EAAE,EAAE;AACnB,QAAA,OAAOA,EAAE,CAACC,QAAQ,CAAC,MAAM,CAAC,IAAID,EAAE,CAACC,QAAQ,CAAC,MAAM,CAAC,CAAA;OAClD;AACDC,MAAAA,SAAS,EAAEC,kDAAgC,CAACP,iBAAiB,EAAEC,cAAc,CAAC,CAACK,SAAAA;KAChF,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASE,oCAAoCA,CAC3CC,kBAAkD,EACW;AAC7D,EAAA,OAAO,UAACC,iBAAsC,EAAA;IAAA,OAAM;AAClDvC,MAAAA,IAAI,EAAE,iDAAiD;MACvDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,QAAQ,EAAE;AAAA,QAAA,IAAAsC,kBAAA,CAAA;AAChB;AACA;AACA;AACA,QAAA,IAAMC,YAAY;AAChB;AACA;AACA;AACA,QAAA,CAAAvC,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAsC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,kBAAA,GAARtC,QAAQ,CAAED,OAAO,MAAA,IAAA,IAAAuC,kBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAmBC,YAAY,KAAIH,kBAAkB,CAAA;QAEvDpC,QAAQ,CAACG,OAAO,CAACC,OAAO,GAAGJ,QAAQ,CAACG,OAAO,CAACC,OAAO,IAAI,EAAE,CAAA;AACzDJ,QAAAA,QAAQ,CAACG,OAAO,CAACC,OAAO,CAACC,IAAI;AAC3B;AACA,QAAA,IAAIkC,YAAY,CAAAC,cAAA,KACXH,iBAAiB,CACrB,CACH,CAAC,CAAA;AACH,OAAA;KACD,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASI,0BAA0BA,CACjCC,MAAmD,EACnDC,MAAc,EACdC,gCAAkD,EAClDC,0BAAoC,EACnB;EACjB,IAAMC,UAAU,GAAG,uCAAuC,CAAA;EAC1D,OAAO;AACLhD,IAAAA,IAAI,EAAEgD,UAAU;IAChB/C,OAAO,EAAA,SAAAA,OAACC,CAAAA,QAAQ,EAAE;AAChB,MAAA,IAAM+C,+CAA+C,GAAGH,gCAAgC,EAAE,CAAA;AAE1F5C,MAAAA,QAAQ,CAACgD,KAAK,CAACC,SAAS,CAACC,QAAQ,CAACJ,UAAU,EAAE,UAACK,WAAW,EAAEC,QAAoB,EAAK;AAAA,QAAA,IAAAC,IAAA,CAAA;AACnF;AACA,QAAA,IAAMC,UAAU,GAAAD,CAAAA,IAAA,GAAIF,WAAW,CAACI,aAAa,CAACC,IAAI,MAAAH,IAAAA,IAAAA,IAAA,cAAAA,IAAA,GAA2BG,eAAI,CAACC,OAAO,EAAE,CAAA;AAC3F,QAAA,IAAMC,cAAc,GAAGC,MAAM,CAACC,IAAI,CAACT,WAAW,CAACU,MAAiC,CAAC,CAACC,GAAG,CACnF,UAACC,KAAK,EAAA;AAAA,UAAA,OAAKP,eAAI,CAACQ,IAAI,CAACV,UAAU,EAAES,KAAK,CAAC,CAAA;AAAA,SACzC,CAAC,CAAA;AACD,QAAA,KAAKrB,MAAM,CAACgB,cAAc,CAAC,CACxBO,IAAI,CAAC,YAAM;AACVb,UAAAA,QAAQ,EAAE,CAAA;SACX,CAAC,CACM,SAAA,CAAA,CAAC,YAAM;AACbL,UAAAA,+CAA+C,EAAE,CAAA;AACnD,SAAC,CAAC,CAAA;AACN,OAAC,CAAC,CAAA;MAEF,IAAIF,0BAA0B,IAAI7C,QAAQ,CAACG,OAAO,CAAC+D,IAAI,KAAK,YAAY,EAAE;QACxElE,QAAQ,CAACgD,KAAK,CAACmB,IAAI,CAACC,GAAG,CAACtB,UAAU,EAAE,YAAM;AACxCuB,UAAAA,UAAU,CAAC,YAAM;AACf1B,YAAAA,MAAM,CAAC2B,KAAK,CAAC,yCAAyC,CAAC,CAAA;AACvDC,YAAAA,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,WAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAA;GACD,CAAA;AACH,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,4BAA4BA,GAMM;AAAA,EAAA,IAAAC,KAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAA9C,EAAE;IALJzE,YAAY,GAAAwE,KAAA,CAAZxE,YAAY;IACZqC,YAAY,GAAAmC,KAAA,CAAZnC,YAAY,CAAA;AAKZ,EAAA,OAAOuC,uCAAqB,CAAC;AAC3BC,IAAAA,eAAe,EAAErF,sBAAsB,CAACQ,YAAY,CAAC;IACrD8E,2BAA2B,EAAEtD,kCAAkC,EAAE;AACjEuD,IAAAA,mBAAmB,EAAExC,0BAA0B;IAC/CyC,6BAA6B,EAAE/C,oCAAoC,CAACI,YAAY,CAAA;AAClF,GAAC,CAAC,CAAA;AACJ;;;;;"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as sentryWebpackUnpluginFactory } from './webpack4and5.mjs';
|
|
1
|
+
import { s as sentryWebpackUnpluginFactory, _ as _objectSpread2 } from './webpack4and5.mjs';
|
|
2
2
|
import * as webpack4or5 from 'webpack';
|
|
3
3
|
export { sentryCliBinaryExists } from '@sentry/bundler-plugin-core';
|
|
4
4
|
import 'path';
|
|
@@ -7,13 +7,37 @@ import 'uuid';
|
|
|
7
7
|
var _webpack4or5$default, _webpack4or5$default2;
|
|
8
8
|
var BannerPlugin = (webpack4or5 === null || webpack4or5 === void 0 ? void 0 : webpack4or5.BannerPlugin) || (webpack4or5 === null || webpack4or5 === void 0 ? void 0 : (_webpack4or5$default = webpack4or5["default"]) === null || _webpack4or5$default === void 0 ? void 0 : _webpack4or5$default.BannerPlugin);
|
|
9
9
|
var DefinePlugin = (webpack4or5 === null || webpack4or5 === void 0 ? void 0 : webpack4or5.DefinePlugin) || (webpack4or5 === null || webpack4or5 === void 0 ? void 0 : (_webpack4or5$default2 = webpack4or5["default"]) === null || _webpack4or5$default2 === void 0 ? void 0 : _webpack4or5$default2.DefinePlugin);
|
|
10
|
+
|
|
11
|
+
// Detect webpack major version for telemetry (helps differentiate webpack 4 vs 5 usage)
|
|
12
|
+
function getWebpackMajorVersion() {
|
|
13
|
+
try {
|
|
14
|
+
var _webpack$version, _webpack$default;
|
|
15
|
+
var webpack = webpack4or5;
|
|
16
|
+
var version = (_webpack$version = webpack === null || webpack === void 0 ? void 0 : webpack.version) !== null && _webpack$version !== void 0 ? _webpack$version : webpack === null || webpack === void 0 ? void 0 : (_webpack$default = webpack["default"]) === null || _webpack$default === void 0 ? void 0 : _webpack$default.version;
|
|
17
|
+
var _webpackMajorVersion = version === null || version === void 0 ? void 0 : version.split(".")[0]; // "4" or "5"
|
|
18
|
+
return _webpackMajorVersion;
|
|
19
|
+
} catch (error) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
var webpackMajorVersion = getWebpackMajorVersion();
|
|
10
24
|
var sentryUnplugin = sentryWebpackUnpluginFactory({
|
|
11
25
|
BannerPlugin: BannerPlugin,
|
|
12
26
|
DefinePlugin: DefinePlugin
|
|
13
27
|
});
|
|
14
28
|
|
|
15
29
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
-
var sentryWebpackPlugin =
|
|
30
|
+
var sentryWebpackPlugin = function sentryWebpackPlugin(options) {
|
|
31
|
+
var _options$_metaOptions, _options$_metaOptions2, _options$_metaOptions3, _options$_metaOptions4;
|
|
32
|
+
var enhancedOptions = _objectSpread2(_objectSpread2({}, options), {}, {
|
|
33
|
+
_metaOptions: _objectSpread2(_objectSpread2({}, options === null || options === void 0 ? void 0 : options._metaOptions), {}, {
|
|
34
|
+
telemetry: _objectSpread2(_objectSpread2({}, options === null || options === void 0 ? void 0 : (_options$_metaOptions = options._metaOptions) === null || _options$_metaOptions === void 0 ? void 0 : _options$_metaOptions.telemetry), {}, {
|
|
35
|
+
bundlerMajorVersion: (_options$_metaOptions2 = options === null || options === void 0 ? void 0 : (_options$_metaOptions3 = options._metaOptions) === null || _options$_metaOptions3 === void 0 ? void 0 : (_options$_metaOptions4 = _options$_metaOptions3.telemetry) === null || _options$_metaOptions4 === void 0 ? void 0 : _options$_metaOptions4.bundlerMajorVersion) !== null && _options$_metaOptions2 !== void 0 ? _options$_metaOptions2 : webpackMajorVersion
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
return sentryUnplugin.webpack(enhancedOptions);
|
|
40
|
+
};
|
|
17
41
|
|
|
18
42
|
export { sentryWebpackPlugin };
|
|
19
43
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import { SentryWebpackPluginOptions, sentryWebpackUnpluginFactory } from \"./webpack4and5\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webpack4or5 from \"webpack\";\n\nconst BannerPlugin = webpack4or5?.BannerPlugin || webpack4or5?.default?.BannerPlugin;\n\nconst DefinePlugin = webpack4or5?.DefinePlugin || webpack4or5?.default?.DefinePlugin;\n\nconst sentryUnplugin = sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import { SentryWebpackPluginOptions, sentryWebpackUnpluginFactory } from \"./webpack4and5\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webpack4or5 from \"webpack\";\n\nconst BannerPlugin = webpack4or5?.BannerPlugin || webpack4or5?.default?.BannerPlugin;\n\nconst DefinePlugin = webpack4or5?.DefinePlugin || webpack4or5?.default?.DefinePlugin;\n\n// Detect webpack major version for telemetry (helps differentiate webpack 4 vs 5 usage)\nfunction getWebpackMajorVersion(): string | undefined {\n try {\n const webpack = webpack4or5 as unknown as\n | { version?: string; default?: { version?: string } }\n | undefined;\n const version = webpack?.version ?? webpack?.default?.version;\n const webpackMajorVersion = version?.split(\".\")[0]; // \"4\" or \"5\"\n return webpackMajorVersion;\n } catch (error) {\n return undefined;\n }\n}\n\nconst webpackMajorVersion = getWebpackMajorVersion();\n\nconst sentryUnplugin = sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any = (options) => {\n const enhancedOptions: SentryWebpackPluginOptions = {\n ...options,\n _metaOptions: {\n ...options?._metaOptions,\n telemetry: {\n ...options?._metaOptions?.telemetry,\n bundlerMajorVersion:\n options?._metaOptions?.telemetry?.bundlerMajorVersion ?? webpackMajorVersion,\n },\n },\n };\n return sentryUnplugin.webpack(enhancedOptions);\n};\n\nexport { sentryCliBinaryExists } from \"@sentry/bundler-plugin-core\";\n\nexport type { SentryWebpackPluginOptions };\n"],"names":["BannerPlugin","webpack4or5","_webpack4or5$default","DefinePlugin","_webpack4or5$default2","getWebpackMajorVersion","_webpack$version","_webpack$default","webpack","version","webpackMajorVersion","split","error","undefined","sentryUnplugin","sentryWebpackUnpluginFactory","sentryWebpackPlugin","options","_options$_metaOptions","_options$_metaOptions2","_options$_metaOptions3","_options$_metaOptions4","enhancedOptions","_objectSpread","_metaOptions","telemetry","bundlerMajorVersion"],"mappings":"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"}
|
|
@@ -75,14 +75,14 @@ function webpackInjectionPlugin(UnsafeBannerPlugin) {
|
|
|
75
75
|
raw: true,
|
|
76
76
|
include: /\.(js|ts|jsx|tsx|mjs|cjs)(\?[^?]*)?(#[^#]*)?$/,
|
|
77
77
|
banner: function banner(arg) {
|
|
78
|
-
var codeToInject = injectionCode;
|
|
78
|
+
var codeToInject = injectionCode.clone();
|
|
79
79
|
if (debugIds) {
|
|
80
80
|
var _arg$chunk$contentHas, _arg$chunk, _arg$chunk$contentHas2, _arg$chunk2;
|
|
81
81
|
var hash = (_arg$chunk$contentHas = arg === null || arg === void 0 ? void 0 : (_arg$chunk = arg.chunk) === null || _arg$chunk === void 0 ? void 0 : (_arg$chunk$contentHas2 = _arg$chunk.contentHash) === null || _arg$chunk$contentHas2 === void 0 ? void 0 : _arg$chunk$contentHas2.javascript) !== null && _arg$chunk$contentHas !== void 0 ? _arg$chunk$contentHas : arg === null || arg === void 0 ? void 0 : (_arg$chunk2 = arg.chunk) === null || _arg$chunk2 === void 0 ? void 0 : _arg$chunk2.hash;
|
|
82
82
|
var debugId = hash ? stringToUUID(hash) : v4();
|
|
83
|
-
codeToInject
|
|
83
|
+
codeToInject.append(getDebugIdSnippet(debugId));
|
|
84
84
|
}
|
|
85
|
-
return codeToInject;
|
|
85
|
+
return codeToInject.code();
|
|
86
86
|
}
|
|
87
87
|
}));
|
|
88
88
|
}
|
|
@@ -90,7 +90,7 @@ function webpackInjectionPlugin(UnsafeBannerPlugin) {
|
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
function webpackComponentNameAnnotatePlugin() {
|
|
93
|
-
return function (ignoredComponents) {
|
|
93
|
+
return function (ignoredComponents, injectIntoHtml) {
|
|
94
94
|
return {
|
|
95
95
|
name: "sentry-webpack-component-name-annotate-plugin",
|
|
96
96
|
enforce: "pre",
|
|
@@ -98,7 +98,7 @@ function webpackComponentNameAnnotatePlugin() {
|
|
|
98
98
|
transformInclude: function transformInclude(id) {
|
|
99
99
|
return id.endsWith(".tsx") || id.endsWith(".jsx");
|
|
100
100
|
},
|
|
101
|
-
transform: createComponentNameAnnotateHooks(ignoredComponents).transform
|
|
101
|
+
transform: createComponentNameAnnotateHooks(ignoredComponents, injectIntoHtml).transform
|
|
102
102
|
};
|
|
103
103
|
};
|
|
104
104
|
}
|
|
@@ -175,5 +175,5 @@ function sentryWebpackUnpluginFactory() {
|
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
export { sentryWebpackUnpluginFactory as s };
|
|
178
|
+
export { _objectSpread2 as _, sentryWebpackUnpluginFactory as s };
|
|
179
179
|
//# sourceMappingURL=webpack4and5.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack4and5.mjs","sources":["../../src/webpack4and5.ts"],"sourcesContent":["import {\n getDebugIdSnippet,\n Options,\n sentryUnpluginFactory,\n stringToUUID,\n SentrySDKBuildFlags,\n createComponentNameAnnotateHooks,\n Logger,\n} from \"@sentry/bundler-plugin-core\";\nimport * as path from \"path\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n// since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version\n// https://github.com/webpack/webpack/commit/65eca2e529ce1d79b79200d4bdb1ce1b81141459\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n contentHash?: {\n javascript?: string;\n };\n };\n}\n\ntype UnsafeBannerPlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\ntype UnsafeDefinePlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\nfunction webpackInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string, debugIds: boolean) => UnpluginOptions {\n return (injectionCode: string, debugIds: boolean): UnpluginOptions => ({\n name: \"sentry-webpack-injection-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const BannerPlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.BannerPlugin || UnsafeBannerPlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new BannerPlugin({\n raw: true,\n include: /\\.(js|ts|jsx|tsx|mjs|cjs)(\\?[^?]*)?(#[^#]*)?$/,\n banner: (arg?: BannerPluginCallbackArg) => {\n let codeToInject = injectionCode;\n if (debugIds) {\n const hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(hash) : uuidv4();\n codeToInject += getDebugIdSnippet(debugId);\n }\n return codeToInject;\n },\n })\n );\n },\n });\n}\n\nfunction webpackComponentNameAnnotatePlugin(): (ignoredComponents?: string[]) => UnpluginOptions {\n return (ignoredComponents?: string[]) => ({\n name: \"sentry-webpack-component-name-annotate-plugin\",\n enforce: \"pre\",\n // Webpack needs this hook for loader logic, so the plugin is not run on unsupported file types\n transformInclude(id) {\n return id.endsWith(\".tsx\") || id.endsWith(\".jsx\");\n },\n transform: createComponentNameAnnotateHooks(ignoredComponents).transform,\n });\n}\n\nfunction webpackBundleSizeOptimizationsPlugin(\n UnsafeDefinePlugin: UnsafeDefinePlugin | undefined\n): (replacementValues: SentrySDKBuildFlags) => UnpluginOptions {\n return (replacementValues: SentrySDKBuildFlags) => ({\n name: \"sentry-webpack-bundle-size-optimizations-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const DefinePlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.DefinePlugin || UnsafeDefinePlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new DefinePlugin({\n ...replacementValues,\n })\n );\n },\n });\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n createDependencyOnBuildArtifacts: () => () => void,\n forceExitOnBuildCompletion?: boolean\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\n const freeGlobalDependencyOnDebugIdSourcemapArtifacts = createDependencyOnBuildArtifacts();\n\n compiler.hooks.afterEmit.tapAsync(pluginName, (compilation, callback: () => void) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const outputPath = (compilation.outputOptions.path as string | undefined) ?? path.resolve();\n const buildArtifacts = Object.keys(compilation.assets as Record<string, unknown>).map(\n (asset) => path.join(outputPath, asset)\n );\n void upload(buildArtifacts)\n .then(() => {\n callback();\n })\n .finally(() => {\n freeGlobalDependencyOnDebugIdSourcemapArtifacts();\n });\n });\n\n if (forceExitOnBuildCompletion && compiler.options.mode === \"production\") {\n compiler.hooks.done.tap(pluginName, () => {\n setTimeout(() => {\n logger.debug(\"Exiting process after debug file upload\");\n process.exit(0);\n });\n });\n }\n },\n };\n}\n\n/**\n * The factory function accepts BannerPlugin and DefinePlugin classes in\n * order to avoid direct dependencies on webpack.\n *\n * This allow us to export version of the plugin for webpack 5.1+ and compatible environments.\n *\n * Since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version.\n */\nexport function sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n}: {\n BannerPlugin?: UnsafeBannerPlugin;\n DefinePlugin?: UnsafeDefinePlugin;\n} = {}): ReturnType<typeof sentryUnpluginFactory> {\n return sentryUnpluginFactory({\n injectionPlugin: webpackInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin(DefinePlugin),\n });\n}\n\nexport type SentryWebpackPluginOptions = Options & {\n _experiments?: Options[\"_experiments\"] & {\n /**\n * If enabled, the webpack plugin will exit the build process after the build completes.\n * Use this with caution, as it will terminate the process.\n *\n * More information: https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/345\n *\n * @default false\n */\n forceExitOnBuildCompletion?: boolean;\n };\n};\n"],"names":["webpackInjectionPlugin","UnsafeBannerPlugin","injectionCode","debugIds","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","arg","codeToInject","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","getDebugIdSnippet","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdUploadPlugin","upload","logger","createDependencyOnBuildArtifacts","forceExitOnBuildCompletion","pluginName","freeGlobalDependencyOnDebugIdSourcemapArtifacts","hooks","afterEmit","tapAsync","compilation","callback","_ref","outputPath","outputOptions","path","resolve","buildArtifacts","Object","keys","assets","map","asset","join","then","mode","done","tap","setTimeout","debug","process","exit","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","injectionPlugin","componentNameAnnotatePlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webpack4and5.mjs","sources":["../../src/webpack4and5.ts"],"sourcesContent":["import {\n Options,\n sentryUnpluginFactory,\n stringToUUID,\n SentrySDKBuildFlags,\n createComponentNameAnnotateHooks,\n Logger,\n CodeInjection,\n getDebugIdSnippet,\n} from \"@sentry/bundler-plugin-core\";\nimport * as path from \"path\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n// since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version\n// https://github.com/webpack/webpack/commit/65eca2e529ce1d79b79200d4bdb1ce1b81141459\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n contentHash?: {\n javascript?: string;\n };\n };\n}\n\ntype UnsafeBannerPlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\ntype UnsafeDefinePlugin = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (options: any): unknown;\n};\n\nfunction webpackInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: CodeInjection, debugIds: boolean) => UnpluginOptions {\n return (injectionCode: CodeInjection, debugIds: boolean): UnpluginOptions => ({\n name: \"sentry-webpack-injection-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const BannerPlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.BannerPlugin || UnsafeBannerPlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new BannerPlugin({\n raw: true,\n include: /\\.(js|ts|jsx|tsx|mjs|cjs)(\\?[^?]*)?(#[^#]*)?$/,\n banner: (arg?: BannerPluginCallbackArg) => {\n const codeToInject = injectionCode.clone();\n if (debugIds) {\n const hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(hash) : uuidv4();\n codeToInject.append(getDebugIdSnippet(debugId));\n }\n return codeToInject.code();\n },\n })\n );\n },\n });\n}\n\nfunction webpackComponentNameAnnotatePlugin(): (\n ignoredComponents: string[],\n injectIntoHtml: boolean\n) => UnpluginOptions {\n return (ignoredComponents: string[], injectIntoHtml: boolean) => ({\n name: \"sentry-webpack-component-name-annotate-plugin\",\n enforce: \"pre\",\n // Webpack needs this hook for loader logic, so the plugin is not run on unsupported file types\n transformInclude(id) {\n return id.endsWith(\".tsx\") || id.endsWith(\".jsx\");\n },\n transform: createComponentNameAnnotateHooks(ignoredComponents, injectIntoHtml).transform,\n });\n}\n\nfunction webpackBundleSizeOptimizationsPlugin(\n UnsafeDefinePlugin: UnsafeDefinePlugin | undefined\n): (replacementValues: SentrySDKBuildFlags) => UnpluginOptions {\n return (replacementValues: SentrySDKBuildFlags) => ({\n name: \"sentry-webpack-bundle-size-optimizations-plugin\",\n webpack(compiler) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const DefinePlugin =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore webpack version compatibility shenanigans\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n compiler?.webpack?.DefinePlugin || UnsafeDefinePlugin;\n\n compiler.options.plugins = compiler.options.plugins || [];\n compiler.options.plugins.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call\n new DefinePlugin({\n ...replacementValues,\n })\n );\n },\n });\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n createDependencyOnBuildArtifacts: () => () => void,\n forceExitOnBuildCompletion?: boolean\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\n const freeGlobalDependencyOnDebugIdSourcemapArtifacts = createDependencyOnBuildArtifacts();\n\n compiler.hooks.afterEmit.tapAsync(pluginName, (compilation, callback: () => void) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const outputPath = (compilation.outputOptions.path as string | undefined) ?? path.resolve();\n const buildArtifacts = Object.keys(compilation.assets as Record<string, unknown>).map(\n (asset) => path.join(outputPath, asset)\n );\n void upload(buildArtifacts)\n .then(() => {\n callback();\n })\n .finally(() => {\n freeGlobalDependencyOnDebugIdSourcemapArtifacts();\n });\n });\n\n if (forceExitOnBuildCompletion && compiler.options.mode === \"production\") {\n compiler.hooks.done.tap(pluginName, () => {\n setTimeout(() => {\n logger.debug(\"Exiting process after debug file upload\");\n process.exit(0);\n });\n });\n }\n },\n };\n}\n\n/**\n * The factory function accepts BannerPlugin and DefinePlugin classes in\n * order to avoid direct dependencies on webpack.\n *\n * This allow us to export version of the plugin for webpack 5.1+ and compatible environments.\n *\n * Since webpack 5.1 compiler contains webpack module so plugins always use correct webpack version.\n */\nexport function sentryWebpackUnpluginFactory({\n BannerPlugin,\n DefinePlugin,\n}: {\n BannerPlugin?: UnsafeBannerPlugin;\n DefinePlugin?: UnsafeDefinePlugin;\n} = {}): ReturnType<typeof sentryUnpluginFactory> {\n return sentryUnpluginFactory({\n injectionPlugin: webpackInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin(DefinePlugin),\n });\n}\n\nexport type SentryWebpackPluginOptions = Options & {\n _experiments?: Options[\"_experiments\"] & {\n /**\n * If enabled, the webpack plugin will exit the build process after the build completes.\n * Use this with caution, as it will terminate the process.\n *\n * More information: https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/345\n *\n * @default false\n */\n forceExitOnBuildCompletion?: boolean;\n };\n};\n"],"names":["webpackInjectionPlugin","UnsafeBannerPlugin","injectionCode","debugIds","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","arg","codeToInject","clone","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","append","getDebugIdSnippet","code","webpackComponentNameAnnotatePlugin","ignoredComponents","injectIntoHtml","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdUploadPlugin","upload","logger","createDependencyOnBuildArtifacts","forceExitOnBuildCompletion","pluginName","freeGlobalDependencyOnDebugIdSourcemapArtifacts","hooks","afterEmit","tapAsync","compilation","callback","_ref","outputPath","outputOptions","path","resolve","buildArtifacts","Object","keys","assets","map","asset","join","then","mode","done","tap","setTimeout","debug","process","exit","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","injectionPlugin","componentNameAnnotatePlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentry/webpack-plugin",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.9.0",
|
|
4
4
|
"description": "Official Sentry Webpack plugin",
|
|
5
5
|
"repository": "git://github.com/getsentry/sentry-javascript-bundler-plugins.git",
|
|
6
6
|
"homepage": "https://github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/webpack-plugin",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"prepack": "ts-node ./src/prepack.ts"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@sentry/bundler-plugin-core": "4.
|
|
56
|
+
"@sentry/bundler-plugin-core": "4.9.0",
|
|
57
57
|
"unplugin": "1.0.1",
|
|
58
58
|
"uuid": "^9.0.0"
|
|
59
59
|
},
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"@babel/preset-typescript": "7.17.12",
|
|
64
64
|
"@rollup/plugin-babel": "5.3.1",
|
|
65
65
|
"@rollup/plugin-commonjs": "22.0.1",
|
|
66
|
-
"@sentry-internal/eslint-config": "4.
|
|
67
|
-
"@sentry-internal/sentry-bundler-plugin-tsconfig": "4.
|
|
66
|
+
"@sentry-internal/eslint-config": "4.9.0",
|
|
67
|
+
"@sentry-internal/sentry-bundler-plugin-tsconfig": "4.9.0",
|
|
68
68
|
"@swc/core": "^1.2.205",
|
|
69
69
|
"@swc/jest": "^0.2.21",
|
|
70
70
|
"@types/jest": "^28.1.3",
|