@sentry/bundler-plugin-core 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js
CHANGED
|
@@ -937,12 +937,16 @@ function validateOptions(options, logger) {
|
|
|
937
937
|
}
|
|
938
938
|
|
|
939
939
|
var SENTRY_SAAS_HOSTNAME = "sentry.io";
|
|
940
|
-
function makeSentryClient(dsn, allowedToSendTelemetryPromise) {
|
|
940
|
+
function makeSentryClient(dsn, allowedToSendTelemetryPromise, userProject) {
|
|
941
941
|
var client = new node.NodeClient({
|
|
942
942
|
dsn: dsn,
|
|
943
943
|
tracesSampleRate: 1,
|
|
944
944
|
sampleRate: 1,
|
|
945
|
-
|
|
945
|
+
// We're also sending the user project in dist because it is an indexed fieldso we can use this data effectively in
|
|
946
|
+
// a dashboard.
|
|
947
|
+
// Yes, this is slightly abusing the purpose of this field.
|
|
948
|
+
dist: userProject,
|
|
949
|
+
release: "0.2.4",
|
|
946
950
|
integrations: [],
|
|
947
951
|
tracePropagationTargets: ["sentry.io/api"],
|
|
948
952
|
stackParser: node.defaultStackParser,
|
|
@@ -1688,7 +1692,7 @@ var unplugin = unplugin$1.createUnplugin(function (options, unpluginMetaContext)
|
|
|
1688
1692
|
var internalOptions = normalizeUserOptions(options);
|
|
1689
1693
|
var allowedToSendTelemetryPromise = shouldSendTelemetry(internalOptions);
|
|
1690
1694
|
|
|
1691
|
-
var _makeSentryClient = makeSentryClient("https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737", allowedToSendTelemetryPromise),
|
|
1695
|
+
var _makeSentryClient = makeSentryClient("https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737", allowedToSendTelemetryPromise, internalOptions.project),
|
|
1692
1696
|
sentryHub = _makeSentryClient.sentryHub,
|
|
1693
1697
|
sentryClient = _makeSentryClient.sentryClient;
|
|
1694
1698
|
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/@sentry/utils/esm/worldwide.js","../../../../node_modules/@sentry/utils/esm/logger.js","../../../../node_modules/@sentry/utils/esm/env.js","../../../../node_modules/@sentry/utils/esm/node.js","../../../../node_modules/@sentry/utils/esm/syncpromise.js","../../../../node_modules/@sentry/utils/esm/time.js","../../src/utils.ts","../../src/options-mapping.ts","../../src/sentry/telemetry.ts","../../src/sentry/releasePipeline.ts","../../src/sentry/logger.ts","../../src/sentry/cli.ts","../../src/index.ts"],"sourcesContent":["/** Internal global with common properties and Sentry extensions */\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function () {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nfunction getGlobalObject() {\n return GLOBAL_OBJ ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","import { GLOBAL_OBJ, getGlobalSingleton } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console ;\n const wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { dynamicRequire, isNodeEnv } from './node.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nconst dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nconst timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nconst usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\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","import { Logger } from \"./sentry/logger\";\nimport { IncludeEntry as UserIncludeEntry, Options as UserOptions } from \"./types\";\nimport { arrayify } from \"./utils\";\n\ntype RequiredInternalOptions = Required<\n Pick<\n UserOptions,\n | \"finalize\"\n | \"dryRun\"\n | \"debug\"\n | \"silent\"\n | \"cleanArtifacts\"\n | \"telemetry\"\n | \"injectReleasesMap\"\n >\n>;\n\ntype OptionalInternalOptions = Partial<\n Pick<\n UserOptions,\n | \"org\"\n | \"project\"\n | \"authToken\"\n | \"url\"\n | \"vcsRemote\"\n | \"dist\"\n | \"errorHandler\"\n | \"setCommits\"\n | \"deploy\"\n | \"configFile\"\n | \"customHeader\"\n >\n>;\n\ntype NormalizedInternalOptions = {\n releaseInjectionTargets: (string | RegExp)[] | ((filePath: string) => boolean) | undefined;\n include: InternalIncludeEntry[];\n};\n\nexport type InternalOptions = RequiredInternalOptions &\n OptionalInternalOptions &\n NormalizedInternalOptions;\n\ntype RequiredInternalIncludeEntry = Required<\n Pick<\n UserIncludeEntry,\n \"paths\" | \"ext\" | \"stripCommonPrefix\" | \"sourceMapReference\" | \"rewrite\" | \"validate\"\n >\n>;\n\ntype OptionalInternalIncludeEntry = Partial<\n Pick<UserIncludeEntry, \"ignoreFile\" | \"urlPrefix\" | \"urlSuffix\" | \"stripPrefix\">\n>;\n\nexport type InternalIncludeEntry = RequiredInternalIncludeEntry &\n OptionalInternalIncludeEntry & {\n ignore: string[];\n };\n\nexport const SENTRY_SAAS_URL = \"https://sentry.io\";\n\nexport function normalizeUserOptions(userOptions: UserOptions): InternalOptions {\n const options = {\n // include is the only strictly required option\n // (normalizeInclude needs all userOptions to access top-level include options)\n include: normalizeInclude(userOptions),\n\n // These options must be set b/c we need them for release injection.\n // They can also be set as environment variables. Technically, they\n // could be set in the config file but this would be too late for\n // release injection because we only pass the config file path\n // to the CLI\n org: userOptions.org ?? process.env[\"SENTRY_ORG\"],\n project: userOptions.project ?? process.env[\"SENTRY_PROJECT\"],\n // Falling back to the empty string here b/c at a later point, we use\n // Sentry CLI to determine a release if none was specified via options\n // or env vars. In case we don't find one, we'll bail at that point.\n release: userOptions.release ?? process.env[\"SENTRY_RELEASE\"] ?? \"\",\n // We technically don't need the URL for anything release-specific\n // but we want to make sure that we're only sending Sentry data\n // of SaaS customers. Hence we want to read it anyway.\n url: userOptions.url ?? process.env[\"SENTRY_URL\"] ?? SENTRY_SAAS_URL,\n\n // Options with default values\n finalize: userOptions.finalize ?? true,\n cleanArtifacts: userOptions.cleanArtifacts ?? false,\n dryRun: userOptions.dryRun ?? false,\n debug: userOptions.debug ?? false,\n silent: userOptions.silent ?? false,\n telemetry: userOptions.telemetry ?? true,\n injectReleasesMap: userOptions.injectReleasesMap ?? false,\n\n // These options and can also be set via env variables or the config file.\n // If they're set in the options, we simply pass them to the CLI constructor.\n // Sentry CLI will internally query env variables and read its config file if\n // the passed options are undefined.\n authToken: userOptions.authToken, // env var: `SENTRY_AUTH_TOKEN`\n\n // CLI v1 (and the \"old\" webpack plugin) use `CUSTOM_HEADER`,\n // but CLI v2 uses `SENTRY_HEADER` (which is also better aligned with other naming)\n // In the spirit of maximum compatibility, we allow both here.\n customHeader:\n userOptions.customHeader ?? process.env[\"SENTRY_HEADER\"] ?? process.env[\"CUSTOM_HEADER\"],\n\n vcsRemote: userOptions.vcsRemote, // env var: `SENTRY_VSC_REMOTE`\n\n // Optional options\n setCommits: userOptions.setCommits,\n deploy: userOptions.deploy,\n releaseInjectionTargets: normalizeReleaseInjectionTargets(userOptions.releaseInjectionTargets),\n dist: userOptions.dist,\n errorHandler: userOptions.errorHandler,\n configFile: userOptions.configFile,\n };\n\n return options;\n}\n\n/**\n * Converts the user-facing `releaseInjectionTargets` option to the internal\n * `releaseInjectionTargets` option\n */\nfunction normalizeReleaseInjectionTargets(\n userReleaseInjectionTargets: UserOptions[\"releaseInjectionTargets\"]\n): (string | RegExp)[] | ((filePath: string) => boolean) | undefined {\n if (userReleaseInjectionTargets === undefined) {\n return undefined;\n } else if (typeof userReleaseInjectionTargets === \"function\") {\n return userReleaseInjectionTargets;\n } else {\n return arrayify(userReleaseInjectionTargets);\n }\n}\n\n/**\n * Converts the user-facing `include` option to the internal `include` option,\n * resulting in an array of `InternalIncludeEntry` objects. This later on lets us\n * work with only one type of include data structure instead of multiple.\n *\n * During the process, we hoist top-level include options (e.g. urlPrefix) into each\n * object if they were not alrady specified in an `IncludeEntry`, making every object\n * fully self-contained. This is also the reason why we pass the entire options\n * object and not just `include`.\n *\n * @param userOptions the entire user-facing `options` object\n *\n * @return an array of `InternalIncludeEntry` objects.\n */\nfunction normalizeInclude(userOptions: UserOptions): InternalIncludeEntry[] {\n return arrayify(userOptions.include)\n .map((includeItem) =>\n typeof includeItem === \"string\" ? { paths: [includeItem] } : includeItem\n )\n .map((userIncludeEntry) => normalizeIncludeEntry(userOptions, userIncludeEntry));\n}\n\n/**\n * Besides array-ifying the `ignore` option, this function hoists top level options into the items of the `include`\n * option. This is to simplify the handling of of the `include` items later on.\n */\nfunction normalizeIncludeEntry(\n userOptions: UserOptions,\n includeEntry: UserIncludeEntry\n): InternalIncludeEntry {\n const ignoreOption = includeEntry.ignore ?? userOptions.ignore ?? [\"node_modules\"];\n const ignore = Array.isArray(ignoreOption) ? ignoreOption : [ignoreOption];\n\n // We're prefixing all entries in the `ext` option with a `.` (if it isn't already) to align with Node.js' `path.extname()`\n const ext = includeEntry.ext ?? userOptions.ext ?? [\"js\", \"map\", \"jsbundle\", \"bundle\"];\n const dotPrefixedExt = ext.map((extension) => `.${extension.replace(/^\\./, \"\")}`);\n\n return {\n paths: includeEntry.paths,\n ignore,\n ignoreFile: includeEntry.ignoreFile ?? userOptions.ignoreFile,\n ext: dotPrefixedExt,\n urlPrefix: includeEntry.urlPrefix ?? userOptions.urlPrefix,\n urlSuffix: includeEntry.urlSuffix ?? userOptions.urlSuffix,\n stripPrefix: includeEntry.stripPrefix ?? userOptions.stripPrefix,\n stripCommonPrefix: includeEntry.stripCommonPrefix ?? userOptions.stripCommonPrefix ?? false,\n sourceMapReference: includeEntry.sourceMapReference ?? userOptions.sourceMapReference ?? true,\n rewrite: includeEntry.rewrite ?? userOptions.rewrite ?? true,\n validate: includeEntry.validate ?? userOptions.validate ?? false,\n };\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: InternalOptions, logger: Logger): boolean {\n if (options.injectReleasesMap && !options.org) {\n logger.error(\n \"The `injectReleasesMap` option was set but it is only supported when the `org` option is also specified.\",\n \"Please set the `org` option (you can also set the SENTRY_ORG environment variable) or disable the `injectReleasesMap` option.\"\n );\n return false;\n }\n\n const setCommits = options.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.deploy && !options.deploy.env) {\n logger.error(\n \"The `deploy` option was specified but is missing the required `env` property.\",\n \"Please set the `env` property.\"\n );\n return false;\n }\n\n return true;\n}\n","import SentryCli from \"@sentry/cli\";\nimport { defaultStackParser, Hub, makeNodeTransport, NodeClient, Span } from \"@sentry/node\";\nimport { InternalOptions, SENTRY_SAAS_URL } from \"../options-mapping\";\nimport { BuildContext } from \"../types\";\n\nconst SENTRY_SAAS_HOSTNAME = \"sentry.io\";\n\nexport function makeSentryClient(\n dsn: string,\n allowedToSendTelemetryPromise: Promise<boolean>\n): { sentryHub: Hub; sentryClient: NodeClient } {\n const client = new NodeClient({\n dsn,\n\n tracesSampleRate: 1,\n sampleRate: 1,\n\n release: __PACKAGE_VERSION__,\n integrations: [],\n tracePropagationTargets: [\"sentry.io/api\"],\n\n stackParser: defaultStackParser,\n\n beforeSend: (event) => {\n event.exception?.values?.forEach((exception) => {\n delete exception.stacktrace;\n });\n\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n beforeSendTransaction: (event) => {\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n // We create a transport that stalls sending events until we know that we're allowed to (i.e. when Sentry CLI told\n // us that the upload URL is the Sentry SaaS URL)\n transport: (nodeTransportOptions) => {\n const nodeTransport = makeNodeTransport(nodeTransportOptions);\n return {\n flush: (timeout) => nodeTransport.flush(timeout),\n send: async (request) => {\n const isAllowedToSend = await allowedToSendTelemetryPromise;\n if (isAllowedToSend) {\n return nodeTransport.send(request);\n } else {\n return undefined;\n }\n },\n };\n },\n });\n\n const hub = new Hub(client);\n\n return { sentryClient: client, sentryHub: hub };\n}\n\n/**\n * Adds a span to the passed parentSpan or to the current transaction that's on the passed hub's scope.\n */\nexport function addSpanToTransaction(\n ctx: BuildContext,\n op?: string,\n description?: string\n): Span | undefined {\n const { hub, parentSpan } = ctx;\n const actualSpan = parentSpan || hub.getScope()?.getTransaction();\n const span = actualSpan?.startChild({ op, description });\n hub.configureScope((scope) => scope.setSpan(span));\n\n return span;\n}\n\nexport function addPluginOptionInformationToHub(\n options: InternalOptions,\n hub: Hub,\n bundler: \"rollup\" | \"webpack\" | \"vite\" | \"esbuild\"\n) {\n const {\n org,\n project,\n cleanArtifacts,\n finalize,\n setCommits,\n injectReleasesMap,\n dryRun,\n errorHandler,\n deploy,\n include,\n } = options;\n\n hub.setTag(\"include\", include.length > 1 ? \"multiple-entries\" : \"single-entry\");\n\n // Optional release pipeline steps\n if (cleanArtifacts) {\n hub.setTag(\"clean-artifacts\", true);\n }\n if (setCommits) {\n hub.setTag(\"set-commits\", setCommits.auto === true ? \"auto\" : \"manual\");\n }\n if (finalize) {\n hub.setTag(\"finalize-release\", true);\n }\n if (deploy) {\n hub.setTag(\"add-deploy\", true);\n }\n\n // Miscelaneous options\n if (dryRun) {\n hub.setTag(\"dry-run\", true);\n }\n if (injectReleasesMap) {\n hub.setTag(\"inject-releases-map\", true);\n }\n if (errorHandler) {\n hub.setTag(\"error-handler\", \"custom\");\n }\n\n hub.setTag(\"node\", process.version);\n\n hub.setTags({\n organization: org,\n project,\n bundler,\n });\n\n hub.setUser({ id: org });\n}\n\nexport async function shouldSendTelemetry(options: InternalOptions): Promise<boolean> {\n const { silent, org, project, authToken, url, vcsRemote, customHeader, dist, telemetry, dryRun } =\n options;\n\n // `options.telemetry` defaults to true\n if (telemetry === false) {\n return false;\n }\n\n if (dryRun) {\n return false;\n }\n\n if (url === SENTRY_SAAS_URL) {\n return true;\n }\n\n const cli = new SentryCli(options.configFile, {\n url,\n authToken,\n org,\n project,\n vcsRemote,\n dist,\n silent,\n customHeader,\n });\n\n let cliInfo;\n try {\n // Makes a call to SentryCLI to get the Sentry server URL the CLI uses.\n // We need to check and decide to use telemetry based on the CLI's respone to this call\n // because only at this time we checked a possibly existing .sentryclirc file. This file\n // could point to another URL than the default URL.\n cliInfo = await cli.execute([\"info\"], false);\n } catch (e) {\n throw new Error(\n 'Sentry CLI \"info\" command failed, make sure you have an auth token configured, and your `url` option is correct.'\n );\n }\n\n const cliInfoUrl = cliInfo\n .split(/(\\r\\n|\\n|\\r)/)[0]\n ?.replace(/^Sentry Server: /, \"\")\n ?.trim();\n\n if (cliInfoUrl === undefined) {\n return false;\n }\n\n return new URL(cliInfoUrl).hostname === SENTRY_SAAS_HOSTNAME;\n}\n","// Build a facade that exposes necessary sentry functionality\n// Idea: We start out with Sentry-CLI and replace the cli-commands one by one afterwards.\n// Goal: eventually replace everything sentry-cli does with \"native\" code here\n// Reason: We don't want to depend on a binary that gets downloaded in a postinstall hook\n// - no fixed version\n// - huge download\n// - unnecessary functionality\n\nimport { logger } from \"@sentry/utils\";\nimport { InternalOptions } from \"../options-mapping\";\nimport { BuildContext } from \"../types\";\nimport { addSpanToTransaction } from \"./telemetry\";\n\nexport async function createNewRelease(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n const span = addSpanToTransaction(ctx, \"function.plugin.create_release\");\n\n try {\n await ctx.cli.releases.new(releaseName);\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Creating new release failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully created release.\" });\n ctx.logger.info(\"Successfully created release.\");\n}\n\nexport async function cleanArtifacts(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.cleanArtifacts) {\n logger.debug(\"Skipping artifact cleanup.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.clean_artifacts\");\n\n try {\n await ctx.cli.releases.execute([\"releases\", \"files\", releaseName, \"delete\", \"--all\"], true);\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Deleting release files failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully cleaned previous artifacts.\" });\n ctx.logger.info(\"Successfully cleaned previous artifacts.\");\n}\n\nexport async function uploadSourceMaps(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n const span = addSpanToTransaction(ctx, \"function.plugin.upload_sourcemaps\");\n ctx.logger.info(\"Uploading Sourcemaps.\");\n\n // Since our internal include entries contain all top-level sourcemaps options,\n // we only need to pass the include option here.\n try {\n await ctx.cli.releases.uploadSourceMaps(releaseName, { include: options.include });\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Uploading source maps failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully uploaded source maps.\" });\n ctx.logger.info(\"Successfully uploaded source maps.\");\n}\n\nexport async function setCommits(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.setCommits) {\n logger.debug(\"Skipping setting commits to release.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.set_commits\");\n\n const { auto, repo, commit, previousCommit, ignoreMissing, ignoreEmpty } = options.setCommits;\n\n try {\n await ctx.cli.releases.setCommits(releaseName, {\n commit,\n previousCommit,\n repo,\n auto,\n ignoreMissing,\n ignoreEmpty,\n });\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Setting commits failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.logger.info(\"Successfully set commits.\");\n}\n\nexport async function finalizeRelease(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.finalize) {\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Skipping release finalization.\" });\n logger.debug(\"Skipping release finalization.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.finalize_release\");\n\n try {\n await ctx.cli.releases.finalize(releaseName);\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Finalizing release failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully finalized release.\" });\n ctx.logger.info(\"Successfully finalized release.\");\n}\n\nexport async function addDeploy(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.deploy) {\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Skipping adding deploy info to release.\" });\n logger.debug(\"Skipping adding deploy info to release.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.deploy\");\n\n const { env, started, finished, time, name, url } = options.deploy;\n\n try {\n await ctx.cli.releases.newDeploy(releaseName, {\n env,\n started,\n finished,\n time,\n name,\n url,\n });\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Adding deploy info failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully added deploy.\" });\n ctx.logger.info(\"Successfully added deploy.\");\n}\n","interface LoggerOptions {\n silent: boolean;\n debug: boolean;\n prefix: string;\n}\n\nexport type Logger = {\n info(message: string, ...params: unknown[]): void;\n warn(message: string, ...params: unknown[]): void;\n error(message: string, ...params: unknown[]): void;\n debug(message: string, ...params: unknown[]): void;\n};\n\nexport function createLogger(options: LoggerOptions): Logger {\n return {\n info(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Info: ${message}`, ...params);\n }\n },\n warn(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Warning: ${message}`, ...params);\n }\n },\n error(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Error: ${message}`, ...params);\n }\n },\n debug(message: string, ...params: unknown[]) {\n if (!options.silent && options.debug) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Debug: ${message}`, ...params);\n }\n },\n };\n}\n","import SentryCli, { SentryCliReleases } from \"@sentry/cli\";\nimport { InternalOptions } from \"../options-mapping\";\nimport { Logger } from \"./logger\";\n\ntype SentryDryRunCLI = {\n releases: Omit<SentryCliReleases, \"listDeploys\">;\n execute: (args: string[], live: boolean) => Promise<string>;\n};\nexport type SentryCLILike = SentryCli | SentryDryRunCLI;\n\n/**\n * Creates a new Sentry CLI instance.\n *\n * In case, users selected the `dryRun` options, this returns a stub\n * that makes no-ops out of most CLI operations\n */\nexport function getSentryCli(internalOptions: InternalOptions, logger: Logger): SentryCLILike {\n const { silent, org, project, authToken, url, vcsRemote, customHeader, dist } = internalOptions;\n const cli = new SentryCli(internalOptions.configFile, {\n url,\n authToken,\n org,\n project,\n vcsRemote,\n dist,\n silent,\n customHeader,\n });\n\n if (internalOptions.dryRun) {\n logger.info(\"In DRY RUN Mode\");\n return getDryRunCLI(cli, logger);\n }\n\n return cli;\n}\n\nfunction getDryRunCLI(cli: SentryCli, logger: Logger): SentryDryRunCLI {\n return {\n releases: {\n proposeVersion: () =>\n cli.releases.proposeVersion().then((version) => {\n logger.info(\"Proposed version:\\n\", version);\n return version;\n }),\n new: (release: string) => {\n logger.info(\"Creating new release:\\n\", release);\n return Promise.resolve(release);\n },\n uploadSourceMaps: (release: string, config: unknown) => {\n logger.info(\"Calling upload-sourcemaps with:\\n\", config);\n return Promise.resolve(release);\n },\n finalize: (release: string) => {\n logger.info(\"Finalizing release:\\n\", release);\n return Promise.resolve(release);\n },\n setCommits: (release: string, config: unknown) => {\n logger.info(\"Calling set-commits with:\\n\", config);\n return Promise.resolve(release);\n },\n newDeploy: (release: string, config: unknown) => {\n logger.info(\"Calling deploy with:\\n\", config);\n return Promise.resolve(release);\n },\n execute: (args: string[], live: boolean) => {\n logger.info(\"Executing\", args, \"live:\", live);\n return Promise.resolve(\"\");\n },\n },\n execute: (args: string[], live: boolean) => {\n logger.info(\"Executing\", args, \"live:\", live);\n return Promise.resolve(\"Executed\");\n },\n };\n}\n","import { createUnplugin } from \"unplugin\";\nimport MagicString from \"magic-string\";\nimport { Options, BuildContext } from \"./types\";\nimport {\n createNewRelease,\n cleanArtifacts,\n addDeploy,\n finalizeRelease,\n setCommits,\n uploadSourceMaps,\n} from \"./sentry/releasePipeline\";\nimport \"@sentry/tracing\";\nimport {\n addPluginOptionInformationToHub,\n addSpanToTransaction,\n makeSentryClient,\n shouldSendTelemetry,\n} from \"./sentry/telemetry\";\nimport { Span, Transaction } from \"@sentry/types\";\nimport { createLogger, Logger } from \"./sentry/logger\";\nimport { InternalOptions, normalizeUserOptions, validateOptions } from \"./options-mapping\";\nimport { getSentryCli } from \"./sentry/cli\";\nimport { makeMain } from \"@sentry/node\";\nimport path from \"path\";\n\n// We prefix the polyfill id with \\0 to tell other plugins not to try to load or transform it.\n// This hack is taken straight from https://rollupjs.org/guide/en/#resolveid.\n// This probably doesn't work for all bundlers but for rollup it does.\nconst RELEASE_INJECTOR_ID = \"\\0sentry-release-injector\";\n\nconst ALLOWED_TRANSFORMATION_FILE_ENDINGS = [\".js\", \".ts\", \".jsx\", \".tsx\", \".mjs\"];\n\n/**\n * The sentry bundler plugin concerns itself with two things:\n * - Release injection\n * - Sourcemaps upload\n *\n * Release injection:\n *\n * Per default the sentry bundler plugin will inject a global `SENTRY_RELEASE` into each JavaScript/TypeScript module\n * that is part of the bundle. On a technical level this is done by appending an import (`import \"sentry-release-injector;\"`)\n * to all entrypoint files of the user code (see `transformInclude` and `transform` hooks). This import is then resolved\n * by the sentry plugin to a virtual module that sets the global variable (see `resolveId` and `load` hooks).\n * If a user wants to inject the release into a particular set of modules they can use the `releaseInjectionTargets` option.\n *\n * Source maps upload:\n *\n * The sentry bundler plugin will also take care of uploading source maps to Sentry. This is all done in the\n * `writeBundle` hook. In this hook the sentry plugin will execute the release creation pipeline:\n *\n * 1. Create a new release\n * 2. Delete already uploaded artifacts for this release (if `cleanArtifacts` is enabled)\n * 3. Upload sourcemaps based on `include` and source-map-specific options\n * 4. Associate a range of commits with the release (if `setCommits` is specified)\n * 5. Finalize the release (unless `finalize` is disabled)\n * 6. Add deploy information to the release (if `deploy` is specified)\n *\n * This release creation pipeline relies on Sentry CLI to execute the different steps.\n */\nconst unplugin = createUnplugin<Options>((options, unpluginMetaContext) => {\n const internalOptions = normalizeUserOptions(options);\n\n const allowedToSendTelemetryPromise = shouldSendTelemetry(internalOptions);\n\n const { sentryHub, sentryClient } = makeSentryClient(\n \"https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737\",\n allowedToSendTelemetryPromise\n );\n\n addPluginOptionInformationToHub(internalOptions, sentryHub, unpluginMetaContext.framework);\n\n //TODO: This call is problematic because as soon as we set our hub as the current hub\n // we might interfere with other plugins that use Sentry. However, for now, we'll\n // leave it in because without it, we can't get distributed traces (which are pretty nice)\n // Let's keep it until someone complains about interference.\n // The ideal solution would be a code change in the JS SDK but it's not a straight-forward fix.\n makeMain(sentryHub);\n\n const logger = createLogger({\n prefix: `[sentry-${unpluginMetaContext.framework}-plugin]`,\n silent: internalOptions.silent,\n debug: internalOptions.debug,\n });\n\n if (!validateOptions(internalOptions, logger)) {\n handleError(\n new Error(\"Options were not set correctly. See output above for more details.\"),\n logger,\n internalOptions.errorHandler\n );\n }\n\n const cli = getSentryCli(internalOptions, logger);\n\n const releaseNamePromise = new Promise<string>((resolve) => {\n if (options.release) {\n resolve(options.release);\n } else {\n resolve(cli.releases.proposeVersion());\n }\n });\n\n let transaction: Transaction | undefined;\n let releaseInjectionSpan: Span | undefined;\n\n return {\n name: \"sentry-plugin\",\n enforce: \"pre\", // needed for Vite to call resolveId hook\n\n /**\n * Responsible for starting the plugin execution transaction and the release injection span\n */\n async buildStart() {\n logger.debug(\"Called 'buildStart'\");\n\n const isAllowedToSendToSendTelemetry = await allowedToSendTelemetryPromise;\n if (isAllowedToSendToSendTelemetry) {\n logger.info(\"Sending error and performance telemetry data to Sentry.\");\n logger.info(\"To disable telemetry, set `options.telemetry` to `false`.\");\n sentryHub.addBreadcrumb({ level: \"info\", message: \"Telemetry enabled.\" });\n } else {\n sentryHub.addBreadcrumb({\n level: \"info\",\n message: \"Telemetry disabled. This should never show up in a Sentry event.\",\n });\n }\n\n const releaseName = await releaseNamePromise;\n\n // At this point, we either have determined a release or we have to bail\n if (!releaseName) {\n handleError(\n new Error(\n \"Unable to determine a release name. Make sure to set the `release` option or use an environment that supports auto-detection https://docs.sentry.io/cli/releases/#creating-releases`\"\n ),\n logger,\n internalOptions.errorHandler\n );\n }\n\n transaction = sentryHub.startTransaction({\n op: \"function.plugin\",\n name: \"Sentry Bundler Plugin execution\",\n });\n\n releaseInjectionSpan = addSpanToTransaction(\n { hub: sentryHub, parentSpan: transaction, logger, cli },\n \"function.plugin.inject_release\",\n \"Release injection\"\n );\n },\n\n /**\n * Responsible for returning the \"sentry-release-injector\" ID when we encounter it. We return the ID so load is\n * called and we can \"virtually\" load the module. See `load` hook for more info on why it's virtual.\n *\n * We also record the id (i.e. absolute path) of any non-entrypoint.\n *\n * @param id For imports: The absolute path of the module to be imported. For entrypoints: The path the user defined as entrypoint - may also be relative.\n * @param importer For imports: The absolute path of the module that imported this module. For entrypoints: `undefined`.\n * @param options Additional information to use for making a resolving decision.\n * @returns `\"sentry-release-injector\"` when the imported file is called `\"sentry-release-injector\"`. Otherwise returns `undefined`.\n */\n resolveId(id, importer, { isEntry }) {\n logger.debug('Called \"resolveId\":', { id, importer, isEntry });\n\n if (id === RELEASE_INJECTOR_ID) {\n return RELEASE_INJECTOR_ID;\n } else {\n return undefined;\n }\n },\n\n loadInclude(id) {\n logger.debug('Called \"loadInclude\":', { id });\n return id === RELEASE_INJECTOR_ID;\n },\n\n /**\n * Responsible for \"virtually\" loading the \"sentry-release-injector\" module. \"Virtual\" means that the module is not\n * read from somewhere on disk but rather just returned via a string.\n *\n * @param id Always the absolute (fully resolved) path to the module.\n * @returns The global injector code when we load the \"sentry-release-injector\" module. Otherwise returns `undefined`.\n */\n async load(id) {\n logger.debug('Called \"load\":', { id });\n\n if (id === RELEASE_INJECTOR_ID) {\n return generateGlobalInjectorCode({\n release: await releaseNamePromise,\n injectReleasesMap: internalOptions.injectReleasesMap,\n org: internalOptions.org,\n project: internalOptions.project,\n });\n } else {\n return undefined;\n }\n },\n\n /**\n * This hook determines whether we want to transform a module. In the sentry bundler plugin we want to transform every entrypoint\n * unless configured otherwise with the `releaseInjectionTargets` option.\n *\n * @param id Always the absolute (fully resolved) path to the module.\n * @returns `true` or `false` depending on whether we want to transform the module. For the sentry bundler plugin we only\n * want to transform the release injector file.\n */\n transformInclude(id) {\n logger.debug('Called \"transformInclude\":', { id });\n\n // We normalize the id because vite always passes `id` as a unix style path which causes problems when a user passes\n // a windows style path to `releaseInjectionTargets`\n const normalizedId = path.normalize(id);\n\n // We don't want to transform our injected code.\n if (normalizedId === RELEASE_INJECTOR_ID) {\n return false;\n }\n\n if (internalOptions.releaseInjectionTargets) {\n // If there's an `releaseInjectionTargets` option transform (ie. inject the release varible) when the file path matches the option.\n if (typeof internalOptions.releaseInjectionTargets === \"function\") {\n return internalOptions.releaseInjectionTargets(normalizedId);\n }\n\n return internalOptions.releaseInjectionTargets.some((entry) => {\n if (entry instanceof RegExp) {\n return entry.test(normalizedId);\n } else {\n const normalizedEntry = path.normalize(entry);\n return normalizedId === normalizedEntry;\n }\n });\n } else {\n const isInNodeModules = normalizedId.split(path.sep).includes(\"node_modules\");\n const pathIsOrdinary = !normalizedId.includes(\"?\") && !normalizedId.includes(\"#\");\n\n const pathHasAllowedFileEnding = ALLOWED_TRANSFORMATION_FILE_ENDINGS.some(\n (allowedFileEnding) => normalizedId.endsWith(allowedFileEnding)\n );\n\n return !isInNodeModules && pathIsOrdinary && pathHasAllowedFileEnding;\n }\n },\n\n /**\n * This hook is responsible for injecting the \"sentry release injector\" imoprt statement into each entrypoint unless\n * configured otherwise with the `releaseInjectionTargets` option (logic for that is in the `transformInclude` hook).\n *\n * @param code Code of the file to transform.\n * @param id Always the absolute (fully resolved) path to the module.\n * @returns transformed code + source map\n */\n transform(code, id) {\n logger.debug('Called \"transform\":', { id });\n\n // The MagicString library allows us to generate sourcemaps for the changes we make to the user code.\n const ms = new MagicString(code);\n\n // Appending instead of prepending has less probability of mucking with user's source maps.\n // Luckily import statements get hoisted to the top anyways.\n ms.append(`;\\nimport \"${RELEASE_INJECTOR_ID}\";`);\n\n if (unpluginMetaContext.framework === \"esbuild\") {\n // esbuild + unplugin is buggy at the moment when we return an object with a `map` (sourcemap) property.\n // Currently just returning a string here seems to work and even correctly sourcemaps the code we generate.\n // However, other bundlers need the `map` property\n return ms.toString();\n } else {\n return {\n code: ms.toString(),\n map: ms.generateMap(),\n };\n }\n },\n\n /**\n * Responsible for executing the sentry release creation pipeline (i.e. creating a release on\n * Sentry.io, uploading sourcemaps, associating commits and deploys and finalizing the release)\n */\n async writeBundle() {\n logger.debug('Called \"writeBundle\"');\n\n releaseInjectionSpan?.finish();\n const releasePipelineSpan =\n transaction &&\n addSpanToTransaction(\n { hub: sentryHub, parentSpan: transaction, logger, cli },\n \"function.plugin.release\",\n \"Release pipeline\"\n );\n\n sentryHub.addBreadcrumb({\n category: \"writeBundle:start\",\n level: \"info\",\n });\n\n const ctx: BuildContext = { hub: sentryHub, parentSpan: releasePipelineSpan, logger, cli };\n\n const releaseName = await releaseNamePromise;\n\n try {\n await createNewRelease(internalOptions, ctx, releaseName);\n await cleanArtifacts(internalOptions, ctx, releaseName);\n await uploadSourceMaps(internalOptions, ctx, releaseName);\n await setCommits(internalOptions, ctx, releaseName);\n await finalizeRelease(internalOptions, ctx, releaseName);\n await addDeploy(internalOptions, ctx, releaseName);\n transaction?.setStatus(\"ok\");\n } catch (e: unknown) {\n transaction?.setStatus(\"cancelled\");\n sentryHub.addBreadcrumb({\n level: \"error\",\n message: \"Error during writeBundle\",\n });\n handleError(e, logger, internalOptions.errorHandler);\n } finally {\n releasePipelineSpan?.finish();\n transaction?.finish();\n await sentryClient.flush().then(null, () => {\n logger.warn(\"Sending of telemetry failed\");\n });\n }\n\n sentryHub.addBreadcrumb({\n category: \"writeBundle:finish\",\n level: \"info\",\n });\n },\n };\n});\n\nfunction handleError(\n unknownError: unknown,\n logger: Logger,\n errorHandler: InternalOptions[\"errorHandler\"]\n) {\n if (unknownError instanceof Error) {\n logger.error(unknownError.message);\n } else {\n logger.error(String(unknownError));\n }\n\n if (errorHandler) {\n if (unknownError instanceof Error) {\n errorHandler(unknownError);\n } else {\n errorHandler(new Error(\"An unknown error occured\"));\n }\n } else {\n throw unknownError;\n }\n}\n\n/**\n * Generates code for the \"sentry-release-injector\" which is responsible for setting the global `SENTRY_RELEASE`\n * variable.\n */\nfunction generateGlobalInjectorCode({\n release,\n injectReleasesMap,\n org,\n project,\n}: {\n release: string;\n injectReleasesMap: boolean;\n org?: string;\n project?: string;\n}) {\n // The code below is mostly ternary operators because it saves bundle size.\n // The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.)\n let code = `\n var _global =\n typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ?\n global :\n typeof self !== 'undefined' ?\n self :\n {};\n\n _global.SENTRY_RELEASE={id:\"${release}\"};`;\n\n if (injectReleasesMap && project) {\n const key = org ? `${project}@${org}` : project;\n code += `\n _global.SENTRY_RELEASES=_global.SENTRY_RELEASES || {};\n _global.SENTRY_RELEASES[\"${key}\"]={id:\"${release}\"};\n `;\n }\n\n return code;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryVitePlugin: (options: Options) => any = unplugin.vite;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryRollupPlugin: (options: Options) => any = unplugin.rollup;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options: Options) => any = unplugin.webpack;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryEsbuildPlugin: (options: Options) => any = unplugin.esbuild;\n\nexport type { Options } from \"./types\";\n"],"names":["arrayify","maybeArray","Array","isArray","SENTRY_SAAS_URL","normalizeUserOptions","userOptions","options","include","normalizeInclude","org","process","env","project","release","url","finalize","cleanArtifacts","dryRun","debug","silent","telemetry","injectReleasesMap","authToken","customHeader","vcsRemote","setCommits","deploy","releaseInjectionTargets","normalizeReleaseInjectionTargets","dist","errorHandler","configFile","userReleaseInjectionTargets","undefined","map","includeItem","paths","userIncludeEntry","normalizeIncludeEntry","includeEntry","ignoreOption","ignore","ext","dotPrefixedExt","extension","replace","ignoreFile","urlPrefix","urlSuffix","stripPrefix","stripCommonPrefix","sourceMapReference","rewrite","validate","validateOptions","logger","error","auto","repo","commit","warn","SENTRY_SAAS_HOSTNAME","makeSentryClient","dsn","allowedToSendTelemetryPromise","client","NodeClient","tracesSampleRate","sampleRate","integrations","tracePropagationTargets","stackParser","defaultStackParser","beforeSend","event","exception","values","forEach","stacktrace","server_name","beforeSendTransaction","transport","nodeTransportOptions","nodeTransport","makeNodeTransport","flush","timeout","send","request","isAllowedToSend","hub","Hub","sentryClient","sentryHub","addSpanToTransaction","ctx","op","description","parentSpan","actualSpan","getScope","getTransaction","span","startChild","configureScope","scope","setSpan","addPluginOptionInformationToHub","bundler","setTag","length","version","setTags","organization","setUser","id","shouldSendTelemetry","cli","SentryCli","execute","cliInfo","Error","cliInfoUrl","split","trim","URL","hostname","createNewRelease","releaseName","releases","captureException","finish","addBreadcrumb","level","message","info","uploadSourceMaps","previousCommit","ignoreMissing","ignoreEmpty","finalizeRelease","addDeploy","started","finished","time","name","newDeploy","createLogger","params","console","log","prefix","getSentryCli","internalOptions","getDryRunCLI","proposeVersion","then","Promise","resolve","config","args","live","RELEASE_INJECTOR_ID","ALLOWED_TRANSFORMATION_FILE_ENDINGS","unplugin","createUnplugin","unpluginMetaContext","framework","makeMain","handleError","releaseNamePromise","transaction","releaseInjectionSpan","enforce","buildStart","isAllowedToSendToSendTelemetry","startTransaction","resolveId","importer","isEntry","loadInclude","load","generateGlobalInjectorCode","transformInclude","normalizedId","path","normalize","some","entry","RegExp","test","normalizedEntry","isInNodeModules","sep","includes","pathIsOrdinary","pathHasAllowedFileEnding","allowedFileEnding","endsWith","transform","code","ms","MagicString","append","toString","generateMap","writeBundle","releasePipelineSpan","category","setStatus","unknownError","String","key","sentryVitePlugin","vite","sentryRollupPlugin","rollup","sentryWebpackPlugin","webpack","sentryEsbuildPlugin","esbuild"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/@sentry/utils/esm/worldwide.js","../../../../node_modules/@sentry/utils/esm/logger.js","../../../../node_modules/@sentry/utils/esm/env.js","../../../../node_modules/@sentry/utils/esm/node.js","../../../../node_modules/@sentry/utils/esm/syncpromise.js","../../../../node_modules/@sentry/utils/esm/time.js","../../src/utils.ts","../../src/options-mapping.ts","../../src/sentry/telemetry.ts","../../src/sentry/releasePipeline.ts","../../src/sentry/logger.ts","../../src/sentry/cli.ts","../../src/index.ts"],"sourcesContent":["/** Internal global with common properties and Sentry extensions */\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function () {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nfunction getGlobalObject() {\n return GLOBAL_OBJ ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","import { GLOBAL_OBJ, getGlobalSingleton } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console ;\n const wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { dynamicRequire, isNodeEnv } from './node.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nconst dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nconst timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nconst usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\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","import { Logger } from \"./sentry/logger\";\nimport { IncludeEntry as UserIncludeEntry, Options as UserOptions } from \"./types\";\nimport { arrayify } from \"./utils\";\n\ntype RequiredInternalOptions = Required<\n Pick<\n UserOptions,\n | \"finalize\"\n | \"dryRun\"\n | \"debug\"\n | \"silent\"\n | \"cleanArtifacts\"\n | \"telemetry\"\n | \"injectReleasesMap\"\n >\n>;\n\ntype OptionalInternalOptions = Partial<\n Pick<\n UserOptions,\n | \"org\"\n | \"project\"\n | \"authToken\"\n | \"url\"\n | \"vcsRemote\"\n | \"dist\"\n | \"errorHandler\"\n | \"setCommits\"\n | \"deploy\"\n | \"configFile\"\n | \"customHeader\"\n >\n>;\n\ntype NormalizedInternalOptions = {\n releaseInjectionTargets: (string | RegExp)[] | ((filePath: string) => boolean) | undefined;\n include: InternalIncludeEntry[];\n};\n\nexport type InternalOptions = RequiredInternalOptions &\n OptionalInternalOptions &\n NormalizedInternalOptions;\n\ntype RequiredInternalIncludeEntry = Required<\n Pick<\n UserIncludeEntry,\n \"paths\" | \"ext\" | \"stripCommonPrefix\" | \"sourceMapReference\" | \"rewrite\" | \"validate\"\n >\n>;\n\ntype OptionalInternalIncludeEntry = Partial<\n Pick<UserIncludeEntry, \"ignoreFile\" | \"urlPrefix\" | \"urlSuffix\" | \"stripPrefix\">\n>;\n\nexport type InternalIncludeEntry = RequiredInternalIncludeEntry &\n OptionalInternalIncludeEntry & {\n ignore: string[];\n };\n\nexport const SENTRY_SAAS_URL = \"https://sentry.io\";\n\nexport function normalizeUserOptions(userOptions: UserOptions): InternalOptions {\n const options = {\n // include is the only strictly required option\n // (normalizeInclude needs all userOptions to access top-level include options)\n include: normalizeInclude(userOptions),\n\n // These options must be set b/c we need them for release injection.\n // They can also be set as environment variables. Technically, they\n // could be set in the config file but this would be too late for\n // release injection because we only pass the config file path\n // to the CLI\n org: userOptions.org ?? process.env[\"SENTRY_ORG\"],\n project: userOptions.project ?? process.env[\"SENTRY_PROJECT\"],\n // Falling back to the empty string here b/c at a later point, we use\n // Sentry CLI to determine a release if none was specified via options\n // or env vars. In case we don't find one, we'll bail at that point.\n release: userOptions.release ?? process.env[\"SENTRY_RELEASE\"] ?? \"\",\n // We technically don't need the URL for anything release-specific\n // but we want to make sure that we're only sending Sentry data\n // of SaaS customers. Hence we want to read it anyway.\n url: userOptions.url ?? process.env[\"SENTRY_URL\"] ?? SENTRY_SAAS_URL,\n\n // Options with default values\n finalize: userOptions.finalize ?? true,\n cleanArtifacts: userOptions.cleanArtifacts ?? false,\n dryRun: userOptions.dryRun ?? false,\n debug: userOptions.debug ?? false,\n silent: userOptions.silent ?? false,\n telemetry: userOptions.telemetry ?? true,\n injectReleasesMap: userOptions.injectReleasesMap ?? false,\n\n // These options and can also be set via env variables or the config file.\n // If they're set in the options, we simply pass them to the CLI constructor.\n // Sentry CLI will internally query env variables and read its config file if\n // the passed options are undefined.\n authToken: userOptions.authToken, // env var: `SENTRY_AUTH_TOKEN`\n\n // CLI v1 (and the \"old\" webpack plugin) use `CUSTOM_HEADER`,\n // but CLI v2 uses `SENTRY_HEADER` (which is also better aligned with other naming)\n // In the spirit of maximum compatibility, we allow both here.\n customHeader:\n userOptions.customHeader ?? process.env[\"SENTRY_HEADER\"] ?? process.env[\"CUSTOM_HEADER\"],\n\n vcsRemote: userOptions.vcsRemote, // env var: `SENTRY_VSC_REMOTE`\n\n // Optional options\n setCommits: userOptions.setCommits,\n deploy: userOptions.deploy,\n releaseInjectionTargets: normalizeReleaseInjectionTargets(userOptions.releaseInjectionTargets),\n dist: userOptions.dist,\n errorHandler: userOptions.errorHandler,\n configFile: userOptions.configFile,\n };\n\n return options;\n}\n\n/**\n * Converts the user-facing `releaseInjectionTargets` option to the internal\n * `releaseInjectionTargets` option\n */\nfunction normalizeReleaseInjectionTargets(\n userReleaseInjectionTargets: UserOptions[\"releaseInjectionTargets\"]\n): (string | RegExp)[] | ((filePath: string) => boolean) | undefined {\n if (userReleaseInjectionTargets === undefined) {\n return undefined;\n } else if (typeof userReleaseInjectionTargets === \"function\") {\n return userReleaseInjectionTargets;\n } else {\n return arrayify(userReleaseInjectionTargets);\n }\n}\n\n/**\n * Converts the user-facing `include` option to the internal `include` option,\n * resulting in an array of `InternalIncludeEntry` objects. This later on lets us\n * work with only one type of include data structure instead of multiple.\n *\n * During the process, we hoist top-level include options (e.g. urlPrefix) into each\n * object if they were not alrady specified in an `IncludeEntry`, making every object\n * fully self-contained. This is also the reason why we pass the entire options\n * object and not just `include`.\n *\n * @param userOptions the entire user-facing `options` object\n *\n * @return an array of `InternalIncludeEntry` objects.\n */\nfunction normalizeInclude(userOptions: UserOptions): InternalIncludeEntry[] {\n return arrayify(userOptions.include)\n .map((includeItem) =>\n typeof includeItem === \"string\" ? { paths: [includeItem] } : includeItem\n )\n .map((userIncludeEntry) => normalizeIncludeEntry(userOptions, userIncludeEntry));\n}\n\n/**\n * Besides array-ifying the `ignore` option, this function hoists top level options into the items of the `include`\n * option. This is to simplify the handling of of the `include` items later on.\n */\nfunction normalizeIncludeEntry(\n userOptions: UserOptions,\n includeEntry: UserIncludeEntry\n): InternalIncludeEntry {\n const ignoreOption = includeEntry.ignore ?? userOptions.ignore ?? [\"node_modules\"];\n const ignore = Array.isArray(ignoreOption) ? ignoreOption : [ignoreOption];\n\n // We're prefixing all entries in the `ext` option with a `.` (if it isn't already) to align with Node.js' `path.extname()`\n const ext = includeEntry.ext ?? userOptions.ext ?? [\"js\", \"map\", \"jsbundle\", \"bundle\"];\n const dotPrefixedExt = ext.map((extension) => `.${extension.replace(/^\\./, \"\")}`);\n\n return {\n paths: includeEntry.paths,\n ignore,\n ignoreFile: includeEntry.ignoreFile ?? userOptions.ignoreFile,\n ext: dotPrefixedExt,\n urlPrefix: includeEntry.urlPrefix ?? userOptions.urlPrefix,\n urlSuffix: includeEntry.urlSuffix ?? userOptions.urlSuffix,\n stripPrefix: includeEntry.stripPrefix ?? userOptions.stripPrefix,\n stripCommonPrefix: includeEntry.stripCommonPrefix ?? userOptions.stripCommonPrefix ?? false,\n sourceMapReference: includeEntry.sourceMapReference ?? userOptions.sourceMapReference ?? true,\n rewrite: includeEntry.rewrite ?? userOptions.rewrite ?? true,\n validate: includeEntry.validate ?? userOptions.validate ?? false,\n };\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: InternalOptions, logger: Logger): boolean {\n if (options.injectReleasesMap && !options.org) {\n logger.error(\n \"The `injectReleasesMap` option was set but it is only supported when the `org` option is also specified.\",\n \"Please set the `org` option (you can also set the SENTRY_ORG environment variable) or disable the `injectReleasesMap` option.\"\n );\n return false;\n }\n\n const setCommits = options.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.deploy && !options.deploy.env) {\n logger.error(\n \"The `deploy` option was specified but is missing the required `env` property.\",\n \"Please set the `env` property.\"\n );\n return false;\n }\n\n return true;\n}\n","import SentryCli from \"@sentry/cli\";\nimport { defaultStackParser, Hub, makeNodeTransport, NodeClient, Span } from \"@sentry/node\";\nimport { InternalOptions, SENTRY_SAAS_URL } from \"../options-mapping\";\nimport { BuildContext } from \"../types\";\n\nconst SENTRY_SAAS_HOSTNAME = \"sentry.io\";\n\nexport function makeSentryClient(\n dsn: string,\n allowedToSendTelemetryPromise: Promise<boolean>,\n userProject: string | undefined\n): { sentryHub: Hub; sentryClient: NodeClient } {\n const client = new NodeClient({\n dsn,\n\n tracesSampleRate: 1,\n sampleRate: 1,\n\n // We're also sending the user project in dist because it is an indexed fieldso we can use this data effectively in\n // a dashboard.\n // Yes, this is slightly abusing the purpose of this field.\n dist: userProject,\n\n release: __PACKAGE_VERSION__,\n integrations: [],\n tracePropagationTargets: [\"sentry.io/api\"],\n\n stackParser: defaultStackParser,\n\n beforeSend: (event) => {\n event.exception?.values?.forEach((exception) => {\n delete exception.stacktrace;\n });\n\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n beforeSendTransaction: (event) => {\n delete event.server_name; // Server name might contain PII\n return event;\n },\n\n // We create a transport that stalls sending events until we know that we're allowed to (i.e. when Sentry CLI told\n // us that the upload URL is the Sentry SaaS URL)\n transport: (nodeTransportOptions) => {\n const nodeTransport = makeNodeTransport(nodeTransportOptions);\n return {\n flush: (timeout) => nodeTransport.flush(timeout),\n send: async (request) => {\n const isAllowedToSend = await allowedToSendTelemetryPromise;\n if (isAllowedToSend) {\n return nodeTransport.send(request);\n } else {\n return undefined;\n }\n },\n };\n },\n });\n\n const hub = new Hub(client);\n\n return { sentryClient: client, sentryHub: hub };\n}\n\n/**\n * Adds a span to the passed parentSpan or to the current transaction that's on the passed hub's scope.\n */\nexport function addSpanToTransaction(\n ctx: BuildContext,\n op?: string,\n description?: string\n): Span | undefined {\n const { hub, parentSpan } = ctx;\n const actualSpan = parentSpan || hub.getScope()?.getTransaction();\n const span = actualSpan?.startChild({ op, description });\n hub.configureScope((scope) => scope.setSpan(span));\n\n return span;\n}\n\nexport function addPluginOptionInformationToHub(\n options: InternalOptions,\n hub: Hub,\n bundler: \"rollup\" | \"webpack\" | \"vite\" | \"esbuild\"\n) {\n const {\n org,\n project,\n cleanArtifacts,\n finalize,\n setCommits,\n injectReleasesMap,\n dryRun,\n errorHandler,\n deploy,\n include,\n } = options;\n\n hub.setTag(\"include\", include.length > 1 ? \"multiple-entries\" : \"single-entry\");\n\n // Optional release pipeline steps\n if (cleanArtifacts) {\n hub.setTag(\"clean-artifacts\", true);\n }\n if (setCommits) {\n hub.setTag(\"set-commits\", setCommits.auto === true ? \"auto\" : \"manual\");\n }\n if (finalize) {\n hub.setTag(\"finalize-release\", true);\n }\n if (deploy) {\n hub.setTag(\"add-deploy\", true);\n }\n\n // Miscelaneous options\n if (dryRun) {\n hub.setTag(\"dry-run\", true);\n }\n if (injectReleasesMap) {\n hub.setTag(\"inject-releases-map\", true);\n }\n if (errorHandler) {\n hub.setTag(\"error-handler\", \"custom\");\n }\n\n hub.setTag(\"node\", process.version);\n\n hub.setTags({\n organization: org,\n project,\n bundler,\n });\n\n hub.setUser({ id: org });\n}\n\nexport async function shouldSendTelemetry(options: InternalOptions): Promise<boolean> {\n const { silent, org, project, authToken, url, vcsRemote, customHeader, dist, telemetry, dryRun } =\n options;\n\n // `options.telemetry` defaults to true\n if (telemetry === false) {\n return false;\n }\n\n if (dryRun) {\n return false;\n }\n\n if (url === SENTRY_SAAS_URL) {\n return true;\n }\n\n const cli = new SentryCli(options.configFile, {\n url,\n authToken,\n org,\n project,\n vcsRemote,\n dist,\n silent,\n customHeader,\n });\n\n let cliInfo;\n try {\n // Makes a call to SentryCLI to get the Sentry server URL the CLI uses.\n // We need to check and decide to use telemetry based on the CLI's respone to this call\n // because only at this time we checked a possibly existing .sentryclirc file. This file\n // could point to another URL than the default URL.\n cliInfo = await cli.execute([\"info\"], false);\n } catch (e) {\n throw new Error(\n 'Sentry CLI \"info\" command failed, make sure you have an auth token configured, and your `url` option is correct.'\n );\n }\n\n const cliInfoUrl = cliInfo\n .split(/(\\r\\n|\\n|\\r)/)[0]\n ?.replace(/^Sentry Server: /, \"\")\n ?.trim();\n\n if (cliInfoUrl === undefined) {\n return false;\n }\n\n return new URL(cliInfoUrl).hostname === SENTRY_SAAS_HOSTNAME;\n}\n","// Build a facade that exposes necessary sentry functionality\n// Idea: We start out with Sentry-CLI and replace the cli-commands one by one afterwards.\n// Goal: eventually replace everything sentry-cli does with \"native\" code here\n// Reason: We don't want to depend on a binary that gets downloaded in a postinstall hook\n// - no fixed version\n// - huge download\n// - unnecessary functionality\n\nimport { logger } from \"@sentry/utils\";\nimport { InternalOptions } from \"../options-mapping\";\nimport { BuildContext } from \"../types\";\nimport { addSpanToTransaction } from \"./telemetry\";\n\nexport async function createNewRelease(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n const span = addSpanToTransaction(ctx, \"function.plugin.create_release\");\n\n try {\n await ctx.cli.releases.new(releaseName);\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Creating new release failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully created release.\" });\n ctx.logger.info(\"Successfully created release.\");\n}\n\nexport async function cleanArtifacts(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.cleanArtifacts) {\n logger.debug(\"Skipping artifact cleanup.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.clean_artifacts\");\n\n try {\n await ctx.cli.releases.execute([\"releases\", \"files\", releaseName, \"delete\", \"--all\"], true);\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Deleting release files failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully cleaned previous artifacts.\" });\n ctx.logger.info(\"Successfully cleaned previous artifacts.\");\n}\n\nexport async function uploadSourceMaps(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n const span = addSpanToTransaction(ctx, \"function.plugin.upload_sourcemaps\");\n ctx.logger.info(\"Uploading Sourcemaps.\");\n\n // Since our internal include entries contain all top-level sourcemaps options,\n // we only need to pass the include option here.\n try {\n await ctx.cli.releases.uploadSourceMaps(releaseName, { include: options.include });\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Uploading source maps failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully uploaded source maps.\" });\n ctx.logger.info(\"Successfully uploaded source maps.\");\n}\n\nexport async function setCommits(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.setCommits) {\n logger.debug(\"Skipping setting commits to release.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.set_commits\");\n\n const { auto, repo, commit, previousCommit, ignoreMissing, ignoreEmpty } = options.setCommits;\n\n try {\n await ctx.cli.releases.setCommits(releaseName, {\n commit,\n previousCommit,\n repo,\n auto,\n ignoreMissing,\n ignoreEmpty,\n });\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Setting commits failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.logger.info(\"Successfully set commits.\");\n}\n\nexport async function finalizeRelease(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.finalize) {\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Skipping release finalization.\" });\n logger.debug(\"Skipping release finalization.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.finalize_release\");\n\n try {\n await ctx.cli.releases.finalize(releaseName);\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Finalizing release failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully finalized release.\" });\n ctx.logger.info(\"Successfully finalized release.\");\n}\n\nexport async function addDeploy(\n options: InternalOptions,\n ctx: BuildContext,\n releaseName: string\n): Promise<void> {\n if (!options.deploy) {\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Skipping adding deploy info to release.\" });\n logger.debug(\"Skipping adding deploy info to release.\");\n return;\n }\n\n const span = addSpanToTransaction(ctx, \"function.plugin.deploy\");\n\n const { env, started, finished, time, name, url } = options.deploy;\n\n try {\n await ctx.cli.releases.newDeploy(releaseName, {\n env,\n started,\n finished,\n time,\n name,\n url,\n });\n } catch (e) {\n ctx.hub.captureException(new Error(\"CLI Error: Adding deploy info failed\"));\n throw e;\n } finally {\n span?.finish();\n }\n\n ctx.hub.addBreadcrumb({ level: \"info\", message: \"Successfully added deploy.\" });\n ctx.logger.info(\"Successfully added deploy.\");\n}\n","interface LoggerOptions {\n silent: boolean;\n debug: boolean;\n prefix: string;\n}\n\nexport type Logger = {\n info(message: string, ...params: unknown[]): void;\n warn(message: string, ...params: unknown[]): void;\n error(message: string, ...params: unknown[]): void;\n debug(message: string, ...params: unknown[]): void;\n};\n\nexport function createLogger(options: LoggerOptions): Logger {\n return {\n info(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Info: ${message}`, ...params);\n }\n },\n warn(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Warning: ${message}`, ...params);\n }\n },\n error(message: string, ...params: unknown[]) {\n if (!options.silent) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Error: ${message}`, ...params);\n }\n },\n debug(message: string, ...params: unknown[]) {\n if (!options.silent && options.debug) {\n // eslint-disable-next-line no-console\n console.log(`${options.prefix} Debug: ${message}`, ...params);\n }\n },\n };\n}\n","import SentryCli, { SentryCliReleases } from \"@sentry/cli\";\nimport { InternalOptions } from \"../options-mapping\";\nimport { Logger } from \"./logger\";\n\ntype SentryDryRunCLI = {\n releases: Omit<SentryCliReleases, \"listDeploys\">;\n execute: (args: string[], live: boolean) => Promise<string>;\n};\nexport type SentryCLILike = SentryCli | SentryDryRunCLI;\n\n/**\n * Creates a new Sentry CLI instance.\n *\n * In case, users selected the `dryRun` options, this returns a stub\n * that makes no-ops out of most CLI operations\n */\nexport function getSentryCli(internalOptions: InternalOptions, logger: Logger): SentryCLILike {\n const { silent, org, project, authToken, url, vcsRemote, customHeader, dist } = internalOptions;\n const cli = new SentryCli(internalOptions.configFile, {\n url,\n authToken,\n org,\n project,\n vcsRemote,\n dist,\n silent,\n customHeader,\n });\n\n if (internalOptions.dryRun) {\n logger.info(\"In DRY RUN Mode\");\n return getDryRunCLI(cli, logger);\n }\n\n return cli;\n}\n\nfunction getDryRunCLI(cli: SentryCli, logger: Logger): SentryDryRunCLI {\n return {\n releases: {\n proposeVersion: () =>\n cli.releases.proposeVersion().then((version) => {\n logger.info(\"Proposed version:\\n\", version);\n return version;\n }),\n new: (release: string) => {\n logger.info(\"Creating new release:\\n\", release);\n return Promise.resolve(release);\n },\n uploadSourceMaps: (release: string, config: unknown) => {\n logger.info(\"Calling upload-sourcemaps with:\\n\", config);\n return Promise.resolve(release);\n },\n finalize: (release: string) => {\n logger.info(\"Finalizing release:\\n\", release);\n return Promise.resolve(release);\n },\n setCommits: (release: string, config: unknown) => {\n logger.info(\"Calling set-commits with:\\n\", config);\n return Promise.resolve(release);\n },\n newDeploy: (release: string, config: unknown) => {\n logger.info(\"Calling deploy with:\\n\", config);\n return Promise.resolve(release);\n },\n execute: (args: string[], live: boolean) => {\n logger.info(\"Executing\", args, \"live:\", live);\n return Promise.resolve(\"\");\n },\n },\n execute: (args: string[], live: boolean) => {\n logger.info(\"Executing\", args, \"live:\", live);\n return Promise.resolve(\"Executed\");\n },\n };\n}\n","import { createUnplugin } from \"unplugin\";\nimport MagicString from \"magic-string\";\nimport { Options, BuildContext } from \"./types\";\nimport {\n createNewRelease,\n cleanArtifacts,\n addDeploy,\n finalizeRelease,\n setCommits,\n uploadSourceMaps,\n} from \"./sentry/releasePipeline\";\nimport \"@sentry/tracing\";\nimport {\n addPluginOptionInformationToHub,\n addSpanToTransaction,\n makeSentryClient,\n shouldSendTelemetry,\n} from \"./sentry/telemetry\";\nimport { Span, Transaction } from \"@sentry/types\";\nimport { createLogger, Logger } from \"./sentry/logger\";\nimport { InternalOptions, normalizeUserOptions, validateOptions } from \"./options-mapping\";\nimport { getSentryCli } from \"./sentry/cli\";\nimport { makeMain } from \"@sentry/node\";\nimport path from \"path\";\n\n// We prefix the polyfill id with \\0 to tell other plugins not to try to load or transform it.\n// This hack is taken straight from https://rollupjs.org/guide/en/#resolveid.\n// This probably doesn't work for all bundlers but for rollup it does.\nconst RELEASE_INJECTOR_ID = \"\\0sentry-release-injector\";\n\nconst ALLOWED_TRANSFORMATION_FILE_ENDINGS = [\".js\", \".ts\", \".jsx\", \".tsx\", \".mjs\"];\n\n/**\n * The sentry bundler plugin concerns itself with two things:\n * - Release injection\n * - Sourcemaps upload\n *\n * Release injection:\n *\n * Per default the sentry bundler plugin will inject a global `SENTRY_RELEASE` into each JavaScript/TypeScript module\n * that is part of the bundle. On a technical level this is done by appending an import (`import \"sentry-release-injector;\"`)\n * to all entrypoint files of the user code (see `transformInclude` and `transform` hooks). This import is then resolved\n * by the sentry plugin to a virtual module that sets the global variable (see `resolveId` and `load` hooks).\n * If a user wants to inject the release into a particular set of modules they can use the `releaseInjectionTargets` option.\n *\n * Source maps upload:\n *\n * The sentry bundler plugin will also take care of uploading source maps to Sentry. This is all done in the\n * `writeBundle` hook. In this hook the sentry plugin will execute the release creation pipeline:\n *\n * 1. Create a new release\n * 2. Delete already uploaded artifacts for this release (if `cleanArtifacts` is enabled)\n * 3. Upload sourcemaps based on `include` and source-map-specific options\n * 4. Associate a range of commits with the release (if `setCommits` is specified)\n * 5. Finalize the release (unless `finalize` is disabled)\n * 6. Add deploy information to the release (if `deploy` is specified)\n *\n * This release creation pipeline relies on Sentry CLI to execute the different steps.\n */\nconst unplugin = createUnplugin<Options>((options, unpluginMetaContext) => {\n const internalOptions = normalizeUserOptions(options);\n\n const allowedToSendTelemetryPromise = shouldSendTelemetry(internalOptions);\n\n const { sentryHub, sentryClient } = makeSentryClient(\n \"https://4c2bae7d9fbc413e8f7385f55c515d51@o1.ingest.sentry.io/6690737\",\n allowedToSendTelemetryPromise,\n internalOptions.project\n );\n\n addPluginOptionInformationToHub(internalOptions, sentryHub, unpluginMetaContext.framework);\n\n //TODO: This call is problematic because as soon as we set our hub as the current hub\n // we might interfere with other plugins that use Sentry. However, for now, we'll\n // leave it in because without it, we can't get distributed traces (which are pretty nice)\n // Let's keep it until someone complains about interference.\n // The ideal solution would be a code change in the JS SDK but it's not a straight-forward fix.\n makeMain(sentryHub);\n\n const logger = createLogger({\n prefix: `[sentry-${unpluginMetaContext.framework}-plugin]`,\n silent: internalOptions.silent,\n debug: internalOptions.debug,\n });\n\n if (!validateOptions(internalOptions, logger)) {\n handleError(\n new Error(\"Options were not set correctly. See output above for more details.\"),\n logger,\n internalOptions.errorHandler\n );\n }\n\n const cli = getSentryCli(internalOptions, logger);\n\n const releaseNamePromise = new Promise<string>((resolve) => {\n if (options.release) {\n resolve(options.release);\n } else {\n resolve(cli.releases.proposeVersion());\n }\n });\n\n let transaction: Transaction | undefined;\n let releaseInjectionSpan: Span | undefined;\n\n return {\n name: \"sentry-plugin\",\n enforce: \"pre\", // needed for Vite to call resolveId hook\n\n /**\n * Responsible for starting the plugin execution transaction and the release injection span\n */\n async buildStart() {\n logger.debug(\"Called 'buildStart'\");\n\n const isAllowedToSendToSendTelemetry = await allowedToSendTelemetryPromise;\n if (isAllowedToSendToSendTelemetry) {\n logger.info(\"Sending error and performance telemetry data to Sentry.\");\n logger.info(\"To disable telemetry, set `options.telemetry` to `false`.\");\n sentryHub.addBreadcrumb({ level: \"info\", message: \"Telemetry enabled.\" });\n } else {\n sentryHub.addBreadcrumb({\n level: \"info\",\n message: \"Telemetry disabled. This should never show up in a Sentry event.\",\n });\n }\n\n const releaseName = await releaseNamePromise;\n\n // At this point, we either have determined a release or we have to bail\n if (!releaseName) {\n handleError(\n new Error(\n \"Unable to determine a release name. Make sure to set the `release` option or use an environment that supports auto-detection https://docs.sentry.io/cli/releases/#creating-releases`\"\n ),\n logger,\n internalOptions.errorHandler\n );\n }\n\n transaction = sentryHub.startTransaction({\n op: \"function.plugin\",\n name: \"Sentry Bundler Plugin execution\",\n });\n\n releaseInjectionSpan = addSpanToTransaction(\n { hub: sentryHub, parentSpan: transaction, logger, cli },\n \"function.plugin.inject_release\",\n \"Release injection\"\n );\n },\n\n /**\n * Responsible for returning the \"sentry-release-injector\" ID when we encounter it. We return the ID so load is\n * called and we can \"virtually\" load the module. See `load` hook for more info on why it's virtual.\n *\n * We also record the id (i.e. absolute path) of any non-entrypoint.\n *\n * @param id For imports: The absolute path of the module to be imported. For entrypoints: The path the user defined as entrypoint - may also be relative.\n * @param importer For imports: The absolute path of the module that imported this module. For entrypoints: `undefined`.\n * @param options Additional information to use for making a resolving decision.\n * @returns `\"sentry-release-injector\"` when the imported file is called `\"sentry-release-injector\"`. Otherwise returns `undefined`.\n */\n resolveId(id, importer, { isEntry }) {\n logger.debug('Called \"resolveId\":', { id, importer, isEntry });\n\n if (id === RELEASE_INJECTOR_ID) {\n return RELEASE_INJECTOR_ID;\n } else {\n return undefined;\n }\n },\n\n loadInclude(id) {\n logger.debug('Called \"loadInclude\":', { id });\n return id === RELEASE_INJECTOR_ID;\n },\n\n /**\n * Responsible for \"virtually\" loading the \"sentry-release-injector\" module. \"Virtual\" means that the module is not\n * read from somewhere on disk but rather just returned via a string.\n *\n * @param id Always the absolute (fully resolved) path to the module.\n * @returns The global injector code when we load the \"sentry-release-injector\" module. Otherwise returns `undefined`.\n */\n async load(id) {\n logger.debug('Called \"load\":', { id });\n\n if (id === RELEASE_INJECTOR_ID) {\n return generateGlobalInjectorCode({\n release: await releaseNamePromise,\n injectReleasesMap: internalOptions.injectReleasesMap,\n org: internalOptions.org,\n project: internalOptions.project,\n });\n } else {\n return undefined;\n }\n },\n\n /**\n * This hook determines whether we want to transform a module. In the sentry bundler plugin we want to transform every entrypoint\n * unless configured otherwise with the `releaseInjectionTargets` option.\n *\n * @param id Always the absolute (fully resolved) path to the module.\n * @returns `true` or `false` depending on whether we want to transform the module. For the sentry bundler plugin we only\n * want to transform the release injector file.\n */\n transformInclude(id) {\n logger.debug('Called \"transformInclude\":', { id });\n\n // We normalize the id because vite always passes `id` as a unix style path which causes problems when a user passes\n // a windows style path to `releaseInjectionTargets`\n const normalizedId = path.normalize(id);\n\n // We don't want to transform our injected code.\n if (normalizedId === RELEASE_INJECTOR_ID) {\n return false;\n }\n\n if (internalOptions.releaseInjectionTargets) {\n // If there's an `releaseInjectionTargets` option transform (ie. inject the release varible) when the file path matches the option.\n if (typeof internalOptions.releaseInjectionTargets === \"function\") {\n return internalOptions.releaseInjectionTargets(normalizedId);\n }\n\n return internalOptions.releaseInjectionTargets.some((entry) => {\n if (entry instanceof RegExp) {\n return entry.test(normalizedId);\n } else {\n const normalizedEntry = path.normalize(entry);\n return normalizedId === normalizedEntry;\n }\n });\n } else {\n const isInNodeModules = normalizedId.split(path.sep).includes(\"node_modules\");\n const pathIsOrdinary = !normalizedId.includes(\"?\") && !normalizedId.includes(\"#\");\n\n const pathHasAllowedFileEnding = ALLOWED_TRANSFORMATION_FILE_ENDINGS.some(\n (allowedFileEnding) => normalizedId.endsWith(allowedFileEnding)\n );\n\n return !isInNodeModules && pathIsOrdinary && pathHasAllowedFileEnding;\n }\n },\n\n /**\n * This hook is responsible for injecting the \"sentry release injector\" imoprt statement into each entrypoint unless\n * configured otherwise with the `releaseInjectionTargets` option (logic for that is in the `transformInclude` hook).\n *\n * @param code Code of the file to transform.\n * @param id Always the absolute (fully resolved) path to the module.\n * @returns transformed code + source map\n */\n transform(code, id) {\n logger.debug('Called \"transform\":', { id });\n\n // The MagicString library allows us to generate sourcemaps for the changes we make to the user code.\n const ms = new MagicString(code);\n\n // Appending instead of prepending has less probability of mucking with user's source maps.\n // Luckily import statements get hoisted to the top anyways.\n ms.append(`;\\nimport \"${RELEASE_INJECTOR_ID}\";`);\n\n if (unpluginMetaContext.framework === \"esbuild\") {\n // esbuild + unplugin is buggy at the moment when we return an object with a `map` (sourcemap) property.\n // Currently just returning a string here seems to work and even correctly sourcemaps the code we generate.\n // However, other bundlers need the `map` property\n return ms.toString();\n } else {\n return {\n code: ms.toString(),\n map: ms.generateMap(),\n };\n }\n },\n\n /**\n * Responsible for executing the sentry release creation pipeline (i.e. creating a release on\n * Sentry.io, uploading sourcemaps, associating commits and deploys and finalizing the release)\n */\n async writeBundle() {\n logger.debug('Called \"writeBundle\"');\n\n releaseInjectionSpan?.finish();\n const releasePipelineSpan =\n transaction &&\n addSpanToTransaction(\n { hub: sentryHub, parentSpan: transaction, logger, cli },\n \"function.plugin.release\",\n \"Release pipeline\"\n );\n\n sentryHub.addBreadcrumb({\n category: \"writeBundle:start\",\n level: \"info\",\n });\n\n const ctx: BuildContext = { hub: sentryHub, parentSpan: releasePipelineSpan, logger, cli };\n\n const releaseName = await releaseNamePromise;\n\n try {\n await createNewRelease(internalOptions, ctx, releaseName);\n await cleanArtifacts(internalOptions, ctx, releaseName);\n await uploadSourceMaps(internalOptions, ctx, releaseName);\n await setCommits(internalOptions, ctx, releaseName);\n await finalizeRelease(internalOptions, ctx, releaseName);\n await addDeploy(internalOptions, ctx, releaseName);\n transaction?.setStatus(\"ok\");\n } catch (e: unknown) {\n transaction?.setStatus(\"cancelled\");\n sentryHub.addBreadcrumb({\n level: \"error\",\n message: \"Error during writeBundle\",\n });\n handleError(e, logger, internalOptions.errorHandler);\n } finally {\n releasePipelineSpan?.finish();\n transaction?.finish();\n await sentryClient.flush().then(null, () => {\n logger.warn(\"Sending of telemetry failed\");\n });\n }\n\n sentryHub.addBreadcrumb({\n category: \"writeBundle:finish\",\n level: \"info\",\n });\n },\n };\n});\n\nfunction handleError(\n unknownError: unknown,\n logger: Logger,\n errorHandler: InternalOptions[\"errorHandler\"]\n) {\n if (unknownError instanceof Error) {\n logger.error(unknownError.message);\n } else {\n logger.error(String(unknownError));\n }\n\n if (errorHandler) {\n if (unknownError instanceof Error) {\n errorHandler(unknownError);\n } else {\n errorHandler(new Error(\"An unknown error occured\"));\n }\n } else {\n throw unknownError;\n }\n}\n\n/**\n * Generates code for the \"sentry-release-injector\" which is responsible for setting the global `SENTRY_RELEASE`\n * variable.\n */\nfunction generateGlobalInjectorCode({\n release,\n injectReleasesMap,\n org,\n project,\n}: {\n release: string;\n injectReleasesMap: boolean;\n org?: string;\n project?: string;\n}) {\n // The code below is mostly ternary operators because it saves bundle size.\n // The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.)\n let code = `\n var _global =\n typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ?\n global :\n typeof self !== 'undefined' ?\n self :\n {};\n\n _global.SENTRY_RELEASE={id:\"${release}\"};`;\n\n if (injectReleasesMap && project) {\n const key = org ? `${project}@${org}` : project;\n code += `\n _global.SENTRY_RELEASES=_global.SENTRY_RELEASES || {};\n _global.SENTRY_RELEASES[\"${key}\"]={id:\"${release}\"};\n `;\n }\n\n return code;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryVitePlugin: (options: Options) => any = unplugin.vite;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryRollupPlugin: (options: Options) => any = unplugin.rollup;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryWebpackPlugin: (options: Options) => any = unplugin.webpack;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const sentryEsbuildPlugin: (options: Options) => any = unplugin.esbuild;\n\nexport type { Options } from \"./types\";\n"],"names":["arrayify","maybeArray","Array","isArray","SENTRY_SAAS_URL","normalizeUserOptions","userOptions","options","include","normalizeInclude","org","process","env","project","release","url","finalize","cleanArtifacts","dryRun","debug","silent","telemetry","injectReleasesMap","authToken","customHeader","vcsRemote","setCommits","deploy","releaseInjectionTargets","normalizeReleaseInjectionTargets","dist","errorHandler","configFile","userReleaseInjectionTargets","undefined","map","includeItem","paths","userIncludeEntry","normalizeIncludeEntry","includeEntry","ignoreOption","ignore","ext","dotPrefixedExt","extension","replace","ignoreFile","urlPrefix","urlSuffix","stripPrefix","stripCommonPrefix","sourceMapReference","rewrite","validate","validateOptions","logger","error","auto","repo","commit","warn","SENTRY_SAAS_HOSTNAME","makeSentryClient","dsn","allowedToSendTelemetryPromise","userProject","client","NodeClient","tracesSampleRate","sampleRate","integrations","tracePropagationTargets","stackParser","defaultStackParser","beforeSend","event","exception","values","forEach","stacktrace","server_name","beforeSendTransaction","transport","nodeTransportOptions","nodeTransport","makeNodeTransport","flush","timeout","send","request","isAllowedToSend","hub","Hub","sentryClient","sentryHub","addSpanToTransaction","ctx","op","description","parentSpan","actualSpan","getScope","getTransaction","span","startChild","configureScope","scope","setSpan","addPluginOptionInformationToHub","bundler","setTag","length","version","setTags","organization","setUser","id","shouldSendTelemetry","cli","SentryCli","execute","cliInfo","Error","cliInfoUrl","split","trim","URL","hostname","createNewRelease","releaseName","releases","captureException","finish","addBreadcrumb","level","message","info","uploadSourceMaps","previousCommit","ignoreMissing","ignoreEmpty","finalizeRelease","addDeploy","started","finished","time","name","newDeploy","createLogger","params","console","log","prefix","getSentryCli","internalOptions","getDryRunCLI","proposeVersion","then","Promise","resolve","config","args","live","RELEASE_INJECTOR_ID","ALLOWED_TRANSFORMATION_FILE_ENDINGS","unplugin","createUnplugin","unpluginMetaContext","framework","makeMain","handleError","releaseNamePromise","transaction","releaseInjectionSpan","enforce","buildStart","isAllowedToSendToSendTelemetry","startTransaction","resolveId","importer","isEntry","loadInclude","load","generateGlobalInjectorCode","transformInclude","normalizedId","path","normalize","some","entry","RegExp","test","normalizedEntry","isInNodeModules","sep","includes","pathIsOrdinary","pathHasAllowedFileEnding","allowedFileEnding","endsWith","transform","code","ms","MagicString","append","toString","generateMap","writeBundle","releasePipelineSpan","category","setStatus","unknownError","String","key","sentryVitePlugin","vite","sentryRollupPlugin","rollup","sentryWebpackPlugin","webpack","sentryEsbuildPlugin","esbuild"],"mappings":"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"}
|