@sentry/webpack-plugin 3.0.0 → 3.1.1

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/dist/cjs/index.js CHANGED
@@ -161,7 +161,7 @@ function webpackDebugIdInjectionPlugin() {
161
161
  }
162
162
  };
163
163
  }
164
- function webpackDebugIdUploadPlugin(upload, logger) {
164
+ function webpackDebugIdUploadPlugin(upload, logger, forceExitOnBuildCompletion) {
165
165
  var pluginName = "sentry-webpack-debug-id-upload-plugin";
166
166
  return {
167
167
  name: pluginName,
@@ -177,7 +177,7 @@ function webpackDebugIdUploadPlugin(upload, logger) {
177
177
  callback();
178
178
  });
179
179
  });
180
- if (compiler.options.mode === "production") {
180
+ if (forceExitOnBuildCompletion && compiler.options.mode === "production") {
181
181
  compiler.hooks.done.tap(pluginName, function () {
182
182
  setTimeout(function () {
183
183
  logger.debug("Exiting process after debug file upload");
@@ -220,7 +220,6 @@ var sentryUnplugin = bundlerPluginCore.sentryUnpluginFactory({
220
220
  debugIdUploadPlugin: webpackDebugIdUploadPlugin,
221
221
  bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin
222
222
  });
223
-
224
223
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
225
224
  var sentryWebpackPlugin = sentryUnplugin.webpack;
226
225
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.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// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webback4or5 from \"webpack\";\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n };\n}\n\nfunction webpackReleaseInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-release-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nfunction webpackComponentNameAnnotatePlugin(ignoredComponents?: string[]): UnpluginOptions {\n return {\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 replacementValues: SentrySDKBuildFlags\n): UnpluginOptions {\n return {\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 ||\n webback4or5?.DefinePlugin ||\n webback4or5?.default?.DefinePlugin;\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 webpackDebugIdInjectionPlugin(): UnpluginOptions {\n return {\n name: \"sentry-webpack-debug-id-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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 debugId = arg?.chunk?.hash ? stringToUUID(arg.chunk.hash) : uuidv4();\n return getDebugIdSnippet(debugId);\n },\n })\n );\n },\n };\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\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).then(() => {\n callback();\n });\n });\n\n if (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\nfunction webpackModuleMetadataInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-module-metadata-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nconst sentryUnplugin = sentryUnpluginFactory({\n releaseInjectionPlugin: webpackReleaseInjectionPlugin,\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin,\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin,\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin,\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin,\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: Options) => any = sentryUnplugin.webpack;\n\nexport { sentryCliBinaryExists } from \"@sentry/bundler-plugin-core\";\nexport type { Options as SentryWebpackPluginOptions } from \"@sentry/bundler-plugin-core\";\n"],"names":["webpackReleaseInjectionPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","_webback4or5$default","BannerPlugin","webback4or5","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","replacementValues","_compiler$webpack2","_webback4or5$default2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","_webback4or5$default3","arg","_arg$chunk","debugId","chunk","hash","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","upload","logger","pluginName","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","webpackModuleMetadataInjectionPlugin","_compiler$webpack4","_webback4or5$default4","sentryUnplugin","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin","sentryWebpackPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.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// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webback4or5 from \"webpack\";\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n };\n}\n\nfunction webpackReleaseInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-release-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nfunction webpackComponentNameAnnotatePlugin(ignoredComponents?: string[]): UnpluginOptions {\n return {\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 replacementValues: SentrySDKBuildFlags\n): UnpluginOptions {\n return {\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 ||\n webback4or5?.DefinePlugin ||\n webback4or5?.default?.DefinePlugin;\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 webpackDebugIdInjectionPlugin(): UnpluginOptions {\n return {\n name: \"sentry-webpack-debug-id-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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 debugId = arg?.chunk?.hash ? stringToUUID(arg.chunk.hash) : uuidv4();\n return getDebugIdSnippet(debugId);\n },\n })\n );\n },\n };\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n forceExitOnBuildCompletion?: boolean\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\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).then(() => {\n callback();\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\nfunction webpackModuleMetadataInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-module-metadata-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nconst sentryUnplugin = sentryUnpluginFactory({\n releaseInjectionPlugin: webpackReleaseInjectionPlugin,\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin,\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin,\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin,\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin,\n});\n\ntype 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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any =\n sentryUnplugin.webpack;\n\nexport { sentryCliBinaryExists } from \"@sentry/bundler-plugin-core\";\n\nexport type { SentryWebpackPluginOptions };\n"],"names":["webpackReleaseInjectionPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","_webback4or5$default","BannerPlugin","webback4or5","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","replacementValues","_compiler$webpack2","_webback4or5$default2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","_webback4or5$default3","arg","_arg$chunk","debugId","chunk","hash","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","upload","logger","forceExitOnBuildCompletion","pluginName","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","webpackModuleMetadataInjectionPlugin","_compiler$webpack4","_webback4or5$default4","sentryUnplugin","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin","sentryWebpackPlugin"],"mappings":"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"}
@@ -137,7 +137,7 @@ function webpackDebugIdInjectionPlugin() {
137
137
  }
138
138
  };
139
139
  }
140
- function webpackDebugIdUploadPlugin(upload, logger) {
140
+ function webpackDebugIdUploadPlugin(upload, logger, forceExitOnBuildCompletion) {
141
141
  var pluginName = "sentry-webpack-debug-id-upload-plugin";
142
142
  return {
143
143
  name: pluginName,
@@ -153,7 +153,7 @@ function webpackDebugIdUploadPlugin(upload, logger) {
153
153
  callback();
154
154
  });
155
155
  });
156
- if (compiler.options.mode === "production") {
156
+ if (forceExitOnBuildCompletion && compiler.options.mode === "production") {
157
157
  compiler.hooks.done.tap(pluginName, function () {
158
158
  setTimeout(function () {
159
159
  logger.debug("Exiting process after debug file upload");
@@ -196,7 +196,6 @@ var sentryUnplugin = sentryUnpluginFactory({
196
196
  debugIdUploadPlugin: webpackDebugIdUploadPlugin,
197
197
  bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin
198
198
  });
199
-
200
199
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
201
200
  var sentryWebpackPlugin = sentryUnplugin.webpack;
202
201
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/index.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// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webback4or5 from \"webpack\";\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n };\n}\n\nfunction webpackReleaseInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-release-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nfunction webpackComponentNameAnnotatePlugin(ignoredComponents?: string[]): UnpluginOptions {\n return {\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 replacementValues: SentrySDKBuildFlags\n): UnpluginOptions {\n return {\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 ||\n webback4or5?.DefinePlugin ||\n webback4or5?.default?.DefinePlugin;\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 webpackDebugIdInjectionPlugin(): UnpluginOptions {\n return {\n name: \"sentry-webpack-debug-id-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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 debugId = arg?.chunk?.hash ? stringToUUID(arg.chunk.hash) : uuidv4();\n return getDebugIdSnippet(debugId);\n },\n })\n );\n },\n };\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\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).then(() => {\n callback();\n });\n });\n\n if (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\nfunction webpackModuleMetadataInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-module-metadata-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nconst sentryUnplugin = sentryUnpluginFactory({\n releaseInjectionPlugin: webpackReleaseInjectionPlugin,\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin,\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin,\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin,\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin,\n});\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: Options) => any = sentryUnplugin.webpack;\n\nexport { sentryCliBinaryExists } from \"@sentry/bundler-plugin-core\";\nexport type { Options as SentryWebpackPluginOptions } from \"@sentry/bundler-plugin-core\";\n"],"names":["webpackReleaseInjectionPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","_webback4or5$default","BannerPlugin","webback4or5","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","replacementValues","_compiler$webpack2","_webback4or5$default2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","_webback4or5$default3","arg","_arg$chunk","debugId","chunk","hash","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","upload","logger","pluginName","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","webpackModuleMetadataInjectionPlugin","_compiler$webpack4","_webback4or5$default4","sentryUnplugin","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin","sentryWebpackPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/index.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// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore webpack is a peer dep\nimport * as webback4or5 from \"webpack\";\n\ninterface BannerPluginCallbackArg {\n chunk?: {\n hash?: string;\n };\n}\n\nfunction webpackReleaseInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-release-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nfunction webpackComponentNameAnnotatePlugin(ignoredComponents?: string[]): UnpluginOptions {\n return {\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 replacementValues: SentrySDKBuildFlags\n): UnpluginOptions {\n return {\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 ||\n webback4or5?.DefinePlugin ||\n webback4or5?.default?.DefinePlugin;\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 webpackDebugIdInjectionPlugin(): UnpluginOptions {\n return {\n name: \"sentry-webpack-debug-id-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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 debugId = arg?.chunk?.hash ? stringToUUID(arg.chunk.hash) : uuidv4();\n return getDebugIdSnippet(debugId);\n },\n })\n );\n },\n };\n}\n\nfunction webpackDebugIdUploadPlugin(\n upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n forceExitOnBuildCompletion?: boolean\n): UnpluginOptions {\n const pluginName = \"sentry-webpack-debug-id-upload-plugin\";\n return {\n name: pluginName,\n webpack(compiler) {\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).then(() => {\n callback();\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\nfunction webpackModuleMetadataInjectionPlugin(injectionCode: string): UnpluginOptions {\n return {\n name: \"sentry-webpack-module-metadata-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 ||\n webback4or5?.BannerPlugin ||\n webback4or5?.default?.BannerPlugin;\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: injectionCode,\n })\n );\n },\n };\n}\n\nconst sentryUnplugin = sentryUnpluginFactory({\n releaseInjectionPlugin: webpackReleaseInjectionPlugin,\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin,\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin,\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin,\n debugIdUploadPlugin: webpackDebugIdUploadPlugin,\n bundleSizeOptimizationsPlugin: webpackBundleSizeOptimizationsPlugin,\n});\n\ntype 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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any =\n sentryUnplugin.webpack;\n\nexport { sentryCliBinaryExists } from \"@sentry/bundler-plugin-core\";\n\nexport type { SentryWebpackPluginOptions };\n"],"names":["webpackReleaseInjectionPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","_webback4or5$default","BannerPlugin","webback4or5","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","replacementValues","_compiler$webpack2","_webback4or5$default2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","_webback4or5$default3","arg","_arg$chunk","debugId","chunk","hash","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","upload","logger","forceExitOnBuildCompletion","pluginName","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","webpackModuleMetadataInjectionPlugin","_compiler$webpack4","_webback4or5$default4","sentryUnplugin","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin","sentryWebpackPlugin"],"mappings":"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"}
@@ -1,4 +1,17 @@
1
1
  import { Options } from "@sentry/bundler-plugin-core";
2
- export declare const sentryWebpackPlugin: (options?: Options) => any;
2
+ type SentryWebpackPluginOptions = Options & {
3
+ _experiments?: Options["_experiments"] & {
4
+ /**
5
+ * If enabled, the webpack plugin will exit the build process after the build completes.
6
+ * Use this with caution, as it will terminate the process.
7
+ *
8
+ * More information: https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/345
9
+ *
10
+ * @default false
11
+ */
12
+ forceExitOnBuildCompletion?: boolean;
13
+ };
14
+ };
15
+ export declare const sentryWebpackPlugin: (options?: SentryWebpackPluginOptions) => any;
3
16
  export { sentryCliBinaryExists } from "@sentry/bundler-plugin-core";
4
- export type { Options as SentryWebpackPluginOptions } from "@sentry/bundler-plugin-core";
17
+ export type { SentryWebpackPluginOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/webpack-plugin",
3
- "version": "3.0.0",
3
+ "version": "3.1.1",
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",
@@ -48,7 +48,7 @@
48
48
  "prepack": "ts-node ./src/prepack.ts"
49
49
  },
50
50
  "dependencies": {
51
- "@sentry/bundler-plugin-core": "3.0.0",
51
+ "@sentry/bundler-plugin-core": "3.1.1",
52
52
  "unplugin": "1.0.1",
53
53
  "uuid": "^9.0.0"
54
54
  },
@@ -58,8 +58,8 @@
58
58
  "@babel/preset-typescript": "7.17.12",
59
59
  "@rollup/plugin-babel": "5.3.1",
60
60
  "@rollup/plugin-commonjs": "22.0.1",
61
- "@sentry-internal/eslint-config": "3.0.0",
62
- "@sentry-internal/sentry-bundler-plugin-tsconfig": "3.0.0",
61
+ "@sentry-internal/eslint-config": "3.1.1",
62
+ "@sentry-internal/sentry-bundler-plugin-tsconfig": "3.1.1",
63
63
  "@swc/core": "^1.2.205",
64
64
  "@swc/jest": "^0.2.21",
65
65
  "@types/jest": "^28.1.3",