@sentry/bundler-plugin-core 2.2.0 → 2.2.2
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 +107 -43
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.mjs +107 -43
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/debug-id-upload.d.ts +1 -0
- package/dist/types/debug-id-upload.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/options-mapping.d.ts +1 -0
- package/dist/types/options-mapping.d.ts.map +1 -0
- package/dist/types/plugins/release-management.d.ts +1 -0
- package/dist/types/plugins/release-management.d.ts.map +1 -0
- package/dist/types/plugins/telemetry.d.ts +1 -0
- package/dist/types/plugins/telemetry.d.ts.map +1 -0
- package/dist/types/sentry/logger.d.ts +1 -0
- package/dist/types/sentry/logger.d.ts.map +1 -0
- package/dist/types/sentry/telemetry.d.ts +1 -0
- package/dist/types/sentry/telemetry.d.ts.map +1 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +4 -3
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils.ts","../../src/options-mapping.ts","../../src/debug-id-upload.ts","../../src/plugins/release-management.ts","../../src/plugins/telemetry.ts","../../src/sentry/logger.ts","../../src/sentry/telemetry.ts","../../src/index.ts"],"sourcesContent":["import findUp from \"find-up\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport crypto from \"crypto\";\nimport childProcess from \"child_process\";\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify<T = unknown>(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\ntype PackageJson = Record<string, unknown>;\n\n/**\n * Get the closes package.json from a given starting point upwards.\n * This handles a few edge cases:\n * * Check if a given file package.json appears to be an actual NPM package.json file\n * * Stop at the home dir, to avoid looking too deeply\n */\nexport function getPackageJson({ cwd, stopAt }: { cwd?: string; stopAt?: string } = {}):\n | PackageJson\n | undefined {\n return lookupPackageJson(cwd ?? process.cwd(), path.normalize(stopAt ?? os.homedir()));\n}\n\nexport function parseMajorVersion(version: string): number | undefined {\n // if it has a `v` prefix, remove it\n if (version.startsWith(\"v\")) {\n version = version.slice(1);\n }\n\n // First, try simple lookup of exact, ~ and ^ versions\n const regex = /^[\\^~]?(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n\n const match = version.match(regex);\n if (match) {\n return parseInt(match[1] as string, 10);\n }\n\n // Try to parse e.g. 1.x\n const coerced = parseInt(version, 10);\n if (!Number.isNaN(coerced)) {\n return coerced;\n }\n\n // Match <= and >= ranges.\n const gteLteRegex = /^[<>]=\\s*(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n const gteLteMatch = version.match(gteLteRegex);\n if (gteLteMatch) {\n return parseInt(gteLteMatch[1] as string, 10);\n }\n\n // match < ranges\n const ltRegex = /^<\\s*(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n const ltMatch = version.match(ltRegex);\n if (ltMatch) {\n // Two scenarios:\n // a) < 2.0.0 --> return 1\n // b) < 2.1.0 --> return 2\n\n const major = parseInt(ltMatch[1] as string, 10);\n\n if (\n // minor version > 0\n (typeof ltMatch[2] === \"string\" && parseInt(ltMatch[2].slice(1), 10) > 0) ||\n // patch version > 0\n (typeof ltMatch[3] === \"string\" && parseInt(ltMatch[3].slice(1), 10) > 0)\n ) {\n return major;\n }\n\n return major - 1;\n }\n\n // match > ranges\n const gtRegex = /^>\\s*(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n const gtMatch = version.match(gtRegex);\n if (gtMatch) {\n // We always return the version here, even though it _may_ be incorrect\n // E.g. if given > 2.0.0, it should be 2 if there exists any 2.x.x version, else 3\n // Since there is no way for us to know this, we're going to assume any kind of patch/feature release probably exists\n return parseInt(gtMatch[1] as string, 10);\n }\n return undefined;\n}\n\n// This is an explicit list of packages where we want to include the (major) version number.\nconst PACKAGES_TO_INCLUDE_VERSION = [\n \"react\",\n \"@angular/core\",\n \"vue\",\n \"ember-source\",\n \"svelte\",\n \"@sveltejs/kit\",\n \"webpack\",\n \"vite\",\n \"gatsby\",\n \"next\",\n \"remix\",\n \"rollup\",\n \"esbuild\",\n];\n\nexport function getDependencies(packageJson: PackageJson): {\n deps: string[];\n depsVersions: Record<string, number>;\n} {\n const dependencies: Record<string, string> = Object.assign(\n {},\n packageJson[\"devDependencies\"] ?? {},\n packageJson[\"dependencies\"] ?? {}\n );\n\n const deps = Object.keys(dependencies).sort();\n\n const depsVersions: Record<string, number> = deps.reduce((depsVersions, depName) => {\n if (PACKAGES_TO_INCLUDE_VERSION.includes(depName)) {\n const version = dependencies[depName] as string;\n const majorVersion = parseMajorVersion(version);\n if (majorVersion) {\n depsVersions[depName] = majorVersion;\n }\n }\n return depsVersions;\n }, {} as Record<string, number>);\n\n return { deps, depsVersions };\n}\n\nfunction lookupPackageJson(cwd: string, stopAt: string): PackageJson | undefined {\n const jsonPath = findUp.sync(\n (dirName) => {\n // Stop if we reach this dir\n if (path.normalize(dirName) === stopAt) {\n return findUp.stop;\n }\n\n return findUp.sync.exists(dirName + \"/package.json\") ? \"package.json\" : undefined;\n },\n { cwd }\n );\n\n if (!jsonPath) {\n return undefined;\n }\n\n try {\n const jsonStr = fs.readFileSync(jsonPath, \"utf8\");\n const json = JSON.parse(jsonStr) as PackageJson;\n\n // Ensure it is an actual package.json\n // This is very much not bulletproof, but should be good enough\n if (\"name\" in json || \"private\" in json) {\n return json;\n }\n } catch (error) {\n // Ignore and walk up\n }\n\n // Continue up the tree, if we find a fitting package.json\n const newCwd = path.dirname(path.resolve(jsonPath + \"/..\"));\n return lookupPackageJson(newCwd, stopAt);\n}\n\n/**\n * Deterministically hashes a string and turns the hash into a uuid.\n */\nexport function stringToUUID(str: string): string {\n const md5sum = crypto.createHash(\"md5\");\n md5sum.update(str);\n const md5Hash = md5sum.digest(\"hex\");\n return (\n md5Hash.substring(0, 8) +\n \"-\" +\n md5Hash.substring(8, 12) +\n \"-4\" +\n md5Hash.substring(13, 16) +\n \"-\" +\n md5Hash.substring(16, 20) +\n \"-\" +\n md5Hash.substring(20)\n ).toLowerCase();\n}\n\n/**\n * Tries to guess a release name based on environmental data.\n */\nexport function determineReleaseName(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess.execSync(\"git rev-parse --short HEAD\").toString().trim();\n } catch (e) {\n // noop\n }\n\n return (\n // GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables\n process.env[\"GITHUB_SHA\"] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env[\"COMMIT_REF\"] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env[\"CF_PAGES_COMMIT_SHA\"] ||\n // AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html\n process.env[\"CODEBUILD_RESOLVED_SOURCE_VERSION\"] ||\n // CircleCI - https://circleci.com/docs/2.0/env-vars/\n process.env[\"CIRCLE_SHA1\"] ||\n // Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables\n process.env[\"VERCEL_GIT_COMMIT_SHA\"] ||\n process.env[\"VERCEL_GITHUB_COMMIT_SHA\"] ||\n process.env[\"VERCEL_GITLAB_COMMIT_SHA\"] ||\n process.env[\"VERCEL_BITBUCKET_COMMIT_SHA\"] ||\n // Zeit (now known as Vercel)\n process.env[\"ZEIT_GITHUB_COMMIT_SHA\"] ||\n process.env[\"ZEIT_GITLAB_COMMIT_SHA\"] ||\n process.env[\"ZEIT_BITBUCKET_COMMIT_SHA\"] ||\n gitRevision\n );\n}\n\n/**\n * Generates code for the global injector which is responsible for setting the global\n * `SENTRY_RELEASE` & `SENTRY_BUILD_INFO` variables.\n */\nexport function generateGlobalInjectorCode({\n release,\n injectBuildInformation,\n}: {\n release: string;\n injectBuildInformation: boolean;\n}) {\n // The code below is mostly ternary operators because it saves bundle size.\n // The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.)\n let code = `\n var _global =\n typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ?\n global :\n typeof self !== 'undefined' ?\n self :\n {};\n\n _global.SENTRY_RELEASE={id:\"${release}\"};`;\n\n if (injectBuildInformation) {\n const buildInfo = getBuildInformation();\n\n code += `\n _global.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;\n }\n\n return code;\n}\n\nfunction getBuildInformation() {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson\n ? getDependencies(packageJson)\n : { deps: [], depsVersions: {} };\n\n return {\n deps,\n depsVersions,\n nodeVersion: parseMajorVersion(process.version),\n };\n}\n\nexport function stripQueryAndHashFromPath(path: string): string {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return path.split(\"?\")[0]!.split(\"#\")[0]!;\n}\n","import { Logger } from \"./sentry/logger\";\nimport { Options as UserOptions } from \"./types\";\nimport { determineReleaseName } from \"./utils\";\n\nexport type NormalizedOptions = ReturnType<typeof normalizeUserOptions>;\n\nexport const SENTRY_SAAS_URL = \"https://sentry.io\";\n\nexport function normalizeUserOptions(userOptions: UserOptions) {\n const options = {\n org: userOptions.org ?? process.env[\"SENTRY_ORG\"],\n project: userOptions.project ?? process.env[\"SENTRY_PROJECT\"],\n authToken: userOptions.authToken ?? process.env[\"SENTRY_AUTH_TOKEN\"],\n url: userOptions.url ?? process.env[\"SENTRY_URL\"] ?? SENTRY_SAAS_URL,\n headers: userOptions.headers,\n debug: userOptions.debug ?? false,\n silent: userOptions.silent ?? false,\n errorHandler: userOptions.errorHandler,\n telemetry: userOptions.telemetry ?? true,\n disable: userOptions.disable ?? false,\n sourcemaps: userOptions.sourcemaps,\n release: {\n ...userOptions.release,\n name: userOptions.release?.name ?? determineReleaseName(),\n inject: userOptions.release?.inject ?? true,\n create: userOptions.release?.create ?? true,\n finalize: userOptions.release?.finalize ?? true,\n vcsRemote: userOptions.release?.vcsRemote ?? process.env[\"SENTRY_VSC_REMOTE\"] ?? \"origin\",\n cleanArtifacts: userOptions.release?.cleanArtifacts ?? false,\n },\n _experiments: userOptions._experiments ?? {},\n };\n\n return options;\n}\n\n/**\n * Validates a few combinations of options that are not checked by Sentry CLI.\n *\n * For all other options, we can rely on Sentry CLI to validate them. In fact,\n * we can't validate them in the plugin because Sentry CLI might pick up options from\n * its config file.\n *\n * @param options the internal options\n * @param logger the logger\n *\n * @returns `true` if the options are valid, `false` otherwise\n */\nexport function validateOptions(options: NormalizedOptions, logger: Logger): boolean {\n const setCommits = options.release?.setCommits;\n if (setCommits) {\n if (!setCommits.auto && !(setCommits.repo && setCommits.commit)) {\n logger.error(\n \"The `setCommits` option was specified but is missing required properties.\",\n \"Please set either `auto` or both, `repo` and `commit`.\"\n );\n return false;\n }\n if (setCommits.auto && setCommits.repo && setCommits) {\n logger.warn(\n \"The `setCommits` options includes `auto` but also `repo` and `commit`.\",\n \"Ignoring `repo` and `commit`.\",\n \"Please only set either `auto` or both, `repo` and `commit`.\"\n );\n }\n }\n\n if (options.release?.deploy && !options.release?.deploy.env) {\n logger.error(\n \"The `deploy` option was specified but is missing the required `env` property.\",\n \"Please set the `env` property.\"\n );\n return false;\n }\n\n return true;\n}\n","import fs from \"fs\";\nimport { glob } from \"glob\";\nimport os from \"os\";\nimport path from \"path\";\nimport * as util from \"util\";\nimport { Logger } from \"./sentry/logger\";\nimport { promisify } from \"util\";\nimport { Hub, NodeClient } from \"@sentry/node\";\nimport SentryCli from \"@sentry/cli\";\n\ninterface RewriteSourcesHook {\n (source: string, map: any): string;\n}\n\ninterface DebugIdUploadPluginOptions {\n logger: Logger;\n assets?: string | string[];\n ignore?: string | string[];\n releaseName?: string;\n dist?: string;\n rewriteSourcesHook?: RewriteSourcesHook;\n handleRecoverableError: (error: unknown) => void;\n sentryHub: Hub;\n sentryClient: NodeClient;\n deleteFilesAfterUpload?: string | string[];\n sentryCliOptions: {\n url: string;\n authToken: string;\n org: string;\n project: string;\n vcsRemote: string;\n silent: boolean;\n headers?: Record<string, string>;\n };\n}\n\nexport function createDebugIdUploadFunction({\n assets,\n ignore,\n logger,\n releaseName,\n dist,\n handleRecoverableError,\n sentryHub,\n sentryClient,\n sentryCliOptions,\n rewriteSourcesHook,\n deleteFilesAfterUpload,\n}: DebugIdUploadPluginOptions) {\n return async (buildArtifactPaths: string[]) => {\n let folderToCleanUp: string | undefined;\n\n const cliInstance = new SentryCli(null, sentryCliOptions);\n\n try {\n const tmpUploadFolder = await fs.promises.mkdtemp(\n path.join(os.tmpdir(), \"sentry-bundler-plugin-upload-\")\n );\n\n folderToCleanUp = tmpUploadFolder;\n\n let globAssets;\n if (assets) {\n globAssets = assets;\n } else {\n logger.debug(\n \"No `sourcemaps.assets` option provided, falling back to uploading detected build artifacts.\"\n );\n globAssets = buildArtifactPaths;\n }\n\n const debugIdChunkFilePaths = (\n await glob(globAssets, {\n absolute: true,\n nodir: true,\n ignore: ignore,\n })\n ).filter(\n (debugIdChunkFilePath) =>\n debugIdChunkFilePath.endsWith(\".js\") ||\n debugIdChunkFilePath.endsWith(\".mjs\") ||\n debugIdChunkFilePath.endsWith(\".cjs\")\n );\n\n if (Array.isArray(assets) && assets.length === 0) {\n logger.debug(\n \"Empty `sourcemaps.assets` option provided. Will not upload sourcemaps with debug ID.\"\n );\n } else if (debugIdChunkFilePaths.length === 0) {\n logger.warn(\n \"Didn't find any matching sources for debug ID upload. Please check the `sourcemaps.assets` option.\"\n );\n } else {\n await Promise.all(\n debugIdChunkFilePaths.map(async (chunkFilePath, chunkIndex): Promise<void> => {\n await prepareBundleForDebugIdUpload(\n chunkFilePath,\n tmpUploadFolder,\n chunkIndex,\n logger,\n rewriteSourcesHook ?? defaultRewriteSourcesHook\n );\n })\n );\n\n await cliInstance.releases.uploadSourceMaps(\n releaseName ?? \"undefined\", // unfortunetly this needs a value for now but it will not matter since debug IDs overpower releases anyhow\n {\n include: [\n {\n paths: [tmpUploadFolder],\n rewrite: false,\n dist: dist,\n },\n ],\n useArtifactBundle: true,\n }\n );\n }\n\n if (deleteFilesAfterUpload) {\n const filePathsToDelete = await glob(deleteFilesAfterUpload, {\n absolute: true,\n nodir: true,\n });\n\n filePathsToDelete.forEach((filePathToDelete) => {\n logger.debug(`Deleting asset after upload: ${filePathToDelete}`);\n });\n\n await Promise.all(\n filePathsToDelete.map((filePathToDelete) =>\n fs.promises.rm(filePathToDelete, { force: true })\n )\n );\n }\n } catch (e) {\n sentryHub.captureException('Error in \"debugIdUploadPlugin\" writeBundle hook');\n await sentryClient.flush();\n handleRecoverableError(e);\n } finally {\n if (folderToCleanUp) {\n void fs.promises.rm(folderToCleanUp, { recursive: true, force: true });\n }\n }\n };\n}\n\nexport async function prepareBundleForDebugIdUpload(\n bundleFilePath: string,\n uploadFolder: string,\n chunkIndex: number,\n logger: Logger,\n rewriteSourcesHook: RewriteSourcesHook\n) {\n let bundleContent;\n try {\n bundleContent = await promisify(fs.readFile)(bundleFilePath, \"utf8\");\n } catch (e) {\n logger.error(\n `Could not read bundle to determine debug ID and source map: ${bundleFilePath}`,\n e\n );\n return;\n }\n\n const debugId = determineDebugIdFromBundleSource(bundleContent);\n if (debugId === undefined) {\n logger.debug(\n `Could not determine debug ID from bundle. This can happen if you did not clean your output folder before installing the Sentry plugin. File will not be source mapped: ${bundleFilePath}`\n );\n return;\n }\n\n const uniqueUploadName = `${debugId}-${chunkIndex}`;\n\n bundleContent += `\\n//# debugId=${debugId}`;\n const writeSourceFilePromise = fs.promises.writeFile(\n path.join(uploadFolder, `${uniqueUploadName}.js`),\n bundleContent,\n \"utf-8\"\n );\n\n const writeSourceMapFilePromise = determineSourceMapPathFromBundle(\n bundleFilePath,\n bundleContent,\n logger\n ).then(async (sourceMapPath): Promise<void> => {\n if (sourceMapPath) {\n return await prepareSourceMapForDebugIdUpload(\n sourceMapPath,\n path.join(uploadFolder, `${uniqueUploadName}.js.map`),\n debugId,\n rewriteSourcesHook,\n logger\n );\n }\n });\n\n return Promise.all([writeSourceFilePromise, writeSourceMapFilePromise]);\n}\n\n/**\n * Looks for a particular string pattern (`sdbid-[debug ID]`) in the bundle\n * source and extracts the bundle's debug ID from it.\n *\n * The string pattern is injected via the debug ID injection snipped.\n */\nfunction determineDebugIdFromBundleSource(code: string): string | undefined {\n const match = code.match(\n /sentry-dbid-([0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12})/\n );\n\n if (match) {\n return match[1];\n } else {\n return undefined;\n }\n}\n\n/**\n * Applies a set of heuristics to find the source map for a particular bundle.\n *\n * @returns the path to the bundle's source map or `undefined` if none could be found.\n */\nasync function determineSourceMapPathFromBundle(\n bundlePath: string,\n bundleSource: string,\n logger: Logger\n): Promise<string | undefined> {\n // 1. try to find source map at `sourceMappingURL` location\n const sourceMappingUrlMatch = bundleSource.match(/^\\/\\/# sourceMappingURL=(.*)$/);\n if (sourceMappingUrlMatch) {\n const sourceMappingUrl = path.normalize(sourceMappingUrlMatch[1] as string);\n if (path.isAbsolute(sourceMappingUrl)) {\n return sourceMappingUrl;\n } else {\n return path.join(path.dirname(bundlePath), sourceMappingUrl);\n }\n }\n\n // 2. try to find source map at path adjacent to chunk source, but with `.map` appended\n try {\n const adjacentSourceMapFilePath = bundlePath + \".map\";\n await util.promisify(fs.access)(adjacentSourceMapFilePath);\n return adjacentSourceMapFilePath;\n } catch (e) {\n // noop\n }\n\n // This is just a debug message because it can be quite spammy for some frameworks\n logger.debug(`Could not determine source map path for bundle: ${bundlePath}`);\n return undefined;\n}\n\n/**\n * Reads a source map, injects debug ID fields, and writes the source map to the target path.\n */\nasync function prepareSourceMapForDebugIdUpload(\n sourceMapPath: string,\n targetPath: string,\n debugId: string,\n rewriteSourcesHook: RewriteSourcesHook,\n logger: Logger\n): Promise<void> {\n let sourceMapFileContent: string;\n try {\n sourceMapFileContent = await util.promisify(fs.readFile)(sourceMapPath, {\n encoding: \"utf8\",\n });\n } catch (e) {\n logger.error(`Failed to read source map for debug ID upload: ${sourceMapPath}`, e);\n return;\n }\n\n let map: Record<string, unknown>;\n try {\n map = JSON.parse(sourceMapFileContent) as { sources: unknown; [key: string]: unknown };\n // For now we write both fields until we know what will become the standard - if ever.\n map[\"debug_id\"] = debugId;\n map[\"debugId\"] = debugId;\n } catch (e) {\n logger.error(`Failed to parse source map for debug ID upload: ${sourceMapPath}`);\n return;\n }\n\n if (map[\"sources\"] && Array.isArray(map[\"sources\"])) {\n map[\"sources\"].map((source: string) => rewriteSourcesHook(source, map));\n }\n\n try {\n await util.promisify(fs.writeFile)(targetPath, JSON.stringify(map), {\n encoding: \"utf8\",\n });\n } catch (e) {\n logger.error(`Failed to prepare source map for debug ID upload: ${sourceMapPath}`, e);\n return;\n }\n}\n\nconst PROTOCOL_REGEX = /^[a-zA-Z][a-zA-Z0-9+\\-.]*:\\/\\//;\nfunction defaultRewriteSourcesHook(source: string): string {\n if (source.match(PROTOCOL_REGEX)) {\n return source.replace(PROTOCOL_REGEX, \"\");\n } else {\n return path.relative(process.cwd(), path.normalize(source));\n }\n}\n","import SentryCli, { SentryCliCommitsOptions, SentryCliNewDeployOptions } from \"@sentry/cli\";\nimport { Hub, NodeClient } from \"@sentry/node\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { Logger } from \"../sentry/logger\";\nimport { IncludeEntry } from \"../types\";\nimport { arrayify } from \"../utils\";\n\ninterface ReleaseManagementPluginOptions {\n logger: Logger;\n releaseName: string;\n shouldCreateRelease: boolean;\n shouldCleanArtifacts: boolean;\n shouldFinalizeRelease: boolean;\n include?: string | IncludeEntry | Array<string | IncludeEntry>;\n setCommitsOption?: SentryCliCommitsOptions;\n deployOptions?: SentryCliNewDeployOptions;\n dist?: string;\n handleRecoverableError: (error: unknown) => void;\n sentryHub: Hub;\n sentryClient: NodeClient;\n sentryCliOptions: {\n url: string;\n authToken: string;\n org: string;\n project: string;\n vcsRemote: string;\n silent: boolean;\n headers?: Record<string, string>;\n };\n}\n\nexport function releaseManagementPlugin({\n releaseName,\n include,\n dist,\n setCommitsOption,\n shouldCreateRelease,\n shouldCleanArtifacts,\n shouldFinalizeRelease,\n deployOptions,\n handleRecoverableError,\n sentryHub,\n sentryClient,\n sentryCliOptions,\n}: ReleaseManagementPluginOptions): UnpluginOptions {\n return {\n name: \"sentry-debug-id-upload-plugin\",\n async writeBundle() {\n try {\n const cliInstance = new SentryCli(null, sentryCliOptions);\n\n if (shouldCreateRelease) {\n await cliInstance.releases.new(releaseName);\n }\n\n if (shouldCleanArtifacts) {\n await cliInstance.releases.execute(\n [\"releases\", \"files\", releaseName, \"delete\", \"--all\"],\n true\n );\n }\n\n if (include) {\n const normalizedInclude = arrayify(include)\n .map((includeItem) =>\n typeof includeItem === \"string\" ? { paths: [includeItem] } : includeItem\n )\n .map((includeEntry) => ({\n ...includeEntry,\n validate: includeEntry.validate ?? false,\n ext: includeEntry.ext\n ? includeEntry.ext.map((extension) => `.${extension.replace(/^\\./, \"\")}`)\n : [\".js\", \".map\", \".jsbundle\", \".bundle\"],\n ignore: includeEntry.ignore ? arrayify(includeEntry.ignore) : undefined,\n }));\n\n await cliInstance.releases.uploadSourceMaps(releaseName, {\n include: normalizedInclude,\n dist,\n });\n }\n\n if (setCommitsOption) {\n await cliInstance.releases.setCommits(releaseName, setCommitsOption);\n }\n\n if (shouldFinalizeRelease) {\n await cliInstance.releases.finalize(releaseName);\n }\n\n if (deployOptions) {\n await cliInstance.releases.newDeploy(releaseName, deployOptions);\n }\n } catch (e) {\n sentryHub.captureException('Error in \"releaseManagementPlugin\" writeBundle hook');\n await sentryClient.flush();\n handleRecoverableError(e);\n }\n },\n };\n}\n","import { Hub, NodeClient } from \"@sentry/node\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { Logger } from \"../sentry/logger\";\n\ninterface TelemetryPluginOptions {\n sentryHub: Hub;\n sentryClient: NodeClient;\n shouldSendTelemetry: Promise<boolean>;\n logger: Logger;\n}\n\nexport function telemetryPlugin({\n sentryHub,\n sentryClient,\n shouldSendTelemetry,\n logger,\n}: TelemetryPluginOptions): UnpluginOptions {\n return {\n name: \"sentry-telemetry-plugin\",\n async buildStart() {\n if (await shouldSendTelemetry) {\n logger.info(\n \"Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.\"\n );\n sentryHub.startTransaction({ name: \"Sentry Bundler Plugin execution\" }).finish();\n await sentryClient.flush(3000);\n }\n },\n };\n}\n","interface LoggerOptions {\n silent: boolean;\n debug: boolean;\n prefix: string;\n}\n\nexport type Logger = {\n info(message: string, ...params: unknown[]): void;\n warn(message: string, ...params: unknown[]): void;\n error(message: string, ...params: unknown[]): void;\n debug(message: string, ...params: unknown[]): void;\n};\n\nexport function createLogger(options: LoggerOptions): Logger {\n return {\n info(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Info: ${message}`, ...params);\n }\n },\n warn(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Warning: ${message}`, ...params);\n }\n },\n error(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Error: ${message}`, ...params);\n }\n },\n debug(message: string, ...params: unknown[]) {\n if (!options.silent && options.debug) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Debug: ${message}`, ...params);\n }\n },\n };\n}\n","import SentryCli from \"@sentry/cli\";\nimport { defaultStackParser, Hub, makeNodeTransport, NodeClient } from \"@sentry/node\";\nimport { NormalizedOptions, SENTRY_SAAS_URL } from \"../options-mapping\";\n\nconst SENTRY_SAAS_HOSTNAME = \"sentry.io\";\n\nexport function createSentryInstance(\n options: NormalizedOptions,\n shouldSendTelemetry: Promise<boolean>,\n bundler: string\n) {\n const client = new NodeClient({\n dsn: \"https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737\",\n\n tracesSampleRate: 1,\n sampleRate: 1,\n\n release: __PACKAGE_VERSION__,\n integrations: [],\n tracePropagationTargets: [\"sentry.io/api\"],\n\n stackParser: defaultStackParser,\n\n beforeSend: (event) => {\n event.exception?.values?.forEach((exception) => {\n delete exception.stacktrace;\n });\n\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n beforeSendTransaction: (event) => {\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n // We create a transport that stalls sending events until we know that we're allowed to (i.e. when Sentry CLI told\n // us that the upload URL is the Sentry SaaS URL)\n transport: (nodeTransportOptions) => {\n const nodeTransport = makeNodeTransport(nodeTransportOptions);\n return {\n flush: (timeout) => nodeTransport.flush(timeout),\n send: async (request) => {\n if (await shouldSendTelemetry) {\n return nodeTransport.send(request);\n } else {\n return undefined;\n }\n },\n };\n },\n });\n\n const hub = new Hub(client);\n\n setTelemetryDataOnHub(options, hub, bundler);\n\n return { sentryHub: hub, sentryClient: client };\n}\n\nexport function setTelemetryDataOnHub(options: NormalizedOptions, hub: Hub, bundler: string) {\n const { org, project, release, errorHandler, sourcemaps } = options;\n\n hub.setTag(\"upload-legacy-sourcemaps\", !!release.uploadLegacySourcemaps);\n if (release.uploadLegacySourcemaps) {\n hub.setTag(\n \"uploadLegacySourcemapsEntries\",\n Array.isArray(release.uploadLegacySourcemaps) ? release.uploadLegacySourcemaps.length : 1\n );\n }\n\n // Optional release pipeline steps\n hub.setTag(\"clean-artifacts\", release.cleanArtifacts);\n if (release.setCommits) {\n hub.setTag(\"set-commits\", release.setCommits.auto === true ? \"auto\" : \"manual\");\n } else {\n hub.setTag(\"set-commits\", \"undefined\");\n }\n hub.setTag(\"finalize-release\", release.finalize);\n hub.setTag(\"deploy-options\", !!release.deploy);\n\n // Miscelaneous options\n hub.setTag(\"custom-error-handler\", !!errorHandler);\n hub.setTag(\"sourcemaps-assets\", !!sourcemaps?.assets);\n hub.setTag(\"delete-after-upload\", !!sourcemaps?.deleteFilesAfterUpload);\n\n hub.setTag(\"node\", process.version);\n\n hub.setTags({\n organization: org,\n project,\n bundler,\n });\n\n hub.setUser({ id: org });\n}\n\nexport async function allowedToSendTelemetry(options: NormalizedOptions): Promise<boolean> {\n const { silent, org, project, authToken, url, headers, telemetry, release } = options;\n\n // `options.telemetry` defaults to true\n if (telemetry === false) {\n return false;\n }\n\n if (url === SENTRY_SAAS_URL) {\n return true;\n }\n\n const cli = new SentryCli(null, {\n url,\n authToken,\n org,\n project,\n vcsRemote: release.vcsRemote,\n silent,\n headers,\n });\n\n let cliInfo;\n try {\n // Makes a call to SentryCLI to get the Sentry server URL the CLI uses.\n // We need to check and decide to use telemetry based on the CLI's respone to this call\n // because only at this time we checked a possibly existing .sentryclirc file. This file\n // could point to another URL than the default URL.\n cliInfo = await cli.execute([\"info\"], false);\n } catch (e) {\n return false;\n }\n\n const cliInfoUrl = cliInfo\n .split(/(\\r\\n|\\n|\\r)/)[0]\n ?.replace(/^Sentry Server: /, \"\")\n ?.trim();\n\n if (cliInfoUrl === undefined) {\n return false;\n }\n\n return new URL(cliInfoUrl).hostname === SENTRY_SAAS_HOSTNAME;\n}\n","import SentryCli from \"@sentry/cli\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport MagicString from \"magic-string\";\nimport { createUnplugin, UnpluginOptions } from \"unplugin\";\nimport { normalizeUserOptions, validateOptions } from \"./options-mapping\";\nimport { createDebugIdUploadFunction } from \"./debug-id-upload\";\nimport { releaseManagementPlugin } from \"./plugins/release-management\";\nimport { telemetryPlugin } from \"./plugins/telemetry\";\nimport { createLogger } from \"./sentry/logger\";\nimport { allowedToSendTelemetry, createSentryInstance } from \"./sentry/telemetry\";\nimport { Options } from \"./types\";\nimport {\n generateGlobalInjectorCode,\n getDependencies,\n getPackageJson,\n parseMajorVersion,\n stringToUUID,\n stripQueryAndHashFromPath,\n} from \"./utils\";\n\ninterface SentryUnpluginFactoryOptions {\n releaseInjectionPlugin: (injectionCode: string) => UnpluginOptions;\n debugIdInjectionPlugin: () => UnpluginOptions;\n debugIdUploadPlugin: (upload: (buildArtifacts: string[]) => Promise<void>) => UnpluginOptions;\n}\n\n/**\n * The sentry bundler plugin concerns itself with two things:\n * - Release injection\n * - Sourcemaps upload\n *\n * Release injection:\n * Per default the sentry bundler plugin will inject a global `SENTRY_RELEASE` into each JavaScript/TypeScript module\n * that is part of the bundle. On a technical level this is done by appending an import (`import \"sentry-release-injector;\"`)\n * to all entrypoint files of the user code (see `transformInclude` and `transform` hooks). This import is then resolved\n * by the sentry plugin to a virtual module that sets the global variable (see `resolveId` and `load` hooks).\n * If a user wants to inject the release into a particular set of modules they can use the `releaseInjectionTargets` option.\n *\n * Source maps upload:\n *\n * The sentry bundler plugin will also take care of uploading source maps to Sentry. This\n * is all done in the `writeBundle` hook. In this hook the sentry plugin will execute the\n * release creation pipeline:\n *\n * 1. Create a new release\n * 2. Delete already uploaded artifacts for this release (if `cleanArtifacts` is enabled)\n * 3. Upload sourcemaps based on `include` and source-map-specific options\n * 4. Associate a range of commits with the release (if `setCommits` is specified)\n * 5. Finalize the release (unless `finalize` is disabled)\n * 6. Add deploy information to the release (if `deploy` is specified)\n *\n * This release creation pipeline relies on Sentry CLI to execute the different steps.\n */\nexport function sentryUnpluginFactory({\n releaseInjectionPlugin,\n debugIdInjectionPlugin,\n debugIdUploadPlugin,\n}: SentryUnpluginFactoryOptions) {\n return createUnplugin<Options, true>((userOptions, unpluginMetaContext) => {\n const options = normalizeUserOptions(userOptions);\n\n if (unpluginMetaContext.watchMode || options.disable) {\n return [\n {\n name: \"sentry-noop-plugin\",\n },\n ];\n }\n\n const shouldSendTelemetry = allowedToSendTelemetry(options);\n const { sentryHub, sentryClient } = createSentryInstance(\n options,\n shouldSendTelemetry,\n unpluginMetaContext.framework\n );\n const sentrySession = sentryHub.startSession();\n sentryHub.captureSession();\n\n let sentEndSession = false; // Just to prevent infinite loops with beforeExit, which is called whenever the event loop empties out\n // We also need to manually end sesisons on errors because beforeExit is not called on crashes\n process.on(\"beforeExit\", () => {\n if (!sentEndSession) {\n sentryHub.endSession();\n sentEndSession = true;\n }\n });\n\n const logger = createLogger({\n prefix: `[sentry-${unpluginMetaContext.framework}-plugin]`,\n silent: options.silent,\n debug: options.debug,\n });\n\n function handleRecoverableError(unknownError: unknown) {\n sentrySession.status = \"abnormal\";\n try {\n if (options.errorHandler) {\n try {\n if (unknownError instanceof Error) {\n options.errorHandler(unknownError);\n } else {\n options.errorHandler(new Error(\"An unknown error occured\"));\n }\n } catch (e) {\n sentrySession.status = \"crashed\";\n throw e;\n }\n } else {\n sentrySession.status = \"crashed\";\n throw unknownError;\n }\n } finally {\n sentryHub.endSession();\n }\n }\n\n if (!validateOptions(options, logger)) {\n handleRecoverableError(\n new Error(\"Options were not set correctly. See output above for more details.\")\n );\n }\n\n if (process.cwd().match(/\\\\node_modules\\\\|\\/node_modules\\//)) {\n logger.warn(\n \"Running Sentry plugin from within a `node_modules` folder. Some features may not work.\"\n );\n }\n\n const plugins: UnpluginOptions[] = [];\n\n plugins.push(\n telemetryPlugin({\n sentryClient,\n sentryHub,\n logger,\n shouldSendTelemetry,\n })\n );\n\n if (!options.release.inject) {\n logger.debug(\n \"Release injection disabled via `release.inject` option. Will not inject release.\"\n );\n } else if (!options.release.name) {\n logger.warn(\n \"No release name provided. Will not inject release. Please set the `release.name` option to identifiy your release.\"\n );\n } else {\n const injectionCode = generateGlobalInjectorCode({\n release: options.release.name,\n injectBuildInformation: options._experiments.injectBuildInformation || false,\n });\n plugins.push(releaseInjectionPlugin(injectionCode));\n }\n\n if (!options.release.name) {\n logger.warn(\n \"No release name provided. Will not create release. Please set the `release.name` option to identifiy your release.\"\n );\n } else if (!options.authToken) {\n logger.warn(\n \"No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/\"\n );\n } else if (!options.org) {\n logger.warn(\n \"No organization slug provided. Will not create release. Please set the `org` option to your Sentry organization slug.\"\n );\n } else if (!options.project) {\n logger.warn(\n \"No project provided. Will not create release. Please set the `project` option to your Sentry project slug.\"\n );\n } else {\n plugins.push(\n releaseManagementPlugin({\n logger,\n releaseName: options.release.name,\n shouldCreateRelease: options.release.create,\n shouldCleanArtifacts: options.release.cleanArtifacts,\n shouldFinalizeRelease: options.release.finalize,\n include: options.release.uploadLegacySourcemaps,\n setCommitsOption: options.release.setCommits,\n deployOptions: options.release.deploy,\n dist: options.release.dist,\n handleRecoverableError: handleRecoverableError,\n sentryHub,\n sentryClient,\n sentryCliOptions: {\n authToken: options.authToken,\n org: options.org,\n project: options.project,\n silent: options.silent,\n url: options.url,\n vcsRemote: options.release.vcsRemote,\n headers: options.headers,\n },\n })\n );\n }\n\n if (!options.authToken) {\n logger.warn(\n \"No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/\"\n );\n } else if (!options.org) {\n logger.warn(\n \"No org provided. Will not upload source maps. Please set the `org` option to your Sentry organization slug.\"\n );\n } else if (!options.project) {\n logger.warn(\n \"No project provided. Will not upload source maps. Please set the `project` option to your Sentry project slug.\"\n );\n } else {\n plugins.push(debugIdInjectionPlugin());\n plugins.push(\n debugIdUploadPlugin(\n createDebugIdUploadFunction({\n assets: options.sourcemaps?.assets,\n ignore: options.sourcemaps?.ignore,\n deleteFilesAfterUpload: options.sourcemaps?.deleteFilesAfterUpload,\n dist: options.release.dist,\n releaseName: options.release.name,\n logger: logger,\n handleRecoverableError: handleRecoverableError,\n rewriteSourcesHook: options.sourcemaps?.rewriteSources,\n sentryHub,\n sentryClient,\n sentryCliOptions: {\n authToken: options.authToken,\n org: options.org,\n project: options.project,\n silent: options.silent,\n url: options.url,\n vcsRemote: options.release.vcsRemote,\n headers: options.headers,\n },\n })\n )\n );\n }\n\n return plugins;\n });\n}\n\nexport function getBuildInformation() {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson\n ? getDependencies(packageJson)\n : { deps: [], depsVersions: {} };\n\n return {\n deps,\n depsVersions,\n nodeVersion: parseMajorVersion(process.version),\n };\n}\n\n/**\n * Determines whether the Sentry CLI binary is in its expected location.\n * This function is useful since `@sentry/cli` installs the binary via a post-install\n * script and post-install scripts may not always run. E.g. with `npm i --ignore-scripts`.\n */\nexport function sentryCliBinaryExists(): boolean {\n return fs.existsSync(SentryCli.getPath());\n}\n\nexport function createRollupReleaseInjectionHooks(injectionCode: string) {\n const virtualReleaseInjectionFileId = \"\\0sentry-release-injection-file\";\n\n return {\n resolveId(id: string) {\n if (id === virtualReleaseInjectionFileId) {\n return {\n id: virtualReleaseInjectionFileId,\n external: false,\n moduleSideEffects: true,\n };\n } else {\n return null;\n }\n },\n\n load(id: string) {\n if (id === virtualReleaseInjectionFileId) {\n return injectionCode;\n } else {\n return null;\n }\n },\n\n transform(code: string, id: string) {\n if (id === virtualReleaseInjectionFileId) {\n return null;\n }\n\n // id may contain query and hash which will trip up our file extension logic below\n const idWithoutQueryAndHash = stripQueryAndHashFromPath(id);\n\n if (idWithoutQueryAndHash.match(/\\\\node_modules\\\\|\\/node_modules\\//)) {\n return null;\n }\n\n if (\n ![\".js\", \".ts\", \".jsx\", \".tsx\", \".mjs\"].some((ending) =>\n idWithoutQueryAndHash.endsWith(ending)\n )\n ) {\n return null;\n }\n\n const ms = new MagicString(code);\n\n // Appending instead of prepending has less probability of mucking with user's source maps.\n // Luckily import statements get hoisted to the top anyways.\n ms.append(`\\n\\n;import \"${virtualReleaseInjectionFileId}\";`);\n\n return {\n code: ms.toString(),\n map: ms.generateMap(),\n };\n },\n };\n}\n\nexport function createRollupDebugIdInjectionHooks() {\n return {\n renderChunk(code: string, chunk: { fileName: string }) {\n if (\n [\".js\", \".mjs\", \".cjs\"].some((ending) => chunk.fileName.endsWith(ending)) // chunks could be any file (html, md, ...)\n ) {\n const debugId = stringToUUID(code); // generate a deterministic debug ID\n const codeToInject = getDebugIdSnippet(debugId);\n\n const ms = new MagicString(code, { filename: chunk.fileName });\n\n // We need to be careful not to inject the snippet before any `\"use strict\";`s.\n // As an additional complication `\"use strict\";`s may come after any number of comments.\n const commentUseStrictRegex =\n // Note: CodeQL complains that this regex potentially has n^2 runtime. This likely won't affect realistic files.\n /^(?:\\s*|\\/\\*(?:.|\\r|\\n)*\\*\\/|\\/\\/.*[\\n\\r])*(?:\"[^\"]*\";|'[^']*';)?/;\n\n if (code.match(commentUseStrictRegex)?.[0]) {\n // Add injected code after any comments or \"use strict\" at the beginning of the bundle.\n ms.replace(commentUseStrictRegex, (match) => `${match}${codeToInject}`);\n } else {\n // ms.replace() doesn't work when there is an empty string match (which happens if\n // there is neither, a comment, nor a \"use strict\" at the top of the chunk) so we\n // need this special case here.\n ms.prepend(codeToInject);\n }\n\n return {\n code: ms.toString(),\n map: ms.generateMap({ file: chunk.fileName }),\n };\n } else {\n return null; // returning null means not modifying the chunk at all\n }\n },\n };\n}\n\nexport function createRollupDebugIdUploadHooks(\n upload: (buildArtifacts: string[]) => Promise<void>\n) {\n return {\n async writeBundle(\n outputOptions: { dir?: string; file?: string },\n bundle: { [fileName: string]: unknown }\n ) {\n if (outputOptions.dir) {\n const outputDir = outputOptions.dir;\n const buildArtifacts = Object.keys(bundle).map((asset) => path.join(outputDir, asset));\n await upload(buildArtifacts);\n } else if (outputOptions.file) {\n await upload([outputOptions.file]);\n } else {\n const buildArtifacts = Object.keys(bundle).map((asset) => path.join(path.resolve(), asset));\n await upload(buildArtifacts);\n }\n },\n };\n}\n\nexport function getDebugIdSnippet(debugId: string): string {\n return `;!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]=\"${debugId}\",e._sentryDebugIdIdentifier=\"sentry-dbid-${debugId}\")}catch(e){}}();`;\n}\n\nexport type { Options } from \"./types\";\n"],"names":["arrayify","maybeArray","Array","isArray","getPackageJson","_ref","arguments","length","undefined","cwd","stopAt","lookupPackageJson","process","path","normalize","os","homedir","parseMajorVersion","version","startsWith","slice","regex","match","parseInt","coerced","Number","isNaN","gteLteRegex","gteLteMatch","ltRegex","ltMatch","major","gtRegex","gtMatch","PACKAGES_TO_INCLUDE_VERSION","getDependencies","packageJson","_packageJson$devDepen","_packageJson$dependen","dependencies","Object","assign","deps","keys","sort","depsVersions","reduce","depName","includes","majorVersion","jsonPath","findUp","sync","dirName","stop","exists","jsonStr","fs","readFileSync","json","JSON","parse","error","newCwd","dirname","resolve","stringToUUID","str","md5sum","crypto","createHash","update","md5Hash","digest","substring","toLowerCase","determineReleaseName","gitRevision","childProcess","execSync","toString","trim","e","env","generateGlobalInjectorCode","_ref2","release","injectBuildInformation","code","concat","buildInfo","getBuildInformation","stringify","_ref3","nodeVersion","stripQueryAndHashFromPath","split","SENTRY_SAAS_URL","normalizeUserOptions","userOptions","_userOptions$org","_userOptions$project","_userOptions$authToke","_userOptions$url","_userOptions$debug","_userOptions$silent","_userOptions$telemetr","_userOptions$disable","_userOptions$release$","_userOptions$release","_userOptions$release$2","_userOptions$release2","_userOptions$release$3","_userOptions$release3","_userOptions$release$4","_userOptions$release4","_userOptions$release$5","_userOptions$release5","_userOptions$release$6","_userOptions$release6","_userOptions$_experim","options","org","project","authToken","url","headers","debug","silent","errorHandler","telemetry","disable","sourcemaps","_objectSpread","name","inject","create","finalize","vcsRemote","cleanArtifacts","_experiments","validateOptions","logger","_options$release","_options$release2","_options$release3","setCommits","auto","repo","commit","warn","deploy","createDebugIdUploadFunction","assets","ignore","releaseName","dist","handleRecoverableError","sentryHub","sentryClient","sentryCliOptions","rewriteSourcesHook","deleteFilesAfterUpload","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","buildArtifactPaths","folderToCleanUp","cliInstance","tmpUploadFolder","globAssets","debugIdChunkFilePaths","filePathsToDelete","wrap","_callee2$","_context2","prev","next","SentryCli","promises","mkdtemp","join","tmpdir","sent","glob","absolute","nodir","filter","debugIdChunkFilePath","endsWith","Promise","all","map","_callee","chunkFilePath","chunkIndex","_callee$","_context","prepareBundleForDebugIdUpload","defaultRewriteSourcesHook","_x2","_x3","apply","releases","uploadSourceMaps","include","paths","rewrite","useArtifactBundle","forEach","filePathToDelete","rm","force","t0","captureException","flush","recursive","finish","_x","_x4","_x5","_x6","_x7","_x8","_prepareBundleForDebugIdUpload","_callee4","bundleFilePath","uploadFolder","bundleContent","debugId","uniqueUploadName","writeSourceFilePromise","writeSourceMapFilePromise","_callee4$","_context4","promisify","readFile","abrupt","determineDebugIdFromBundleSource","writeFile","determineSourceMapPathFromBundle","then","_ref4","_callee3","sourceMapPath","_callee3$","_context3","prepareSourceMapForDebugIdUpload","_x17","_x9","_x10","_x11","_determineSourceMapPathFromBundle","_callee5","bundlePath","bundleSource","sourceMappingUrlMatch","sourceMappingUrl","adjacentSourceMapFilePath","_callee5$","_context5","isAbsolute","util","access","_x12","_x13","_x14","_x15","_x16","_prepareSourceMapForDebugIdUpload","_callee6","targetPath","sourceMapFileContent","_callee6$","_context6","encoding","t1","source","t2","PROTOCOL_REGEX","replace","relative","releaseManagementPlugin","setCommitsOption","shouldCreateRelease","shouldCleanArtifacts","shouldFinalizeRelease","deployOptions","writeBundle","normalizedInclude","execute","includeItem","includeEntry","_includeEntry$validat","validate","ext","extension","newDeploy","telemetryPlugin","shouldSendTelemetry","buildStart","info","startTransaction","createLogger","message","_console","_len","params","_key","console","log","prefix","_console2","_len2","_key2","_console3","_len3","_key3","_console4","_len4","_key4","SENTRY_SAAS_HOSTNAME","createSentryInstance","bundler","client","NodeClient","dsn","tracesSampleRate","sampleRate","integrations","tracePropagationTargets","stackParser","defaultStackParser","beforeSend","event","_event$exception","_event$exception$valu","exception","values","stacktrace","server_name","beforeSendTransaction","transport","nodeTransportOptions","nodeTransport","makeNodeTransport","timeout","send","_send","request","hub","Hub","setTelemetryDataOnHub","setTag","uploadLegacySourcemaps","setTags","organization","setUser","id","allowedToSendTelemetry","_allowedToSendTelemetry","_cliInfo$split$","_cliInfo$split$$repla","cli","cliInfo","cliInfoUrl","URL","hostname","sentryUnpluginFactory","releaseInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","createUnplugin","unpluginMetaContext","watchMode","_createSentryInstance","framework","sentrySession","startSession","captureSession","sentEndSession","on","endSession","unknownError","status","Error","plugins","push","injectionCode","_options$sourcemaps","_options$sourcemaps2","_options$sourcemaps3","_options$sourcemaps4","rewriteSources","sentryCliBinaryExists","existsSync","getPath","createRollupReleaseInjectionHooks","virtualReleaseInjectionFileId","resolveId","external","moduleSideEffects","load","transform","idWithoutQueryAndHash","some","ending","ms","MagicString","append","generateMap","createRollupDebugIdInjectionHooks","renderChunk","chunk","fileName","_code$match","codeToInject","getDebugIdSnippet","filename","commentUseStrictRegex","prepend","file","createRollupDebugIdUploadHooks","upload","outputOptions","bundle","outputDir","_buildArtifacts","_buildArtifacts2","dir","buildArtifacts","asset"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils.ts","../../src/options-mapping.ts","../../src/debug-id-upload.ts","../../src/plugins/release-management.ts","../../src/plugins/telemetry.ts","../../src/sentry/logger.ts","../../src/sentry/telemetry.ts","../../src/index.ts"],"sourcesContent":["import findUp from \"find-up\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport crypto from \"crypto\";\nimport childProcess from \"child_process\";\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify<T = unknown>(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\ntype PackageJson = Record<string, unknown>;\n\n/**\n * Get the closes package.json from a given starting point upwards.\n * This handles a few edge cases:\n * * Check if a given file package.json appears to be an actual NPM package.json file\n * * Stop at the home dir, to avoid looking too deeply\n */\nexport function getPackageJson({ cwd, stopAt }: { cwd?: string; stopAt?: string } = {}):\n | PackageJson\n | undefined {\n return lookupPackageJson(cwd ?? process.cwd(), path.normalize(stopAt ?? os.homedir()));\n}\n\nexport function parseMajorVersion(version: string): number | undefined {\n // if it has a `v` prefix, remove it\n if (version.startsWith(\"v\")) {\n version = version.slice(1);\n }\n\n // First, try simple lookup of exact, ~ and ^ versions\n const regex = /^[\\^~]?(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n\n const match = version.match(regex);\n if (match) {\n return parseInt(match[1] as string, 10);\n }\n\n // Try to parse e.g. 1.x\n const coerced = parseInt(version, 10);\n if (!Number.isNaN(coerced)) {\n return coerced;\n }\n\n // Match <= and >= ranges.\n const gteLteRegex = /^[<>]=\\s*(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n const gteLteMatch = version.match(gteLteRegex);\n if (gteLteMatch) {\n return parseInt(gteLteMatch[1] as string, 10);\n }\n\n // match < ranges\n const ltRegex = /^<\\s*(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n const ltMatch = version.match(ltRegex);\n if (ltMatch) {\n // Two scenarios:\n // a) < 2.0.0 --> return 1\n // b) < 2.1.0 --> return 2\n\n const major = parseInt(ltMatch[1] as string, 10);\n\n if (\n // minor version > 0\n (typeof ltMatch[2] === \"string\" && parseInt(ltMatch[2].slice(1), 10) > 0) ||\n // patch version > 0\n (typeof ltMatch[3] === \"string\" && parseInt(ltMatch[3].slice(1), 10) > 0)\n ) {\n return major;\n }\n\n return major - 1;\n }\n\n // match > ranges\n const gtRegex = /^>\\s*(\\d+)(\\.\\d+)?(\\.\\d+)?(-.+)?/;\n const gtMatch = version.match(gtRegex);\n if (gtMatch) {\n // We always return the version here, even though it _may_ be incorrect\n // E.g. if given > 2.0.0, it should be 2 if there exists any 2.x.x version, else 3\n // Since there is no way for us to know this, we're going to assume any kind of patch/feature release probably exists\n return parseInt(gtMatch[1] as string, 10);\n }\n return undefined;\n}\n\n// This is an explicit list of packages where we want to include the (major) version number.\nconst PACKAGES_TO_INCLUDE_VERSION = [\n \"react\",\n \"@angular/core\",\n \"vue\",\n \"ember-source\",\n \"svelte\",\n \"@sveltejs/kit\",\n \"webpack\",\n \"vite\",\n \"gatsby\",\n \"next\",\n \"remix\",\n \"rollup\",\n \"esbuild\",\n];\n\nexport function getDependencies(packageJson: PackageJson): {\n deps: string[];\n depsVersions: Record<string, number>;\n} {\n const dependencies: Record<string, string> = Object.assign(\n {},\n packageJson[\"devDependencies\"] ?? {},\n packageJson[\"dependencies\"] ?? {}\n );\n\n const deps = Object.keys(dependencies).sort();\n\n const depsVersions: Record<string, number> = deps.reduce((depsVersions, depName) => {\n if (PACKAGES_TO_INCLUDE_VERSION.includes(depName)) {\n const version = dependencies[depName] as string;\n const majorVersion = parseMajorVersion(version);\n if (majorVersion) {\n depsVersions[depName] = majorVersion;\n }\n }\n return depsVersions;\n }, {} as Record<string, number>);\n\n return { deps, depsVersions };\n}\n\nfunction lookupPackageJson(cwd: string, stopAt: string): PackageJson | undefined {\n const jsonPath = findUp.sync(\n (dirName) => {\n // Stop if we reach this dir\n if (path.normalize(dirName) === stopAt) {\n return findUp.stop;\n }\n\n return findUp.sync.exists(dirName + \"/package.json\") ? \"package.json\" : undefined;\n },\n { cwd }\n );\n\n if (!jsonPath) {\n return undefined;\n }\n\n try {\n const jsonStr = fs.readFileSync(jsonPath, \"utf8\");\n const json = JSON.parse(jsonStr) as PackageJson;\n\n // Ensure it is an actual package.json\n // This is very much not bulletproof, but should be good enough\n if (\"name\" in json || \"private\" in json) {\n return json;\n }\n } catch (error) {\n // Ignore and walk up\n }\n\n // Continue up the tree, if we find a fitting package.json\n const newCwd = path.dirname(path.resolve(jsonPath + \"/..\"));\n return lookupPackageJson(newCwd, stopAt);\n}\n\n/**\n * Deterministically hashes a string and turns the hash into a uuid.\n */\nexport function stringToUUID(str: string): string {\n const md5sum = crypto.createHash(\"md5\");\n md5sum.update(str);\n const md5Hash = md5sum.digest(\"hex\");\n return (\n md5Hash.substring(0, 8) +\n \"-\" +\n md5Hash.substring(8, 12) +\n \"-4\" +\n md5Hash.substring(13, 16) +\n \"-\" +\n md5Hash.substring(16, 20) +\n \"-\" +\n md5Hash.substring(20)\n ).toLowerCase();\n}\n\n/**\n * Tries to guess a release name based on environmental data.\n */\nexport function determineReleaseName(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess.execSync(\"git rev-parse --short HEAD\").toString().trim();\n } catch (e) {\n // noop\n }\n\n return (\n // GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables\n process.env[\"GITHUB_SHA\"] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env[\"COMMIT_REF\"] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env[\"CF_PAGES_COMMIT_SHA\"] ||\n // AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html\n process.env[\"CODEBUILD_RESOLVED_SOURCE_VERSION\"] ||\n // CircleCI - https://circleci.com/docs/2.0/env-vars/\n process.env[\"CIRCLE_SHA1\"] ||\n // Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables\n process.env[\"VERCEL_GIT_COMMIT_SHA\"] ||\n process.env[\"VERCEL_GITHUB_COMMIT_SHA\"] ||\n process.env[\"VERCEL_GITLAB_COMMIT_SHA\"] ||\n process.env[\"VERCEL_BITBUCKET_COMMIT_SHA\"] ||\n // Zeit (now known as Vercel)\n process.env[\"ZEIT_GITHUB_COMMIT_SHA\"] ||\n process.env[\"ZEIT_GITLAB_COMMIT_SHA\"] ||\n process.env[\"ZEIT_BITBUCKET_COMMIT_SHA\"] ||\n gitRevision\n );\n}\n\n/**\n * Generates code for the global injector which is responsible for setting the global\n * `SENTRY_RELEASE` & `SENTRY_BUILD_INFO` variables.\n */\nexport function generateGlobalInjectorCode({\n release,\n injectBuildInformation,\n}: {\n release: string;\n injectBuildInformation: boolean;\n}) {\n // The code below is mostly ternary operators because it saves bundle size.\n // The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.)\n let code = `\n var _global =\n typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ?\n global :\n typeof self !== 'undefined' ?\n self :\n {};\n\n _global.SENTRY_RELEASE={id:\"${release}\"};`;\n\n if (injectBuildInformation) {\n const buildInfo = getBuildInformation();\n\n code += `\n _global.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;\n }\n\n return code;\n}\n\nfunction getBuildInformation() {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson\n ? getDependencies(packageJson)\n : { deps: [], depsVersions: {} };\n\n return {\n deps,\n depsVersions,\n nodeVersion: parseMajorVersion(process.version),\n };\n}\n\nexport function stripQueryAndHashFromPath(path: string): string {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return path.split(\"?\")[0]!.split(\"#\")[0]!;\n}\n","import { Logger } from \"./sentry/logger\";\nimport { Options as UserOptions } from \"./types\";\nimport { determineReleaseName } from \"./utils\";\n\nexport type NormalizedOptions = ReturnType<typeof normalizeUserOptions>;\n\nexport const SENTRY_SAAS_URL = \"https://sentry.io\";\n\nexport function normalizeUserOptions(userOptions: UserOptions) {\n const options = {\n org: userOptions.org ?? process.env[\"SENTRY_ORG\"],\n project: userOptions.project ?? process.env[\"SENTRY_PROJECT\"],\n authToken: userOptions.authToken ?? process.env[\"SENTRY_AUTH_TOKEN\"],\n url: userOptions.url ?? process.env[\"SENTRY_URL\"] ?? SENTRY_SAAS_URL,\n headers: userOptions.headers,\n debug: userOptions.debug ?? false,\n silent: userOptions.silent ?? false,\n errorHandler: userOptions.errorHandler,\n telemetry: userOptions.telemetry ?? true,\n disable: userOptions.disable ?? false,\n sourcemaps: userOptions.sourcemaps,\n release: {\n ...userOptions.release,\n name: userOptions.release?.name ?? determineReleaseName(),\n inject: userOptions.release?.inject ?? true,\n create: userOptions.release?.create ?? true,\n finalize: userOptions.release?.finalize ?? true,\n vcsRemote: userOptions.release?.vcsRemote ?? process.env[\"SENTRY_VSC_REMOTE\"] ?? \"origin\",\n cleanArtifacts: userOptions.release?.cleanArtifacts ?? false,\n },\n _experiments: userOptions._experiments ?? {},\n };\n\n return options;\n}\n\n/**\n * Validates a few combinations of options that are not checked by Sentry CLI.\n *\n * For all other options, we can rely on Sentry CLI to validate them. In fact,\n * we can't validate them in the plugin because Sentry CLI might pick up options from\n * its config file.\n *\n * @param options the internal options\n * @param logger the logger\n *\n * @returns `true` if the options are valid, `false` otherwise\n */\nexport function validateOptions(options: NormalizedOptions, logger: Logger): boolean {\n const setCommits = options.release?.setCommits;\n if (setCommits) {\n if (!setCommits.auto && !(setCommits.repo && setCommits.commit)) {\n logger.error(\n \"The `setCommits` option was specified but is missing required properties.\",\n \"Please set either `auto` or both, `repo` and `commit`.\"\n );\n return false;\n }\n if (setCommits.auto && setCommits.repo && setCommits) {\n logger.warn(\n \"The `setCommits` options includes `auto` but also `repo` and `commit`.\",\n \"Ignoring `repo` and `commit`.\",\n \"Please only set either `auto` or both, `repo` and `commit`.\"\n );\n }\n }\n\n if (options.release?.deploy && !options.release?.deploy.env) {\n logger.error(\n \"The `deploy` option was specified but is missing the required `env` property.\",\n \"Please set the `env` property.\"\n );\n return false;\n }\n\n return true;\n}\n","import fs from \"fs\";\nimport { glob } from \"glob\";\nimport os from \"os\";\nimport path from \"path\";\nimport * as util from \"util\";\nimport { Logger } from \"./sentry/logger\";\nimport { promisify } from \"util\";\nimport { Hub, NodeClient } from \"@sentry/node\";\nimport SentryCli from \"@sentry/cli\";\nimport { dynamicSamplingContextToSentryBaggageHeader } from \"@sentry/utils\";\n\ninterface RewriteSourcesHook {\n (source: string, map: any): string;\n}\n\ninterface DebugIdUploadPluginOptions {\n logger: Logger;\n assets?: string | string[];\n ignore?: string | string[];\n releaseName?: string;\n dist?: string;\n rewriteSourcesHook?: RewriteSourcesHook;\n handleRecoverableError: (error: unknown) => void;\n sentryHub: Hub;\n sentryClient: NodeClient;\n deleteFilesAfterUpload?: string | string[];\n sentryCliOptions: {\n url: string;\n authToken: string;\n org: string;\n project: string;\n vcsRemote: string;\n silent: boolean;\n headers?: Record<string, string>;\n };\n}\n\nexport function createDebugIdUploadFunction({\n assets,\n ignore,\n logger,\n releaseName,\n dist,\n handleRecoverableError,\n sentryHub,\n sentryClient,\n sentryCliOptions,\n rewriteSourcesHook,\n deleteFilesAfterUpload,\n}: DebugIdUploadPluginOptions) {\n return async (buildArtifactPaths: string[]) => {\n const artifactBundleUploadTransaction = sentryHub.startTransaction({\n name: \"debug-id-sourcemap-upload\",\n });\n\n let folderToCleanUp: string | undefined;\n\n try {\n const mkdtempSpan = artifactBundleUploadTransaction.startChild({ description: \"mkdtemp\" });\n const tmpUploadFolder = await fs.promises.mkdtemp(\n path.join(os.tmpdir(), \"sentry-bundler-plugin-upload-\")\n );\n mkdtempSpan.finish();\n\n folderToCleanUp = tmpUploadFolder;\n\n let globAssets;\n if (assets) {\n globAssets = assets;\n } else {\n logger.debug(\n \"No `sourcemaps.assets` option provided, falling back to uploading detected build artifacts.\"\n );\n globAssets = buildArtifactPaths;\n }\n\n const globSpan = artifactBundleUploadTransaction.startChild({ description: \"glob\" });\n const globResult = await glob(globAssets, {\n absolute: true,\n nodir: true,\n ignore: ignore,\n });\n globSpan.finish();\n\n const debugIdChunkFilePaths = globResult.filter(\n (debugIdChunkFilePath) =>\n debugIdChunkFilePath.endsWith(\".js\") ||\n debugIdChunkFilePath.endsWith(\".mjs\") ||\n debugIdChunkFilePath.endsWith(\".cjs\")\n );\n\n if (Array.isArray(assets) && assets.length === 0) {\n logger.debug(\n \"Empty `sourcemaps.assets` option provided. Will not upload sourcemaps with debug ID.\"\n );\n } else if (debugIdChunkFilePaths.length === 0) {\n logger.warn(\n \"Didn't find any matching sources for debug ID upload. Please check the `sourcemaps.assets` option.\"\n );\n } else {\n const prepareSpan = artifactBundleUploadTransaction.startChild({\n description: \"prepare-bundles\",\n });\n await Promise.all(\n debugIdChunkFilePaths.map(async (chunkFilePath, chunkIndex): Promise<void> => {\n await prepareBundleForDebugIdUpload(\n chunkFilePath,\n tmpUploadFolder,\n chunkIndex,\n logger,\n rewriteSourcesHook ?? defaultRewriteSourcesHook\n );\n })\n );\n prepareSpan.finish();\n\n const files = await fs.promises.readdir(tmpUploadFolder);\n const stats = files.map((file) => fs.promises.stat(path.join(tmpUploadFolder, file)));\n const uploadSize = (await Promise.all(stats)).reduce(\n (accumulator, { size }) => accumulator + size,\n 0\n );\n\n artifactBundleUploadTransaction.setMeasurement(\"files\", files.length, \"none\");\n artifactBundleUploadTransaction.setMeasurement(\"upload_size\", uploadSize, \"byte\");\n\n const uploadSpan = artifactBundleUploadTransaction.startChild({\n description: \"upload\",\n });\n\n const cliInstance = new SentryCli(null, {\n ...sentryCliOptions,\n headers: {\n \"sentry-trace\": uploadSpan.toTraceparent(),\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n baggage: dynamicSamplingContextToSentryBaggageHeader(\n artifactBundleUploadTransaction.getDynamicSamplingContext()\n )!,\n ...sentryCliOptions.headers,\n },\n });\n\n await cliInstance.releases.uploadSourceMaps(\n releaseName ?? \"undefined\", // unfortunetly this needs a value for now but it will not matter since debug IDs overpower releases anyhow\n {\n include: [\n {\n paths: [tmpUploadFolder],\n rewrite: false,\n dist: dist,\n },\n ],\n useArtifactBundle: true,\n }\n );\n\n uploadSpan.finish();\n }\n\n if (deleteFilesAfterUpload) {\n const deleteGlobSpan = artifactBundleUploadTransaction.startChild({\n description: \"delete-glob\",\n });\n const filePathsToDelete = await glob(deleteFilesAfterUpload, {\n absolute: true,\n nodir: true,\n });\n deleteGlobSpan.finish();\n\n filePathsToDelete.forEach((filePathToDelete) => {\n logger.debug(`Deleting asset after upload: ${filePathToDelete}`);\n });\n\n const deleteSpan = artifactBundleUploadTransaction.startChild({\n description: \"delete-files-after-upload\",\n });\n await Promise.all(\n filePathsToDelete.map((filePathToDelete) =>\n fs.promises.rm(filePathToDelete, { force: true })\n )\n );\n deleteSpan.finish();\n }\n } catch (e) {\n sentryHub.withScope((scope) => {\n scope.setSpan(artifactBundleUploadTransaction);\n sentryHub.captureException('Error in \"debugIdUploadPlugin\" writeBundle hook');\n });\n handleRecoverableError(e);\n } finally {\n if (folderToCleanUp) {\n const cleanupSpan = artifactBundleUploadTransaction.startChild({\n description: \"cleanup\",\n });\n void fs.promises.rm(folderToCleanUp, { recursive: true, force: true });\n cleanupSpan.finish();\n }\n artifactBundleUploadTransaction.finish();\n await sentryClient.flush();\n }\n };\n}\n\nexport async function prepareBundleForDebugIdUpload(\n bundleFilePath: string,\n uploadFolder: string,\n chunkIndex: number,\n logger: Logger,\n rewriteSourcesHook: RewriteSourcesHook\n) {\n let bundleContent;\n try {\n bundleContent = await promisify(fs.readFile)(bundleFilePath, \"utf8\");\n } catch (e) {\n logger.error(\n `Could not read bundle to determine debug ID and source map: ${bundleFilePath}`,\n e\n );\n return;\n }\n\n const debugId = determineDebugIdFromBundleSource(bundleContent);\n if (debugId === undefined) {\n logger.debug(\n `Could not determine debug ID from bundle. This can happen if you did not clean your output folder before installing the Sentry plugin. File will not be source mapped: ${bundleFilePath}`\n );\n return;\n }\n\n const uniqueUploadName = `${debugId}-${chunkIndex}`;\n\n bundleContent += `\\n//# debugId=${debugId}`;\n const writeSourceFilePromise = fs.promises.writeFile(\n path.join(uploadFolder, `${uniqueUploadName}.js`),\n bundleContent,\n \"utf-8\"\n );\n\n const writeSourceMapFilePromise = determineSourceMapPathFromBundle(\n bundleFilePath,\n bundleContent,\n logger\n ).then(async (sourceMapPath): Promise<void> => {\n if (sourceMapPath) {\n return await prepareSourceMapForDebugIdUpload(\n sourceMapPath,\n path.join(uploadFolder, `${uniqueUploadName}.js.map`),\n debugId,\n rewriteSourcesHook,\n logger\n );\n }\n });\n\n return Promise.all([writeSourceFilePromise, writeSourceMapFilePromise]);\n}\n\n/**\n * Looks for a particular string pattern (`sdbid-[debug ID]`) in the bundle\n * source and extracts the bundle's debug ID from it.\n *\n * The string pattern is injected via the debug ID injection snipped.\n */\nfunction determineDebugIdFromBundleSource(code: string): string | undefined {\n const match = code.match(\n /sentry-dbid-([0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12})/\n );\n\n if (match) {\n return match[1];\n } else {\n return undefined;\n }\n}\n\n/**\n * Applies a set of heuristics to find the source map for a particular bundle.\n *\n * @returns the path to the bundle's source map or `undefined` if none could be found.\n */\nasync function determineSourceMapPathFromBundle(\n bundlePath: string,\n bundleSource: string,\n logger: Logger\n): Promise<string | undefined> {\n // 1. try to find source map at `sourceMappingURL` location\n const sourceMappingUrlMatch = bundleSource.match(/^\\/\\/# sourceMappingURL=(.*)$/);\n if (sourceMappingUrlMatch) {\n const sourceMappingUrl = path.normalize(sourceMappingUrlMatch[1] as string);\n if (path.isAbsolute(sourceMappingUrl)) {\n return sourceMappingUrl;\n } else {\n return path.join(path.dirname(bundlePath), sourceMappingUrl);\n }\n }\n\n // 2. try to find source map at path adjacent to chunk source, but with `.map` appended\n try {\n const adjacentSourceMapFilePath = bundlePath + \".map\";\n await util.promisify(fs.access)(adjacentSourceMapFilePath);\n return adjacentSourceMapFilePath;\n } catch (e) {\n // noop\n }\n\n // This is just a debug message because it can be quite spammy for some frameworks\n logger.debug(\n `Could not determine source map path for bundle: ${bundlePath} - Did you turn on source map generation in your bundler?`\n );\n return undefined;\n}\n\n/**\n * Reads a source map, injects debug ID fields, and writes the source map to the target path.\n */\nasync function prepareSourceMapForDebugIdUpload(\n sourceMapPath: string,\n targetPath: string,\n debugId: string,\n rewriteSourcesHook: RewriteSourcesHook,\n logger: Logger\n): Promise<void> {\n let sourceMapFileContent: string;\n try {\n sourceMapFileContent = await util.promisify(fs.readFile)(sourceMapPath, {\n encoding: \"utf8\",\n });\n } catch (e) {\n logger.error(`Failed to read source map for debug ID upload: ${sourceMapPath}`, e);\n return;\n }\n\n let map: Record<string, unknown>;\n try {\n map = JSON.parse(sourceMapFileContent) as { sources: unknown; [key: string]: unknown };\n // For now we write both fields until we know what will become the standard - if ever.\n map[\"debug_id\"] = debugId;\n map[\"debugId\"] = debugId;\n } catch (e) {\n logger.error(`Failed to parse source map for debug ID upload: ${sourceMapPath}`);\n return;\n }\n\n if (map[\"sources\"] && Array.isArray(map[\"sources\"])) {\n map[\"sources\"].map((source: string) => rewriteSourcesHook(source, map));\n }\n\n try {\n await util.promisify(fs.writeFile)(targetPath, JSON.stringify(map), {\n encoding: \"utf8\",\n });\n } catch (e) {\n logger.error(`Failed to prepare source map for debug ID upload: ${sourceMapPath}`, e);\n return;\n }\n}\n\nconst PROTOCOL_REGEX = /^[a-zA-Z][a-zA-Z0-9+\\-.]*:\\/\\//;\nfunction defaultRewriteSourcesHook(source: string): string {\n if (source.match(PROTOCOL_REGEX)) {\n return source.replace(PROTOCOL_REGEX, \"\");\n } else {\n return path.relative(process.cwd(), path.normalize(source));\n }\n}\n","import SentryCli, { SentryCliCommitsOptions, SentryCliNewDeployOptions } from \"@sentry/cli\";\nimport { Hub, NodeClient } from \"@sentry/node\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { Logger } from \"../sentry/logger\";\nimport { IncludeEntry } from \"../types\";\nimport { arrayify } from \"../utils\";\n\ninterface ReleaseManagementPluginOptions {\n logger: Logger;\n releaseName: string;\n shouldCreateRelease: boolean;\n shouldCleanArtifacts: boolean;\n shouldFinalizeRelease: boolean;\n include?: string | IncludeEntry | Array<string | IncludeEntry>;\n setCommitsOption?: SentryCliCommitsOptions;\n deployOptions?: SentryCliNewDeployOptions;\n dist?: string;\n handleRecoverableError: (error: unknown) => void;\n sentryHub: Hub;\n sentryClient: NodeClient;\n sentryCliOptions: {\n url: string;\n authToken: string;\n org: string;\n project: string;\n vcsRemote: string;\n silent: boolean;\n headers?: Record<string, string>;\n };\n}\n\nexport function releaseManagementPlugin({\n releaseName,\n include,\n dist,\n setCommitsOption,\n shouldCreateRelease,\n shouldCleanArtifacts,\n shouldFinalizeRelease,\n deployOptions,\n handleRecoverableError,\n sentryHub,\n sentryClient,\n sentryCliOptions,\n}: ReleaseManagementPluginOptions): UnpluginOptions {\n return {\n name: \"sentry-debug-id-upload-plugin\",\n async writeBundle() {\n try {\n const cliInstance = new SentryCli(null, sentryCliOptions);\n\n if (shouldCreateRelease) {\n await cliInstance.releases.new(releaseName);\n }\n\n if (shouldCleanArtifacts) {\n await cliInstance.releases.execute(\n [\"releases\", \"files\", releaseName, \"delete\", \"--all\"],\n true\n );\n }\n\n if (include) {\n const normalizedInclude = arrayify(include)\n .map((includeItem) =>\n typeof includeItem === \"string\" ? { paths: [includeItem] } : includeItem\n )\n .map((includeEntry) => ({\n ...includeEntry,\n validate: includeEntry.validate ?? false,\n ext: includeEntry.ext\n ? includeEntry.ext.map((extension) => `.${extension.replace(/^\\./, \"\")}`)\n : [\".js\", \".map\", \".jsbundle\", \".bundle\"],\n ignore: includeEntry.ignore ? arrayify(includeEntry.ignore) : undefined,\n }));\n\n await cliInstance.releases.uploadSourceMaps(releaseName, {\n include: normalizedInclude,\n dist,\n });\n }\n\n if (setCommitsOption) {\n await cliInstance.releases.setCommits(releaseName, setCommitsOption);\n }\n\n if (shouldFinalizeRelease) {\n await cliInstance.releases.finalize(releaseName);\n }\n\n if (deployOptions) {\n await cliInstance.releases.newDeploy(releaseName, deployOptions);\n }\n } catch (e) {\n sentryHub.captureException('Error in \"releaseManagementPlugin\" writeBundle hook');\n await sentryClient.flush();\n handleRecoverableError(e);\n }\n },\n };\n}\n","import { Hub, NodeClient } from \"@sentry/node\";\nimport { UnpluginOptions } from \"unplugin\";\nimport { Logger } from \"../sentry/logger\";\n\ninterface TelemetryPluginOptions {\n sentryHub: Hub;\n sentryClient: NodeClient;\n shouldSendTelemetry: Promise<boolean>;\n logger: Logger;\n}\n\nexport function telemetryPlugin({\n sentryHub,\n sentryClient,\n shouldSendTelemetry,\n logger,\n}: TelemetryPluginOptions): UnpluginOptions {\n return {\n name: \"sentry-telemetry-plugin\",\n async buildStart() {\n if (await shouldSendTelemetry) {\n logger.info(\n \"Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.\"\n );\n sentryHub.startTransaction({ name: \"Sentry Bundler Plugin execution\" }).finish();\n await sentryClient.flush(3000);\n }\n },\n };\n}\n","interface LoggerOptions {\n silent: boolean;\n debug: boolean;\n prefix: string;\n}\n\nexport type Logger = {\n info(message: string, ...params: unknown[]): void;\n warn(message: string, ...params: unknown[]): void;\n error(message: string, ...params: unknown[]): void;\n debug(message: string, ...params: unknown[]): void;\n};\n\nexport function createLogger(options: LoggerOptions): Logger {\n return {\n info(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Info: ${message}`, ...params);\n }\n },\n warn(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Warning: ${message}`, ...params);\n }\n },\n error(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Error: ${message}`, ...params);\n }\n },\n debug(message: string, ...params: unknown[]) {\n if (!options.silent && options.debug) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Debug: ${message}`, ...params);\n }\n },\n };\n}\n","import SentryCli from \"@sentry/cli\";\nimport { defaultStackParser, Hub, makeNodeTransport, NodeClient } from \"@sentry/node\";\nimport { NormalizedOptions, SENTRY_SAAS_URL } from \"../options-mapping\";\n\nconst SENTRY_SAAS_HOSTNAME = \"sentry.io\";\n\nexport function createSentryInstance(\n options: NormalizedOptions,\n shouldSendTelemetry: Promise<boolean>,\n bundler: string\n) {\n const client = new NodeClient({\n dsn: \"https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737\",\n\n tracesSampleRate: 1,\n sampleRate: 1,\n\n release: __PACKAGE_VERSION__,\n integrations: [],\n tracePropagationTargets: [\"sentry.io/api\"],\n\n stackParser: defaultStackParser,\n\n beforeSend: (event) => {\n event.exception?.values?.forEach((exception) => {\n delete exception.stacktrace;\n });\n\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n beforeSendTransaction: (event) => {\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n // We create a transport that stalls sending events until we know that we're allowed to (i.e. when Sentry CLI told\n // us that the upload URL is the Sentry SaaS URL)\n transport: (nodeTransportOptions) => {\n const nodeTransport = makeNodeTransport(nodeTransportOptions);\n return {\n flush: (timeout) => nodeTransport.flush(timeout),\n send: async (request) => {\n if (await shouldSendTelemetry) {\n return nodeTransport.send(request);\n } else {\n return undefined;\n }\n },\n };\n },\n });\n\n const hub = new Hub(client);\n\n setTelemetryDataOnHub(options, hub, bundler);\n\n return { sentryHub: hub, sentryClient: client };\n}\n\nexport function setTelemetryDataOnHub(options: NormalizedOptions, hub: Hub, bundler: string) {\n const { org, project, release, errorHandler, sourcemaps } = options;\n\n hub.setTag(\"upload-legacy-sourcemaps\", !!release.uploadLegacySourcemaps);\n if (release.uploadLegacySourcemaps) {\n hub.setTag(\n \"uploadLegacySourcemapsEntries\",\n Array.isArray(release.uploadLegacySourcemaps) ? release.uploadLegacySourcemaps.length : 1\n );\n }\n\n // Optional release pipeline steps\n hub.setTag(\"clean-artifacts\", release.cleanArtifacts);\n if (release.setCommits) {\n hub.setTag(\"set-commits\", release.setCommits.auto === true ? \"auto\" : \"manual\");\n } else {\n hub.setTag(\"set-commits\", \"undefined\");\n }\n hub.setTag(\"finalize-release\", release.finalize);\n hub.setTag(\"deploy-options\", !!release.deploy);\n\n // Miscelaneous options\n hub.setTag(\"custom-error-handler\", !!errorHandler);\n hub.setTag(\"sourcemaps-assets\", !!sourcemaps?.assets);\n hub.setTag(\"delete-after-upload\", !!sourcemaps?.deleteFilesAfterUpload);\n\n hub.setTag(\"node\", process.version);\n hub.setTag(\"platform\", process.platform);\n\n hub.setTags({\n organization: org,\n project,\n bundler,\n });\n\n hub.setUser({ id: org });\n}\n\nexport async function allowedToSendTelemetry(options: NormalizedOptions): Promise<boolean> {\n const { silent, org, project, authToken, url, headers, telemetry, release } = options;\n\n // `options.telemetry` defaults to true\n if (telemetry === false) {\n return false;\n }\n\n if (url === SENTRY_SAAS_URL) {\n return true;\n }\n\n const cli = new SentryCli(null, {\n url,\n authToken,\n org,\n project,\n vcsRemote: release.vcsRemote,\n silent,\n headers,\n });\n\n let cliInfo;\n try {\n // Makes a call to SentryCLI to get the Sentry server URL the CLI uses.\n // We need to check and decide to use telemetry based on the CLI's respone to this call\n // because only at this time we checked a possibly existing .sentryclirc file. This file\n // could point to another URL than the default URL.\n cliInfo = await cli.execute([\"info\"], false);\n } catch (e) {\n return false;\n }\n\n const cliInfoUrl = cliInfo\n .split(/(\\r\\n|\\n|\\r)/)[0]\n ?.replace(/^Sentry Server: /, \"\")\n ?.trim();\n\n if (cliInfoUrl === undefined) {\n return false;\n }\n\n return new URL(cliInfoUrl).hostname === SENTRY_SAAS_HOSTNAME;\n}\n","import SentryCli from \"@sentry/cli\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport MagicString from \"magic-string\";\nimport { createUnplugin, UnpluginOptions } from \"unplugin\";\nimport { normalizeUserOptions, validateOptions } from \"./options-mapping\";\nimport { createDebugIdUploadFunction } from \"./debug-id-upload\";\nimport { releaseManagementPlugin } from \"./plugins/release-management\";\nimport { telemetryPlugin } from \"./plugins/telemetry\";\nimport { createLogger } from \"./sentry/logger\";\nimport { allowedToSendTelemetry, createSentryInstance } from \"./sentry/telemetry\";\nimport { Options } from \"./types\";\nimport {\n generateGlobalInjectorCode,\n getDependencies,\n getPackageJson,\n parseMajorVersion,\n stringToUUID,\n stripQueryAndHashFromPath,\n} from \"./utils\";\n\ninterface SentryUnpluginFactoryOptions {\n releaseInjectionPlugin: (injectionCode: string) => UnpluginOptions;\n debugIdInjectionPlugin: () => UnpluginOptions;\n debugIdUploadPlugin: (upload: (buildArtifacts: string[]) => Promise<void>) => UnpluginOptions;\n}\n\n/**\n * The sentry bundler plugin concerns itself with two things:\n * - Release injection\n * - Sourcemaps upload\n *\n * Release injection:\n * Per default the sentry bundler plugin will inject a global `SENTRY_RELEASE` into each JavaScript/TypeScript module\n * that is part of the bundle. On a technical level this is done by appending an import (`import \"sentry-release-injector;\"`)\n * to all entrypoint files of the user code (see `transformInclude` and `transform` hooks). This import is then resolved\n * by the sentry plugin to a virtual module that sets the global variable (see `resolveId` and `load` hooks).\n * If a user wants to inject the release into a particular set of modules they can use the `releaseInjectionTargets` option.\n *\n * Source maps upload:\n *\n * The sentry bundler plugin will also take care of uploading source maps to Sentry. This\n * is all done in the `writeBundle` hook. In this hook the sentry plugin will execute the\n * release creation pipeline:\n *\n * 1. Create a new release\n * 2. Delete already uploaded artifacts for this release (if `cleanArtifacts` is enabled)\n * 3. Upload sourcemaps based on `include` and source-map-specific options\n * 4. Associate a range of commits with the release (if `setCommits` is specified)\n * 5. Finalize the release (unless `finalize` is disabled)\n * 6. Add deploy information to the release (if `deploy` is specified)\n *\n * This release creation pipeline relies on Sentry CLI to execute the different steps.\n */\nexport function sentryUnpluginFactory({\n releaseInjectionPlugin,\n debugIdInjectionPlugin,\n debugIdUploadPlugin,\n}: SentryUnpluginFactoryOptions) {\n return createUnplugin<Options, true>((userOptions, unpluginMetaContext) => {\n const options = normalizeUserOptions(userOptions);\n\n if (unpluginMetaContext.watchMode || options.disable) {\n return [\n {\n name: \"sentry-noop-plugin\",\n },\n ];\n }\n\n const shouldSendTelemetry = allowedToSendTelemetry(options);\n const { sentryHub, sentryClient } = createSentryInstance(\n options,\n shouldSendTelemetry,\n unpluginMetaContext.framework\n );\n const sentrySession = sentryHub.startSession();\n sentryHub.captureSession();\n\n let sentEndSession = false; // Just to prevent infinite loops with beforeExit, which is called whenever the event loop empties out\n // We also need to manually end sesisons on errors because beforeExit is not called on crashes\n process.on(\"beforeExit\", () => {\n if (!sentEndSession) {\n sentryHub.endSession();\n sentEndSession = true;\n }\n });\n\n const logger = createLogger({\n prefix: `[sentry-${unpluginMetaContext.framework}-plugin]`,\n silent: options.silent,\n debug: options.debug,\n });\n\n // Set the User-Agent that Sentry CLI will use when interacting with Sentry\n process.env[\n \"SENTRY_PIPELINE\"\n ] = `${unpluginMetaContext.framework}-plugin/${__PACKAGE_VERSION__}`;\n\n function handleRecoverableError(unknownError: unknown) {\n sentrySession.status = \"abnormal\";\n try {\n if (options.errorHandler) {\n try {\n if (unknownError instanceof Error) {\n options.errorHandler(unknownError);\n } else {\n options.errorHandler(new Error(\"An unknown error occured\"));\n }\n } catch (e) {\n sentrySession.status = \"crashed\";\n throw e;\n }\n } else {\n sentrySession.status = \"crashed\";\n throw unknownError;\n }\n } finally {\n sentryHub.endSession();\n }\n }\n\n if (!validateOptions(options, logger)) {\n handleRecoverableError(\n new Error(\"Options were not set correctly. See output above for more details.\")\n );\n }\n\n if (process.cwd().match(/\\\\node_modules\\\\|\\/node_modules\\//)) {\n logger.warn(\n \"Running Sentry plugin from within a `node_modules` folder. Some features may not work.\"\n );\n }\n\n const plugins: UnpluginOptions[] = [];\n\n plugins.push(\n telemetryPlugin({\n sentryClient,\n sentryHub,\n logger,\n shouldSendTelemetry,\n })\n );\n\n if (!options.release.inject) {\n logger.debug(\n \"Release injection disabled via `release.inject` option. Will not inject release.\"\n );\n } else if (!options.release.name) {\n logger.warn(\n \"No release name provided. Will not inject release. Please set the `release.name` option to identifiy your release.\"\n );\n } else {\n const injectionCode = generateGlobalInjectorCode({\n release: options.release.name,\n injectBuildInformation: options._experiments.injectBuildInformation || false,\n });\n plugins.push(releaseInjectionPlugin(injectionCode));\n }\n\n if (!options.release.name) {\n logger.warn(\n \"No release name provided. Will not create release. Please set the `release.name` option to identifiy your release.\"\n );\n } else if (!options.authToken) {\n logger.warn(\n \"No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/\"\n );\n } else if (!options.org) {\n logger.warn(\n \"No organization slug provided. Will not create release. Please set the `org` option to your Sentry organization slug.\"\n );\n } else if (!options.project) {\n logger.warn(\n \"No project provided. Will not create release. Please set the `project` option to your Sentry project slug.\"\n );\n } else {\n plugins.push(\n releaseManagementPlugin({\n logger,\n releaseName: options.release.name,\n shouldCreateRelease: options.release.create,\n shouldCleanArtifacts: options.release.cleanArtifacts,\n shouldFinalizeRelease: options.release.finalize,\n include: options.release.uploadLegacySourcemaps,\n setCommitsOption: options.release.setCommits,\n deployOptions: options.release.deploy,\n dist: options.release.dist,\n handleRecoverableError: handleRecoverableError,\n sentryHub,\n sentryClient,\n sentryCliOptions: {\n authToken: options.authToken,\n org: options.org,\n project: options.project,\n silent: options.silent,\n url: options.url,\n vcsRemote: options.release.vcsRemote,\n headers: options.headers,\n },\n })\n );\n }\n\n if (!options.authToken) {\n logger.warn(\n \"No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/\"\n );\n } else if (!options.org) {\n logger.warn(\n \"No org provided. Will not upload source maps. Please set the `org` option to your Sentry organization slug.\"\n );\n } else if (!options.project) {\n logger.warn(\n \"No project provided. Will not upload source maps. Please set the `project` option to your Sentry project slug.\"\n );\n } else {\n plugins.push(debugIdInjectionPlugin());\n plugins.push(\n debugIdUploadPlugin(\n createDebugIdUploadFunction({\n assets: options.sourcemaps?.assets,\n ignore: options.sourcemaps?.ignore,\n deleteFilesAfterUpload: options.sourcemaps?.deleteFilesAfterUpload,\n dist: options.release.dist,\n releaseName: options.release.name,\n logger: logger,\n handleRecoverableError: handleRecoverableError,\n rewriteSourcesHook: options.sourcemaps?.rewriteSources,\n sentryHub,\n sentryClient,\n sentryCliOptions: {\n authToken: options.authToken,\n org: options.org,\n project: options.project,\n silent: options.silent,\n url: options.url,\n vcsRemote: options.release.vcsRemote,\n headers: options.headers,\n },\n })\n )\n );\n }\n\n return plugins;\n });\n}\n\nexport function getBuildInformation() {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson\n ? getDependencies(packageJson)\n : { deps: [], depsVersions: {} };\n\n return {\n deps,\n depsVersions,\n nodeVersion: parseMajorVersion(process.version),\n };\n}\n\n/**\n * Determines whether the Sentry CLI binary is in its expected location.\n * This function is useful since `@sentry/cli` installs the binary via a post-install\n * script and post-install scripts may not always run. E.g. with `npm i --ignore-scripts`.\n */\nexport function sentryCliBinaryExists(): boolean {\n return fs.existsSync(SentryCli.getPath());\n}\n\nexport function createRollupReleaseInjectionHooks(injectionCode: string) {\n const virtualReleaseInjectionFileId = \"\\0sentry-release-injection-file\";\n\n return {\n resolveId(id: string) {\n if (id === virtualReleaseInjectionFileId) {\n return {\n id: virtualReleaseInjectionFileId,\n external: false,\n moduleSideEffects: true,\n };\n } else {\n return null;\n }\n },\n\n load(id: string) {\n if (id === virtualReleaseInjectionFileId) {\n return injectionCode;\n } else {\n return null;\n }\n },\n\n transform(code: string, id: string) {\n if (id === virtualReleaseInjectionFileId) {\n return null;\n }\n\n // id may contain query and hash which will trip up our file extension logic below\n const idWithoutQueryAndHash = stripQueryAndHashFromPath(id);\n\n if (idWithoutQueryAndHash.match(/\\\\node_modules\\\\|\\/node_modules\\//)) {\n return null;\n }\n\n if (\n ![\".js\", \".ts\", \".jsx\", \".tsx\", \".mjs\"].some((ending) =>\n idWithoutQueryAndHash.endsWith(ending)\n )\n ) {\n return null;\n }\n\n const ms = new MagicString(code);\n\n // Appending instead of prepending has less probability of mucking with user's source maps.\n // Luckily import statements get hoisted to the top anyways.\n ms.append(`\\n\\n;import \"${virtualReleaseInjectionFileId}\";`);\n\n return {\n code: ms.toString(),\n map: ms.generateMap(),\n };\n },\n };\n}\n\nexport function createRollupDebugIdInjectionHooks() {\n return {\n renderChunk(code: string, chunk: { fileName: string }) {\n if (\n [\".js\", \".mjs\", \".cjs\"].some((ending) => chunk.fileName.endsWith(ending)) // chunks could be any file (html, md, ...)\n ) {\n const debugId = stringToUUID(code); // generate a deterministic debug ID\n const codeToInject = getDebugIdSnippet(debugId);\n\n const ms = new MagicString(code, { filename: chunk.fileName });\n\n // We need to be careful not to inject the snippet before any `\"use strict\";`s.\n // As an additional complication `\"use strict\";`s may come after any number of comments.\n const commentUseStrictRegex =\n // Note: CodeQL complains that this regex potentially has n^2 runtime. This likely won't affect realistic files.\n /^(?:\\s*|\\/\\*(?:.|\\r|\\n)*?\\*\\/|\\/\\/.*[\\n\\r])*(?:\"[^\"]*\";|'[^']*';)?/;\n\n const match = code.match(commentUseStrictRegex)?.[0];\n\n if (match) {\n // Add injected code after any comments or \"use strict\" at the beginning of the bundle.\n ms.appendLeft(match.length, codeToInject);\n } else {\n // ms.replace() doesn't work when there is an empty string match (which happens if\n // there is neither, a comment, nor a \"use strict\" at the top of the chunk) so we\n // need this special case here.\n ms.prepend(codeToInject);\n }\n\n return {\n code: ms.toString(),\n map: ms.generateMap({ file: chunk.fileName }),\n };\n } else {\n return null; // returning null means not modifying the chunk at all\n }\n },\n };\n}\n\nexport function createRollupDebugIdUploadHooks(\n upload: (buildArtifacts: string[]) => Promise<void>\n) {\n return {\n async writeBundle(\n outputOptions: { dir?: string; file?: string },\n bundle: { [fileName: string]: unknown }\n ) {\n if (outputOptions.dir) {\n const outputDir = outputOptions.dir;\n const buildArtifacts = Object.keys(bundle).map((asset) => path.join(outputDir, asset));\n await upload(buildArtifacts);\n } else if (outputOptions.file) {\n await upload([outputOptions.file]);\n } else {\n const buildArtifacts = Object.keys(bundle).map((asset) => path.join(path.resolve(), asset));\n await upload(buildArtifacts);\n }\n },\n };\n}\n\nexport function getDebugIdSnippet(debugId: string): string {\n return `;!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]=\"${debugId}\",e._sentryDebugIdIdentifier=\"sentry-dbid-${debugId}\")}catch(e){}}();`;\n}\n\nexport type { Options } from \"./types\";\n"],"names":["arrayify","maybeArray","Array","isArray","getPackageJson","_ref","arguments","length","undefined","cwd","stopAt","lookupPackageJson","process","path","normalize","os","homedir","parseMajorVersion","version","startsWith","slice","regex","match","parseInt","coerced","Number","isNaN","gteLteRegex","gteLteMatch","ltRegex","ltMatch","major","gtRegex","gtMatch","PACKAGES_TO_INCLUDE_VERSION","getDependencies","packageJson","_packageJson$devDepen","_packageJson$dependen","dependencies","Object","assign","deps","keys","sort","depsVersions","reduce","depName","includes","majorVersion","jsonPath","findUp","sync","dirName","stop","exists","jsonStr","fs","readFileSync","json","JSON","parse","error","newCwd","dirname","resolve","stringToUUID","str","md5sum","crypto","createHash","update","md5Hash","digest","substring","toLowerCase","determineReleaseName","gitRevision","childProcess","execSync","toString","trim","e","env","generateGlobalInjectorCode","_ref2","release","injectBuildInformation","code","concat","buildInfo","getBuildInformation","stringify","_ref3","nodeVersion","stripQueryAndHashFromPath","split","SENTRY_SAAS_URL","normalizeUserOptions","userOptions","_userOptions$org","_userOptions$project","_userOptions$authToke","_userOptions$url","_userOptions$debug","_userOptions$silent","_userOptions$telemetr","_userOptions$disable","_userOptions$release$","_userOptions$release","_userOptions$release$2","_userOptions$release2","_userOptions$release$3","_userOptions$release3","_userOptions$release$4","_userOptions$release4","_userOptions$release$5","_userOptions$release5","_userOptions$release$6","_userOptions$release6","_userOptions$_experim","options","org","project","authToken","url","headers","debug","silent","errorHandler","telemetry","disable","sourcemaps","_objectSpread","name","inject","create","finalize","vcsRemote","cleanArtifacts","_experiments","validateOptions","logger","_options$release","_options$release2","_options$release3","setCommits","auto","repo","commit","warn","deploy","createDebugIdUploadFunction","assets","ignore","releaseName","dist","handleRecoverableError","sentryHub","sentryClient","sentryCliOptions","rewriteSourcesHook","deleteFilesAfterUpload","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","buildArtifactPaths","artifactBundleUploadTransaction","folderToCleanUp","mkdtempSpan","tmpUploadFolder","globAssets","globSpan","globResult","debugIdChunkFilePaths","prepareSpan","files","stats","uploadSize","uploadSpan","cliInstance","deleteGlobSpan","filePathsToDelete","deleteSpan","cleanupSpan","wrap","_callee2$","_context2","prev","next","startTransaction","startChild","description","promises","mkdtemp","join","tmpdir","sent","finish","glob","absolute","nodir","filter","debugIdChunkFilePath","endsWith","Promise","all","map","_callee","chunkFilePath","chunkIndex","_callee$","_context","prepareBundleForDebugIdUpload","defaultRewriteSourcesHook","_x2","_x3","apply","readdir","file","stat","accumulator","_ref4","size","setMeasurement","SentryCli","toTraceparent","baggage","dynamicSamplingContextToSentryBaggageHeader","getDynamicSamplingContext","releases","uploadSourceMaps","include","paths","rewrite","useArtifactBundle","forEach","filePathToDelete","rm","force","t0","withScope","scope","setSpan","captureException","recursive","flush","_x","_x4","_x5","_x6","_x7","_x8","_prepareBundleForDebugIdUpload","_callee4","bundleFilePath","uploadFolder","bundleContent","debugId","uniqueUploadName","writeSourceFilePromise","writeSourceMapFilePromise","_callee4$","_context4","promisify","readFile","abrupt","determineDebugIdFromBundleSource","writeFile","determineSourceMapPathFromBundle","then","_ref5","_callee3","sourceMapPath","_callee3$","_context3","prepareSourceMapForDebugIdUpload","_x17","_x9","_x10","_x11","_determineSourceMapPathFromBundle","_callee5","bundlePath","bundleSource","sourceMappingUrlMatch","sourceMappingUrl","adjacentSourceMapFilePath","_callee5$","_context5","isAbsolute","util","access","_x12","_x13","_x14","_x15","_x16","_prepareSourceMapForDebugIdUpload","_callee6","targetPath","sourceMapFileContent","_callee6$","_context6","encoding","t1","source","t2","PROTOCOL_REGEX","replace","relative","releaseManagementPlugin","setCommitsOption","shouldCreateRelease","shouldCleanArtifacts","shouldFinalizeRelease","deployOptions","writeBundle","normalizedInclude","execute","includeItem","includeEntry","_includeEntry$validat","validate","ext","extension","newDeploy","telemetryPlugin","shouldSendTelemetry","buildStart","info","createLogger","message","_console","_len","params","_key","console","log","prefix","_console2","_len2","_key2","_console3","_len3","_key3","_console4","_len4","_key4","SENTRY_SAAS_HOSTNAME","createSentryInstance","bundler","client","NodeClient","dsn","tracesSampleRate","sampleRate","integrations","tracePropagationTargets","stackParser","defaultStackParser","beforeSend","event","_event$exception","_event$exception$valu","exception","values","stacktrace","server_name","beforeSendTransaction","transport","nodeTransportOptions","nodeTransport","makeNodeTransport","timeout","send","_send","request","hub","Hub","setTelemetryDataOnHub","setTag","uploadLegacySourcemaps","platform","setTags","organization","setUser","id","allowedToSendTelemetry","_allowedToSendTelemetry","_cliInfo$split$","_cliInfo$split$$repla","cli","cliInfo","cliInfoUrl","URL","hostname","sentryUnpluginFactory","releaseInjectionPlugin","debugIdInjectionPlugin","debugIdUploadPlugin","createUnplugin","unpluginMetaContext","watchMode","_createSentryInstance","framework","sentrySession","startSession","captureSession","sentEndSession","on","endSession","unknownError","status","Error","plugins","push","injectionCode","_options$sourcemaps","_options$sourcemaps2","_options$sourcemaps3","_options$sourcemaps4","rewriteSources","sentryCliBinaryExists","existsSync","getPath","createRollupReleaseInjectionHooks","virtualReleaseInjectionFileId","resolveId","external","moduleSideEffects","load","transform","idWithoutQueryAndHash","some","ending","ms","MagicString","append","generateMap","createRollupDebugIdInjectionHooks","renderChunk","chunk","fileName","_code$match","codeToInject","getDebugIdSnippet","filename","commentUseStrictRegex","appendLeft","prepend","createRollupDebugIdUploadHooks","upload","outputOptions","bundle","outputDir","_buildArtifacts","_buildArtifacts2","dir","buildArtifacts","asset"],"mappings":"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"}
|