File: D:/HostingSpaces/SBogers10/base.komma.pro/node_modules/@sentry/hub/dist/hub.js.map
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n Event,\n EventHint,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { consoleSandbox, getGlobalObject, isNodeEnv, logger, timestampWithMs, uuid4 } from '@sentry/utils';\n\nimport { Carrier, Layer } from './interfaces';\nimport { Scope } from './scope';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be incresed when the global interface\n * changes a and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 3;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this._stack.push({ client, scope });\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n private _invokeClient<M extends keyof Client>(method: M, ...args: any[]): void {\n const top = this.getStackTop();\n if (top && top.client && top.client[method]) {\n (top.client as any)[method](...args, top.scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const stack = this.getStack();\n const parentScope = stack.length > 0 ? stack[stack.length - 1].scope : undefined;\n const scope = Scope.clone(parentScope);\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n return this.getStack().pop() !== undefined;\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient<C extends Client>(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const top = this.getStackTop();\n\n if (!top.scope || !top.client) {\n return;\n }\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (top.client.getOptions && top.client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) {\n return;\n }\n\n const timestamp = timestampWithMs();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) {\n return;\n }\n\n top.scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: string }): void {\n const top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: { [key: string]: any }): void {\n const top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: string): void {\n const top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: any): void {\n const top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const top = this.getStackTop();\n if (top.scope && top.client) {\n callback(top.scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration<T extends Integration>(integration: IntegrationClass<T>): T | null {\n const client = this.getClient();\n if (!client) {\n return null;\n }\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext): Transaction {\n return this._callExtensionMethod('startTransaction', context);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore\n private _callExtensionMethod<T>(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n // tslint:disable-next-line: strict-type-predicates\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/** Returns the global shim registry. */\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, fallback to the registry if one doesnt exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const property = 'domain';\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n // tslint:disable-next-line: strict-type-predicates\n if (!sentry || !sentry.extensions || !sentry.extensions[property]) {\n return getHubFromCarrier(registry);\n }\n const domain = sentry.extensions[property] as any;\n const activeDomain = domain.active;\n\n // If there no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or its an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return true;\n }\n return false;\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return carrier.__SENTRY__.hub;\n }\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) {\n return false;\n }\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n"]}