@sentry/webpack-plugin 3.3.0 → 3.3.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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var webpack4and5 = require('./webpack4and5-068463fa.js');
5
+ var webpack4and5 = require('./webpack4and5.js');
6
6
  var webpack4or5 = require('webpack');
7
7
  var bundlerPluginCore = require('@sentry/bundler-plugin-core');
8
8
  require('path');
@@ -247,4 +247,4 @@ function sentryWebpackUnpluginFactory() {
247
247
  }
248
248
 
249
249
  exports.sentryWebpackUnpluginFactory = sentryWebpackUnpluginFactory;
250
- //# sourceMappingURL=webpack4and5-068463fa.js.map
250
+ //# sourceMappingURL=webpack4and5.js.map
@@ -0,0 +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 webpackReleaseInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string): UnpluginOptions => ({\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 || 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: injectionCode,\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 webpackDebugIdInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): () => 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 || 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 hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(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 upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n forceExitOnBuildCompletion?: boolean\n ) => ({\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(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string) => ({\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 || 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: injectionCode,\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 releaseInjectionPlugin: webpackReleaseInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin(BannerPlugin),\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin(BannerPlugin),\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":["webpackReleaseInjectionPlugin","UnsafeBannerPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","arg","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","pluginName","upload","logger","forceExitOnBuildCompletion","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","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var webpack4and5 = require('./webpack4and5-068463fa.js');
5
+ var webpack4and5 = require('./webpack4and5.js');
6
6
  var bundlerPluginCore = require('@sentry/bundler-plugin-core');
7
7
  require('path');
8
8
  require('uuid');
@@ -1,4 +1,4 @@
1
- import { s as sentryWebpackUnpluginFactory } from './webpack4and5-bffa70d9.js';
1
+ import { s as sentryWebpackUnpluginFactory } from './webpack4and5.mjs';
2
2
  import * as webpack4or5 from 'webpack';
3
3
  export { sentryCliBinaryExists } from '@sentry/bundler-plugin-core';
4
4
  import 'path';
@@ -225,4 +225,4 @@ function sentryWebpackUnpluginFactory() {
225
225
  }
226
226
 
227
227
  export { sentryWebpackUnpluginFactory as s };
228
- //# sourceMappingURL=webpack4and5-bffa70d9.js.map
228
+ //# sourceMappingURL=webpack4and5.mjs.map
@@ -0,0 +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 webpackReleaseInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string): UnpluginOptions => ({\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 || 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: injectionCode,\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 webpackDebugIdInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): () => 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 || 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 hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(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 upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n forceExitOnBuildCompletion?: boolean\n ) => ({\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(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string) => ({\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 || 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: injectionCode,\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 releaseInjectionPlugin: webpackReleaseInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin(BannerPlugin),\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin(BannerPlugin),\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":["webpackReleaseInjectionPlugin","UnsafeBannerPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","arg","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","pluginName","upload","logger","forceExitOnBuildCompletion","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","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { s as sentryWebpackUnpluginFactory } from './webpack4and5-bffa70d9.js';
1
+ import { s as sentryWebpackUnpluginFactory } from './webpack4and5.mjs';
2
2
  export { sentryCliBinaryExists } from '@sentry/bundler-plugin-core';
3
3
  import 'path';
4
4
  import 'uuid';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/webpack-plugin",
3
- "version": "3.3.0",
3
+ "version": "3.3.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",
@@ -53,7 +53,7 @@
53
53
  "prepack": "ts-node ./src/prepack.ts"
54
54
  },
55
55
  "dependencies": {
56
- "@sentry/bundler-plugin-core": "3.3.0",
56
+ "@sentry/bundler-plugin-core": "3.3.1",
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": "3.3.0",
67
- "@sentry-internal/sentry-bundler-plugin-tsconfig": "3.3.0",
66
+ "@sentry-internal/eslint-config": "3.3.1",
67
+ "@sentry-internal/sentry-bundler-plugin-tsconfig": "3.3.1",
68
68
  "@swc/core": "^1.2.205",
69
69
  "@swc/jest": "^0.2.21",
70
70
  "@types/jest": "^28.1.3",
@@ -1 +0,0 @@
1
- {"version":3,"file":"webpack4and5-068463fa.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 webpackReleaseInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string): UnpluginOptions => ({\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 || 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: injectionCode,\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 webpackDebugIdInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): () => 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 || 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 hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(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 upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n forceExitOnBuildCompletion?: boolean\n ) => ({\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(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string) => ({\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 || 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: injectionCode,\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 releaseInjectionPlugin: webpackReleaseInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin(BannerPlugin),\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin(BannerPlugin),\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":["webpackReleaseInjectionPlugin","UnsafeBannerPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","arg","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","pluginName","upload","logger","forceExitOnBuildCompletion","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","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;AACA;AAqBA,SAASA,6BAA6BA,CACpCC,kBAAkD,EACN;AAC5C,EAAA,OAAO,UAACC,aAAqB,EAAA;IAAA,OAAuB;AAClDC,MAAAA,IAAI,EAAE,yCAAyC;MAC/CC,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,KAAIN,kBAAkB,CAAA;QAEvDI,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,EAAEX,aAAAA;AACV,SAAC,CACH,CAAC,CAAA;AACH,OAAA;KACD,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASY,kCAAkCA,GAAsD;AAC/F,EAAA,OAAO,UAACC,iBAA4B,EAAA;IAAA,OAAM;AACxCZ,MAAAA,IAAI,EAAE,+CAA+C;AACrDa,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,CAACN,iBAAiB,CAAC,CAACK,SAAAA;KAChE,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASE,oCAAoCA,CAC3CC,kBAAkD,EACW;AAC7D,EAAA,OAAO,UAACC,iBAAsC,EAAA;IAAA,OAAM;AAClDrB,MAAAA,IAAI,EAAE,iDAAiD;MACvDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,QAAQ,EAAE;AAAA,QAAA,IAAAoB,kBAAA,CAAA;AAChB;AACA;AACA;AACA,QAAA,IAAMC,YAAY;AAChB;AACA;AACA;AACA,QAAA,CAAArB,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAoB,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,kBAAA,GAARpB,QAAQ,CAAED,OAAO,MAAA,IAAA,IAAAqB,kBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAmBC,YAAY,KAAIH,kBAAkB,CAAA;QAEvDlB,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,IAAIgB,YAAY,CAAAC,cAAA,KACXH,iBAAiB,CACrB,CACH,CAAC,CAAA;AACH,OAAA;KACD,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASI,6BAA6BA,CACpC3B,kBAAkD,EAC3B;EACvB,OAAO,YAAA;IAAA,OAAO;AACZE,MAAAA,IAAI,EAAE,0CAA0C;MAChDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,QAAQ,EAAE;AAAA,QAAA,IAAAwB,kBAAA,CAAA;AAChB;AACA;AACA;AACA,QAAA,IAAMtB,YAAY;AAChB;AACA;AACA;AACA,QAAA,CAAAF,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAwB,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,kBAAA,GAARxB,QAAQ,CAAED,OAAO,MAAA,IAAA,IAAAyB,kBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAmBtB,YAAY,KAAIN,kBAAkB,CAAA;QAEvDI,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,MAACiB,CAAAA,GAA6B,EAAK;AAAA,YAAA,IAAAC,qBAAA,EAAAC,UAAA,EAAAC,sBAAA,EAAAC,WAAA,CAAA;YACzC,IAAMC,IAAI,IAAAJ,qBAAA,GAAGD,GAAG,KAAHA,IAAAA,IAAAA,GAAG,wBAAAE,UAAA,GAAHF,GAAG,CAAEM,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,GAAID,GAAG,KAAHA,IAAAA,IAAAA,GAAG,wBAAAI,WAAA,GAAHJ,GAAG,CAAEM,KAAK,cAAAF,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,WAAA,CAAYC,IAAI,CAAA;YACpE,IAAMI,OAAO,GAAGJ,IAAI,GAAGK,8BAAY,CAACL,IAAI,CAAC,GAAGM,OAAM,EAAE,CAAA;YACpD,OAAOC,mCAAiB,CAACH,OAAO,CAAC,CAAA;AACnC,WAAA;AACF,SAAC,CACH,CAAC,CAAA;AACH,OAAA;KACD,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASI,0BAA0BA,GAId;EACnB,IAAMC,UAAU,GAAG,uCAAuC,CAAA;AAC1D,EAAA,OAAO,UACLC,MAAmD,EACnDC,MAAc,EACdC,0BAAoC,EAAA;IAAA,OAChC;AACJ5C,MAAAA,IAAI,EAAEyC,UAAU;MAChBxC,OAAO,EAAA,SAAAA,OAACC,CAAAA,QAAQ,EAAE;AAChBA,QAAAA,QAAQ,CAAC2C,KAAK,CAACC,SAAS,CAACC,QAAQ,CAACN,UAAU,EAAE,UAACO,WAAW,EAAEC,QAAoB,EAAK;AAAA,UAAA,IAAAC,IAAA,CAAA;AACnF;AACA,UAAA,IAAMC,UAAU,GAAAD,CAAAA,IAAA,GAAIF,WAAW,CAACI,aAAa,CAACC,IAAI,MAAAH,IAAAA,IAAAA,IAAA,cAAAA,IAAA,GAA2BG,eAAI,CAACC,OAAO,EAAE,CAAA;AAC3F,UAAA,IAAMC,cAAc,GAAGC,MAAM,CAACC,IAAI,CAACT,WAAW,CAACU,MAAiC,CAAC,CAACC,GAAG,CACnF,UAACC,KAAK,EAAA;AAAA,YAAA,OAAKP,eAAI,CAACQ,IAAI,CAACV,UAAU,EAAES,KAAK,CAAC,CAAA;AAAA,WACzC,CAAC,CAAA;AACD,UAAA,KAAKlB,MAAM,CAACa,cAAc,CAAC,CAACO,IAAI,CAAC,YAAM;AACrCb,YAAAA,QAAQ,EAAE,CAAA;AACZ,WAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;QAEF,IAAIL,0BAA0B,IAAI1C,QAAQ,CAACG,OAAO,CAAC0D,IAAI,KAAK,YAAY,EAAE;UACxE7D,QAAQ,CAAC2C,KAAK,CAACmB,IAAI,CAACC,GAAG,CAACxB,UAAU,EAAE,YAAM;AACxCyB,YAAAA,UAAU,CAAC,YAAM;AACfvB,cAAAA,MAAM,CAACwB,KAAK,CAAC,yCAAyC,CAAC,CAAA;AACvDC,cAAAA,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,aAAC,CAAC,CAAA;AACJ,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAA;KACD,CAAA;GAAC,CAAA;AACJ,CAAA;AAEA,SAASC,oCAAoCA,CAC3CxE,kBAAkD,EACN;AAC5C,EAAA,OAAO,UAACC,aAAqB,EAAA;IAAA,OAAM;AACjCC,MAAAA,IAAI,EAAE,iDAAiD;MACvDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,QAAQ,EAAE;AAAA,QAAA,IAAAqE,kBAAA,CAAA;AAChB;AACA;AACA;AACA,QAAA,IAAMnE,YAAY;AAChB;AACA;AACA;AACA,QAAA,CAAAF,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAqE,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,kBAAA,GAARrE,QAAQ,CAAED,OAAO,MAAA,IAAA,IAAAsE,kBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAmBnE,YAAY,KAAIN,kBAAkB,CAAA;QAEvDI,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,EAAEX,aAAAA;AACV,SAAC,CACH,CAAC,CAAA;AACH,OAAA;KACD,CAAA;GAAC,CAAA;AACJ,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyE,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;IALJtE,YAAY,GAAAqE,KAAA,CAAZrE,YAAY;IACZmB,YAAY,GAAAkD,KAAA,CAAZlD,YAAY,CAAA;AAKZ,EAAA,OAAOsD,uCAAqB,CAAC;AAC3BC,IAAAA,sBAAsB,EAAEjF,6BAA6B,CAACO,YAAY,CAAC;IACnE2E,2BAA2B,EAAEpE,kCAAkC,EAAE;AACjEqE,IAAAA,6BAA6B,EAAEV,oCAAoC,CAAClE,YAAY,CAAC;AACjF6E,IAAAA,sBAAsB,EAAExD,6BAA6B,CAACrB,YAAY,CAAC;IACnE8E,mBAAmB,EAAE1C,0BAA0B,EAAE;IACjD2C,6BAA6B,EAAEhE,oCAAoC,CAACI,YAAY,CAAA;AAClF,GAAC,CAAC,CAAA;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webpack4and5-bffa70d9.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 webpackReleaseInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string): UnpluginOptions => ({\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 || 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: injectionCode,\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 webpackDebugIdInjectionPlugin(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): () => 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 || 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 hash = arg?.chunk?.contentHash?.javascript ?? arg?.chunk?.hash;\n const debugId = hash ? stringToUUID(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 upload: (buildArtifacts: string[]) => Promise<void>,\n logger: Logger,\n forceExitOnBuildCompletion?: boolean\n ) => ({\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(\n UnsafeBannerPlugin: UnsafeBannerPlugin | undefined\n): (injectionCode: string) => UnpluginOptions {\n return (injectionCode: string) => ({\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 || 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: injectionCode,\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 releaseInjectionPlugin: webpackReleaseInjectionPlugin(BannerPlugin),\n componentNameAnnotatePlugin: webpackComponentNameAnnotatePlugin(),\n moduleMetadataInjectionPlugin: webpackModuleMetadataInjectionPlugin(BannerPlugin),\n debugIdInjectionPlugin: webpackDebugIdInjectionPlugin(BannerPlugin),\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":["webpackReleaseInjectionPlugin","UnsafeBannerPlugin","injectionCode","name","webpack","compiler","_compiler$webpack","BannerPlugin","options","plugins","push","raw","include","banner","webpackComponentNameAnnotatePlugin","ignoredComponents","enforce","transformInclude","id","endsWith","transform","createComponentNameAnnotateHooks","webpackBundleSizeOptimizationsPlugin","UnsafeDefinePlugin","replacementValues","_compiler$webpack2","DefinePlugin","_objectSpread","webpackDebugIdInjectionPlugin","_compiler$webpack3","arg","_arg$chunk$contentHas","_arg$chunk","_arg$chunk$contentHas2","_arg$chunk2","hash","chunk","contentHash","javascript","debugId","stringToUUID","uuidv4","getDebugIdSnippet","webpackDebugIdUploadPlugin","pluginName","upload","logger","forceExitOnBuildCompletion","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","sentryWebpackUnpluginFactory","_ref2","arguments","length","undefined","sentryUnpluginFactory","releaseInjectionPlugin","componentNameAnnotatePlugin","moduleMetadataInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","bundleSizeOptimizationsPlugin"],"mappings":"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"}