Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
21 KiB
Plaintext
1 line
21 KiB
Plaintext
{"version":3,"file":"getBuildPluginOptions.js","sources":["../../../src/config/getBuildPluginOptions.ts"],"sourcesContent":["import type { Options as SentryBuildPluginOptions } from '@sentry/bundler-plugin-core';\nimport * as path from 'path';\nimport type { SentryBuildOptions } from './types';\n\nconst LOGGER_PREFIXES = {\n 'webpack-nodejs': '[@sentry/nextjs - Node.js]',\n 'webpack-edge': '[@sentry/nextjs - Edge]',\n 'webpack-client': '[@sentry/nextjs - Client]',\n 'after-production-compile-webpack': '[@sentry/nextjs - After Production Compile (Webpack)]',\n 'after-production-compile-turbopack': '[@sentry/nextjs - After Production Compile (Turbopack)]',\n} as const;\n\n// File patterns for source map operations\n// We use both glob patterns and directory paths for the sourcemap upload and deletion\n// -> Direct CLI invocation handles file paths better than glob patterns\n// -> Webpack/Bundler needs glob patterns as this is the format that is used by the plugin\nconst FILE_PATTERNS = {\n SERVER: {\n GLOB: 'server/**',\n PATH: 'server',\n },\n SERVERLESS: 'serverless/**',\n STATIC_CHUNKS: {\n GLOB: 'static/chunks/**',\n PATH: 'static/chunks',\n },\n STATIC_CHUNKS_PAGES: {\n GLOB: 'static/chunks/pages/**',\n PATH: 'static/chunks/pages',\n },\n STATIC_CHUNKS_APP: {\n GLOB: 'static/chunks/app/**',\n PATH: 'static/chunks/app',\n },\n MAIN_CHUNKS: 'static/chunks/main-*',\n FRAMEWORK_CHUNKS: 'static/chunks/framework-*',\n FRAMEWORK_CHUNKS_DOT: 'static/chunks/framework.*',\n POLYFILLS_CHUNKS: 'static/chunks/polyfills-*',\n WEBPACK_CHUNKS: 'static/chunks/webpack-*',\n PAGE_CLIENT_REFERENCE_MANIFEST: '**/page_client-reference-manifest.js',\n SERVER_REFERENCE_MANIFEST: '**/server-reference-manifest.js',\n NEXT_FONT_MANIFEST: '**/next-font-manifest.js',\n MIDDLEWARE_BUILD_MANIFEST: '**/middleware-build-manifest.js',\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: '**/interception-route-rewrite-manifest.js',\n ROUTE_CLIENT_REFERENCE_MANIFEST: '**/route_client-reference-manifest.js',\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: '**/middleware-react-loadable-manifest.js',\n} as const;\n\n// Source map file extensions to delete\nconst SOURCEMAP_EXTENSIONS = ['*.js.map', '*.mjs.map', '*.cjs.map', '*.css.map'] as const;\n\ntype BuildTool = keyof typeof LOGGER_PREFIXES;\n\n/**\n * Normalizes Windows paths to POSIX format for glob patterns\n */\nexport function normalizePathForGlob(distPath: string): string {\n return distPath.replace(/\\\\/g, '/');\n}\n\n/**\n * These functions are used to get the correct pattern for the sourcemap upload based on the build tool and the usage context\n * -> Direct CLI invocation handles file paths better than glob patterns\n */\nfunction getServerPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.SERVER.PATH : FILE_PATTERNS.SERVER.GLOB;\n}\n\nfunction getStaticChunksPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.STATIC_CHUNKS.PATH : FILE_PATTERNS.STATIC_CHUNKS.GLOB;\n}\n\nfunction getStaticChunksPagesPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.STATIC_CHUNKS_PAGES.PATH : FILE_PATTERNS.STATIC_CHUNKS_PAGES.GLOB;\n}\n\nfunction getStaticChunksAppPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.STATIC_CHUNKS_APP.PATH : FILE_PATTERNS.STATIC_CHUNKS_APP.GLOB;\n}\n\n/**\n * Creates file patterns for source map uploads based on build tool and options\n */\nfunction createSourcemapUploadAssetPatterns(\n normalizedDistPath: string,\n buildTool: BuildTool,\n widenClientFileUpload: boolean = false,\n): string[] {\n const assets: string[] = [];\n\n if (buildTool.startsWith('after-production-compile')) {\n assets.push(path.posix.join(normalizedDistPath, getServerPattern({ useDirectoryPath: true })));\n\n if (buildTool === 'after-production-compile-turbopack') {\n // In turbopack we always want to upload the full static chunks directory\n // as the build output is not split into pages|app chunks\n assets.push(path.posix.join(normalizedDistPath, getStaticChunksPattern({ useDirectoryPath: true })));\n } else {\n // Webpack client builds in after-production-compile mode\n if (widenClientFileUpload) {\n assets.push(path.posix.join(normalizedDistPath, getStaticChunksPattern({ useDirectoryPath: true })));\n } else {\n assets.push(\n path.posix.join(normalizedDistPath, getStaticChunksPagesPattern({ useDirectoryPath: true })),\n path.posix.join(normalizedDistPath, getStaticChunksAppPattern({ useDirectoryPath: true })),\n );\n }\n }\n } else {\n if (buildTool === 'webpack-nodejs' || buildTool === 'webpack-edge') {\n // Server builds\n assets.push(\n path.posix.join(normalizedDistPath, getServerPattern({ useDirectoryPath: false })),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.SERVERLESS),\n );\n } else if (buildTool === 'webpack-client') {\n // Client builds\n if (widenClientFileUpload) {\n assets.push(path.posix.join(normalizedDistPath, getStaticChunksPattern({ useDirectoryPath: false })));\n } else {\n assets.push(\n path.posix.join(normalizedDistPath, getStaticChunksPagesPattern({ useDirectoryPath: false })),\n path.posix.join(normalizedDistPath, getStaticChunksAppPattern({ useDirectoryPath: false })),\n );\n }\n }\n }\n\n return assets;\n}\n\n/**\n * Creates ignore patterns for source map uploads\n */\nfunction createSourcemapUploadIgnorePattern(\n normalizedDistPath: string,\n widenClientFileUpload: boolean = false,\n): string[] {\n const ignore: string[] = [];\n\n // We only add main-* files if the user has not opted into it\n if (!widenClientFileUpload) {\n ignore.push(path.posix.join(normalizedDistPath, FILE_PATTERNS.MAIN_CHUNKS));\n }\n\n // Always ignore these patterns\n ignore.push(\n path.posix.join(normalizedDistPath, FILE_PATTERNS.FRAMEWORK_CHUNKS),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.FRAMEWORK_CHUNKS_DOT),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.POLYFILLS_CHUNKS),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.WEBPACK_CHUNKS),\n // Next.js internal manifest files that don't have source maps\n // These files are auto-generated by Next.js and do not contain user code.\n // Ignoring them prevents \"Could not determine source map reference\" warnings.\n FILE_PATTERNS.PAGE_CLIENT_REFERENCE_MANIFEST,\n FILE_PATTERNS.SERVER_REFERENCE_MANIFEST,\n FILE_PATTERNS.NEXT_FONT_MANIFEST,\n FILE_PATTERNS.MIDDLEWARE_BUILD_MANIFEST,\n FILE_PATTERNS.INTERCEPTION_ROUTE_REWRITE_MANIFEST,\n FILE_PATTERNS.ROUTE_CLIENT_REFERENCE_MANIFEST,\n FILE_PATTERNS.MIDDLEWARE_REACT_LOADABLE_MANIFEST,\n );\n\n return ignore;\n}\n\n/**\n * Creates file patterns for deletion after source map upload\n */\nfunction createFilesToDeleteAfterUploadPattern(\n normalizedDistPath: string,\n buildTool: BuildTool,\n deleteSourcemapsAfterUpload: boolean,\n useRunAfterProductionCompileHook: boolean = false,\n): string[] | undefined {\n if (!deleteSourcemapsAfterUpload) {\n return undefined;\n }\n\n // We don't want to delete source maps for server builds as this led to errors on Vercel in the past\n // See: https://github.com/getsentry/sentry-javascript/issues/13099\n if (buildTool === 'webpack-nodejs' || buildTool === 'webpack-edge') {\n return undefined;\n }\n\n // Skip deletion for webpack client builds when using the experimental hook\n if (buildTool === 'webpack-client' && useRunAfterProductionCompileHook) {\n return undefined;\n }\n\n return SOURCEMAP_EXTENSIONS.map(ext => path.posix.join(normalizedDistPath, 'static', '**', ext));\n}\n\n/**\n * Determines if sourcemap uploads should be skipped\n */\nfunction shouldSkipSourcemapUpload(buildTool: BuildTool, useRunAfterProductionCompileHook: boolean = false): boolean {\n return useRunAfterProductionCompileHook && buildTool.startsWith('webpack');\n}\n\n/**\n * Source rewriting function for webpack sources\n */\nfunction rewriteWebpackSources(source: string): string {\n return source.replace(/^webpack:\\/\\/(?:_N_E\\/)?/, '');\n}\n\n/**\n * Creates release configuration\n */\nfunction createReleaseConfig(\n releaseName: string | undefined,\n sentryBuildOptions: SentryBuildOptions,\n): SentryBuildPluginOptions['release'] {\n if (releaseName !== undefined) {\n return {\n inject: false, // The webpack plugin's release injection breaks the `app` directory - we inject the release manually with the value injection loader instead.\n name: releaseName,\n create: sentryBuildOptions.release?.create,\n finalize: sentryBuildOptions.release?.finalize,\n dist: sentryBuildOptions.release?.dist,\n vcsRemote: sentryBuildOptions.release?.vcsRemote,\n setCommits: sentryBuildOptions.release?.setCommits,\n deploy: sentryBuildOptions.release?.deploy,\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions?.release,\n };\n }\n\n return {\n inject: false,\n create: false,\n finalize: false,\n };\n}\n\n/**\n * Merges default ignore patterns with user-provided ignore patterns.\n * User patterns are appended to the defaults to ensure internal Next.js\n * files are always ignored while allowing users to add additional patterns.\n */\nfunction mergeIgnorePatterns(defaultPatterns: string[], userPatterns: string | string[] | undefined): string[] {\n if (!userPatterns) {\n return defaultPatterns;\n }\n\n const userPatternsArray = Array.isArray(userPatterns) ? userPatterns : [userPatterns];\n return [...defaultPatterns, ...userPatternsArray];\n}\n\n/**\n * Get Sentry Build Plugin options for both webpack and turbopack builds.\n * These options can be used in two ways:\n * 1. The options can be built in a single operation after the production build completes\n * 2. The options can be built in multiple operations, one for each webpack build\n */\nexport function getBuildPluginOptions({\n sentryBuildOptions,\n releaseName,\n distDirAbsPath,\n buildTool,\n useRunAfterProductionCompileHook,\n}: {\n sentryBuildOptions: SentryBuildOptions;\n releaseName: string | undefined;\n distDirAbsPath: string;\n buildTool: BuildTool;\n useRunAfterProductionCompileHook?: boolean; // Whether the user has opted into using the experimental hook\n}): SentryBuildPluginOptions {\n // We need to convert paths to posix because Glob patterns use `\\` to escape\n // glob characters. This clashes with Windows path separators.\n // See: https://www.npmjs.com/package/glob\n const normalizedDistDirAbsPath = normalizePathForGlob(distDirAbsPath);\n const loggerPrefix = LOGGER_PREFIXES[buildTool];\n const widenClientFileUpload = sentryBuildOptions.widenClientFileUpload ?? false;\n const deleteSourcemapsAfterUpload = sentryBuildOptions.sourcemaps?.deleteSourcemapsAfterUpload ?? false;\n\n const sourcemapUploadAssets = createSourcemapUploadAssetPatterns(\n normalizedDistDirAbsPath,\n buildTool,\n widenClientFileUpload,\n );\n\n const sourcemapUploadIgnore = createSourcemapUploadIgnorePattern(normalizedDistDirAbsPath, widenClientFileUpload);\n\n const finalIgnorePatterns = mergeIgnorePatterns(sourcemapUploadIgnore, sentryBuildOptions.sourcemaps?.ignore);\n\n const filesToDeleteAfterUpload = createFilesToDeleteAfterUploadPattern(\n normalizedDistDirAbsPath,\n buildTool,\n deleteSourcemapsAfterUpload,\n useRunAfterProductionCompileHook,\n );\n\n const skipSourcemapsUpload = shouldSkipSourcemapUpload(buildTool, useRunAfterProductionCompileHook);\n\n return {\n authToken: sentryBuildOptions.authToken,\n headers: sentryBuildOptions.headers,\n org: sentryBuildOptions.org,\n project: sentryBuildOptions.project,\n telemetry: sentryBuildOptions.telemetry,\n debug: sentryBuildOptions.debug,\n errorHandler: sentryBuildOptions.errorHandler,\n reactComponentAnnotation: buildTool.startsWith('after-production-compile')\n ? undefined\n : {\n ...sentryBuildOptions.webpack?.reactComponentAnnotation,\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions?.reactComponentAnnotation,\n },\n silent: sentryBuildOptions.silent,\n url: sentryBuildOptions.sentryUrl,\n sourcemaps: {\n disable: skipSourcemapsUpload ? true : (sentryBuildOptions.sourcemaps?.disable ?? false),\n rewriteSources: rewriteWebpackSources,\n assets: sentryBuildOptions.sourcemaps?.assets ?? sourcemapUploadAssets,\n ignore: finalIgnorePatterns,\n filesToDeleteAfterUpload,\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions?.sourcemaps,\n },\n release: createReleaseConfig(releaseName, sentryBuildOptions),\n bundleSizeOptimizations: {\n ...sentryBuildOptions.bundleSizeOptimizations,\n },\n _metaOptions: {\n loggerPrefixOverride: loggerPrefix,\n telemetry: {\n metaFramework: 'nextjs',\n },\n },\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions,\n };\n}\n"],"names":[],"mappings":"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"} |