%PDF- %PDF-
Direktori : /home/emergentqj/actioncivile/pre-auth/.8352c036a19b0051d0217d27d25e3f4a/static/node_modules/@sentry/src/ |
Current File : /home/emergentqj/actioncivile/pre-auth/.8352c036a19b0051d0217d27d25e3f4a/static/node_modules/@sentry/src/worldwide.ts |
/** * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something, * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere. * * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global). * * Why worldwide? * * Why not? */ /* eslint-disable @typescript-eslint/no-explicit-any */ import type { Integration } from '@sentry/types'; import type { SdkSource } from './env'; /** Internal global with common properties and Sentry extensions */ export interface InternalGlobal { navigator?: { userAgent?: string }; console: Console; Sentry?: { Integrations?: Integration[]; }; onerror?: { (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any; __SENTRY_INSTRUMENTED__?: true; __SENTRY_LOADER__?: true; }; onunhandledrejection?: { (event: unknown): boolean; __SENTRY_INSTRUMENTED__?: true; __SENTRY_LOADER__?: true; }; SENTRY_ENVIRONMENT?: string; SENTRY_DSN?: string; SENTRY_RELEASE?: { id?: string; }; SENTRY_SDK_SOURCE?: SdkSource; /** * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS * file. */ _sentryDebugIds?: Record<string, string>; __SENTRY__: { globalEventProcessors: any; hub: any; logger: any; extensions?: { /** Extension methods for the hub, which are bound to the current Hub instance */ // eslint-disable-next-line @typescript-eslint/ban-types [key: string]: Function; }; }; /** * Raw module metadata that is injected by bundler plugins. * * Keys are `error.stack` strings, values are the metadata. */ _sentryModuleMetadata?: Record<string, any>; } // The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification // https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js // core-js has the following licence: // // Copyright (c) 2014-2022 Denis Pushkarev // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. /** Returns 'obj' if it's the global object, otherwise returns undefined */ function isGlobalObj(obj: { Math?: Math }): any | undefined { return obj && obj.Math == Math ? obj : undefined; } /** Get's the global object for the current JavaScript runtime */ export const GLOBAL_OBJ: InternalGlobal = (typeof globalThis == 'object' && isGlobalObj(globalThis)) || // eslint-disable-next-line no-restricted-globals (typeof window == 'object' && isGlobalObj(window)) || (typeof self == 'object' && isGlobalObj(self)) || (typeof global == 'object' && isGlobalObj(global)) || (function (this: any) { return this; })() || {}; /** * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8 */ export function getGlobalObject<T>(): T & InternalGlobal { return GLOBAL_OBJ as T & InternalGlobal; } /** * Returns a global singleton contained in the global `__SENTRY__` object. * * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory * function and added to the `__SENTRY__` object. * * @param name name of the global singleton on __SENTRY__ * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__` * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value * @returns the singleton */ export function getGlobalSingleton<T>(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T { const gbl = (obj || GLOBAL_OBJ) as InternalGlobal; const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {}); const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator()); return singleton; }