@sentry/bundler-plugins 11.0.0-beta.1 → 11.0.0-beta.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.
@@ -1,5 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
+ const core = require('@sentry/core');
3
4
  const utils = require('./utils.js');
4
5
 
5
6
  const SENTRY_SAAS_URL = "https://sentry.io";
@@ -60,9 +61,10 @@ function normalizeUserOptions(userOptions) {
60
61
  };
61
62
  }
62
63
  }
63
- if (options.release.deploy === void 0 && process.env["VERCEL"] && process.env["VERCEL_TARGET_ENV"]) {
64
+ const vercelEnv = core.getVercelEnv();
65
+ if (options.release.deploy === void 0 && process.env["VERCEL"] && vercelEnv) {
64
66
  options.release.deploy = {
65
- env: `vercel-${process.env["VERCEL_TARGET_ENV"]}`,
67
+ env: vercelEnv,
66
68
  url: process.env["VERCEL_URL"] ? `https://${process.env["VERCEL_URL"]}` : void 0
67
69
  };
68
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options-mapping.js","sources":["../../../src/core/options-mapping.ts"],"sourcesContent":["import type { Logger } from './logger';\nimport type {\n Options as UserOptions,\n SetCommitsOptions,\n RewriteSourcesHook,\n ResolveSourceMapHook,\n IncludeEntry,\n ModuleMetadata,\n ModuleMetadataCallback,\n} from './types';\nimport { determineReleaseName } from './utils';\n\nexport type NormalizedOptions = {\n org: string | undefined;\n project: string | string[] | undefined;\n authToken: string | undefined;\n url: string;\n headers: Record<string, string> | undefined;\n debug: boolean;\n silent: boolean;\n errorHandler: ((err: Error) => void) | undefined;\n telemetry: boolean;\n disable: boolean;\n sourcemaps:\n | {\n disable?: boolean | 'disable-upload';\n assets?: string | string[];\n ignore?: string | string[];\n rewriteSources?: RewriteSourcesHook;\n resolveSourceMap?: ResolveSourceMapHook;\n filesToDeleteAfterUpload?: string | string[] | Promise<string | string[] | undefined>;\n }\n | undefined;\n release: {\n name: string | undefined;\n inject: boolean;\n create: boolean;\n finalize: boolean;\n vcsRemote: string;\n setCommits:\n | (SetCommitsOptions & {\n shouldNotThrowOnFailure?: boolean;\n })\n | false\n | undefined;\n dist?: string;\n deploy?:\n | {\n env: string;\n started?: number | string;\n finished?: number | string;\n time?: number;\n name?: string;\n url?: string;\n }\n | false;\n uploadLegacySourcemaps?: string | IncludeEntry | Array<string | IncludeEntry>;\n };\n bundleSizeOptimizations:\n | {\n excludeDebugStatements?: boolean;\n excludeTracing?: boolean;\n excludeChannelInjection?: boolean;\n excludeReplayCanvas?: boolean;\n excludeReplayShadowDom?: boolean;\n excludeReplayIframe?: boolean;\n excludeReplayWorker?: boolean;\n }\n | undefined;\n reactComponentAnnotation:\n | {\n enabled?: boolean;\n ignoredComponents?: string[];\n _experimentalInjectIntoHtml?: boolean;\n }\n | undefined;\n _metaOptions: {\n telemetry: {\n metaFramework: string | undefined;\n bundlerMajorVersion: string | undefined;\n };\n };\n applicationKey: string | undefined;\n moduleMetadata: ModuleMetadata | ModuleMetadataCallback | undefined;\n _experiments: {\n injectBuildInformation?: boolean;\n } & Record<string, unknown>;\n};\n\nexport const SENTRY_SAAS_URL = 'https://sentry.io';\n\n// oxlint-disable-next-line complexity\nexport function normalizeUserOptions(userOptions: UserOptions): NormalizedOptions {\n const options = {\n org: userOptions.org ?? process.env['SENTRY_ORG'],\n project:\n userOptions.project ??\n (process.env['SENTRY_PROJECT']?.includes(',')\n ? process.env['SENTRY_PROJECT'].split(',').map(p => p.trim())\n : 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 ?? process.env['SENTRY_RELEASE'] ?? 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 // oxlint-disable-next-line typescript/no-unnecessary-type-assertion -- rule false positive: the cast carries the internal `shouldNotThrowOnFailure` field; tsc errors without it\n setCommits: userOptions.release?.setCommits as\n | (SetCommitsOptions & { shouldNotThrowOnFailure?: boolean })\n | false\n | undefined,\n },\n bundleSizeOptimizations: userOptions.bundleSizeOptimizations,\n reactComponentAnnotation: userOptions.reactComponentAnnotation,\n _metaOptions: {\n telemetry: {\n metaFramework: userOptions._metaOptions?.telemetry?.metaFramework,\n bundlerMajorVersion: userOptions._metaOptions?.telemetry?.bundlerMajorVersion,\n },\n },\n applicationKey: userOptions.applicationKey,\n moduleMetadata: userOptions.moduleMetadata,\n _experiments: userOptions._experiments ?? {},\n };\n\n if (options.release.setCommits === undefined) {\n if (\n process.env['VERCEL'] &&\n process.env['VERCEL_GIT_COMMIT_SHA'] &&\n process.env['VERCEL_GIT_REPO_SLUG'] &&\n process.env['VERCEL_GIT_REPO_OWNER'] &&\n // We only want to set commits for the production env because Sentry becomes extremely noisy (eg on slack) for\n // preview environments because the previous commit is always the \"stem\" commit of the preview/PR causing Sentry\n // to notify you for other people creating PRs.\n process.env['VERCEL_TARGET_ENV'] === 'production'\n ) {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n commit: process.env['VERCEL_GIT_COMMIT_SHA'],\n previousCommit: process.env['VERCEL_GIT_PREVIOUS_SHA'],\n repo: `${process.env['VERCEL_GIT_REPO_OWNER']}/${process.env['VERCEL_GIT_REPO_SLUG']}`,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n } else {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n auto: true,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n }\n }\n\n if (options.release.deploy === undefined && process.env['VERCEL'] && process.env['VERCEL_TARGET_ENV']) {\n options.release.deploy = {\n env: `vercel-${process.env['VERCEL_TARGET_ENV']}`,\n url: process.env['VERCEL_URL'] ? `https://${process.env['VERCEL_URL']}` : undefined,\n };\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 && typeof options.release.deploy === 'object' && !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 if (options.project && Array.isArray(options.project)) {\n if (options.project.length === 0) {\n logger.error(\n 'The `project` option was specified as an array but is empty.',\n 'Please provide at least one project slug.',\n );\n return false;\n }\n // Check each project is a non-empty string\n const invalidProjects = options.project.filter(p => typeof p !== 'string' || p.trim() === '');\n if (invalidProjects.length > 0) {\n logger.error('The `project` option contains invalid project slugs.', 'All projects must be non-empty strings.');\n return false;\n }\n }\n\n return true;\n}\n"],"names":["determineReleaseName"],"mappings":"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"}
1
+ {"version":3,"file":"options-mapping.js","sources":["../../../src/core/options-mapping.ts"],"sourcesContent":["import { getVercelEnv } from '@sentry/core';\nimport type { Logger } from './logger';\nimport type {\n Options as UserOptions,\n SetCommitsOptions,\n RewriteSourcesHook,\n ResolveSourceMapHook,\n IncludeEntry,\n ModuleMetadata,\n ModuleMetadataCallback,\n} from './types';\nimport { determineReleaseName } from './utils';\n\nexport type NormalizedOptions = {\n org: string | undefined;\n project: string | string[] | undefined;\n authToken: string | undefined;\n url: string;\n headers: Record<string, string> | undefined;\n debug: boolean;\n silent: boolean;\n errorHandler: ((err: Error) => void) | undefined;\n telemetry: boolean;\n disable: boolean;\n sourcemaps:\n | {\n disable?: boolean | 'disable-upload';\n assets?: string | string[];\n ignore?: string | string[];\n rewriteSources?: RewriteSourcesHook;\n resolveSourceMap?: ResolveSourceMapHook;\n filesToDeleteAfterUpload?: string | string[] | Promise<string | string[] | undefined>;\n }\n | undefined;\n release: {\n name: string | undefined;\n inject: boolean;\n create: boolean;\n finalize: boolean;\n vcsRemote: string;\n setCommits:\n | (SetCommitsOptions & {\n shouldNotThrowOnFailure?: boolean;\n })\n | false\n | undefined;\n dist?: string;\n deploy?:\n | {\n env: string;\n started?: number | string;\n finished?: number | string;\n time?: number;\n name?: string;\n url?: string;\n }\n | false;\n uploadLegacySourcemaps?: string | IncludeEntry | Array<string | IncludeEntry>;\n };\n bundleSizeOptimizations:\n | {\n excludeDebugStatements?: boolean;\n excludeTracing?: boolean;\n excludeChannelInjection?: boolean;\n excludeReplayCanvas?: boolean;\n excludeReplayShadowDom?: boolean;\n excludeReplayIframe?: boolean;\n excludeReplayWorker?: boolean;\n }\n | undefined;\n reactComponentAnnotation:\n | {\n enabled?: boolean;\n ignoredComponents?: string[];\n _experimentalInjectIntoHtml?: boolean;\n }\n | undefined;\n _metaOptions: {\n telemetry: {\n metaFramework: string | undefined;\n bundlerMajorVersion: string | undefined;\n };\n };\n applicationKey: string | undefined;\n moduleMetadata: ModuleMetadata | ModuleMetadataCallback | undefined;\n _experiments: {\n injectBuildInformation?: boolean;\n } & Record<string, unknown>;\n};\n\nexport const SENTRY_SAAS_URL = 'https://sentry.io';\n\n// oxlint-disable-next-line complexity\nexport function normalizeUserOptions(userOptions: UserOptions): NormalizedOptions {\n const options = {\n org: userOptions.org ?? process.env['SENTRY_ORG'],\n project:\n userOptions.project ??\n (process.env['SENTRY_PROJECT']?.includes(',')\n ? process.env['SENTRY_PROJECT'].split(',').map(p => p.trim())\n : 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 ?? process.env['SENTRY_RELEASE'] ?? 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 // oxlint-disable-next-line typescript/no-unnecessary-type-assertion -- rule false positive: the cast carries the internal `shouldNotThrowOnFailure` field; tsc errors without it\n setCommits: userOptions.release?.setCommits as\n | (SetCommitsOptions & { shouldNotThrowOnFailure?: boolean })\n | false\n | undefined,\n },\n bundleSizeOptimizations: userOptions.bundleSizeOptimizations,\n reactComponentAnnotation: userOptions.reactComponentAnnotation,\n _metaOptions: {\n telemetry: {\n metaFramework: userOptions._metaOptions?.telemetry?.metaFramework,\n bundlerMajorVersion: userOptions._metaOptions?.telemetry?.bundlerMajorVersion,\n },\n },\n applicationKey: userOptions.applicationKey,\n moduleMetadata: userOptions.moduleMetadata,\n _experiments: userOptions._experiments ?? {},\n };\n\n if (options.release.setCommits === undefined) {\n if (\n process.env['VERCEL'] &&\n process.env['VERCEL_GIT_COMMIT_SHA'] &&\n process.env['VERCEL_GIT_REPO_SLUG'] &&\n process.env['VERCEL_GIT_REPO_OWNER'] &&\n // We only want to set commits for the production env because Sentry becomes extremely noisy (eg on slack) for\n // preview environments because the previous commit is always the \"stem\" commit of the preview/PR causing Sentry\n // to notify you for other people creating PRs.\n process.env['VERCEL_TARGET_ENV'] === 'production'\n ) {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n commit: process.env['VERCEL_GIT_COMMIT_SHA'],\n previousCommit: process.env['VERCEL_GIT_PREVIOUS_SHA'],\n repo: `${process.env['VERCEL_GIT_REPO_OWNER']}/${process.env['VERCEL_GIT_REPO_SLUG']}`,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n } else {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n auto: true,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n }\n }\n\n const vercelEnv = getVercelEnv();\n if (options.release.deploy === undefined && process.env['VERCEL'] && vercelEnv) {\n options.release.deploy = {\n env: vercelEnv,\n url: process.env['VERCEL_URL'] ? `https://${process.env['VERCEL_URL']}` : undefined,\n };\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 && typeof options.release.deploy === 'object' && !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 if (options.project && Array.isArray(options.project)) {\n if (options.project.length === 0) {\n logger.error(\n 'The `project` option was specified as an array but is empty.',\n 'Please provide at least one project slug.',\n );\n return false;\n }\n // Check each project is a non-empty string\n const invalidProjects = options.project.filter(p => typeof p !== 'string' || p.trim() === '');\n if (invalidProjects.length > 0) {\n logger.error('The `project` option contains invalid project slugs.', 'All projects must be non-empty strings.');\n return false;\n }\n }\n\n return true;\n}\n"],"names":["determineReleaseName","getVercelEnv"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- const findUp = require('find-up');
4
3
  const path = require('path');
5
4
  const fs = require('fs');
6
5
  const os = require('os');
@@ -10,7 +9,6 @@ const MagicString = require('magic-string');
10
9
 
11
10
  const _interopDefault = e => e && e.__esModule ? e.default : e;
12
11
 
13
- const findUp__default = /*#__PURE__*/_interopDefault(findUp);
14
12
  const path__default = /*#__PURE__*/_interopDefault(path);
15
13
  const fs__default = /*#__PURE__*/_interopDefault(fs);
16
14
  const os__default = /*#__PURE__*/_interopDefault(os);
@@ -100,16 +98,25 @@ function getDependencies(packageJson) {
100
98
  );
101
99
  return { deps, depsVersions };
102
100
  }
101
+ function findPackageJson(cwd, stopAt) {
102
+ let dirName = path__default.resolve(cwd);
103
+ for (; ; ) {
104
+ if (path__default.normalize(dirName) === stopAt) {
105
+ return void 0;
106
+ }
107
+ const jsonPath = path__default.join(dirName, "package.json");
108
+ if (fs__default.existsSync(jsonPath)) {
109
+ return jsonPath;
110
+ }
111
+ const parentDirName = path__default.dirname(dirName);
112
+ if (parentDirName === dirName) {
113
+ return void 0;
114
+ }
115
+ dirName = parentDirName;
116
+ }
117
+ }
103
118
  function lookupPackageJson(cwd, stopAt) {
104
- const jsonPath = findUp__default.sync(
105
- (dirName) => {
106
- if (path__default.normalize(dirName) === stopAt) {
107
- return findUp__default.stop;
108
- }
109
- return findUp__default.sync.exists(`${dirName}/package.json`) ? "package.json" : void 0;
110
- },
111
- { cwd }
112
- );
119
+ const jsonPath = findPackageJson(cwd, stopAt);
113
120
  if (!jsonPath) {
114
121
  return void 0;
115
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/core/utils.ts"],"sourcesContent":["/* oxlint-disable max-lines */\nimport 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';\nimport type { SourceMap } from 'magic-string';\nimport MagicString from 'magic-string';\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 } = {}): PackageJson | undefined {\n return lookupPackageJson(cwd ?? process.cwd(), path.normalize(stopAt ?? os.homedir()));\n}\n\nexport function parseMajorVersion(ver: string): number | undefined {\n let version = ver;\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(\n (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 },\n {} as Record<string, number>,\n );\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 {\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 sha256Hash = crypto.createHash('sha256').update(str).digest('hex');\n\n // Position 16 is fixed to either 8, 9, a, or b in the uuid v4 spec (10xx in binary)\n // RFC 4122 section 4.4\n const v4variant = ['8', '9', 'a', 'b'][sha256Hash.substring(16, 17).charCodeAt(0) % 4] as string;\n\n return `${sha256Hash.substring(0, 8)}-${sha256Hash.substring(8, 12)}-4${sha256Hash.substring(13, 16)}-${v4variant}${sha256Hash.substring(17, 20)}-${sha256Hash.substring(20, 32)}`.toLowerCase();\n}\n\nfunction gitRevision(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess\n .execSync('git rev-parse HEAD', { stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true })\n .toString()\n .trim();\n } catch {\n // noop\n }\n return gitRevision;\n}\n\n/**\n * Tries to guess a release name based on environmental data.\n */\n// oxlint-disable-next-line complexity\nexport function determineReleaseName(): string | undefined {\n // This list is in approximate alpha order, separated into 3 categories:\n // 1. Git providers\n // 2. CI providers with specific environment variables (has the provider name in the variable name)\n // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)\n\n const possibleReleaseNameOfGitProvider =\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 // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env['CI_MERGE_REQUEST_SOURCE_BRANCH_SHA'] ||\n process.env['CI_BUILD_REF'] ||\n process.env['CI_COMMIT_SHA'] ||\n // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env['BITBUCKET_COMMIT'];\n\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env['APPVEYOR_PULL_REQUEST_HEAD_COMMIT'] ||\n process.env['APPVEYOR_REPO_COMMIT'] ||\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 // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env['AWS_COMMIT_ID'] ||\n // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env['BUILD_SOURCEVERSION'] ||\n // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env['GIT_CLONE_COMMIT_HASH'] ||\n // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env['BUDDY_EXECUTION_REVISION'] ||\n // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env['BUILDKITE_COMMIT'] ||\n // CircleCI - https://circleci.com/docs/variables/\n process.env['CIRCLE_SHA1'] ||\n // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env['CIRRUS_CHANGE_IN_REPO'] ||\n // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env['CF_REVISION'] ||\n // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env['CM_COMMIT'] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env['CF_PAGES_COMMIT_SHA'] ||\n // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env['DRONE_COMMIT_SHA'] ||\n // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env['FC_GIT_COMMIT_SHA'] ||\n // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env['HEROKU_TEST_RUN_COMMIT_VERSION'] ||\n // Heroku #2 https://docs.sentry.io/product/integrations/deployment/heroku/#configure-releases\n process.env['HEROKU_SLUG_COMMIT'] ||\n // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env['RAILWAY_GIT_COMMIT_SHA'] ||\n // Render - https://render.com/docs/environment-variables\n process.env['RENDER_GIT_COMMIT'] ||\n // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env['SEMAPHORE_GIT_SHA'] ||\n // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env['TRAVIS_PULL_REQUEST_SHA'] ||\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\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar =\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env['CI_COMMIT_ID'] ||\n // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env['SOURCE_COMMIT'] ||\n // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env['SOURCE_VERSION'] ||\n // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env['GIT_COMMIT'] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env['COMMIT_REF'] ||\n // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env['BUILD_VCS_NUMBER'] ||\n // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env['CI_COMMIT_SHA'];\n\n return (\n possibleReleaseNameOfGitProvider ||\n possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||\n possibleReleaseNameOfCiProvidersWithGenericEnvVar ||\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 generateReleaseInjectorCode({\n release,\n injectBuildInformation,\n}: {\n release: string;\n injectBuildInformation: boolean;\n}): CodeInjection {\n let code = `e.SENTRY_RELEASE={id:${JSON.stringify(release)}};`;\n\n if (injectBuildInformation) {\n const buildInfo = getBuildInformation();\n\n code += `e.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;\n }\n\n return new CodeInjection(code);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function generateModuleMetadataInjectorCode(metadata: any): CodeInjection {\n // We are merging the metadata objects in case modules are bundled twice with the plugin\n // Use try-catch to avoid issues when bundlers rename global variables like 'window' to 'k'\n return new CodeInjection(\n `e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];if(null!=a)for(var t in a)a.hasOwnProperty(t)&&(e[t]=a[t])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],${JSON.stringify(\n metadata,\n )});`,\n );\n}\n\nexport function getBuildInformation(): {\n deps: string[];\n depsVersions: Record<string, number>;\n nodeVersion: number | undefined;\n} {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson ? getDependencies(packageJson) : { 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\nexport function replaceBooleanFlagsInCode(\n code: string,\n replacementValues: Record<string, boolean | undefined>,\n): { code: string; map: SourceMap } | null {\n const ms = new MagicString(code);\n\n Object.keys(replacementValues).forEach(key => {\n const value = replacementValues[key];\n\n if (typeof value === 'boolean') {\n ms.replaceAll(key, JSON.stringify(value));\n }\n });\n\n if (ms.hasChanged()) {\n return {\n code: ms.toString(),\n map: ms.generateMap({ hires: 'boundary' }),\n };\n }\n\n return null;\n}\n\n// https://turbo.build/repo/docs/reference/system-environment-variables#environment-variables-in-tasks\nexport function getTurborepoEnvPassthroughWarning(envVarName: string): string {\n return process.env['TURBO_HASH']\n ? `\\nYou seem to be using Turborepo, did you forget to put ${envVarName} in \\`passThroughEnv\\`? https://turbo.build/repo/docs/reference/configuration#passthroughenv`\n : '';\n}\n\n/**\n * Gets the projects from the project option. This might be a single project or an array of projects.\n */\nexport function getProjects(project: string | string[] | undefined): string[] | undefined {\n if (Array.isArray(project)) {\n return project;\n }\n\n if (project) {\n return [project];\n }\n\n return undefined;\n}\n\n/**\n * Checks if a chunk contains only import/export statements and no substantial code.\n *\n * In Vite MPA (multi-page application) mode, HTML entry points create \"facade\" chunks\n * that only contain import statements to load shared modules. These should not have\n * Sentry code injected. However, in SPA mode, the main bundle also has an HTML facade\n * but contains substantial application code that SHOULD have debug IDs injected.\n *\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/829\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/839\n */\nexport function containsOnlyImports(code: string): boolean {\n const codeWithoutImports = code\n // Remove side effect imports: import '/path'; or import \"./path\";\n // Using explicit negated character classes to avoid polynomial backtracking\n .replace(/^\\s*import\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove named/default imports: import x from '/path'; import { x } from '/path';\n .replace(/^\\s*import\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove re-exports: export * from '/path'; export { x } from '/path';\n .replace(/^\\s*export\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove block comments\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '')\n // Remove line comments\n .replace(/\\/\\/.*$/gm, '')\n // Remove \"use strict\" directives\n .replace(/[\"']use strict[\"']\\s*;?/g, '')\n .trim();\n\n return codeWithoutImports.length === 0;\n}\n\nexport class CodeInjection {\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 private readonly header: string;\n private readonly footer: string;\n\n constructor(private body: string = '') {\n this.header = `!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{};`;\n this.footer = '}catch(e){}}();';\n }\n\n public code(): string {\n if (this.isEmpty()) {\n return '';\n }\n\n return this.header + this.body + this.footer;\n }\n\n public isEmpty(): boolean {\n return this.body.length === 0;\n }\n\n public append(code: CodeInjection | string): void {\n if (code instanceof CodeInjection) {\n this.body += code.body;\n } else {\n this.body += code;\n }\n }\n\n public clear(): void {\n this.body = '';\n }\n\n public clone(): CodeInjection {\n return new CodeInjection(this.body);\n }\n}\n"],"names":["path","os","depsVersions","findUp","fs","crypto","gitRevision","childProcess","MagicString"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/core/utils.ts"],"sourcesContent":["/* oxlint-disable max-lines */\nimport path from 'path';\nimport fs from 'fs';\nimport os from 'os';\nimport crypto from 'crypto';\nimport childProcess from 'child_process';\nimport type { SourceMap } from 'magic-string';\nimport MagicString from 'magic-string';\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 } = {}): PackageJson | undefined {\n return lookupPackageJson(cwd ?? process.cwd(), path.normalize(stopAt ?? os.homedir()));\n}\n\nexport function parseMajorVersion(ver: string): number | undefined {\n let version = ver;\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(\n (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 },\n {} as Record<string, number>,\n );\n\n return { deps, depsVersions };\n}\n\nfunction findPackageJson(cwd: string, stopAt: string): string | undefined {\n let dirName = path.resolve(cwd);\n\n for (;;) {\n // Stop if we reach this dir\n if (path.normalize(dirName) === stopAt) {\n return undefined;\n }\n\n const jsonPath = path.join(dirName, 'package.json');\n if (fs.existsSync(jsonPath)) {\n return jsonPath;\n }\n\n const parentDirName = path.dirname(dirName);\n // We reached the file system root\n if (parentDirName === dirName) {\n return undefined;\n }\n\n dirName = parentDirName;\n }\n}\n\nfunction lookupPackageJson(cwd: string, stopAt: string): PackageJson | undefined {\n const jsonPath = findPackageJson(cwd, stopAt);\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 {\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 sha256Hash = crypto.createHash('sha256').update(str).digest('hex');\n\n // Position 16 is fixed to either 8, 9, a, or b in the uuid v4 spec (10xx in binary)\n // RFC 4122 section 4.4\n const v4variant = ['8', '9', 'a', 'b'][sha256Hash.substring(16, 17).charCodeAt(0) % 4] as string;\n\n return `${sha256Hash.substring(0, 8)}-${sha256Hash.substring(8, 12)}-4${sha256Hash.substring(13, 16)}-${v4variant}${sha256Hash.substring(17, 20)}-${sha256Hash.substring(20, 32)}`.toLowerCase();\n}\n\nfunction gitRevision(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess\n .execSync('git rev-parse HEAD', { stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true })\n .toString()\n .trim();\n } catch {\n // noop\n }\n return gitRevision;\n}\n\n/**\n * Tries to guess a release name based on environmental data.\n */\n// oxlint-disable-next-line complexity\nexport function determineReleaseName(): string | undefined {\n // This list is in approximate alpha order, separated into 3 categories:\n // 1. Git providers\n // 2. CI providers with specific environment variables (has the provider name in the variable name)\n // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)\n\n const possibleReleaseNameOfGitProvider =\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 // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env['CI_MERGE_REQUEST_SOURCE_BRANCH_SHA'] ||\n process.env['CI_BUILD_REF'] ||\n process.env['CI_COMMIT_SHA'] ||\n // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env['BITBUCKET_COMMIT'];\n\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env['APPVEYOR_PULL_REQUEST_HEAD_COMMIT'] ||\n process.env['APPVEYOR_REPO_COMMIT'] ||\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 // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env['AWS_COMMIT_ID'] ||\n // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env['BUILD_SOURCEVERSION'] ||\n // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env['GIT_CLONE_COMMIT_HASH'] ||\n // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env['BUDDY_EXECUTION_REVISION'] ||\n // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env['BUILDKITE_COMMIT'] ||\n // CircleCI - https://circleci.com/docs/variables/\n process.env['CIRCLE_SHA1'] ||\n // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env['CIRRUS_CHANGE_IN_REPO'] ||\n // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env['CF_REVISION'] ||\n // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env['CM_COMMIT'] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env['CF_PAGES_COMMIT_SHA'] ||\n // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env['DRONE_COMMIT_SHA'] ||\n // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env['FC_GIT_COMMIT_SHA'] ||\n // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env['HEROKU_TEST_RUN_COMMIT_VERSION'] ||\n // Heroku #2 https://docs.sentry.io/product/integrations/deployment/heroku/#configure-releases\n process.env['HEROKU_SLUG_COMMIT'] ||\n // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env['RAILWAY_GIT_COMMIT_SHA'] ||\n // Render - https://render.com/docs/environment-variables\n process.env['RENDER_GIT_COMMIT'] ||\n // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env['SEMAPHORE_GIT_SHA'] ||\n // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env['TRAVIS_PULL_REQUEST_SHA'] ||\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\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar =\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env['CI_COMMIT_ID'] ||\n // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env['SOURCE_COMMIT'] ||\n // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env['SOURCE_VERSION'] ||\n // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env['GIT_COMMIT'] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env['COMMIT_REF'] ||\n // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env['BUILD_VCS_NUMBER'] ||\n // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env['CI_COMMIT_SHA'];\n\n return (\n possibleReleaseNameOfGitProvider ||\n possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||\n possibleReleaseNameOfCiProvidersWithGenericEnvVar ||\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 generateReleaseInjectorCode({\n release,\n injectBuildInformation,\n}: {\n release: string;\n injectBuildInformation: boolean;\n}): CodeInjection {\n let code = `e.SENTRY_RELEASE={id:${JSON.stringify(release)}};`;\n\n if (injectBuildInformation) {\n const buildInfo = getBuildInformation();\n\n code += `e.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;\n }\n\n return new CodeInjection(code);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function generateModuleMetadataInjectorCode(metadata: any): CodeInjection {\n // We are merging the metadata objects in case modules are bundled twice with the plugin\n // Use try-catch to avoid issues when bundlers rename global variables like 'window' to 'k'\n return new CodeInjection(\n `e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];if(null!=a)for(var t in a)a.hasOwnProperty(t)&&(e[t]=a[t])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],${JSON.stringify(\n metadata,\n )});`,\n );\n}\n\nexport function getBuildInformation(): {\n deps: string[];\n depsVersions: Record<string, number>;\n nodeVersion: number | undefined;\n} {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson ? getDependencies(packageJson) : { 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\nexport function replaceBooleanFlagsInCode(\n code: string,\n replacementValues: Record<string, boolean | undefined>,\n): { code: string; map: SourceMap } | null {\n const ms = new MagicString(code);\n\n Object.keys(replacementValues).forEach(key => {\n const value = replacementValues[key];\n\n if (typeof value === 'boolean') {\n ms.replaceAll(key, JSON.stringify(value));\n }\n });\n\n if (ms.hasChanged()) {\n return {\n code: ms.toString(),\n map: ms.generateMap({ hires: 'boundary' }),\n };\n }\n\n return null;\n}\n\n// https://turbo.build/repo/docs/reference/system-environment-variables#environment-variables-in-tasks\nexport function getTurborepoEnvPassthroughWarning(envVarName: string): string {\n return process.env['TURBO_HASH']\n ? `\\nYou seem to be using Turborepo, did you forget to put ${envVarName} in \\`passThroughEnv\\`? https://turbo.build/repo/docs/reference/configuration#passthroughenv`\n : '';\n}\n\n/**\n * Gets the projects from the project option. This might be a single project or an array of projects.\n */\nexport function getProjects(project: string | string[] | undefined): string[] | undefined {\n if (Array.isArray(project)) {\n return project;\n }\n\n if (project) {\n return [project];\n }\n\n return undefined;\n}\n\n/**\n * Checks if a chunk contains only import/export statements and no substantial code.\n *\n * In Vite MPA (multi-page application) mode, HTML entry points create \"facade\" chunks\n * that only contain import statements to load shared modules. These should not have\n * Sentry code injected. However, in SPA mode, the main bundle also has an HTML facade\n * but contains substantial application code that SHOULD have debug IDs injected.\n *\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/829\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/839\n */\nexport function containsOnlyImports(code: string): boolean {\n const codeWithoutImports = code\n // Remove side effect imports: import '/path'; or import \"./path\";\n // Using explicit negated character classes to avoid polynomial backtracking\n .replace(/^\\s*import\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove named/default imports: import x from '/path'; import { x } from '/path';\n .replace(/^\\s*import\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove re-exports: export * from '/path'; export { x } from '/path';\n .replace(/^\\s*export\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove block comments\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '')\n // Remove line comments\n .replace(/\\/\\/.*$/gm, '')\n // Remove \"use strict\" directives\n .replace(/[\"']use strict[\"']\\s*;?/g, '')\n .trim();\n\n return codeWithoutImports.length === 0;\n}\n\nexport class CodeInjection {\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 private readonly header: string;\n private readonly footer: string;\n\n constructor(private body: string = '') {\n this.header = `!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{};`;\n this.footer = '}catch(e){}}();';\n }\n\n public code(): string {\n if (this.isEmpty()) {\n return '';\n }\n\n return this.header + this.body + this.footer;\n }\n\n public isEmpty(): boolean {\n return this.body.length === 0;\n }\n\n public append(code: CodeInjection | string): void {\n if (code instanceof CodeInjection) {\n this.body += code.body;\n } else {\n this.body += code;\n }\n }\n\n public clear(): void {\n this.body = '';\n }\n\n public clone(): CodeInjection {\n return new CodeInjection(this.body);\n }\n}\n"],"names":["path","os","depsVersions","fs","crypto","gitRevision","childProcess","MagicString"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- const LIB_VERSION = "11.0.0-beta.1";
3
+ const LIB_VERSION = "11.0.0-beta.2";
4
4
 
5
5
  exports.LIB_VERSION = LIB_VERSION;
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../../src/core/version.ts"],"sourcesContent":["export const LIB_VERSION = \"11.0.0-beta.1\";\n"],"names":[],"mappings":";;AAAO,MAAM,WAAA,GAAc;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../src/core/version.ts"],"sourcesContent":["export const LIB_VERSION = \"11.0.0-beta.2\";\n"],"names":[],"mappings":";;AAAO,MAAM,WAAA,GAAc;;;;"}
@@ -1,3 +1,4 @@
1
+ import { getVercelEnv } from '@sentry/core';
1
2
  import { determineReleaseName } from './utils.js';
2
3
 
3
4
  const SENTRY_SAAS_URL = "https://sentry.io";
@@ -58,9 +59,10 @@ function normalizeUserOptions(userOptions) {
58
59
  };
59
60
  }
60
61
  }
61
- if (options.release.deploy === void 0 && process.env["VERCEL"] && process.env["VERCEL_TARGET_ENV"]) {
62
+ const vercelEnv = getVercelEnv();
63
+ if (options.release.deploy === void 0 && process.env["VERCEL"] && vercelEnv) {
62
64
  options.release.deploy = {
63
- env: `vercel-${process.env["VERCEL_TARGET_ENV"]}`,
65
+ env: vercelEnv,
64
66
  url: process.env["VERCEL_URL"] ? `https://${process.env["VERCEL_URL"]}` : void 0
65
67
  };
66
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options-mapping.js","sources":["../../../src/core/options-mapping.ts"],"sourcesContent":["import type { Logger } from './logger';\nimport type {\n Options as UserOptions,\n SetCommitsOptions,\n RewriteSourcesHook,\n ResolveSourceMapHook,\n IncludeEntry,\n ModuleMetadata,\n ModuleMetadataCallback,\n} from './types';\nimport { determineReleaseName } from './utils';\n\nexport type NormalizedOptions = {\n org: string | undefined;\n project: string | string[] | undefined;\n authToken: string | undefined;\n url: string;\n headers: Record<string, string> | undefined;\n debug: boolean;\n silent: boolean;\n errorHandler: ((err: Error) => void) | undefined;\n telemetry: boolean;\n disable: boolean;\n sourcemaps:\n | {\n disable?: boolean | 'disable-upload';\n assets?: string | string[];\n ignore?: string | string[];\n rewriteSources?: RewriteSourcesHook;\n resolveSourceMap?: ResolveSourceMapHook;\n filesToDeleteAfterUpload?: string | string[] | Promise<string | string[] | undefined>;\n }\n | undefined;\n release: {\n name: string | undefined;\n inject: boolean;\n create: boolean;\n finalize: boolean;\n vcsRemote: string;\n setCommits:\n | (SetCommitsOptions & {\n shouldNotThrowOnFailure?: boolean;\n })\n | false\n | undefined;\n dist?: string;\n deploy?:\n | {\n env: string;\n started?: number | string;\n finished?: number | string;\n time?: number;\n name?: string;\n url?: string;\n }\n | false;\n uploadLegacySourcemaps?: string | IncludeEntry | Array<string | IncludeEntry>;\n };\n bundleSizeOptimizations:\n | {\n excludeDebugStatements?: boolean;\n excludeTracing?: boolean;\n excludeChannelInjection?: boolean;\n excludeReplayCanvas?: boolean;\n excludeReplayShadowDom?: boolean;\n excludeReplayIframe?: boolean;\n excludeReplayWorker?: boolean;\n }\n | undefined;\n reactComponentAnnotation:\n | {\n enabled?: boolean;\n ignoredComponents?: string[];\n _experimentalInjectIntoHtml?: boolean;\n }\n | undefined;\n _metaOptions: {\n telemetry: {\n metaFramework: string | undefined;\n bundlerMajorVersion: string | undefined;\n };\n };\n applicationKey: string | undefined;\n moduleMetadata: ModuleMetadata | ModuleMetadataCallback | undefined;\n _experiments: {\n injectBuildInformation?: boolean;\n } & Record<string, unknown>;\n};\n\nexport const SENTRY_SAAS_URL = 'https://sentry.io';\n\n// oxlint-disable-next-line complexity\nexport function normalizeUserOptions(userOptions: UserOptions): NormalizedOptions {\n const options = {\n org: userOptions.org ?? process.env['SENTRY_ORG'],\n project:\n userOptions.project ??\n (process.env['SENTRY_PROJECT']?.includes(',')\n ? process.env['SENTRY_PROJECT'].split(',').map(p => p.trim())\n : 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 ?? process.env['SENTRY_RELEASE'] ?? 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 // oxlint-disable-next-line typescript/no-unnecessary-type-assertion -- rule false positive: the cast carries the internal `shouldNotThrowOnFailure` field; tsc errors without it\n setCommits: userOptions.release?.setCommits as\n | (SetCommitsOptions & { shouldNotThrowOnFailure?: boolean })\n | false\n | undefined,\n },\n bundleSizeOptimizations: userOptions.bundleSizeOptimizations,\n reactComponentAnnotation: userOptions.reactComponentAnnotation,\n _metaOptions: {\n telemetry: {\n metaFramework: userOptions._metaOptions?.telemetry?.metaFramework,\n bundlerMajorVersion: userOptions._metaOptions?.telemetry?.bundlerMajorVersion,\n },\n },\n applicationKey: userOptions.applicationKey,\n moduleMetadata: userOptions.moduleMetadata,\n _experiments: userOptions._experiments ?? {},\n };\n\n if (options.release.setCommits === undefined) {\n if (\n process.env['VERCEL'] &&\n process.env['VERCEL_GIT_COMMIT_SHA'] &&\n process.env['VERCEL_GIT_REPO_SLUG'] &&\n process.env['VERCEL_GIT_REPO_OWNER'] &&\n // We only want to set commits for the production env because Sentry becomes extremely noisy (eg on slack) for\n // preview environments because the previous commit is always the \"stem\" commit of the preview/PR causing Sentry\n // to notify you for other people creating PRs.\n process.env['VERCEL_TARGET_ENV'] === 'production'\n ) {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n commit: process.env['VERCEL_GIT_COMMIT_SHA'],\n previousCommit: process.env['VERCEL_GIT_PREVIOUS_SHA'],\n repo: `${process.env['VERCEL_GIT_REPO_OWNER']}/${process.env['VERCEL_GIT_REPO_SLUG']}`,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n } else {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n auto: true,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n }\n }\n\n if (options.release.deploy === undefined && process.env['VERCEL'] && process.env['VERCEL_TARGET_ENV']) {\n options.release.deploy = {\n env: `vercel-${process.env['VERCEL_TARGET_ENV']}`,\n url: process.env['VERCEL_URL'] ? `https://${process.env['VERCEL_URL']}` : undefined,\n };\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 && typeof options.release.deploy === 'object' && !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 if (options.project && Array.isArray(options.project)) {\n if (options.project.length === 0) {\n logger.error(\n 'The `project` option was specified as an array but is empty.',\n 'Please provide at least one project slug.',\n );\n return false;\n }\n // Check each project is a non-empty string\n const invalidProjects = options.project.filter(p => typeof p !== 'string' || p.trim() === '');\n if (invalidProjects.length > 0) {\n logger.error('The `project` option contains invalid project slugs.', 'All projects must be non-empty strings.');\n return false;\n }\n }\n\n return true;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options-mapping.js","sources":["../../../src/core/options-mapping.ts"],"sourcesContent":["import { getVercelEnv } from '@sentry/core';\nimport type { Logger } from './logger';\nimport type {\n Options as UserOptions,\n SetCommitsOptions,\n RewriteSourcesHook,\n ResolveSourceMapHook,\n IncludeEntry,\n ModuleMetadata,\n ModuleMetadataCallback,\n} from './types';\nimport { determineReleaseName } from './utils';\n\nexport type NormalizedOptions = {\n org: string | undefined;\n project: string | string[] | undefined;\n authToken: string | undefined;\n url: string;\n headers: Record<string, string> | undefined;\n debug: boolean;\n silent: boolean;\n errorHandler: ((err: Error) => void) | undefined;\n telemetry: boolean;\n disable: boolean;\n sourcemaps:\n | {\n disable?: boolean | 'disable-upload';\n assets?: string | string[];\n ignore?: string | string[];\n rewriteSources?: RewriteSourcesHook;\n resolveSourceMap?: ResolveSourceMapHook;\n filesToDeleteAfterUpload?: string | string[] | Promise<string | string[] | undefined>;\n }\n | undefined;\n release: {\n name: string | undefined;\n inject: boolean;\n create: boolean;\n finalize: boolean;\n vcsRemote: string;\n setCommits:\n | (SetCommitsOptions & {\n shouldNotThrowOnFailure?: boolean;\n })\n | false\n | undefined;\n dist?: string;\n deploy?:\n | {\n env: string;\n started?: number | string;\n finished?: number | string;\n time?: number;\n name?: string;\n url?: string;\n }\n | false;\n uploadLegacySourcemaps?: string | IncludeEntry | Array<string | IncludeEntry>;\n };\n bundleSizeOptimizations:\n | {\n excludeDebugStatements?: boolean;\n excludeTracing?: boolean;\n excludeChannelInjection?: boolean;\n excludeReplayCanvas?: boolean;\n excludeReplayShadowDom?: boolean;\n excludeReplayIframe?: boolean;\n excludeReplayWorker?: boolean;\n }\n | undefined;\n reactComponentAnnotation:\n | {\n enabled?: boolean;\n ignoredComponents?: string[];\n _experimentalInjectIntoHtml?: boolean;\n }\n | undefined;\n _metaOptions: {\n telemetry: {\n metaFramework: string | undefined;\n bundlerMajorVersion: string | undefined;\n };\n };\n applicationKey: string | undefined;\n moduleMetadata: ModuleMetadata | ModuleMetadataCallback | undefined;\n _experiments: {\n injectBuildInformation?: boolean;\n } & Record<string, unknown>;\n};\n\nexport const SENTRY_SAAS_URL = 'https://sentry.io';\n\n// oxlint-disable-next-line complexity\nexport function normalizeUserOptions(userOptions: UserOptions): NormalizedOptions {\n const options = {\n org: userOptions.org ?? process.env['SENTRY_ORG'],\n project:\n userOptions.project ??\n (process.env['SENTRY_PROJECT']?.includes(',')\n ? process.env['SENTRY_PROJECT'].split(',').map(p => p.trim())\n : 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 ?? process.env['SENTRY_RELEASE'] ?? 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 // oxlint-disable-next-line typescript/no-unnecessary-type-assertion -- rule false positive: the cast carries the internal `shouldNotThrowOnFailure` field; tsc errors without it\n setCommits: userOptions.release?.setCommits as\n | (SetCommitsOptions & { shouldNotThrowOnFailure?: boolean })\n | false\n | undefined,\n },\n bundleSizeOptimizations: userOptions.bundleSizeOptimizations,\n reactComponentAnnotation: userOptions.reactComponentAnnotation,\n _metaOptions: {\n telemetry: {\n metaFramework: userOptions._metaOptions?.telemetry?.metaFramework,\n bundlerMajorVersion: userOptions._metaOptions?.telemetry?.bundlerMajorVersion,\n },\n },\n applicationKey: userOptions.applicationKey,\n moduleMetadata: userOptions.moduleMetadata,\n _experiments: userOptions._experiments ?? {},\n };\n\n if (options.release.setCommits === undefined) {\n if (\n process.env['VERCEL'] &&\n process.env['VERCEL_GIT_COMMIT_SHA'] &&\n process.env['VERCEL_GIT_REPO_SLUG'] &&\n process.env['VERCEL_GIT_REPO_OWNER'] &&\n // We only want to set commits for the production env because Sentry becomes extremely noisy (eg on slack) for\n // preview environments because the previous commit is always the \"stem\" commit of the preview/PR causing Sentry\n // to notify you for other people creating PRs.\n process.env['VERCEL_TARGET_ENV'] === 'production'\n ) {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n commit: process.env['VERCEL_GIT_COMMIT_SHA'],\n previousCommit: process.env['VERCEL_GIT_PREVIOUS_SHA'],\n repo: `${process.env['VERCEL_GIT_REPO_OWNER']}/${process.env['VERCEL_GIT_REPO_SLUG']}`,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n } else {\n options.release.setCommits = {\n shouldNotThrowOnFailure: true,\n auto: true,\n ignoreEmpty: true,\n ignoreMissing: true,\n };\n }\n }\n\n const vercelEnv = getVercelEnv();\n if (options.release.deploy === undefined && process.env['VERCEL'] && vercelEnv) {\n options.release.deploy = {\n env: vercelEnv,\n url: process.env['VERCEL_URL'] ? `https://${process.env['VERCEL_URL']}` : undefined,\n };\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 && typeof options.release.deploy === 'object' && !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 if (options.project && Array.isArray(options.project)) {\n if (options.project.length === 0) {\n logger.error(\n 'The `project` option was specified as an array but is empty.',\n 'Please provide at least one project slug.',\n );\n return false;\n }\n // Check each project is a non-empty string\n const invalidProjects = options.project.filter(p => typeof p !== 'string' || p.trim() === '');\n if (invalidProjects.length > 0) {\n logger.error('The `project` option contains invalid project slugs.', 'All projects must be non-empty strings.');\n return false;\n }\n }\n\n return true;\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import findUp from 'find-up';
2
1
  import path__default from 'path';
3
2
  import fs__default from 'fs';
4
3
  import os__default from 'os';
@@ -88,16 +87,25 @@ function getDependencies(packageJson) {
88
87
  );
89
88
  return { deps, depsVersions };
90
89
  }
90
+ function findPackageJson(cwd, stopAt) {
91
+ let dirName = path__default.resolve(cwd);
92
+ for (; ; ) {
93
+ if (path__default.normalize(dirName) === stopAt) {
94
+ return void 0;
95
+ }
96
+ const jsonPath = path__default.join(dirName, "package.json");
97
+ if (fs__default.existsSync(jsonPath)) {
98
+ return jsonPath;
99
+ }
100
+ const parentDirName = path__default.dirname(dirName);
101
+ if (parentDirName === dirName) {
102
+ return void 0;
103
+ }
104
+ dirName = parentDirName;
105
+ }
106
+ }
91
107
  function lookupPackageJson(cwd, stopAt) {
92
- const jsonPath = findUp.sync(
93
- (dirName) => {
94
- if (path__default.normalize(dirName) === stopAt) {
95
- return findUp.stop;
96
- }
97
- return findUp.sync.exists(`${dirName}/package.json`) ? "package.json" : void 0;
98
- },
99
- { cwd }
100
- );
108
+ const jsonPath = findPackageJson(cwd, stopAt);
101
109
  if (!jsonPath) {
102
110
  return void 0;
103
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/core/utils.ts"],"sourcesContent":["/* oxlint-disable max-lines */\nimport 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';\nimport type { SourceMap } from 'magic-string';\nimport MagicString from 'magic-string';\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 } = {}): PackageJson | undefined {\n return lookupPackageJson(cwd ?? process.cwd(), path.normalize(stopAt ?? os.homedir()));\n}\n\nexport function parseMajorVersion(ver: string): number | undefined {\n let version = ver;\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(\n (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 },\n {} as Record<string, number>,\n );\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 {\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 sha256Hash = crypto.createHash('sha256').update(str).digest('hex');\n\n // Position 16 is fixed to either 8, 9, a, or b in the uuid v4 spec (10xx in binary)\n // RFC 4122 section 4.4\n const v4variant = ['8', '9', 'a', 'b'][sha256Hash.substring(16, 17).charCodeAt(0) % 4] as string;\n\n return `${sha256Hash.substring(0, 8)}-${sha256Hash.substring(8, 12)}-4${sha256Hash.substring(13, 16)}-${v4variant}${sha256Hash.substring(17, 20)}-${sha256Hash.substring(20, 32)}`.toLowerCase();\n}\n\nfunction gitRevision(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess\n .execSync('git rev-parse HEAD', { stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true })\n .toString()\n .trim();\n } catch {\n // noop\n }\n return gitRevision;\n}\n\n/**\n * Tries to guess a release name based on environmental data.\n */\n// oxlint-disable-next-line complexity\nexport function determineReleaseName(): string | undefined {\n // This list is in approximate alpha order, separated into 3 categories:\n // 1. Git providers\n // 2. CI providers with specific environment variables (has the provider name in the variable name)\n // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)\n\n const possibleReleaseNameOfGitProvider =\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 // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env['CI_MERGE_REQUEST_SOURCE_BRANCH_SHA'] ||\n process.env['CI_BUILD_REF'] ||\n process.env['CI_COMMIT_SHA'] ||\n // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env['BITBUCKET_COMMIT'];\n\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env['APPVEYOR_PULL_REQUEST_HEAD_COMMIT'] ||\n process.env['APPVEYOR_REPO_COMMIT'] ||\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 // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env['AWS_COMMIT_ID'] ||\n // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env['BUILD_SOURCEVERSION'] ||\n // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env['GIT_CLONE_COMMIT_HASH'] ||\n // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env['BUDDY_EXECUTION_REVISION'] ||\n // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env['BUILDKITE_COMMIT'] ||\n // CircleCI - https://circleci.com/docs/variables/\n process.env['CIRCLE_SHA1'] ||\n // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env['CIRRUS_CHANGE_IN_REPO'] ||\n // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env['CF_REVISION'] ||\n // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env['CM_COMMIT'] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env['CF_PAGES_COMMIT_SHA'] ||\n // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env['DRONE_COMMIT_SHA'] ||\n // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env['FC_GIT_COMMIT_SHA'] ||\n // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env['HEROKU_TEST_RUN_COMMIT_VERSION'] ||\n // Heroku #2 https://docs.sentry.io/product/integrations/deployment/heroku/#configure-releases\n process.env['HEROKU_SLUG_COMMIT'] ||\n // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env['RAILWAY_GIT_COMMIT_SHA'] ||\n // Render - https://render.com/docs/environment-variables\n process.env['RENDER_GIT_COMMIT'] ||\n // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env['SEMAPHORE_GIT_SHA'] ||\n // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env['TRAVIS_PULL_REQUEST_SHA'] ||\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\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar =\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env['CI_COMMIT_ID'] ||\n // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env['SOURCE_COMMIT'] ||\n // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env['SOURCE_VERSION'] ||\n // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env['GIT_COMMIT'] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env['COMMIT_REF'] ||\n // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env['BUILD_VCS_NUMBER'] ||\n // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env['CI_COMMIT_SHA'];\n\n return (\n possibleReleaseNameOfGitProvider ||\n possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||\n possibleReleaseNameOfCiProvidersWithGenericEnvVar ||\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 generateReleaseInjectorCode({\n release,\n injectBuildInformation,\n}: {\n release: string;\n injectBuildInformation: boolean;\n}): CodeInjection {\n let code = `e.SENTRY_RELEASE={id:${JSON.stringify(release)}};`;\n\n if (injectBuildInformation) {\n const buildInfo = getBuildInformation();\n\n code += `e.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;\n }\n\n return new CodeInjection(code);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function generateModuleMetadataInjectorCode(metadata: any): CodeInjection {\n // We are merging the metadata objects in case modules are bundled twice with the plugin\n // Use try-catch to avoid issues when bundlers rename global variables like 'window' to 'k'\n return new CodeInjection(\n `e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];if(null!=a)for(var t in a)a.hasOwnProperty(t)&&(e[t]=a[t])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],${JSON.stringify(\n metadata,\n )});`,\n );\n}\n\nexport function getBuildInformation(): {\n deps: string[];\n depsVersions: Record<string, number>;\n nodeVersion: number | undefined;\n} {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson ? getDependencies(packageJson) : { 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\nexport function replaceBooleanFlagsInCode(\n code: string,\n replacementValues: Record<string, boolean | undefined>,\n): { code: string; map: SourceMap } | null {\n const ms = new MagicString(code);\n\n Object.keys(replacementValues).forEach(key => {\n const value = replacementValues[key];\n\n if (typeof value === 'boolean') {\n ms.replaceAll(key, JSON.stringify(value));\n }\n });\n\n if (ms.hasChanged()) {\n return {\n code: ms.toString(),\n map: ms.generateMap({ hires: 'boundary' }),\n };\n }\n\n return null;\n}\n\n// https://turbo.build/repo/docs/reference/system-environment-variables#environment-variables-in-tasks\nexport function getTurborepoEnvPassthroughWarning(envVarName: string): string {\n return process.env['TURBO_HASH']\n ? `\\nYou seem to be using Turborepo, did you forget to put ${envVarName} in \\`passThroughEnv\\`? https://turbo.build/repo/docs/reference/configuration#passthroughenv`\n : '';\n}\n\n/**\n * Gets the projects from the project option. This might be a single project or an array of projects.\n */\nexport function getProjects(project: string | string[] | undefined): string[] | undefined {\n if (Array.isArray(project)) {\n return project;\n }\n\n if (project) {\n return [project];\n }\n\n return undefined;\n}\n\n/**\n * Checks if a chunk contains only import/export statements and no substantial code.\n *\n * In Vite MPA (multi-page application) mode, HTML entry points create \"facade\" chunks\n * that only contain import statements to load shared modules. These should not have\n * Sentry code injected. However, in SPA mode, the main bundle also has an HTML facade\n * but contains substantial application code that SHOULD have debug IDs injected.\n *\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/829\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/839\n */\nexport function containsOnlyImports(code: string): boolean {\n const codeWithoutImports = code\n // Remove side effect imports: import '/path'; or import \"./path\";\n // Using explicit negated character classes to avoid polynomial backtracking\n .replace(/^\\s*import\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove named/default imports: import x from '/path'; import { x } from '/path';\n .replace(/^\\s*import\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove re-exports: export * from '/path'; export { x } from '/path';\n .replace(/^\\s*export\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove block comments\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '')\n // Remove line comments\n .replace(/\\/\\/.*$/gm, '')\n // Remove \"use strict\" directives\n .replace(/[\"']use strict[\"']\\s*;?/g, '')\n .trim();\n\n return codeWithoutImports.length === 0;\n}\n\nexport class CodeInjection {\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 private readonly header: string;\n private readonly footer: string;\n\n constructor(private body: string = '') {\n this.header = `!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{};`;\n this.footer = '}catch(e){}}();';\n }\n\n public code(): string {\n if (this.isEmpty()) {\n return '';\n }\n\n return this.header + this.body + this.footer;\n }\n\n public isEmpty(): boolean {\n return this.body.length === 0;\n }\n\n public append(code: CodeInjection | string): void {\n if (code instanceof CodeInjection) {\n this.body += code.body;\n } else {\n this.body += code;\n }\n }\n\n public clear(): void {\n this.body = '';\n }\n\n public clone(): CodeInjection {\n return new CodeInjection(this.body);\n }\n}\n"],"names":["path","os","depsVersions","fs","gitRevision"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/core/utils.ts"],"sourcesContent":["/* oxlint-disable max-lines */\nimport path from 'path';\nimport fs from 'fs';\nimport os from 'os';\nimport crypto from 'crypto';\nimport childProcess from 'child_process';\nimport type { SourceMap } from 'magic-string';\nimport MagicString from 'magic-string';\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 } = {}): PackageJson | undefined {\n return lookupPackageJson(cwd ?? process.cwd(), path.normalize(stopAt ?? os.homedir()));\n}\n\nexport function parseMajorVersion(ver: string): number | undefined {\n let version = ver;\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(\n (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 },\n {} as Record<string, number>,\n );\n\n return { deps, depsVersions };\n}\n\nfunction findPackageJson(cwd: string, stopAt: string): string | undefined {\n let dirName = path.resolve(cwd);\n\n for (;;) {\n // Stop if we reach this dir\n if (path.normalize(dirName) === stopAt) {\n return undefined;\n }\n\n const jsonPath = path.join(dirName, 'package.json');\n if (fs.existsSync(jsonPath)) {\n return jsonPath;\n }\n\n const parentDirName = path.dirname(dirName);\n // We reached the file system root\n if (parentDirName === dirName) {\n return undefined;\n }\n\n dirName = parentDirName;\n }\n}\n\nfunction lookupPackageJson(cwd: string, stopAt: string): PackageJson | undefined {\n const jsonPath = findPackageJson(cwd, stopAt);\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 {\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 sha256Hash = crypto.createHash('sha256').update(str).digest('hex');\n\n // Position 16 is fixed to either 8, 9, a, or b in the uuid v4 spec (10xx in binary)\n // RFC 4122 section 4.4\n const v4variant = ['8', '9', 'a', 'b'][sha256Hash.substring(16, 17).charCodeAt(0) % 4] as string;\n\n return `${sha256Hash.substring(0, 8)}-${sha256Hash.substring(8, 12)}-4${sha256Hash.substring(13, 16)}-${v4variant}${sha256Hash.substring(17, 20)}-${sha256Hash.substring(20, 32)}`.toLowerCase();\n}\n\nfunction gitRevision(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess\n .execSync('git rev-parse HEAD', { stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true })\n .toString()\n .trim();\n } catch {\n // noop\n }\n return gitRevision;\n}\n\n/**\n * Tries to guess a release name based on environmental data.\n */\n// oxlint-disable-next-line complexity\nexport function determineReleaseName(): string | undefined {\n // This list is in approximate alpha order, separated into 3 categories:\n // 1. Git providers\n // 2. CI providers with specific environment variables (has the provider name in the variable name)\n // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)\n\n const possibleReleaseNameOfGitProvider =\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 // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env['CI_MERGE_REQUEST_SOURCE_BRANCH_SHA'] ||\n process.env['CI_BUILD_REF'] ||\n process.env['CI_COMMIT_SHA'] ||\n // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env['BITBUCKET_COMMIT'];\n\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env['APPVEYOR_PULL_REQUEST_HEAD_COMMIT'] ||\n process.env['APPVEYOR_REPO_COMMIT'] ||\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 // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env['AWS_COMMIT_ID'] ||\n // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env['BUILD_SOURCEVERSION'] ||\n // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env['GIT_CLONE_COMMIT_HASH'] ||\n // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env['BUDDY_EXECUTION_REVISION'] ||\n // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env['BUILDKITE_COMMIT'] ||\n // CircleCI - https://circleci.com/docs/variables/\n process.env['CIRCLE_SHA1'] ||\n // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env['CIRRUS_CHANGE_IN_REPO'] ||\n // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env['CF_REVISION'] ||\n // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env['CM_COMMIT'] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env['CF_PAGES_COMMIT_SHA'] ||\n // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env['DRONE_COMMIT_SHA'] ||\n // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env['FC_GIT_COMMIT_SHA'] ||\n // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env['HEROKU_TEST_RUN_COMMIT_VERSION'] ||\n // Heroku #2 https://docs.sentry.io/product/integrations/deployment/heroku/#configure-releases\n process.env['HEROKU_SLUG_COMMIT'] ||\n // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env['RAILWAY_GIT_COMMIT_SHA'] ||\n // Render - https://render.com/docs/environment-variables\n process.env['RENDER_GIT_COMMIT'] ||\n // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env['SEMAPHORE_GIT_SHA'] ||\n // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env['TRAVIS_PULL_REQUEST_SHA'] ||\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\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar =\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env['CI_COMMIT_ID'] ||\n // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env['SOURCE_COMMIT'] ||\n // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env['SOURCE_VERSION'] ||\n // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env['GIT_COMMIT'] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env['COMMIT_REF'] ||\n // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env['BUILD_VCS_NUMBER'] ||\n // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env['CI_COMMIT_SHA'];\n\n return (\n possibleReleaseNameOfGitProvider ||\n possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||\n possibleReleaseNameOfCiProvidersWithGenericEnvVar ||\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 generateReleaseInjectorCode({\n release,\n injectBuildInformation,\n}: {\n release: string;\n injectBuildInformation: boolean;\n}): CodeInjection {\n let code = `e.SENTRY_RELEASE={id:${JSON.stringify(release)}};`;\n\n if (injectBuildInformation) {\n const buildInfo = getBuildInformation();\n\n code += `e.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;\n }\n\n return new CodeInjection(code);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function generateModuleMetadataInjectorCode(metadata: any): CodeInjection {\n // We are merging the metadata objects in case modules are bundled twice with the plugin\n // Use try-catch to avoid issues when bundlers rename global variables like 'window' to 'k'\n return new CodeInjection(\n `e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var n=1;n<arguments.length;n++){var a=arguments[n];if(null!=a)for(var t in a)a.hasOwnProperty(t)&&(e[t]=a[t])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],${JSON.stringify(\n metadata,\n )});`,\n );\n}\n\nexport function getBuildInformation(): {\n deps: string[];\n depsVersions: Record<string, number>;\n nodeVersion: number | undefined;\n} {\n const packageJson = getPackageJson();\n\n const { deps, depsVersions } = packageJson ? getDependencies(packageJson) : { 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\nexport function replaceBooleanFlagsInCode(\n code: string,\n replacementValues: Record<string, boolean | undefined>,\n): { code: string; map: SourceMap } | null {\n const ms = new MagicString(code);\n\n Object.keys(replacementValues).forEach(key => {\n const value = replacementValues[key];\n\n if (typeof value === 'boolean') {\n ms.replaceAll(key, JSON.stringify(value));\n }\n });\n\n if (ms.hasChanged()) {\n return {\n code: ms.toString(),\n map: ms.generateMap({ hires: 'boundary' }),\n };\n }\n\n return null;\n}\n\n// https://turbo.build/repo/docs/reference/system-environment-variables#environment-variables-in-tasks\nexport function getTurborepoEnvPassthroughWarning(envVarName: string): string {\n return process.env['TURBO_HASH']\n ? `\\nYou seem to be using Turborepo, did you forget to put ${envVarName} in \\`passThroughEnv\\`? https://turbo.build/repo/docs/reference/configuration#passthroughenv`\n : '';\n}\n\n/**\n * Gets the projects from the project option. This might be a single project or an array of projects.\n */\nexport function getProjects(project: string | string[] | undefined): string[] | undefined {\n if (Array.isArray(project)) {\n return project;\n }\n\n if (project) {\n return [project];\n }\n\n return undefined;\n}\n\n/**\n * Checks if a chunk contains only import/export statements and no substantial code.\n *\n * In Vite MPA (multi-page application) mode, HTML entry points create \"facade\" chunks\n * that only contain import statements to load shared modules. These should not have\n * Sentry code injected. However, in SPA mode, the main bundle also has an HTML facade\n * but contains substantial application code that SHOULD have debug IDs injected.\n *\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/829\n * @ref https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/839\n */\nexport function containsOnlyImports(code: string): boolean {\n const codeWithoutImports = code\n // Remove side effect imports: import '/path'; or import \"./path\";\n // Using explicit negated character classes to avoid polynomial backtracking\n .replace(/^\\s*import\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove named/default imports: import x from '/path'; import { x } from '/path';\n .replace(/^\\s*import\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove re-exports: export * from '/path'; export { x } from '/path';\n .replace(/^\\s*export\\b[^'\"`\\n]*\\bfrom\\s+(?:'[^'\\n]*'|\"[^\"\\n]*\"|`[^`\\n]*`)[\\s;]*$/gm, '')\n // Remove block comments\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '')\n // Remove line comments\n .replace(/\\/\\/.*$/gm, '')\n // Remove \"use strict\" directives\n .replace(/[\"']use strict[\"']\\s*;?/g, '')\n .trim();\n\n return codeWithoutImports.length === 0;\n}\n\nexport class CodeInjection {\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 private readonly header: string;\n private readonly footer: string;\n\n constructor(private body: string = '') {\n this.header = `!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{};`;\n this.footer = '}catch(e){}}();';\n }\n\n public code(): string {\n if (this.isEmpty()) {\n return '';\n }\n\n return this.header + this.body + this.footer;\n }\n\n public isEmpty(): boolean {\n return this.body.length === 0;\n }\n\n public append(code: CodeInjection | string): void {\n if (code instanceof CodeInjection) {\n this.body += code.body;\n } else {\n this.body += code;\n }\n }\n\n public clear(): void {\n this.body = '';\n }\n\n public clone(): CodeInjection {\n return new CodeInjection(this.body);\n }\n}\n"],"names":["path","os","depsVersions","fs","gitRevision"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const LIB_VERSION = "11.0.0-beta.1";
1
+ const LIB_VERSION = "11.0.0-beta.2";
2
2
 
3
3
  export { LIB_VERSION };
4
4
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../../src/core/version.ts"],"sourcesContent":["export const LIB_VERSION = \"11.0.0-beta.1\";\n"],"names":[],"mappings":"AAAO,MAAM,WAAA,GAAc;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../src/core/version.ts"],"sourcesContent":["export const LIB_VERSION = \"11.0.0-beta.2\";\n"],"names":[],"mappings":"AAAO,MAAM,WAAA,GAAc;;;;"}
@@ -1 +1 @@
1
- {"type":"module","version":"11.0.0-beta.1","sideEffects":["./sentry-release-injection-file.js","./sentry-esbuild-debugid-injection-file.js"]}
1
+ {"type":"module","version":"11.0.0-beta.2","sideEffects":["./sentry-release-injection-file.js","./sentry-esbuild-debugid-injection-file.js"]}
@@ -1 +1 @@
1
- {"version":3,"file":"options-mapping.d.ts","sourceRoot":"","sources":["../../../src/core/options-mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options-mapping.d.ts","sourceRoot":"","sources":["../../../src/core/options-mapping.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAE9D;AAED,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,GAAG,SAAS,CAE/G;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4DjE;AAmBD,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG;IACzD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAwBA;AAqCD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQhD;AAeD;;GAEG;AAEH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CA0FzD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,OAAO,EACP,sBAAsB,GACvB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,OAAO,CAAC;CACjC,GAAG,aAAa,CAUhB;AAGD,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,GAAG,GAAG,aAAa,CAQ/E;AAED,wBAAgB,mBAAmB,IAAI;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAUA;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,GACrD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAmBzC;AAGD,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAUxF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBzD;AAED,qBAAa,aAAa;IAMZ,OAAO,CAAC,IAAI;IAHxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YAAoB,IAAI,GAAE,MAAW,EAGpC;IAEM,IAAI,IAAI,MAAM,CAMpB;IAEM,OAAO,IAAI,OAAO,CAExB;IAEM,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAMhD;IAEM,KAAK,IAAI,IAAI,CAEnB;IAEM,KAAK,IAAI,aAAa,CAE5B;CACF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAE9D;AAED,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,GAAG,SAAS,CAE/G;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4DjE;AAmBD,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG;IACzD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAwBA;AAmDD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQhD;AAeD;;GAEG;AAEH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CA0FzD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,OAAO,EACP,sBAAsB,GACvB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,OAAO,CAAC;CACjC,GAAG,aAAa,CAUhB;AAGD,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,GAAG,GAAG,aAAa,CAQ/E;AAED,wBAAgB,mBAAmB,IAAI;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAUA;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,GACrD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAmBzC;AAGD,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAUxF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBzD;AAED,qBAAa,aAAa;IAMZ,OAAO,CAAC,IAAI;IAHxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YAAoB,IAAI,GAAE,MAAW,EAGpC;IAEM,IAAI,IAAI,MAAM,CAMpB;IAEM,OAAO,IAAI,OAAO,CAExB;IAEM,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAMhD;IAEM,KAAK,IAAI,IAAI,CAEnB;IAEM,KAAK,IAAI,aAAa,CAE5B;CACF"}
@@ -1,2 +1,2 @@
1
- export declare const LIB_VERSION = "11.0.0-beta.1";
1
+ export declare const LIB_VERSION = "11.0.0-beta.2";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/bundler-plugins",
3
- "version": "11.0.0-beta.1",
3
+ "version": "11.0.0-beta.2",
4
4
  "description": "Sentry Bundler Plugins",
5
5
  "repository": "git://github.com/getsentry/sentry-javascript.git",
6
6
  "homepage": "https://github.com/getsentry/sentry-javascript/tree/main/packages/bundler-plugins",
@@ -111,9 +111,8 @@
111
111
  },
112
112
  "dependencies": {
113
113
  "@babel/core": "^7.18.5",
114
- "@sentry/core": "11.0.0-beta.1",
114
+ "@sentry/core": "11.0.0-beta.2",
115
115
  "dotenv": "^17.4.2",
116
- "find-up": "^5.0.0",
117
116
  "glob": "^13.0.6",
118
117
  "magic-string": "~0.30.8",
119
118
  "sentry": "^0.44.0",