{"version":3,"file":"static/chunks/1298-928454fa4249ec04.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/@datadog/browser-core/esm/boot/displayAlreadyInitializedError.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/boot/init.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/connectivity/connectivity.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/customerDataTracker.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/storeContextManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStateValidation.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/trackingConsent.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/display.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/encoder.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/stackTrace/computeStackTrace.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/stackTrace/handlingStack.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/arrayUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/logger/isAuthorized.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/createErrorFieldFromRawError.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/logger.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/contexts/commonContext.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/configuration.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/boot/preStartLogs.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/boot/logsPublicApi.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/logsSessionManager.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/contexts/rumInternalContext.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/assembly.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/console/consoleCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/report/reportCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/networkError/networkErrorCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/runtimeError/runtimeErrorCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/lifeCycle.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/logger/loggerCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/transport/startLogsBatch.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/transport/startLogsBridge.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/contexts/internalContext.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/reportError.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/domain/logsTelemetry.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/boot/startLogs.js","webpack://_N_E/../../node_modules/@datadog/browser-logs/esm/entries/main.js","webpack://_N_E/../../node_modules/quick-format-unescaped/index.js","webpack://_N_E/../../node_modules/safe-json-utils/dist/cjs/index.js","webpack://_N_E/../../node_modules/pino-std-serializers/index.js","webpack://_N_E/../../node_modules/pino-std-serializers/lib/err-helpers.js","webpack://_N_E/../../node_modules/pino-std-serializers/lib/err.js","webpack://_N_E/../../node_modules/pino-std-serializers/lib/req.js","webpack://_N_E/../../node_modules/pino-std-serializers/lib/res.js","webpack://_N_E/../../node_modules/pino/browser.js"],"sourcesContent":["import { display } from '../tools/display';\nexport function displayAlreadyInitializedError(sdkName, initConfiguration) {\n if (!initConfiguration.silentMultipleInit) {\n display.error(`${sdkName} is already initialized.`);\n }\n}\n//# sourceMappingURL=displayAlreadyInitializedError.js.map","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { display } from '../tools/display';\nexport function makePublicApi(stub) {\n const publicApi = {\n version: \"6.2.1\",\n // This API method is intentionally not monitored, since the only thing executed is the\n // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and\n // we don't want to interfere with the user uncaught exceptions.\n onReady(callback) {\n callback();\n },\n ...stub,\n };\n // Add a \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get() {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n const existingGlobalVariable = global[name];\n if (existingGlobalVariable && !existingGlobalVariable.q && existingGlobalVariable.version) {\n display.warn('SDK is loaded more than once. This is unsupported and might have unexpected behavior.');\n }\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach((fn) => catchUserErrors(fn, 'onReady callback threw an error:')());\n }\n}\n//# sourceMappingURL=init.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(configuration, eventTarget, eventNames, listener, { once, capture, passive } = {}) {\n const listenerWithMonitor = monitor((event) => {\n if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {\n return;\n }\n if (once) {\n stop();\n }\n listener(event);\n });\n const options = passive ? { capture, passive } : capture;\n // Use the window.EventTarget.prototype when possible to avoid wrong overrides (e.g: https://github.com/salesforce/lwc/issues/1824)\n const listenerTarget = window.EventTarget && eventTarget instanceof EventTarget ? window.EventTarget.prototype : eventTarget;\n const add = getZoneJsOriginalValue(listenerTarget, 'addEventListener');\n eventNames.forEach((eventName) => add.call(eventTarget, eventName, listenerWithMonitor, options));\n function stop() {\n const remove = getZoneJsOriginalValue(listenerTarget, 'removeEventListener');\n eventNames.forEach((eventName) => remove.call(eventTarget, eventName, listenerWithMonitor, options));\n }\n return {\n stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay = 0, options) {\n const date = new Date();\n date.setTime(date.getTime() + expireDelay);\n const expires = `expires=${date.toUTCString()}`;\n const sameSite = options && options.crossSite ? 'none' : 'strict';\n const domain = options && options.domain ? `;domain=${options.domain}` : '';\n const secure = options && options.secure ? ';secure' : '';\n const partitioned = options && options.partitioned ? ';partitioned' : '';\n document.cookie = `${name}=${value};${expires};path=/;samesite=${sameSite}${domain}${secure}${partitioned}`;\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nlet initCookieParsed;\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie);\n }\n return initCookieParsed.get(name);\n}\nexport function resetInitCookies() {\n initCookieParsed = undefined;\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `dd_cookie_test_${generateUUID()}`;\n const testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n const isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nlet getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `dd_site_test_${generateUUID()}`;\n const testCookieValue = 'test';\n const domainLevels = window.location.hostname.split('.');\n let candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = `${domainLevels.pop()}.${candidateDomain}`;\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nlet fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nexport function resetFetchObservable() {\n fetchObservable = undefined;\n}\nfunction createFetchObservable() {\n return new Observable((observable) => {\n if (!window.fetch) {\n return;\n }\n const { stop } = instrumentMethod(window, 'fetch', (call) => beforeSend(call, observable), {\n computeHandlingStack: true,\n });\n return stop;\n });\n}\nfunction beforeSend({ parameters, onPostCall, handlingStack }, observable) {\n const [input, init] = parameters;\n let methodFromParams = init && init.method;\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method;\n }\n const method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET';\n const url = input instanceof Request ? input.url : normalizeUrl(String(input));\n const startClocks = clocksNow();\n const context = {\n state: 'start',\n init,\n input,\n method,\n startClocks,\n url,\n handlingStack,\n };\n observable.notify(context);\n // Those properties can be changed by observable subscribers\n parameters[0] = context.input;\n parameters[1] = context.init;\n onPostCall((responsePromise) => afterSend(observable, responsePromise, context));\n}\nfunction afterSend(observable, responsePromise, startContext) {\n const context = startContext;\n function reportFetch(partialContext) {\n context.state = 'resolve';\n Object.assign(context, partialContext);\n observable.notify(context);\n }\n responsePromise.then(monitor((response) => {\n reportFetch({\n response,\n responseType: response.type,\n status: response.status,\n isAborted: false,\n });\n }), monitor((error) => {\n var _a, _b;\n reportFetch({\n status: 0,\n isAborted: ((_b = (_a = context.init) === null || _a === void 0 ? void 0 : _a.signal) === null || _b === void 0 ? void 0 : _b.aborted) || (error instanceof DOMException && error.code === DOMException.ABORT_ERR),\n error,\n });\n }));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { Observable } from '../tools/observable';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport const PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n return new Observable((observable) => {\n const { stop: stopListeners } = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */], (event) => {\n if (event.type === \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true });\n const stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, () => {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n return () => {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n}\nexport function isPageExitReason(reason) {\n return objectValues(PageExitReason).includes(reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nlet xhrObservable;\nconst xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n return new Observable((observable) => {\n const { stop: stopInstrumentingStart } = instrumentMethod(XMLHttpRequest.prototype, 'open', openXhr);\n const { stop: stopInstrumentingSend } = instrumentMethod(XMLHttpRequest.prototype, 'send', (call) => {\n sendXhr(call, configuration, observable);\n }, { computeHandlingStack: true });\n const { stop: stopInstrumentingAbort } = instrumentMethod(XMLHttpRequest.prototype, 'abort', abortXhr);\n return () => {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n}\nfunction openXhr({ target: xhr, parameters: [method, url] }) {\n xhrContexts.set(xhr, {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr({ target: xhr, handlingStack }, configuration, observable) {\n const context = xhrContexts.get(xhr);\n if (!context) {\n return;\n }\n const startContext = context;\n startContext.state = 'start';\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = xhr;\n startContext.handlingStack = handlingStack;\n let hasBeenReported = false;\n const { stop: stopInstrumentingOnReadyStateChange } = instrumentMethod(xhr, 'onreadystatechange', () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n });\n const onEnd = () => {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n const completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = xhr.status;\n observable.notify(shallowClone(completeContext));\n };\n const { stop: unsubscribeLoadEndListener } = addEventListener(configuration, xhr, 'loadend', onEnd);\n observable.notify(startContext);\n}\nfunction abortXhr({ target: xhr }) {\n const context = xhrContexts.get(xhr);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { TrackingConsent } from '../trackingConsent';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport const DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport const TraceContextInjection = {\n ALL: 'all',\n SAMPLED: 'sampled',\n};\nfunction isString(tag, tagName) {\n if (tag !== undefined && tag !== null && typeof tag !== 'string') {\n display.error(`${tagName} must be defined as a string`);\n return false;\n }\n return true;\n}\nfunction isDatadogSite(site) {\n if (site && typeof site === 'string' && !/(datadog|ddog|datad0g|dd0g)/.test(site)) {\n display.error(`Site should be a valid Datadog site. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/site/.`);\n return false;\n }\n return true;\n}\nexport function isSampleRate(sampleRate, name) {\n if (sampleRate !== undefined && !isPercentage(sampleRate)) {\n display.error(`${name} Sample Rate should be a number between 0 and 100`);\n return false;\n }\n return true;\n}\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n if (!isDatadogSite(initConfiguration.site) ||\n !isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||\n !isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||\n !isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||\n !isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||\n !isString(initConfiguration.version, 'Version') ||\n !isString(initConfiguration.env, 'Env') ||\n !isString(initConfiguration.service, 'Service')) {\n return;\n }\n if (initConfiguration.trackingConsent !== undefined &&\n !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)) {\n display.error('Tracking Consent should be either \"granted\" or \"not-granted\"');\n return;\n }\n return {\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n telemetryUsageSampleRate: (_d = initConfiguration.telemetryUsageSampleRate) !== null && _d !== void 0 ? _d : 5,\n service: initConfiguration.service || undefined,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,\n trackingConsent: (_e = initConfiguration.trackingConsent) !== null && _e !== void 0 ? _e : TrackingConsent.GRANTED,\n trackAnonymousUser: (_f = initConfiguration.trackAnonymousUser) !== null && _f !== void 0 ? _f : true,\n storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n ...computeTransportConfiguration(initConfiguration),\n };\n}\nexport function serializeConfiguration(initConfiguration) {\n return {\n session_sample_rate: initConfiguration.sessionSampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: !!initConfiguration.proxy,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_anonymous_user: initConfiguration.trackAnonymousUser,\n session_persistence: initConfiguration.sessionPersistence,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,\n tracking_consent: initConfiguration.trackingConsent,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_US1, INTAKE_SITE_FED_STAGING, PCI_INTAKE_HOST_US1 } from './intakeSites';\nexport function createEndpointBuilder(initConfiguration, trackType, configurationTags) {\n const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);\n return {\n build(api, payload) {\n const parameters = buildEndpointParameters(initConfiguration, trackType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n trackType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {\n const path = `/api/v2/${trackType}`;\n const proxy = initConfiguration.proxy;\n if (typeof proxy === 'string') {\n const normalizedProxyUrl = normalizeUrl(proxy);\n return (parameters) => `${normalizedProxyUrl}?ddforward=${encodeURIComponent(`${path}?${parameters}`)}`;\n }\n if (typeof proxy === 'function') {\n return (parameters) => proxy({ path, parameters });\n }\n const host = buildEndpointHost(trackType, initConfiguration);\n return (parameters) => `https://${host}${path}?${parameters}`;\n}\nexport function buildEndpointHost(trackType, initConfiguration) {\n const { site = INTAKE_SITE_US1, internalAnalyticsSubdomain } = initConfiguration;\n if (trackType === 'logs' && initConfiguration.usePciIntake && site === INTAKE_SITE_US1) {\n return PCI_INTAKE_HOST_US1;\n }\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return `${internalAnalyticsSubdomain}.${INTAKE_SITE_US1}`;\n }\n if (site === INTAKE_SITE_FED_STAGING) {\n return `http-intake.logs.${site}`;\n }\n const domainParts = site.split('.');\n const extension = domainParts.pop();\n return `browser-intake-${domainParts.join('-')}.${extension}`;\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters({ clientToken, internalAnalyticsSubdomain }, trackType, configurationTags, api, { retry, encoding }) {\n const tags = [`sdk_version:${\"6.2.1\"}`, `api:${api}`].concat(configurationTags);\n if (retry) {\n tags.push(`retry_count:${retry.count}`, `retry_after:${retry.lastFailureStatus}`);\n }\n const parameters = [\n 'ddsource=browser',\n `ddtags=${encodeURIComponent(tags.join(','))}`,\n `dd-api-key=${clientToken}`,\n `dd-evp-origin-version=${encodeURIComponent(\"6.2.1\")}`,\n 'dd-evp-origin=browser',\n `dd-request-id=${generateUUID()}`,\n ];\n if (encoding) {\n parameters.push(`dd-evp-encoding=${encoding}`);\n }\n if (trackType === 'rum') {\n parameters.push(`batch_time=${timeStampNow()}`);\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","export const INTAKE_SITE_STAGING = 'datad0g.com';\nexport const INTAKE_SITE_FED_STAGING = 'dd0g-gov.com';\nexport const INTAKE_SITE_US1 = 'datadoghq.com';\nexport const INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport const INTAKE_SITE_US1_FED = 'ddog-gov.com';\nexport const PCI_INTAKE_HOST_US1 = 'pci.browser-intake-datadoghq.com';\nexport const INTAKE_URL_PARAMETERS = ['ddsource', 'ddtags'];\n//# sourceMappingURL=intakeSites.js.map","import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\nexport const TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n const { env, service, version, datacenter } = configuration;\n const tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n const valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || hasForbiddenCharacters(rawValue)) {\n display.warn(`${key} value doesn't meet tag requirements and will be sanitized. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/tagging/#defining-tags`);\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n const sanitizedValue = rawValue.replace(/,/g, '_');\n return `${key}:${sanitizedValue}`;\n}\nfunction hasForbiddenCharacters(rawValue) {\n // Unicode property escapes is not supported in all browsers, so we use a try/catch.\n // Todo: Remove the try/catch when dropping support for Chrome 63 and Firefox 67\n // see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#browser_compatibility\n if (!supportUnicodePropertyEscapes()) {\n return false;\n }\n // We use the Unicode property escapes to match any character that is a letter including other languages like Chinese, Japanese, etc.\n // p{Ll} matches a lowercase letter.\n // p{Lo} matches a letter that is neither uppercase nor lowercase (ex: Japanese characters).\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#unicode_property_escapes_vs._character_classes\n return new RegExp('[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]', 'u').test(rawValue);\n}\nexport function supportUnicodePropertyEscapes() {\n try {\n new RegExp('[\\\\p{Ll}]', 'u');\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n//# sourceMappingURL=tags.js.map","import { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1, INTAKE_URL_PARAMETERS } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n const site = initConfiguration.site || INTAKE_SITE_US1;\n const tags = buildTags(initConfiguration);\n const endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n const replicaConfiguration = computeReplicaConfiguration(initConfiguration, tags);\n return {\n replica: replicaConfiguration,\n site,\n ...endpointBuilders,\n };\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n const replicaConfiguration = {\n ...initConfiguration,\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n };\n const replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n return { applicationId: initConfiguration.replica.applicationId, ...replicaEndpointBuilders };\n}\nexport function isIntakeUrl(url) {\n // check if tags is present in the query string\n return INTAKE_URL_PARAMETERS.every((param) => url.includes(param));\n}\n//# sourceMappingURL=transportConfiguration.js.map","export function getConnectivity() {\n var _a;\n const navigator = window.navigator;\n return {\n status: navigator.onLine ? 'connected' : 'not_connected',\n interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : undefined,\n effective_type: (_a = navigator.connection) === null || _a === void 0 ? void 0 : _a.effectiveType,\n };\n}\n//# sourceMappingURL=connectivity.js.map","import { flattenErrorCauses, isError, tryToGetFingerprint } from '../error/error';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { ConsoleApiName, globalConsole } from '../../tools/display';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { ErrorSource } from '../error/error.types';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { createHandlingStack, toStackTraceString, formatErrorMessage } from '../../tools/stackTrace/handlingStack';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nlet consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n const consoleObservables = apis.map((api) => {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api); // we are sure that the observable created for this api will yield the expected ConsoleLog type\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables(...consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n return new Observable((observable) => {\n const originalConsoleApi = globalConsole[api];\n globalConsole[api] = (...params) => {\n originalConsoleApi.apply(console, params);\n const handlingStack = createHandlingStack();\n callMonitored(() => {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return () => {\n globalConsole[api] = originalConsoleApi;\n };\n });\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n const message = params.map((param) => formatConsoleParameters(param)).join(' ');\n let error;\n if (api === ConsoleApiName.error) {\n const firstErrorParam = params.find(isError);\n error = {\n stack: firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined,\n fingerprint: tryToGetFingerprint(firstErrorParam),\n causes: firstErrorParam ? flattenErrorCauses(firstErrorParam, 'console') : undefined,\n startClocks: clocksNow(),\n message,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack,\n };\n }\n return {\n api,\n message,\n error,\n handlingStack,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (isError(param)) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nexport function createContextManager(customerDataTracker) {\n let context = {};\n const changeObservable = new Observable();\n const contextManager = {\n getContext: () => deepClone(context),\n setContext: (newContext) => {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: (key, property) => {\n context[key] = sanitize(property);\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n removeContextProperty: (key) => {\n delete context[key];\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n clearContext: () => {\n context = {};\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.resetCustomerData();\n changeObservable.notify();\n },\n changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","import { ONE_KIBI_BYTE, computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../../tools/display';\nimport { isEmptyObject } from '../../tools/utils/objectUtils';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport const CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\n// We observed that the compression ratio is around 8 in general, but we also want to keep a margin\n// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB\n// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this\n// is a bit arbitrary.\nexport const CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * ONE_KIBI_BYTE;\nexport const BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createCustomerDataTrackerManager(compressionStatus = 2 /* CustomerDataCompressionStatus.Disabled */) {\n const customerDataTrackers = new Map();\n let alreadyWarned = false;\n function checkCustomerDataLimit(initialBytesCount = 0) {\n if (alreadyWarned || compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n return;\n }\n const bytesCountLimit = compressionStatus === 2 /* CustomerDataCompressionStatus.Disabled */\n ? CUSTOMER_DATA_BYTES_LIMIT\n : CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT;\n let bytesCount = initialBytesCount;\n customerDataTrackers.forEach((tracker) => {\n bytesCount += tracker.getBytesCount();\n });\n if (bytesCount > bytesCountLimit) {\n displayCustomerDataLimitReachedWarning(bytesCountLimit);\n alreadyWarned = true;\n }\n }\n return {\n /**\n * Creates a detached tracker. The manager will not store a reference to that tracker, and the\n * bytes count will be counted independently from other detached trackers.\n *\n * This is particularly useful when we don't know when the tracker will be unused, so we don't\n * leak memory (ex: when used in Logger instances).\n */\n createDetachedTracker: () => {\n const tracker = createCustomerDataTracker(() => checkCustomerDataLimit(tracker.getBytesCount()));\n return tracker;\n },\n /**\n * Creates a tracker if it doesn't exist, and returns it.\n */\n getOrCreateTracker: (type) => {\n if (!customerDataTrackers.has(type)) {\n customerDataTrackers.set(type, createCustomerDataTracker(checkCustomerDataLimit));\n }\n return customerDataTrackers.get(type);\n },\n setCompressionStatus: (newCompressionStatus) => {\n if (compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n compressionStatus = newCompressionStatus;\n checkCustomerDataLimit();\n }\n },\n getCompressionStatus: () => compressionStatus,\n stop: () => {\n customerDataTrackers.forEach((tracker) => tracker.stop());\n customerDataTrackers.clear();\n },\n };\n}\nexport function createCustomerDataTracker(checkCustomerDataLimit) {\n let bytesCountCache = 0;\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n const { throttled: computeBytesCountThrottled, cancel: cancelComputeBytesCount } = throttle((context) => {\n bytesCountCache = computeBytesCount(jsonStringify(context));\n checkCustomerDataLimit();\n }, BYTES_COMPUTATION_THROTTLING_DELAY);\n const resetBytesCount = () => {\n cancelComputeBytesCount();\n bytesCountCache = 0;\n };\n return {\n updateCustomerData: (context) => {\n if (isEmptyObject(context)) {\n resetBytesCount();\n }\n else {\n computeBytesCountThrottled(context);\n }\n },\n resetCustomerData: resetBytesCount,\n getBytesCount: () => bytesCountCache,\n stop: () => {\n cancelComputeBytesCount();\n },\n };\n}\nfunction displayCustomerDataLimitReachedWarning(bytesCountLimit) {\n display.warn(`Customer data exceeds the recommended ${bytesCountLimit / ONE_KIBI_BYTE}KiB threshold. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#customer-data-exceeds-the-recommended-threshold-warning`);\n}\n//# sourceMappingURL=customerDataTracker.js.map","import { addEventListener } from '../../browser/addEventListener';\nimport { combine } from '../../tools/mergeInto';\nconst CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nconst storageListeners = [];\nexport function storeContextManager(configuration, contextManager, productKey, customerDataType) {\n const storageKey = buildStorageKey(productKey, customerDataType);\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, ({ key }) => {\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n contextManager.setContext(combine(getFromStorage(), contextManager.getContext()));\n function synchronizeWithStorage() {\n contextManager.setContext(getFromStorage());\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n function getFromStorage() {\n const rawContext = localStorage.getItem(storageKey);\n return rawContext !== null ? JSON.parse(rawContext) : {};\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return `${CONTEXT_STORE_KEY_PREFIX}_${productKey}_${customerDataType}`;\n}\nexport function removeStorageListeners() {\n storageListeners.map((listener) => listener.stop());\n}\n//# sourceMappingURL=storeContextManager.js.map","import { sanitize } from '../../tools/serialisation/sanitize';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nexport const NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError({ stackTrace, originalError, handlingStack, componentStack, startClocks, nonErrorPrefix, source, handling, }) {\n const isErrorInstance = isError(originalError);\n const message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n const stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n const causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n const type = stackTrace ? stackTrace.name : undefined;\n const fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks,\n source,\n handling,\n handlingStack,\n componentStack,\n originalError,\n type,\n message,\n stack,\n causes,\n fingerprint,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? `${nonErrorPrefix} ${jsonStringify(sanitize(originalError))}`\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return isError(originalError) && 'dd_fingerprint' in originalError ? String(originalError.dd_fingerprint) : undefined;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function isError(error) {\n return error instanceof Error || Object.prototype.toString.call(error) === '[object Error]';\n}\nexport function flattenErrorCauses(error, parentSource) {\n let currentError = error;\n const causes = [];\n while (isError(currentError === null || currentError === void 0 ? void 0 : currentError.cause) && causes.length < 10) {\n const stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","export const ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { instrumentMethod } from '../../tools/instrumentMethod';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nimport { computeStackTrace, computeStackTraceFromOnErrorMessage } from '../../tools/stackTrace/computeStackTrace';\nimport { computeRawError, isError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n const handleRuntimeError = (stackTrace, originalError) => {\n const rawError = computeRawError({\n stackTrace,\n originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n errorObservable.notify(rawError);\n };\n const { stop: stopInstrumentingOnError } = instrumentOnError(handleRuntimeError);\n const { stop: stopInstrumentingOnUnhandledRejection } = instrumentUnhandledRejection(handleRuntimeError);\n return {\n stop: () => {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\nexport function instrumentOnError(callback) {\n return instrumentMethod(window, 'onerror', ({ parameters: [messageObj, url, line, column, errorObj] }) => {\n let stackTrace;\n if (isError(errorObj)) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n stackTrace = computeStackTraceFromOnErrorMessage(messageObj, url, line, column);\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n });\n}\nexport function instrumentUnhandledRejection(callback) {\n return instrumentMethod(window, 'onunhandledrejection', ({ parameters: [e] }) => {\n const reason = e.reason || 'Empty reason';\n const stack = computeStackTrace(reason);\n callback(stack, reason);\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n let eventCount = 0;\n let allowNextEvent = false;\n return {\n isLimitReached() {\n if (eventCount === 0) {\n setTimeout(() => {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: `Reached max number of ${eventType}s by minute: ${limit}`,\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nimport { ErrorSource } from '../error/error.types';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nexport const RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n const observables = [];\n if (apis.includes(RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n const reportTypes = apis.filter((api) => api !== RawReportType.cspViolation);\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables(...observables);\n}\nfunction createReportObservable(reportTypes) {\n return new Observable((observable) => {\n if (!window.ReportingObserver) {\n return;\n }\n const handleReports = monitor((reports, _) => reports.forEach((report) => observable.notify(buildRawReportErrorFromReport(report))));\n const observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return () => {\n observer.disconnect();\n };\n });\n}\nfunction createCspViolationReportObservable(configuration) {\n return new Observable((observable) => {\n const { stop } = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, (event) => {\n observable.notify(buildRawReportErrorFromCspViolation(event));\n });\n return stop;\n });\n}\nfunction buildRawReportErrorFromReport(report) {\n const { type, body } = report;\n return buildRawReportError({\n type: body.id,\n message: `${type}: ${body.message}`,\n originalError: report,\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n });\n}\nfunction buildRawReportErrorFromCspViolation(event) {\n const message = `'${event.blockedURI}' blocked by '${event.effectiveDirective}' directive`;\n return buildRawReportError({\n type: event.effectiveDirective,\n message: `${RawReportType.cspViolation}: ${message}`,\n originalError: event,\n csp: {\n disposition: event.disposition,\n },\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? `${message} of the policy \"${safeTruncate(event.originalPolicy, 100, '...')}\"`\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n });\n}\nfunction buildRawReportError(partial) {\n return {\n startClocks: clocksNow(),\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n ...partial,\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name,\n message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","import { ONE_HOUR, ONE_MINUTE, ONE_YEAR } from '../../tools/utils/timeUtils';\nexport const SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport const SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\nexport const SESSION_COOKIE_EXPIRATION_DELAY = ONE_YEAR;\nexport const SessionPersistence = {\n COOKIE: 'cookie',\n LOCAL_STORAGE: 'local-storage',\n};\n//# sourceMappingURL=sessionConstants.js.map","import { Observable } from '../../tools/observable';\nimport { createValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { addEventListener, addEventListeners } from '../../browser/addEventListener';\nimport { clearInterval, setInterval } from '../../tools/timer';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { startSessionStore } from './sessionStore';\nexport const VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nconst SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nlet stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState, trackingConsentState) {\n const renewObservable = new Observable();\n const expireObservable = new Observable();\n // TODO - Improve configuration type and remove assertion\n const sessionStore = startSessionStore(configuration.sessionStoreStrategyType, configuration, productKey, computeSessionState);\n stopCallbacks.push(() => sessionStore.stop());\n const sessionContextHistory = createValueHistory({\n expireDelay: SESSION_CONTEXT_TIMEOUT_DELAY,\n });\n stopCallbacks.push(() => sessionContextHistory.stop());\n sessionStore.renewObservable.subscribe(() => {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n renewObservable.notify();\n });\n sessionStore.expireObservable.subscribe(() => {\n expireObservable.notify();\n sessionContextHistory.closeActive(relativeNow());\n });\n // We expand/renew session unconditionally as tracking consent is always granted when the session\n // manager is started.\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackingConsentState.observable.subscribe(() => {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n else {\n sessionStore.expire();\n }\n });\n trackActivity(configuration, () => {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n });\n trackVisibility(configuration, () => sessionStore.expandSession());\n trackResume(configuration, () => sessionStore.restartSession());\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n isReplayForced: !!sessionStore.getSession().forcedReplay,\n anonymousId: sessionStore.getSession().anonymousId,\n };\n }\n return {\n findSession: (startTime, options) => sessionContextHistory.find(startTime, options),\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,\n expire: sessionStore.expire,\n updateSessionState: sessionStore.updateSessionState,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach((e) => e());\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n const { stop } = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"scroll\" /* DOM_EVENT.SCROLL */], expandOrRenewSession, { capture: true, passive: true });\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n const expandSessionWhenVisible = () => {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n const { stop } = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible);\n stopCallbacks.push(stop);\n const visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(() => {\n clearInterval(visibilityCheckInterval);\n });\n}\nfunction trackResume(configuration, cb) {\n const { stop } = addEventListener(configuration, window, \"resume\" /* DOM_EVENT.RESUME */, cb, { capture: true });\n stopCallbacks.push(stop);\n}\n//# sourceMappingURL=sessionManager.js.map","export const SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","export const SESSION_ENTRY_REGEXP = /^([a-zA-Z]+)=([a-z0-9-]+)$/;\nexport const SESSION_ENTRY_SEPARATOR = '&';\nexport function isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionStateValidation.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { generateAnonymousId } from '../user';\nimport { SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { isValidSessionString, SESSION_ENTRY_REGEXP, SESSION_ENTRY_SEPARATOR } from './sessionStateValidation';\nexport const EXPIRED = '1';\nexport function getExpiredSessionState(previousSessionState, configuration) {\n const expiredSessionState = {\n isExpired: EXPIRED,\n };\n if (configuration.trackAnonymousUser) {\n if (previousSessionState === null || previousSessionState === void 0 ? void 0 : previousSessionState.anonymousId) {\n expiredSessionState.anonymousId = previousSessionState === null || previousSessionState === void 0 ? void 0 : previousSessionState.anonymousId;\n }\n else {\n expiredSessionState.anonymousId = generateAnonymousId();\n }\n }\n return expiredSessionState;\n}\nexport function isSessionInNotStartedState(session) {\n return isEmptyObject(session);\n}\nexport function isSessionStarted(session) {\n return !isSessionInNotStartedState(session);\n}\nexport function isSessionInExpiredState(session) {\n return session.isExpired !== undefined || !isActiveSession(session);\n}\n// An active session is a session in either `Tracked` or `NotTracked` state\nfunction isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return (objectEntries(session)\n // we use `aid` as a key for anonymousId\n .map(([key, value]) => (key === 'anonymousId' ? `aid=${value}` : `${key}=${value}`))\n .join(SESSION_ENTRY_SEPARATOR));\n}\nexport function toSessionState(sessionString) {\n const session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach((entry) => {\n const matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n const [, key, value] = matches;\n if (key === 'aid') {\n // we use `aid` as a key for anonymousId\n session.anonymousId = value;\n }\n else {\n session[key] = value;\n }\n }\n });\n }\n return session;\n}\n//# sourceMappingURL=sessionState.js.map","import { getInitCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionStarted } from './sessionState';\nexport const OLD_SESSION_COOKIE_NAME = '_dd';\nexport const OLD_RUM_COOKIE_NAME = '_dd_r';\nexport const OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport const RUM_SESSION_KEY = 'rum';\nexport const LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n const sessionString = getInitCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n const oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME);\n const oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME);\n const oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME);\n const session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (isSessionStarted(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_COOKIE_EXPIRATION_DELAY, SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY, SessionPersistence, } from '../sessionConstants';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n const cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: SessionPersistence.COOKIE, cookieOptions } : undefined;\n}\nexport function initCookieStrategy(configuration, cookieOptions) {\n const cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n expireSession: (sessionState) => expireSessionCookie(cookieOptions, sessionState, configuration),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return (session) => {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction expireSessionCookie(options, sessionState, configuration) {\n const expiredSessionState = getExpiredSessionState(sessionState, configuration);\n // we do not extend cookie expiration date\n setCookie(SESSION_STORE_KEY, toSessionString(expiredSessionState), configuration.trackAnonymousUser ? SESSION_COOKIE_EXPIRATION_DELAY : SESSION_TIME_OUT_DELAY, options);\n}\nfunction retrieveSessionCookie() {\n const sessionString = getCookie(SESSION_STORE_KEY);\n const sessionState = toSessionState(sessionString);\n return sessionState;\n}\nexport function buildCookieOptions(initConfiguration) {\n const cookieOptions = {};\n cookieOptions.secure =\n !!initConfiguration.useSecureSessionCookie || !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { SessionPersistence } from '../sessionConstants';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nconst LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n const id = generateUUID();\n const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`;\n localStorage.setItem(testKey, id);\n const retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: SessionPersistence.LOCAL_STORAGE } : undefined;\n }\n catch (_a) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy(configuration) {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n expireSession: (sessionState) => expireSessionFromLocalStorage(sessionState, configuration),\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n const sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction expireSessionFromLocalStorage(previousSessionState, configuration) {\n persistInLocalStorage(getExpiredSessionState(previousSessionState, configuration));\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport const LOCK_RETRY_DELAY = 10;\nexport const LOCK_MAX_TRIES = 100;\nconst bufferedOperations = [];\nlet ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries = 0) {\n var _a;\n const { isLockEnabled, persistSession, expireSession } = sessionStoreStrategy;\n const persistWithLock = (session) => persistSession({ ...session, lock: currentLock });\n const retrieveStore = () => {\n const session = sessionStoreStrategy.retrieveSession();\n const lock = session.lock;\n if (session.lock) {\n delete session.lock;\n }\n return {\n session,\n lock,\n };\n };\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n let currentLock;\n let currentStore = retrieveStore();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentStore.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n persistWithLock(currentStore.session);\n // if lock is not acquired, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n let processedSession = operations.process(currentStore.session);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n expireSession(processedSession);\n }\n else {\n expandSessionState(processedSession);\n if (isLockEnabled) {\n persistWithLock(processedSession);\n }\n else {\n persistSession(processedSession);\n }\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n persistSession(currentStore.session);\n processedSession = currentStore.session;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentStore.session);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(() => {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n const nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { display } from '../../tools/display';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { getExpiredSessionState, isSessionInExpiredState, isSessionInNotStartedState, isSessionStarted, } from './sessionState';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\nimport { SessionPersistence } from './sessionConstants';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport const STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Selects the correct session store strategy type based on the configuration and storage\n * availability.\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n switch (initConfiguration.sessionPersistence) {\n case SessionPersistence.COOKIE:\n return selectCookieStrategy(initConfiguration);\n case SessionPersistence.LOCAL_STORAGE:\n return selectLocalStorageStrategy();\n case undefined: {\n let sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n }\n default:\n display.error(`Invalid session persistence '${String(initConfiguration.sessionPersistence)}'`);\n }\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, configuration, productKey, computeSessionState) {\n const renewObservable = new Observable();\n const expireObservable = new Observable();\n const sessionStateUpdateObservable = new Observable();\n const sessionStoreStrategy = sessionStoreStrategyType.type === SessionPersistence.COOKIE\n ? initCookieStrategy(configuration, sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy(configuration);\n const { expireSession } = sessionStoreStrategy;\n const watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n let sessionCache;\n startSession();\n const { throttled: throttledExpandOrRenewSession, cancel: cancelExpandOrRenewSession } = throttle(() => {\n processSessionStoreOperations({\n process: (sessionState) => {\n if (isSessionInNotStartedState(sessionState)) {\n return;\n }\n const synchronizedSession = synchronizeSession(sessionState);\n expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: (sessionState) => {\n if (isSessionStarted(sessionState) && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }, STORAGE_POLL_DELAY);\n function expandSession() {\n processSessionStoreOperations({\n process: (sessionState) => (hasSessionInCache() ? synchronizeSession(sessionState) : undefined),\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: (sessionState) => isSessionInExpiredState(sessionState) ? getExpiredSessionState(sessionState, configuration) : undefined,\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (isSessionInExpiredState(sessionState)) {\n sessionState = getExpiredSessionState(sessionState, configuration);\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionStateUpdateObservable.notify({ previousState: sessionCache, newState: sessionState });\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function startSession() {\n processSessionStoreOperations({\n process: (sessionState) => {\n if (isSessionInNotStartedState(sessionState)) {\n return getExpiredSessionState(sessionState, configuration);\n }\n },\n after: (sessionState) => {\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandOrRenewSessionState(sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return false;\n }\n const { trackingType, isTracked } = computeSessionState(sessionState[productKey]);\n sessionState[productKey] = trackingType;\n delete sessionState.isExpired;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = getExpiredSessionState(sessionCache, configuration);\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function updateSessionState(partialSessionState) {\n processSessionStoreOperations({\n process: (sessionState) => ({ ...sessionState, ...partialSessionState }),\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n return {\n expandOrRenewSession: throttledExpandOrRenewSession,\n expandSession,\n getSession: () => sessionCache,\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable,\n restartSession: startSession,\n expire: () => {\n cancelExpandOrRenewSession();\n expireSession(sessionCache);\n synchronizeSession(getExpiredSessionState(sessionCache, configuration));\n },\n stop: () => {\n clearInterval(watchSessionTimeoutId);\n },\n updateSessionState,\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { getInitCookie } from '../../browser/cookie';\nexport const SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport const SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n const value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n const value = window._DATADOG_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","export const TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n usage: 'usage',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { NO_ERROR_STACK_PRESENT_MESSAGE, isError } from '../error/error';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { getConnectivity } from '../connectivity';\nimport { createBoundedBuffer } from '../../tools/boundedBuffer';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nconst ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n];\nconst TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\n// eslint-disable-next-line local-rules/disallow-side-effects\nlet preStartTelemetryBuffer = createBoundedBuffer();\nlet onRawTelemetryEventCollected = (event) => {\n preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event));\n};\nexport function startTelemetry(telemetryService, configuration) {\n let contextProvider;\n const observable = new Observable();\n const alreadySentEvents = new Set();\n const telemetryEnabled = !TELEMETRY_EXCLUDED_SITES.includes(configuration.site) && performDraw(configuration.telemetrySampleRate);\n const telemetryEnabledPerType = {\n [TelemetryType.log]: telemetryEnabled,\n [TelemetryType.configuration]: telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate),\n [TelemetryType.usage]: telemetryEnabled && performDraw(configuration.telemetryUsageSampleRate),\n };\n const runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = (rawEvent) => {\n const stringifiedEvent = jsonStringify(rawEvent);\n if (telemetryEnabledPerType[rawEvent.type] &&\n alreadySentEvents.size < configuration.maxTelemetryEventsPerPage &&\n !alreadySentEvents.has(stringifiedEvent)) {\n const event = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event);\n sendToExtension('telemetry', event);\n alreadySentEvents.add(stringifiedEvent);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"6.2.1\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n connectivity: getConnectivity(),\n sdk_setup: \"npm\",\n }),\n experimental_features: Array.from(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: (provider) => {\n contextProvider = provider;\n },\n observable,\n enabled: telemetryEnabled,\n };\n}\nfunction getRuntimeEnvInfo() {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n };\n}\nexport function startFakeTelemetry() {\n const events = [];\n onRawTelemetryEventCollected = (event) => {\n events.push(event);\n };\n return events;\n}\n// need to be called after telemetry context is provided and observers are registered\nexport function drainPreStartTelemetry() {\n preStartTelemetryBuffer.drain();\n}\nexport function resetTelemetry() {\n preStartTelemetryBuffer = createBoundedBuffer();\n onRawTelemetryEventCollected = (event) => {\n preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event));\n };\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n onRawTelemetryEventCollected({\n type: TelemetryType.log,\n message,\n status: \"debug\" /* StatusType.debug */,\n ...context,\n });\n}\nexport function addTelemetryError(e, context) {\n onRawTelemetryEventCollected({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n ...formatError(e),\n ...context,\n });\n}\nexport function addTelemetryConfiguration(configuration) {\n onRawTelemetryEventCollected({\n type: TelemetryType.configuration,\n configuration,\n });\n}\nexport function addTelemetryUsage(usage) {\n onRawTelemetryEventCollected({\n type: TelemetryType.usage,\n usage,\n });\n}\nexport function formatError(e) {\n if (isError(e)) {\n const stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: `${\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */} ${jsonStringify(e)}`,\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter((frame) => !frame.url || ALLOWED_FRAME_URLS.some((allowedFrameUrl) => frame.url.startsWith(allowedFrameUrl)));\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { Observable } from '../tools/observable';\nexport const TrackingConsent = {\n GRANTED: 'granted',\n NOT_GRANTED: 'not-granted',\n};\nexport function createTrackingConsentState(currentConsent) {\n const observable = new Observable();\n return {\n tryToInit(trackingConsent) {\n if (!currentConsent) {\n currentConsent = trackingConsent;\n }\n },\n update(trackingConsent) {\n currentConsent = trackingConsent;\n observable.notify();\n },\n isGranted() {\n return currentConsent === TrackingConsent.GRANTED;\n },\n observable,\n };\n}\n//# sourceMappingURL=trackingConsent.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n const user = { ...newUser };\n const keys = ['id', 'name', 'email'];\n keys.forEach((key) => {\n if (key in user) {\n /* eslint-disable @typescript-eslint/no-base-to-string */\n user[key] = String(user[key]);\n }\n });\n return user;\n}\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n const isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\nexport function generateAnonymousId() {\n return Math.floor(Math.random() * Math.pow(36, 10))\n .toString(36)\n .padStart(10, '0');\n}\n//# sourceMappingURL=user.js.map","// eslint-disable-next-line no-restricted-syntax\nexport class AbstractLifeCycle {\n constructor() {\n this.callbacks = {};\n }\n notify(eventType, data) {\n const eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach((callback) => callback(data));\n }\n }\n subscribe(eventType, callback) {\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: () => {\n this.callbacks[eventType] = this.callbacks[eventType].filter((other) => callback !== other);\n },\n };\n }\n}\n//# sourceMappingURL=abstractLifeCycle.js.map","import { removeItem } from './utils/arrayUtils';\nconst BUFFER_LIMIT = 500;\nexport function createBoundedBuffer() {\n const buffer = [];\n const add = (callback) => {\n const length = buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n buffer.splice(0, 1);\n }\n };\n const remove = (callback) => {\n removeItem(buffer, callback);\n };\n const drain = (arg) => {\n buffer.forEach((callback) => callback(arg));\n buffer.length = 0;\n };\n return {\n add,\n remove,\n drain,\n };\n}\n//# sourceMappingURL=boundedBuffer.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return (...args) => {\n try {\n return fn(...args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport const ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport const globalConsole = console;\nexport const originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach((name) => {\n originalConsoleMethods[name] = globalConsole[name];\n});\nconst PREFIX = 'Datadog Browser SDK:';\nexport const display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\nexport const DOCS_ORIGIN = 'https://docs.datadoghq.com';\nexport const DOCS_TROUBLESHOOTING = `${DOCS_ORIGIN}/real_user_monitoring/browser/troubleshooting`;\nexport const MORE_DETAILS = 'More details:';\n//# sourceMappingURL=display.js.map","import { computeBytesCount } from './utils/byteUtils';\nexport function createIdentityEncoder() {\n let output = '';\n let outputBytesCount = 0;\n return {\n isAsync: false,\n get isEmpty() {\n return !output;\n },\n write(data, callback) {\n const additionalEncodedBytesCount = computeBytesCount(data);\n outputBytesCount += additionalEncodedBytesCount;\n output += data;\n if (callback) {\n callback(additionalEncodedBytesCount);\n }\n },\n finish(callback) {\n callback(this.finishSync());\n },\n finishSync() {\n const result = {\n output,\n outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: '',\n };\n output = '';\n outputBytesCount = 0;\n return result;\n },\n estimateEncodedBytesCount(data) {\n return data.length;\n },\n };\n}\n//# sourceMappingURL=encoder.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\nimport { objectHasValue } from './utils/objectUtils';\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"WRITABLE_RESOURCE_GRAPHQL\"] = \"writable_resource_graphql\";\n ExperimentalFeature[\"REMOTE_CONFIGURATION\"] = \"remote_configuration\";\n ExperimentalFeature[\"ACTION_NAME_MASKING\"] = \"action_name_masking\";\n ExperimentalFeature[\"CONSISTENT_TRACE_SAMPLING\"] = \"consistent_trace_sampling\";\n ExperimentalFeature[\"MISSING_URL_CONTEXT_TELEMETRY\"] = \"missing_url_context_telemetry\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nconst enabledExperimentalFeatures = new Set();\nexport function initFeatureFlags(enableExperimentalFeatures) {\n if (Array.isArray(enableExperimentalFeatures)) {\n addExperimentalFeatures(enableExperimentalFeatures.filter((flag) => objectHasValue(ExperimentalFeature, flag)));\n }\n}\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach((flag) => {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get() {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n let globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n const browserWindow = getGlobalObject();\n let original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nimport { createHandlingStack } from './stackTrace/handlingStack';\n/**\n * Instruments a method on a object, calling the given callback before the original method is\n * invoked. The callback receives an object with information about the method call.\n *\n * This function makes sure that we are \"good citizens\" regarding third party instrumentations: when\n * removing the instrumentation, the original method is usually restored, but if a third party\n * instrumentation was set after ours, we keep it in place and just replace our instrumentation with\n * a noop.\n *\n * Note: it is generally better to instrument methods that are \"owned\" by the object instead of ones\n * that are inherited from the prototype chain. Example:\n * * do: `instrumentMethod(Array.prototype, 'push', ...)`\n * * don't: `instrumentMethod([], 'push', ...)`\n *\n * This method is also used to set event handler properties (ex: window.onerror = ...), as it has\n * the same requirements as instrumenting a method:\n * * if the event handler is already set by a third party, we need to call it and not just blindly\n * override it.\n * * if the event handler is set by a third party after us, we need to keep it in place when\n * removing ours.\n *\n * @example\n *\n * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {\n * console.log('Before calling fetch on', target, 'with parameters', parameters)\n *\n * onPostCall((result) => {\n * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)\n * })\n * })\n */\nexport function instrumentMethod(targetPrototype, method, onPreCall, { computeHandlingStack } = {}) {\n let original = targetPrototype[method];\n if (typeof original !== 'function') {\n if (method in targetPrototype && method.startsWith('on')) {\n original = noop;\n }\n else {\n return { stop: noop };\n }\n }\n let stopped = false;\n const instrumentation = function () {\n if (stopped) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return original.apply(this, arguments);\n }\n const parameters = Array.from(arguments);\n let postCallCallback;\n callMonitored(onPreCall, null, [\n {\n target: this,\n parameters,\n onPostCall: (callback) => {\n postCallCallback = callback;\n },\n handlingStack: computeHandlingStack ? createHandlingStack() : undefined,\n },\n ]);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n const result = original.apply(this, parameters);\n if (postCallCallback) {\n callMonitored(postCallCallback, null, [result]);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n targetPrototype[method] = instrumentation;\n return {\n stop: () => {\n stopped = true;\n // If the instrumentation has been removed by a third party, keep the last one\n if (targetPrototype[method] === instrumentation) {\n targetPrototype[method] = original;\n }\n },\n };\n}\nexport function instrumentSetter(targetPrototype, property, after) {\n const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n const stoppedInstrumentation = noop;\n let instrumentation = (target, value) => {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(() => {\n if (instrumentation !== stoppedInstrumentation) {\n after(target, value);\n }\n }, 0);\n };\n const instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(targetPrototype, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: () => {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(targetPrototype, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(targetPrototype, property, originalDescriptor);\n }\n instrumentation = stoppedInstrumentation;\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { getType } from './utils/typeUtils';\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker = createCircularReferenceChecker()) {\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n const flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n const merged = Array.isArray(destination) ? destination : [];\n for (let i = 0; i < source.length; ++i) {\n merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker);\n }\n return merged;\n }\n const merged = getType(destination) === 'object' ? destination : {};\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine(...sources) {\n let destination;\n for (const source of sources) {\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n const set = new WeakSet();\n return {\n hasAlreadyBeenSeen(value) {\n const has = set.has(value);\n if (!has) {\n set.add(value);\n }\n return has;\n },\n };\n }\n const array = [];\n return {\n hasAlreadyBeenSeen(value) {\n const has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","import { display } from './display';\nlet onMonitorErrorCollected;\nlet debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n const originalMethod = descriptor.value;\n descriptor.value = function (...args) {\n const decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n monitorError(e);\n }\n}\nexport function monitorError(e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n}\nexport function displayIfDebugEnabled(...args) {\n if (debugMode) {\n display.error('[MONITOR]', ...args);\n }\n}\n//# sourceMappingURL=monitor.js.map","// eslint-disable-next-line no-restricted-syntax\nexport class Observable {\n constructor(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n subscribe(f) {\n this.observers.push(f);\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;\n }\n return {\n unsubscribe: () => {\n this.observers = this.observers.filter((other) => f !== other);\n if (!this.observers.length && this.onLastUnsubscribe) {\n this.onLastUnsubscribe();\n }\n },\n };\n }\n notify(data) {\n this.observers.forEach((observer) => observer(data));\n }\n}\nexport function mergeObservables(...observables) {\n return new Observable((globalObservable) => {\n const subscriptions = observables.map((observable) => observable.subscribe((data) => globalObservable.notify(data)));\n return () => subscriptions.forEach((subscription) => subscription.unsubscribe());\n });\n}\n//# sourceMappingURL=observable.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n const reader = stream.getReader();\n const chunks = [];\n let readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor((result) => {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor((error) => callback(error)));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n let bytes;\n let limitExceeded;\n if (options.collectStreamBody) {\n let completeBuffer;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer = new Uint8Array(readBytesCount);\n let offset = 0;\n chunks.forEach((chunk) => {\n completeBuffer.set(chunk, offset);\n offset += chunk.length;\n });\n }\n bytes = completeBuffer.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","export function sendToExtension(type, payload) {\n const callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type, payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n const restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n const restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n const object = value;\n const objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return () => {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nconst SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nconst JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nconst KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT) {\n // Unbind any toJSON function we may have on [] or {} prototypes\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n const containerQueue = [];\n const visitedObjectsWithPath = new WeakMap();\n const sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n const serializedSanitizedData = JSON.stringify(sanitizedData);\n let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n const containerToProcess = containerQueue.shift();\n let separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (let key = 0; key < containerToProcess.source.length; key++) {\n const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (const key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n const sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n const sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n const sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return `[Reference seen at ${visitedObjectsWithPath.get(sourceAsObject)}]`;\n }\n // Add processed source to queue\n const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath;\n const target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return `[BigInt] ${value.toString()}`;\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return `[Function] ${value.name || 'unknown'}`;\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return `[Symbol] ${value.description || value.toString()}`;\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n */\nfunction sanitizeObjects(value) {\n try {\n if (value instanceof Event) {\n return sanitizeEvent(value);\n }\n if (value instanceof RegExp) {\n return `[RegExp] ${value.toString()}`;\n }\n // Handle all remaining object types in a generic way\n const result = Object.prototype.toString.call(value);\n const match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return `[${match[1]}]`;\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\nfunction sanitizeEvent(event) {\n return {\n type: event.type,\n isTrusted: event.isTrusted,\n currentTarget: event.currentTarget ? sanitizeObjects(event.currentTarget) : null,\n target: event.target ? sanitizeObjects(event.target) : null,\n };\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n const object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(`The data provided has been ${changeType} as it is over the limit of ${maxCharacterCount} characters:`, source);\n}\n//# sourceMappingURL=sanitize.js.map","/**\n * Cross-browser stack trace computation.\n *\n * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js\n */\nconst UNKNOWN_FUNCTION = '?';\nexport function computeStackTrace(ex) {\n const stack = [];\n let stackProperty = tryToGetString(ex, 'stack');\n const exString = String(ex);\n if (stackProperty && stackProperty.startsWith(exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach((line) => {\n const stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack,\n };\n}\nconst fileUrl = '((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nconst filePosition = '(?::(\\\\d+))';\nconst CHROME_LINE_RE = new RegExp(`^\\\\s*at (.*?) ?\\\\(${fileUrl}${filePosition}?${filePosition}?\\\\)?\\\\s*$`, 'i');\nconst CHROME_EVAL_RE = new RegExp(`\\\\((\\\\S*)${filePosition}${filePosition}\\\\)`);\nfunction parseChromeLine(line) {\n const parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n const isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n const submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nconst CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(`^\\\\s*at ?${fileUrl}${filePosition}?${filePosition}??\\\\s*$`, 'i');\nfunction parseChromeAnonymousLine(line) {\n const parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nconst WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n const parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nconst GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n const parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n const submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n const value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\nexport function computeStackTraceFromOnErrorMessage(messageObj, url, line, column) {\n const stack = [{ url, column, line }];\n const { name, message } = tryToParseMessage(messageObj);\n return {\n name,\n message,\n stack,\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nconst ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\nfunction tryToParseMessage(messageObj) {\n let name;\n let message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n [, name, message] = ERROR_TYPES_RE.exec(messageObj);\n }\n return { name, message };\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { callMonitored } from '../monitor';\nimport { computeStackTrace } from './computeStackTrace';\n/**\n * Creates a stacktrace without SDK internal frames.\n * Constraints:\n * - Has to be called at the utmost position of the call stack.\n * - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n const internalFramesToSkip = 2;\n const error = new Error();\n let formattedStack;\n callMonitored(() => {\n const stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function toStackTraceString(stack) {\n let result = formatErrorMessage(stack);\n stack.stack.forEach((frame) => {\n const func = frame.func === '?' ? '' : frame.func;\n const args = frame.args && frame.args.length > 0 ? `(${frame.args.join(', ')})` : '';\n const line = frame.line ? `:${frame.line}` : '';\n const column = frame.line && frame.column ? `:${frame.column}` : '';\n result += `\\n at ${func}${args} @ ${frame.url}${line}${column}`;\n });\n return result;\n}\nexport function formatErrorMessage(stack) {\n return `${stack.name || 'Error'}: ${stack.message}`;\n}\n//# sourceMappingURL=handlingStack.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","export function removeDuplicates(array) {\n const set = new Set();\n array.forEach((item) => set.add(item));\n return Array.from(set);\n}\nexport function removeItem(array, item) {\n const index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrayUtils.js.map","export function isChromium() {\n return detectBrowserCached() === 0 /* Browser.CHROMIUM */;\n}\nexport function isSafari() {\n return detectBrowserCached() === 1 /* Browser.SAFARI */;\n}\nlet browserCache;\nfunction detectBrowserCached() {\n return browserCache !== null && browserCache !== void 0 ? browserCache : (browserCache = detectBrowser());\n}\n// Exported only for tests\nexport function detectBrowser(browserWindow = window) {\n var _a;\n const userAgent = browserWindow.navigator.userAgent;\n if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {\n return 0 /* Browser.CHROMIUM */;\n }\n if (\n // navigator.vendor is deprecated, but it is the most resilient way we found to detect\n // \"Apple maintained browsers\" (AKA Safari). If one day it gets removed, we still have the\n // useragent test as a semi-working fallback.\n ((_a = browserWindow.navigator.vendor) === null || _a === void 0 ? void 0 : _a.indexOf('Apple')) === 0 ||\n (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))) {\n return 1 /* Browser.SAFARI */;\n }\n return 2 /* Browser.OTHER */;\n}\n//# sourceMappingURL=browserDetection.js.map","export const ONE_KIBI_BYTE = 1024;\nexport const ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nconst HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n const length = buffers.reduce((total, buffer) => total + buffer.length, 0);\n const result = new Uint8Array(length);\n let offset = 0;\n for (const buffer of buffers) {\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n const needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n const needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n let inWaitPeriod = false;\n let pendingExecutionWithParameters;\n let pendingTimeoutId;\n return {\n throttled: (...parameters) => {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn(...parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(() => {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn(...pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: () => {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold;\n}\nexport function round(num, decimals) {\n return +num.toFixed(decimals);\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100;\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n//# sourceMappingURL=numberUtils.js.map","export function shallowClone(object) {\n return { ...object };\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some((key) => object[key] === value);\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n const newObject = {};\n for (const key of Object.keys(object)) {\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","export function findLast(array, predicate) {\n for (let i = array.length - 1; i >= 0; i -= 1) {\n const item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\n// Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using\n// the native Object.values and Object.entries directly\nexport function objectValues(object) {\n return Object.values(object);\n}\nexport function objectEntries(object) {\n return Object.entries(object);\n}\n//# sourceMappingURL=polyfills.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (_a) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID);\n}\nconst COMMA_SEPARATED_KEY_VALUE = /([\\w-]+)\\s*=\\s*([^;]+)/g;\nexport function findCommaSeparatedValue(rawString, name) {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n if (match[1] === name) {\n return match[2];\n }\n }\n else {\n break;\n }\n }\n}\nexport function findCommaSeparatedValues(rawString) {\n const result = new Map();\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n result.set(match[1], match[2]);\n }\n else {\n break;\n }\n }\n return result;\n}\nexport function safeTruncate(candidate, length, suffix = '') {\n const lastChar = candidate.charCodeAt(length - 1);\n const isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n const correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return `${candidate.slice(0, correctedLength)}${suffix}`;\n}\n//# sourceMappingURL=stringUtils.js.map","import { isNumber, round } from './numberUtils';\nexport const ONE_SECOND = 1000;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\nexport const ONE_DAY = 24 * ONE_HOUR;\nexport const ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nexport function timeStampToClocks(timeStamp) {\n return { relative: getRelativeTime(timeStamp), timeStamp };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n const correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n// Get the time since the navigation was started.\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nlet navigationStart;\n/**\n * Notes: this does not use `performance.timeOrigin` because:\n * - It doesn't seem to reflect the actual time on which the navigation has started: it may be much farther in the past,\n * at least in Firefox 71. (see: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926)\n * - It is not supported in Safari <15\n */\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\n//# sourceMappingURL=timeUtils.js.map","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n}\n//# sourceMappingURL=typeUtils.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, location.href).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getPathName(url) {\n const pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : `/${pathname}`;\n}\nexport function buildUrl(url, base) {\n const supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(`Failed to construct URL: ${String(error)} ${jsonStringify({ url, base })}`);\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(`Invalid URL: '${url}'`);\n }\n let doc = document;\n const anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n const baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nconst originalURL = URL;\nlet isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n const url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\n//# sourceMappingURL=urlPolyfill.js.map","import { setInterval, clearInterval } from './timer';\nimport { removeItem } from './utils/arrayUtils';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nconst END_OF_TIMES = Infinity;\nexport const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\nexport function createValueHistory({ expireDelay, maxEntries, }) {\n let entries = [];\n const deletedEntries = [];\n const clearOldValuesInterval = setInterval(() => clearOldValues(), CLEAR_OLD_VALUES_INTERVAL);\n function clearOldValues() {\n const oldTimeThreshold = relativeNow() - expireDelay;\n while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {\n const entry = entries.pop();\n if (entry) {\n deletedEntries.push(entry.startTime);\n }\n }\n }\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n function add(value, startTime) {\n const entry = {\n value,\n startTime,\n endTime: END_OF_TIMES,\n remove: () => {\n removeItem(entries, entry);\n },\n close: (endTime) => {\n entry.endTime = endTime;\n },\n };\n if (maxEntries && entries.length >= maxEntries) {\n entries.pop();\n }\n entries.unshift(entry);\n return entry;\n }\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n *\n * If `option.returnInactive` is true, returns the value at `startTime` (active or not).\n */\n function find(startTime = END_OF_TIMES, options = { returnInactive: false }) {\n for (const entry of entries) {\n if (entry.startTime <= startTime) {\n if (options.returnInactive || startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n }\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n function closeActive(endTime) {\n const latestEntry = entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n }\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n function findAll(startTime = END_OF_TIMES, duration = 0) {\n const endTime = addDuration(startTime, duration);\n return entries\n .filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n .map((entry) => entry.value);\n }\n function getAllEntries() {\n return entries.map(({ startTime, endTime, value }) => ({\n startTime,\n endTime: endTime === END_OF_TIMES ? 'Infinity' : endTime,\n value,\n }));\n }\n function getDeletedEntries() {\n return deletedEntries;\n }\n /**\n * Remove all entries from this collection.\n */\n function reset() {\n entries = [];\n }\n /**\n * Stop internal garbage collection of past entries.\n */\n function stop() {\n clearInterval(clearOldValuesInterval);\n }\n return { add, find, closeActive, findAll, reset, stop, getAllEntries, getDeletedEntries };\n}\n//# sourceMappingURL=valueHistory.js.map","import { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n const eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getCapabilities() {\n var _a;\n return JSON.parse(((_a = eventBridgeGlobal.getCapabilities) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal)) || '[]');\n },\n getPrivacyLevel() {\n var _a;\n return (_a = eventBridgeGlobal.getPrivacyLevel) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal);\n },\n getAllowedWebViewHosts() {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send(eventType, event, viewId) {\n const view = viewId ? { id: viewId } : undefined;\n eventBridgeGlobal.send(JSON.stringify({ eventType, event, view }));\n },\n };\n}\nexport function bridgeSupports(capability) {\n const bridge = getEventBridge();\n return !!bridge && bridge.getCapabilities().includes(capability);\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n const bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some((allowedHost) => currentHost === allowedHost || currentHost.endsWith(`.${allowedHost}`)));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { setTimeout } from '../tools/timer';\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils';\nimport { isServerError } from '../tools/utils/responseUtils';\nimport { ErrorSource } from '../domain/error/error.types';\nexport const MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport const MAX_ONGOING_REQUESTS = 32;\nexport const MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport const MAX_BACKOFF_TIME = ONE_MINUTE;\nexport const INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, trackType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: () => retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, trackType, reportError),\n onFailure: () => {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, trackType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(() => {\n const payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: () => {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, trackType, reportError);\n },\n onFailure: () => {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, { onSuccess, onFailure }) {\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, (response) => {\n state.bandwidthMonitor.remove(payload);\n if (!shouldRetryRequest(response)) {\n state.transportStatus = 0 /* TransportStatus.UP */;\n onSuccess();\n }\n else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? 1 /* TransportStatus.FAILURE_DETECTED */ : 2 /* TransportStatus.DOWN */;\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n };\n onFailure();\n }\n });\n}\nfunction retryQueuedPayloads(reason, state, sendStrategy, trackType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: `Reached max ${trackType} events size queued for upload: ${MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE}MiB`,\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n const previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, trackType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n const queue = [];\n return {\n bytesCount: 0,\n enqueue(payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first() {\n return queue[0];\n },\n dequeue() {\n const payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size() {\n return queue.length;\n },\n isFull() {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle(payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add(payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove(payload) {\n this.ongoingRequestCount -= 1;\n this.ongoingByteCount -= payload.bytesCount;\n },\n };\n}\n//# sourceMappingURL=sendWithRetryStrategy.js.map","import { addTelemetryError } from '../domain/telemetry';\nimport { monitor } from '../tools/monitor';\nimport { addEventListener } from '../browser/addEventListener';\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy';\nexport function createHttpRequest(endpointBuilder, bytesLimit, reportError) {\n const retryState = newRetryState();\n const sendStrategyForRetry = (payload, onResponse) => fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse);\n return {\n send: (payload) => {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.trackType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: (payload) => {\n sendBeaconStrategy(endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(endpointBuilder, bytesLimit, payload) {\n const canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n const beaconUrl = endpointBuilder.build('beacon', payload);\n const isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n const xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(xhrUrl, payload.data);\n}\nlet hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse) {\n const canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n const fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor((response) => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type })), monitor(() => {\n const xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n const xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(xhrUrl, payload.data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(url, data, onResponse) {\n const request = new XMLHttpRequest();\n request.open('POST', url, true);\n if (data instanceof Blob) {\n // When using a Blob instance, IE does not use its 'type' to define the 'Content-Type' header\n // automatically, so the intake request ends up being rejected with an HTTP status 415\n // Defining the header manually fixes this issue.\n request.setRequestHeader('Content-Type', data.type);\n }\n addEventListener(\n // allow untrusted event to acount for synthetic event dispatched by third party xhr wrapper\n { allowUntrustedEvents: true }, request, 'loadend', () => {\n onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: request.status });\n }, {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n });\n request.send(data);\n}\n//# sourceMappingURL=httpRequest.js.map","import { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nexport function createBatch({ encoder, request, flushController, messageBytesLimit, }) {\n let upsertBuffer = {};\n const flushSubscription = flushController.flushObservable.subscribe((event) => flush(event));\n function push(serializedMessage, estimatedMessageBytesCount, key) {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);\n if (key !== undefined) {\n upsertBuffer[key] = serializedMessage;\n flushController.notifyAfterAddMessage();\n }\n else {\n encoder.write(encoder.isEmpty ? serializedMessage : `\\n${serializedMessage}`, (realMessageBytesCount) => {\n flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount);\n });\n }\n }\n function hasMessageFor(key) {\n return key !== undefined && upsertBuffer[key] !== undefined;\n }\n function remove(key) {\n const removedMessage = upsertBuffer[key];\n delete upsertBuffer[key];\n const messageBytesCount = encoder.estimateEncodedBytesCount(removedMessage);\n flushController.notifyAfterRemoveMessage(messageBytesCount);\n }\n function addOrUpdate(message, key) {\n const serializedMessage = jsonStringify(message);\n const estimatedMessageBytesCount = encoder.estimateEncodedBytesCount(serializedMessage);\n if (estimatedMessageBytesCount >= messageBytesLimit) {\n display.warn(`Discarded a message whose size was bigger than the maximum allowed size ${messageBytesLimit}KB. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#technical-limitations`);\n return;\n }\n if (hasMessageFor(key)) {\n remove(key);\n }\n push(serializedMessage, estimatedMessageBytesCount, key);\n }\n function flush(event) {\n const upsertMessages = objectValues(upsertBuffer).join('\\n');\n upsertBuffer = {};\n const isPageExit = isPageExitReason(event.reason);\n const send = isPageExit ? request.sendOnExit : request.send;\n if (isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n encoder.isAsync) {\n const encoderResult = encoder.finishSync();\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult));\n }\n // Send messages that are not yet encoded at this point\n const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n');\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n });\n }\n }\n else {\n if (upsertMessages) {\n encoder.write(encoder.isEmpty ? upsertMessages : `\\n${upsertMessages}`);\n }\n encoder.finish((encoderResult) => {\n send(formatPayloadFromEncoder(encoderResult));\n });\n }\n }\n return {\n flushController,\n add: addOrUpdate,\n upsert: addOrUpdate,\n stop: flushSubscription.unsubscribe,\n };\n}\nfunction formatPayloadFromEncoder(encoderResult) {\n let data;\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output;\n }\n else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n });\n }\n return {\n data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n };\n}\n//# sourceMappingURL=batch.js.map","import { Observable } from '../tools/observable';\nimport { clearTimeout, setTimeout } from '../tools/timer';\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController({ messagesLimit, bytesLimit, durationLimit, pageExitObservable, sessionExpireObservable, }) {\n const pageExitSubscription = pageExitObservable.subscribe((event) => flush(event.reason));\n const sessionExpireSubscription = sessionExpireObservable.subscribe(() => flush('session_expire'));\n const flushObservable = new Observable(() => () => {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n });\n let currentBytesCount = 0;\n let currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n const messagesCount = currentMessagesCount;\n const bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount,\n bytesCount,\n });\n }\n let durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(() => {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable,\n get messagesCount() {\n return currentMessagesCount;\n },\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n *\n * @param estimatedMessageBytesCount: an estimation of the message bytes count once it is\n * actually added.\n */\n notifyBeforeAddMessage(estimatedMessageBytesCount) {\n if (currentBytesCount + estimatedMessageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += estimatedMessageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n *\n * @param messageBytesCountDiff: the difference between the estimated message bytes count and\n * its actual bytes count once added to the pool.\n */\n notifyAfterAddMessage(messageBytesCountDiff = 0) {\n currentBytesCount += messageBytesCountDiff;\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n *\n * @param messageBytesCount: the message bytes count that was added to the pool. Should\n * correspond to the sum of bytes counts passed to `notifyBeforeAddMessage` and\n * `notifyAfterAddMessage`.\n */\n notifyAfterRemoveMessage(messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { createBatch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable, batchFactoryImp = createBatch) {\n const primaryBatch = createBatchFromConfig(configuration, primary);\n const replicaBatch = replica && createBatchFromConfig(configuration, replica);\n function createBatchFromConfig(configuration, { endpoint, encoder }) {\n return batchFactoryImp({\n encoder,\n request: createHttpRequest(endpoint, configuration.batchBytesLimit, reportError),\n flushController: createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable,\n sessionExpireObservable,\n }),\n messageBytesLimit: configuration.messageBytesLimit,\n });\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add(message, replicated = true) {\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: (message, key) => {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: () => {\n primaryBatch.stop();\n if (replicaBatch) {\n replicaBatch.stop();\n }\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","export function isAuthorized(status, handlerType, logger) {\n const loggerHandler = logger.getHandler();\n const sanitizedHandlerType = Array.isArray(loggerHandler) ? loggerHandler : [loggerHandler];\n return STATUS_PRIORITIES[status] >= STATUS_PRIORITIES[logger.getLevel()] && sanitizedHandlerType.includes(handlerType);\n}\nexport const StatusType = {\n ok: 'ok',\n debug: 'debug',\n info: 'info',\n notice: 'notice',\n warn: 'warn',\n error: 'error',\n critical: 'critical',\n alert: 'alert',\n emerg: 'emerg',\n};\nexport const STATUS_PRIORITIES = {\n [StatusType.ok]: 0,\n [StatusType.debug]: 1,\n [StatusType.info]: 2,\n [StatusType.notice]: 4,\n [StatusType.warn]: 5,\n [StatusType.error]: 6,\n [StatusType.critical]: 7,\n [StatusType.alert]: 8,\n [StatusType.emerg]: 9,\n};\n//# sourceMappingURL=isAuthorized.js.map","export function createErrorFieldFromRawError(rawError, { \n/**\n * Set this to `true` to include the error message in the error field. In most cases, the error\n * message is already included in the log message, so we don't need to include it again.\n */\nincludeMessage = false, } = {}) {\n return {\n stack: rawError.stack,\n kind: rawError.type,\n message: includeMessage ? rawError.message : undefined,\n causes: rawError.causes,\n fingerprint: rawError.fingerprint,\n handling: rawError.handling,\n };\n}\n//# sourceMappingURL=createErrorFieldFromRawError.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { clocksNow, computeRawError, computeStackTrace, combine, createContextManager, ErrorSource, monitored, sanitize, createHandlingStack, isError, } from '@datadog/browser-core';\nimport { isAuthorized, StatusType } from './logger/isAuthorized';\nimport { createErrorFieldFromRawError } from './createErrorFieldFromRawError';\nexport const HandlerType = {\n console: 'console',\n http: 'http',\n silent: 'silent',\n};\nexport const STATUSES = Object.keys(StatusType);\n// note: it is safe to merge declarations as long as the methods are actually defined on the prototype\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging, no-restricted-syntax\nexport class Logger {\n constructor(handleLogStrategy, customerDataTracker, name, handlerType = HandlerType.http, level = StatusType.debug, loggerContext = {}) {\n this.handleLogStrategy = handleLogStrategy;\n this.handlerType = handlerType;\n this.level = level;\n this.contextManager = createContextManager(customerDataTracker);\n this.contextManager.setContext(loggerContext);\n if (name) {\n this.contextManager.setContextProperty('logger', { name });\n }\n }\n logImplementation(message, messageContext, status = StatusType.info, error, handlingStack) {\n const sanitizedMessageContext = sanitize(messageContext);\n let context;\n if (error !== undefined && error !== null) {\n const rawError = computeRawError({\n stackTrace: isError(error) ? computeStackTrace(error) : undefined,\n originalError: error,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.LOGGER,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n startClocks: clocksNow(),\n });\n context = combine({\n error: createErrorFieldFromRawError(rawError, { includeMessage: true }),\n }, sanitizedMessageContext);\n }\n else {\n context = sanitizedMessageContext;\n }\n this.handleLogStrategy({\n message: sanitize(message),\n context,\n status,\n }, this, handlingStack);\n }\n log(message, messageContext, status = StatusType.info, error) {\n let handlingStack;\n if (isAuthorized(status, HandlerType.http, this)) {\n handlingStack = createHandlingStack();\n }\n this.logImplementation(message, messageContext, status, error, handlingStack);\n }\n setContext(context) {\n this.contextManager.setContext(context);\n }\n getContext() {\n return this.contextManager.getContext();\n }\n setContextProperty(key, value) {\n this.contextManager.setContextProperty(key, value);\n }\n removeContextProperty(key) {\n this.contextManager.removeContextProperty(key);\n }\n clearContext() {\n this.contextManager.clearContext();\n }\n setHandler(handler) {\n this.handlerType = handler;\n }\n getHandler() {\n return this.handlerType;\n }\n setLevel(level) {\n this.level = level;\n }\n getLevel() {\n return this.level;\n }\n}\n__decorate([\n monitored\n], Logger.prototype, \"logImplementation\", null);\n/* eslint-disable local-rules/disallow-side-effects */\nLogger.prototype.ok = createLoggerMethod(StatusType.ok);\nLogger.prototype.debug = createLoggerMethod(StatusType.debug);\nLogger.prototype.info = createLoggerMethod(StatusType.info);\nLogger.prototype.notice = createLoggerMethod(StatusType.notice);\nLogger.prototype.warn = createLoggerMethod(StatusType.warn);\nLogger.prototype.error = createLoggerMethod(StatusType.error);\nLogger.prototype.critical = createLoggerMethod(StatusType.critical);\nLogger.prototype.alert = createLoggerMethod(StatusType.alert);\nLogger.prototype.emerg = createLoggerMethod(StatusType.emerg);\nfunction createLoggerMethod(status) {\n return function (message, messageContext, error) {\n let handlingStack;\n if (isAuthorized(status, HandlerType.http, this)) {\n handlingStack = createHandlingStack();\n }\n this.logImplementation(message, messageContext, status, error, handlingStack);\n };\n}\n//# sourceMappingURL=logger.js.map","export function buildCommonContext(globalContextManager, userContextManager) {\n return {\n view: {\n referrer: document.referrer,\n url: window.location.href,\n },\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n };\n}\n//# sourceMappingURL=commonContext.js.map","import { serializeConfiguration, ONE_KIBI_BYTE, validateAndBuildConfiguration, display, removeDuplicates, ConsoleApiName, RawReportType, objectValues, } from '@datadog/browser-core';\n/**\n * arbitrary value, byte precision not needed\n */\nexport const DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT = 32 * ONE_KIBI_BYTE;\nexport function validateAndBuildLogsConfiguration(initConfiguration) {\n if (initConfiguration.usePciIntake === true && initConfiguration.site && initConfiguration.site !== 'datadoghq.com') {\n display.warn('PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.');\n }\n const baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n const forwardConsoleLogs = validateAndBuildForwardOption(initConfiguration.forwardConsoleLogs, objectValues(ConsoleApiName), 'Forward Console Logs');\n const forwardReports = validateAndBuildForwardOption(initConfiguration.forwardReports, objectValues(RawReportType), 'Forward Reports');\n if (!baseConfiguration || !forwardConsoleLogs || !forwardReports) {\n return;\n }\n if (initConfiguration.forwardErrorsToLogs && !forwardConsoleLogs.includes(ConsoleApiName.error)) {\n forwardConsoleLogs.push(ConsoleApiName.error);\n }\n return {\n forwardErrorsToLogs: initConfiguration.forwardErrorsToLogs !== false,\n forwardConsoleLogs,\n forwardReports,\n requestErrorResponseLengthLimit: DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT,\n ...baseConfiguration,\n };\n}\nexport function validateAndBuildForwardOption(option, allowedValues, label) {\n if (option === undefined) {\n return [];\n }\n if (!(option === 'all' || (Array.isArray(option) && option.every((api) => allowedValues.includes(api))))) {\n display.error(`${label} should be \"all\" or an array with allowed values \"${allowedValues.join('\", \"')}\"`);\n return;\n }\n return option === 'all' ? allowedValues : removeDuplicates(option);\n}\nexport function serializeLogsConfiguration(configuration) {\n const baseSerializedInitConfiguration = serializeConfiguration(configuration);\n return {\n forward_errors_to_logs: configuration.forwardErrorsToLogs,\n forward_console_logs: configuration.forwardConsoleLogs,\n forward_reports: configuration.forwardReports,\n use_pci_intake: configuration.usePciIntake,\n ...baseSerializedInitConfiguration,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { createBoundedBuffer, canUseEventBridge, display, displayAlreadyInitializedError, initFeatureFlags, initFetchObservable, noop, timeStampNow, } from '@datadog/browser-core';\nimport { validateAndBuildLogsConfiguration, } from '../domain/configuration';\nexport function createPreStartStrategy(getCommonContext, trackingConsentState, doStartLogs) {\n const bufferApiCalls = createBoundedBuffer();\n let cachedInitConfiguration;\n let cachedConfiguration;\n const trackingConsentStateSubscription = trackingConsentState.observable.subscribe(tryStartLogs);\n function tryStartLogs() {\n if (!cachedConfiguration || !cachedInitConfiguration || !trackingConsentState.isGranted()) {\n return;\n }\n trackingConsentStateSubscription.unsubscribe();\n const startLogsResult = doStartLogs(cachedInitConfiguration, cachedConfiguration);\n bufferApiCalls.drain(startLogsResult);\n }\n return {\n init(initConfiguration) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n initFeatureFlags(initConfiguration.enableExperimentalFeatures);\n if (canUseEventBridge()) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n // Expose the initial configuration regardless of initialization success.\n cachedInitConfiguration = initConfiguration;\n if (cachedConfiguration) {\n displayAlreadyInitializedError('DD_LOGS', initConfiguration);\n return;\n }\n const configuration = validateAndBuildLogsConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n cachedConfiguration = configuration;\n // Instrumuent fetch to track network requests\n // This is needed in case the consent is not granted and some cutsomer\n // library (Apollo Client) is storing uninstrumented fetch to be used later\n // The subscrption is needed so that the instrumentation process is completed\n initFetchObservable().subscribe(noop);\n trackingConsentState.tryToInit(configuration.trackingConsent);\n tryStartLogs();\n },\n get initConfiguration() {\n return cachedInitConfiguration;\n },\n getInternalContext: noop,\n handleLog(message, statusType, handlingStack, context = getCommonContext(), date = timeStampNow()) {\n bufferApiCalls.add((startLogsResult) => startLogsResult.handleLog(message, statusType, handlingStack, context, date));\n },\n };\n}\nfunction overrideInitConfigurationForBridge(initConfiguration) {\n return { ...initConfiguration, clientToken: 'empty' };\n}\n//# sourceMappingURL=preStartLogs.js.map","import { addTelemetryUsage, createContextManager, makePublicApi, monitor, checkUser, sanitizeUser, sanitize, createCustomerDataTrackerManager, storeContextManager, displayAlreadyInitializedError, deepClone, createTrackingConsentState, } from '@datadog/browser-core';\nimport { Logger } from '../domain/logger';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { createPreStartStrategy } from './preStartLogs';\nconst LOGS_STORAGE_KEY = 'logs';\nexport function makeLogsPublicApi(startLogsImpl) {\n const customerDataTrackerManager = createCustomerDataTrackerManager();\n const globalContextManager = createContextManager(customerDataTrackerManager.getOrCreateTracker(2 /* CustomerDataType.GlobalContext */));\n const userContextManager = createContextManager(customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */));\n const trackingConsentState = createTrackingConsentState();\n function getCommonContext() {\n return buildCommonContext(globalContextManager, userContextManager);\n }\n let strategy = createPreStartStrategy(getCommonContext, trackingConsentState, (initConfiguration, configuration) => {\n if (initConfiguration.storeContextsAcrossPages) {\n storeContextManager(configuration, globalContextManager, LOGS_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n storeContextManager(configuration, userContextManager, LOGS_STORAGE_KEY, 1 /* CustomerDataType.User */);\n }\n const startLogsResult = startLogsImpl(initConfiguration, configuration, getCommonContext, trackingConsentState);\n strategy = createPostStartStrategy(initConfiguration, startLogsResult);\n return startLogsResult;\n });\n const customLoggers = {};\n const mainLogger = new Logger((...params) => strategy.handleLog(...params), customerDataTrackerManager.createDetachedTracker());\n return makePublicApi({\n logger: mainLogger,\n init: monitor((initConfiguration) => strategy.init(initConfiguration)),\n setTrackingConsent: monitor((trackingConsent) => {\n trackingConsentState.update(trackingConsent);\n addTelemetryUsage({ feature: 'set-tracking-consent', tracking_consent: trackingConsent });\n }),\n getGlobalContext: monitor(() => globalContextManager.getContext()),\n setGlobalContext: monitor((context) => globalContextManager.setContext(context)),\n setGlobalContextProperty: monitor((key, value) => globalContextManager.setContextProperty(key, value)),\n removeGlobalContextProperty: monitor((key) => globalContextManager.removeContextProperty(key)),\n clearGlobalContext: monitor(() => globalContextManager.clearContext()),\n createLogger: monitor((name, conf = {}) => {\n customLoggers[name] = new Logger((...params) => strategy.handleLog(...params), customerDataTrackerManager.createDetachedTracker(), sanitize(name), conf.handler, conf.level, sanitize(conf.context));\n return customLoggers[name];\n }),\n getLogger: monitor((name) => customLoggers[name]),\n getInitConfiguration: monitor(() => deepClone(strategy.initConfiguration)),\n getInternalContext: monitor((startTime) => strategy.getInternalContext(startTime)),\n setUser: monitor((newUser) => {\n if (checkUser(newUser)) {\n userContextManager.setContext(sanitizeUser(newUser));\n }\n }),\n getUser: monitor(() => userContextManager.getContext()),\n setUserProperty: monitor((key, property) => {\n const sanitizedProperty = sanitizeUser({ [key]: property })[key];\n userContextManager.setContextProperty(key, sanitizedProperty);\n }),\n removeUserProperty: monitor((key) => userContextManager.removeContextProperty(key)),\n clearUser: monitor(() => userContextManager.clearContext()),\n });\n}\nfunction createPostStartStrategy(initConfiguration, startLogsResult) {\n return {\n init: (initConfiguration) => {\n displayAlreadyInitializedError('DD_LOGS', initConfiguration);\n },\n initConfiguration,\n ...startLogsResult,\n };\n}\n//# sourceMappingURL=logsPublicApi.js.map","import { Observable, performDraw, startSessionManager } from '@datadog/browser-core';\nexport const LOGS_SESSION_KEY = 'logs';\nexport function startLogsSessionManager(configuration, trackingConsentState) {\n const sessionManager = startSessionManager(configuration, LOGS_SESSION_KEY, (rawTrackingType) => computeSessionState(configuration, rawTrackingType), trackingConsentState);\n return {\n findTrackedSession: (startTime, options = { returnInactive: false }) => {\n const session = sessionManager.findSession(startTime, options);\n return session && session.trackingType === \"1\" /* LoggerTrackingType.TRACKED */\n ? {\n id: session.id,\n anonymousId: session.anonymousId,\n }\n : undefined;\n },\n expireObservable: sessionManager.expireObservable,\n };\n}\nexport function startLogsSessionManagerStub(configuration) {\n const isTracked = computeTrackingType(configuration) === \"1\" /* LoggerTrackingType.TRACKED */;\n const session = isTracked ? {} : undefined;\n return {\n findTrackedSession: () => session,\n expireObservable: new Observable(),\n };\n}\nfunction computeTrackingType(configuration) {\n if (!performDraw(configuration.sessionSampleRate)) {\n return \"0\" /* LoggerTrackingType.NOT_TRACKED */;\n }\n return \"1\" /* LoggerTrackingType.TRACKED */;\n}\nfunction computeSessionState(configuration, rawSessionType) {\n const trackingType = hasValidLoggerSession(rawSessionType) ? rawSessionType : computeTrackingType(configuration);\n return {\n trackingType,\n isTracked: trackingType === \"1\" /* LoggerTrackingType.TRACKED */,\n };\n}\nfunction hasValidLoggerSession(trackingType) {\n return trackingType === \"0\" /* LoggerTrackingType.NOT_TRACKED */ || trackingType === \"1\" /* LoggerTrackingType.TRACKED */;\n}\n//# sourceMappingURL=logsSessionManager.js.map","import { willSyntheticsInjectRum, addTelemetryDebug, getSyntheticsTestId, getSyntheticsResultId, } from '@datadog/browser-core';\nlet logsSentBeforeRumInjectionTelemetryAdded = false;\nexport function getRUMInternalContext(startTime) {\n const browserWindow = window;\n if (willSyntheticsInjectRum()) {\n const context = getInternalContextFromRumGlobal(browserWindow.DD_RUM_SYNTHETICS);\n if (!context && !logsSentBeforeRumInjectionTelemetryAdded) {\n logsSentBeforeRumInjectionTelemetryAdded = true;\n addTelemetryDebug('Logs sent before RUM is injected by the synthetics worker', {\n testId: getSyntheticsTestId(),\n resultId: getSyntheticsResultId(),\n });\n }\n return context;\n }\n return getInternalContextFromRumGlobal(browserWindow.DD_RUM);\n function getInternalContextFromRumGlobal(rumGlobal) {\n if (rumGlobal && rumGlobal.getInternalContext) {\n return rumGlobal.getInternalContext(startTime);\n }\n }\n}\nexport function resetRUMInternalContext() {\n logsSentBeforeRumInjectionTelemetryAdded = false;\n}\n//# sourceMappingURL=rumInternalContext.js.map","import { ErrorSource, combine, createEventRateLimiter, getRelativeTime, isEmptyObject } from '@datadog/browser-core';\nimport { STATUSES } from './logger';\nimport { getRUMInternalContext } from './contexts/rumInternalContext';\nexport function startLogsAssembly(sessionManager, configuration, lifeCycle, getCommonContext, reportError) {\n const statusWithCustom = STATUSES.concat(['custom']);\n const logRateLimiters = {};\n statusWithCustom.forEach((status) => {\n logRateLimiters[status] = createEventRateLimiter(status, configuration.eventRateLimiterThreshold, reportError);\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, ({ rawLogsEvent, messageContext = undefined, savedCommonContext = undefined, domainContext }) => {\n var _a, _b;\n const startTime = getRelativeTime(rawLogsEvent.date);\n const session = sessionManager.findTrackedSession(startTime);\n const shouldSendLog = sessionManager.findTrackedSession(startTime, { returnInactive: true });\n if (!shouldSendLog) {\n return;\n }\n const commonContext = savedCommonContext || getCommonContext();\n if (session && session.anonymousId && !commonContext.user.anonymous_id) {\n commonContext.user.anonymous_id = session.anonymousId;\n }\n const log = combine({\n service: configuration.service,\n session_id: session ? session.id : undefined,\n session: session ? { id: session.id } : undefined,\n // Insert user first to allow overrides from global context\n usr: !isEmptyObject(commonContext.user) ? commonContext.user : undefined,\n view: commonContext.view,\n }, commonContext.context, getRUMInternalContext(startTime), rawLogsEvent, messageContext);\n if (((_a = configuration.beforeSend) === null || _a === void 0 ? void 0 : _a.call(configuration, log, domainContext)) === false ||\n (log.origin !== ErrorSource.AGENT &&\n ((_b = logRateLimiters[log.status]) !== null && _b !== void 0 ? _b : logRateLimiters['custom']).isLimitReached())) {\n return;\n }\n lifeCycle.notify(1 /* LifeCycleEventType.LOG_COLLECTED */, log);\n });\n}\n//# sourceMappingURL=assembly.js.map","import { timeStampNow, ConsoleApiName, ErrorSource, initConsoleObservable } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nimport { createErrorFieldFromRawError } from '../createErrorFieldFromRawError';\nexport const LogStatusForApi = {\n [ConsoleApiName.log]: StatusType.info,\n [ConsoleApiName.debug]: StatusType.debug,\n [ConsoleApiName.info]: StatusType.info,\n [ConsoleApiName.warn]: StatusType.warn,\n [ConsoleApiName.error]: StatusType.error,\n};\nexport function startConsoleCollection(configuration, lifeCycle) {\n const consoleSubscription = initConsoleObservable(configuration.forwardConsoleLogs).subscribe((log) => {\n const collectedData = {\n rawLogsEvent: {\n date: timeStampNow(),\n message: log.message,\n origin: ErrorSource.CONSOLE,\n error: log.error && createErrorFieldFromRawError(log.error),\n status: LogStatusForApi[log.api],\n },\n domainContext: {\n handlingStack: log.handlingStack,\n },\n };\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, collectedData);\n });\n return {\n stop: () => {\n consoleSubscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=consoleCollection.js.map","import { timeStampNow, ErrorSource, getFileFromStackTraceString, initReportObservable } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nimport { createErrorFieldFromRawError } from '../createErrorFieldFromRawError';\nexport function startReportCollection(configuration, lifeCycle) {\n const reportSubscription = initReportObservable(configuration, configuration.forwardReports).subscribe((rawError) => {\n let message = rawError.message;\n let error;\n const status = rawError.originalError.type === 'deprecation' ? StatusType.warn : StatusType.error;\n if (status === StatusType.error) {\n error = createErrorFieldFromRawError(rawError);\n }\n else if (rawError.stack) {\n message += ` Found in ${getFileFromStackTraceString(rawError.stack)}`;\n }\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n date: timeStampNow(),\n message,\n origin: ErrorSource.REPORT,\n error,\n status,\n },\n });\n });\n return {\n stop: () => {\n reportSubscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=reportCollection.js.map","import { ErrorSource, initXhrObservable, initFetchObservable, computeStackTrace, toStackTraceString, monitor, noop, readBytesFromStream, tryToClone, isServerError, isIntakeUrl, } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nexport function startNetworkErrorCollection(configuration, lifeCycle) {\n if (!configuration.forwardErrorsToLogs) {\n return { stop: noop };\n }\n const xhrSubscription = initXhrObservable(configuration).subscribe((context) => {\n if (context.state === 'complete') {\n handleResponse(\"xhr\" /* RequestType.XHR */, context);\n }\n });\n const fetchSubscription = initFetchObservable().subscribe((context) => {\n if (context.state === 'resolve') {\n handleResponse(\"fetch\" /* RequestType.FETCH */, context);\n }\n });\n function handleResponse(type, request) {\n if (!isIntakeUrl(request.url) && (isRejected(request) || isServerError(request.status))) {\n if ('xhr' in request) {\n computeXhrResponseData(request.xhr, configuration, onResponseDataAvailable);\n }\n else if (request.response) {\n computeFetchResponseText(request.response, configuration, onResponseDataAvailable);\n }\n else if (request.error) {\n computeFetchErrorText(request.error, configuration, onResponseDataAvailable);\n }\n }\n function onResponseDataAvailable(responseData) {\n const domainContext = {\n isAborted: request.isAborted,\n handlingStack: request.handlingStack,\n };\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: `${format(type)} error ${request.method} ${request.url}`,\n date: request.startClocks.timeStamp,\n error: {\n stack: responseData || 'Failed to load',\n // We don't know if the error was handled or not, so we set it to undefined\n handling: undefined,\n },\n http: {\n method: request.method, // Cast resource method because of case mismatch cf issue RUMF-1152\n status_code: request.status,\n url: request.url,\n },\n status: StatusType.error,\n origin: ErrorSource.NETWORK,\n },\n domainContext,\n });\n }\n }\n return {\n stop: () => {\n xhrSubscription.unsubscribe();\n fetchSubscription.unsubscribe();\n },\n };\n}\n// TODO: ideally, computeXhrResponseData should always call the callback with a string instead of\n// `unknown`. But to keep backward compatibility, in the case of XHR with a `responseType` different\n// than \"text\", the response data should be whatever `xhr.response` is. This is a bit confusing as\n// Logs event 'stack' is expected to be a string. This should be changed in a future major version\n// as it could be a breaking change.\nexport function computeXhrResponseData(xhr, configuration, callback) {\n if (typeof xhr.response === 'string') {\n callback(truncateResponseText(xhr.response, configuration));\n }\n else {\n callback(xhr.response);\n }\n}\nexport function computeFetchErrorText(error, configuration, callback) {\n callback(truncateResponseText(toStackTraceString(computeStackTrace(error)), configuration));\n}\nexport function computeFetchResponseText(response, configuration, callback) {\n const clonedResponse = tryToClone(response);\n if (!clonedResponse || !clonedResponse.body) {\n // if the clone failed or if the body is null, let's not try to read it.\n callback();\n }\n else if (!window.TextDecoder) {\n // If the browser doesn't support TextDecoder, let's read the whole response then truncate it.\n //\n // This should only be the case on early versions of Edge (before they migrated to Chromium).\n // Even if it could be possible to implement a workaround for the missing TextDecoder API (using\n // a Blob and FileReader), we found another issue preventing us from reading only the first\n // bytes from the response: contrary to other browsers, when reading from the cloned response,\n // if the original response gets canceled, the cloned response is also canceled and we can't\n // know about it. In the following illustration, the promise returned by `reader.read()` may\n // never be fulfilled:\n //\n // fetch('/').then((response) => {\n // const reader = response.clone().body.getReader()\n // readMore()\n // function readMore() {\n // reader.read().then(\n // (result) => {\n // if (result.done) {\n // console.log('done')\n // } else {\n // readMore()\n // }\n // },\n // () => console.log('error')\n // )\n // }\n // response.body.getReader().cancel()\n // })\n clonedResponse.text().then(monitor((text) => callback(truncateResponseText(text, configuration))), monitor((error) => callback(`Unable to retrieve response: ${error}`)));\n }\n else {\n truncateResponseStream(clonedResponse.body, configuration.requestErrorResponseLengthLimit, (error, responseText) => {\n if (error) {\n callback(`Unable to retrieve response: ${error}`);\n }\n else {\n callback(responseText);\n }\n });\n }\n}\nfunction isRejected(request) {\n return request.status === 0 && request.responseType !== 'opaque';\n}\nfunction truncateResponseText(responseText, configuration) {\n if (responseText.length > configuration.requestErrorResponseLengthLimit) {\n return `${responseText.substring(0, configuration.requestErrorResponseLengthLimit)}...`;\n }\n return responseText;\n}\nfunction format(type) {\n if (\"xhr\" /* RequestType.XHR */ === type) {\n return 'XHR';\n }\n return 'Fetch';\n}\nfunction truncateResponseStream(stream, bytesLimit, callback) {\n readBytesFromStream(stream, (error, bytes, limitExceeded) => {\n if (error) {\n callback(error);\n }\n else {\n let responseText = new TextDecoder().decode(bytes);\n if (limitExceeded) {\n responseText += '...';\n }\n callback(undefined, responseText);\n }\n }, {\n bytesLimit,\n collectStreamBody: true,\n });\n}\n//# sourceMappingURL=networkErrorCollection.js.map","import { noop, ErrorSource, trackRuntimeError, Observable } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nimport { createErrorFieldFromRawError } from '../createErrorFieldFromRawError';\nexport function startRuntimeErrorCollection(configuration, lifeCycle) {\n if (!configuration.forwardErrorsToLogs) {\n return { stop: noop };\n }\n const rawErrorObservable = new Observable();\n const { stop: stopRuntimeErrorTracking } = trackRuntimeError(rawErrorObservable);\n const rawErrorSubscription = rawErrorObservable.subscribe((rawError) => {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: rawError.message,\n date: rawError.startClocks.timeStamp,\n error: createErrorFieldFromRawError(rawError),\n origin: ErrorSource.SOURCE,\n status: StatusType.error,\n },\n });\n });\n return {\n stop: () => {\n stopRuntimeErrorTracking();\n rawErrorSubscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=runtimeErrorCollection.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport const LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { combine, ErrorSource, timeStampNow, originalConsoleMethods, globalConsole, ConsoleApiName, } from '@datadog/browser-core';\nimport { HandlerType } from '../logger';\nimport { isAuthorized, StatusType } from './isAuthorized';\nexport function startLoggerCollection(lifeCycle) {\n function handleLog(logsMessage, logger, handlingStack, savedCommonContext, savedDate) {\n const messageContext = combine(logger.getContext(), logsMessage.context);\n if (isAuthorized(logsMessage.status, HandlerType.console, logger)) {\n displayInConsole(logsMessage, messageContext);\n }\n if (isAuthorized(logsMessage.status, HandlerType.http, logger)) {\n const rawLogEventData = {\n rawLogsEvent: {\n date: savedDate || timeStampNow(),\n message: logsMessage.message,\n status: logsMessage.status,\n origin: ErrorSource.LOGGER,\n },\n messageContext,\n savedCommonContext,\n };\n if (handlingStack) {\n rawLogEventData.domainContext = { handlingStack };\n }\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, rawLogEventData);\n }\n }\n return {\n handleLog,\n };\n}\nconst loggerToConsoleApiName = {\n [StatusType.ok]: ConsoleApiName.debug,\n [StatusType.debug]: ConsoleApiName.debug,\n [StatusType.info]: ConsoleApiName.info,\n [StatusType.notice]: ConsoleApiName.info,\n [StatusType.warn]: ConsoleApiName.warn,\n [StatusType.error]: ConsoleApiName.error,\n [StatusType.critical]: ConsoleApiName.error,\n [StatusType.alert]: ConsoleApiName.error,\n [StatusType.emerg]: ConsoleApiName.error,\n};\nfunction displayInConsole({ status, message }, messageContext) {\n originalConsoleMethods[loggerToConsoleApiName[status]].call(globalConsole, message, messageContext);\n}\n//# sourceMappingURL=loggerCollection.js.map","import { createIdentityEncoder, startBatchWithReplica } from '@datadog/browser-core';\nexport function startLogsBatch(configuration, lifeCycle, reportError, pageExitObservable, session) {\n const batch = startBatchWithReplica(configuration, {\n endpoint: configuration.logsEndpointBuilder,\n encoder: createIdentityEncoder(),\n }, configuration.replica && {\n endpoint: configuration.replica.logsEndpointBuilder,\n encoder: createIdentityEncoder(),\n }, reportError, pageExitObservable, session.expireObservable);\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, (serverLogsEvent) => {\n batch.add(serverLogsEvent);\n });\n return batch;\n}\n//# sourceMappingURL=startLogsBatch.js.map","import { getEventBridge } from '@datadog/browser-core';\nexport function startLogsBridge(lifeCycle) {\n const bridge = getEventBridge();\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, (serverLogsEvent) => {\n bridge.send('log', serverLogsEvent);\n });\n}\n//# sourceMappingURL=startLogsBridge.js.map","export function startInternalContext(sessionManager) {\n return {\n get: (startTime) => {\n const trackedSession = sessionManager.findTrackedSession(startTime);\n if (trackedSession) {\n return {\n session_id: trackedSession.id,\n };\n }\n },\n };\n}\n//# sourceMappingURL=internalContext.js.map","import { ErrorSource, addTelemetryDebug } from '@datadog/browser-core';\nimport { StatusType } from './logger/isAuthorized';\nexport function startReportError(lifeCycle) {\n return (error) => {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: error.message,\n date: error.startClocks.timeStamp,\n origin: ErrorSource.AGENT,\n status: StatusType.error,\n },\n });\n addTelemetryDebug('Error reported to customer', { 'error.message': error.message });\n };\n}\n//# sourceMappingURL=reportError.js.map","import { startTelemetry, canUseEventBridge, getEventBridge, startBatchWithReplica, createIdentityEncoder, isTelemetryReplicationAllowed, addTelemetryConfiguration, drainPreStartTelemetry, } from '@datadog/browser-core';\nimport { getRUMInternalContext } from './contexts/rumInternalContext';\nimport { serializeLogsConfiguration } from './configuration';\nexport function startLogsTelemetry(initConfiguration, configuration, reportError, pageExitObservable, session) {\n const telemetry = startTelemetry(\"browser-logs-sdk\" /* TelemetryService.LOGS */, configuration);\n telemetry.setContextProvider(() => {\n var _a, _b, _c, _d, _e, _f;\n return ({\n application: {\n id: (_a = getRUMInternalContext()) === null || _a === void 0 ? void 0 : _a.application_id,\n },\n session: {\n id: (_b = session.findTrackedSession()) === null || _b === void 0 ? void 0 : _b.id,\n },\n view: {\n id: (_d = (_c = getRUMInternalContext()) === null || _c === void 0 ? void 0 : _c.view) === null || _d === void 0 ? void 0 : _d.id,\n },\n action: {\n id: (_f = (_e = getRUMInternalContext()) === null || _e === void 0 ? void 0 : _e.user_action) === null || _f === void 0 ? void 0 : _f.id,\n },\n });\n });\n const cleanupTasks = [];\n if (canUseEventBridge()) {\n const bridge = getEventBridge();\n const telemetrySubscription = telemetry.observable.subscribe((event) => bridge.send('internal_telemetry', event));\n cleanupTasks.push(() => telemetrySubscription.unsubscribe());\n }\n else {\n const telemetryBatch = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n encoder: createIdentityEncoder(),\n }, configuration.replica && {\n endpoint: configuration.replica.rumEndpointBuilder,\n encoder: createIdentityEncoder(),\n }, reportError, pageExitObservable, session.expireObservable);\n cleanupTasks.push(() => telemetryBatch.stop());\n const telemetrySubscription = telemetry.observable.subscribe((event) => telemetryBatch.add(event, isTelemetryReplicationAllowed(configuration)));\n cleanupTasks.push(() => telemetrySubscription.unsubscribe());\n }\n drainPreStartTelemetry();\n addTelemetryConfiguration(serializeLogsConfiguration(initConfiguration));\n return {\n telemetry,\n stop: () => {\n cleanupTasks.forEach((task) => task());\n },\n };\n}\n//# sourceMappingURL=logsTelemetry.js.map","import { sendToExtension, createPageExitObservable, willSyntheticsInjectRum, canUseEventBridge, } from '@datadog/browser-core';\nimport { startLogsSessionManager, startLogsSessionManagerStub } from '../domain/logsSessionManager';\nimport { startLogsAssembly } from '../domain/assembly';\nimport { startConsoleCollection } from '../domain/console/consoleCollection';\nimport { startReportCollection } from '../domain/report/reportCollection';\nimport { startNetworkErrorCollection } from '../domain/networkError/networkErrorCollection';\nimport { startRuntimeErrorCollection } from '../domain/runtimeError/runtimeErrorCollection';\nimport { LifeCycle } from '../domain/lifeCycle';\nimport { startLoggerCollection } from '../domain/logger/loggerCollection';\nimport { startLogsBatch } from '../transport/startLogsBatch';\nimport { startLogsBridge } from '../transport/startLogsBridge';\nimport { startInternalContext } from '../domain/contexts/internalContext';\nimport { startReportError } from '../domain/reportError';\nimport { startLogsTelemetry } from '../domain/logsTelemetry';\nexport function startLogs(initConfiguration, configuration, getCommonContext, \n// `startLogs` and its subcomponents assume tracking consent is granted initially and starts\n// collecting logs unconditionally. As such, `startLogs` should be called with a\n// `trackingConsentState` set to \"granted\".\ntrackingConsentState) {\n const lifeCycle = new LifeCycle();\n const cleanupTasks = [];\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, (log) => sendToExtension('logs', log));\n const reportError = startReportError(lifeCycle);\n const pageExitObservable = createPageExitObservable(configuration);\n const session = configuration.sessionStoreStrategyType && !canUseEventBridge() && !willSyntheticsInjectRum()\n ? startLogsSessionManager(configuration, trackingConsentState)\n : startLogsSessionManagerStub(configuration);\n const { stop: stopLogsTelemetry } = startLogsTelemetry(initConfiguration, configuration, reportError, pageExitObservable, session);\n cleanupTasks.push(() => stopLogsTelemetry());\n startNetworkErrorCollection(configuration, lifeCycle);\n startRuntimeErrorCollection(configuration, lifeCycle);\n startConsoleCollection(configuration, lifeCycle);\n startReportCollection(configuration, lifeCycle);\n const { handleLog } = startLoggerCollection(lifeCycle);\n startLogsAssembly(session, configuration, lifeCycle, getCommonContext, reportError);\n if (!canUseEventBridge()) {\n const { stop: stopLogsBatch } = startLogsBatch(configuration, lifeCycle, reportError, pageExitObservable, session);\n cleanupTasks.push(() => stopLogsBatch());\n }\n else {\n startLogsBridge(lifeCycle);\n }\n const internalContext = startInternalContext(session);\n return {\n handleLog,\n getInternalContext: internalContext.get,\n stop: () => {\n cleanupTasks.forEach((task) => task());\n },\n };\n}\n//# sourceMappingURL=startLogs.js.map","import { defineGlobal, getGlobalObject } from '@datadog/browser-core';\nimport { makeLogsPublicApi } from '../boot/logsPublicApi';\nimport { startLogs } from '../boot/startLogs';\nexport { Logger, HandlerType } from '../domain/logger';\nexport { StatusType } from '../domain/logger/isAuthorized';\nexport const datadogLogs = makeLogsPublicApi(startLogs);\ndefineGlobal(getGlobalObject(), 'DD_LOGS', datadogLogs);\n//# sourceMappingURL=main.js.map","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || ''\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction safeJsonParse(value) {\n if (typeof value !== 'string') {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexports.safeJsonParse = safeJsonParse;\nfunction safeJsonStringify(value) {\n return typeof value === 'string'\n ? value\n : JSON.stringify(value, (key, value) => typeof value === 'undefined' ? null : value);\n}\nexports.safeJsonStringify = safeJsonStringify;\n//# sourceMappingURL=index.js.map","'use strict'\n\nconst errSerializer = require('./lib/err')\nconst reqSerializers = require('./lib/req')\nconst resSerializers = require('./lib/res')\n\nmodule.exports = {\n err: errSerializer,\n mapHttpRequest: reqSerializers.mapHttpRequest,\n mapHttpResponse: resSerializers.mapHttpResponse,\n req: reqSerializers.reqSerializer,\n res: resSerializers.resSerializer,\n\n wrapErrorSerializer: function wrapErrorSerializer (customSerializer) {\n if (customSerializer === errSerializer) return customSerializer\n return function wrapErrSerializer (err) {\n return customSerializer(errSerializer(err))\n }\n },\n\n wrapRequestSerializer: function wrapRequestSerializer (customSerializer) {\n if (customSerializer === reqSerializers.reqSerializer) return customSerializer\n return function wrappedReqSerializer (req) {\n return customSerializer(reqSerializers.reqSerializer(req))\n }\n },\n\n wrapResponseSerializer: function wrapResponseSerializer (customSerializer) {\n if (customSerializer === resSerializers.resSerializer) return customSerializer\n return function wrappedResSerializer (res) {\n return customSerializer(resSerializers.resSerializer(res))\n }\n }\n}\n","'use strict'\n\n// **************************************************************\n// * Code initially copied/adapted from \"pony-cause\" npm module *\n// * Please upstream improvements there *\n// **************************************************************\n\n/**\n * @param {Error|{ cause?: unknown|(()=>err)}} err\n * @returns {Error|undefined}\n */\nconst getErrorCause = (err) => {\n if (!err) return\n\n /** @type {unknown} */\n // @ts-ignore\n const cause = err.cause\n\n // VError / NError style causes\n if (typeof cause === 'function') {\n // @ts-ignore\n const causeResult = err.cause()\n\n return causeResult instanceof Error\n ? causeResult\n : undefined\n } else {\n return cause instanceof Error\n ? cause\n : undefined\n }\n}\n\n/**\n * Internal method that keeps a track of which error we have already added, to avoid circular recursion\n *\n * @private\n * @param {Error} err\n * @param {Set} seen\n * @returns {string}\n */\nconst _stackWithCauses = (err, seen) => {\n if (!(err instanceof Error)) return ''\n\n const stack = err.stack || ''\n\n // Ensure we don't go circular or crazily deep\n if (seen.has(err)) {\n return stack + '\\ncauses have become circular...'\n }\n\n const cause = getErrorCause(err)\n\n if (cause) {\n seen.add(err)\n return (stack + '\\ncaused by: ' + _stackWithCauses(cause, seen))\n } else {\n return stack\n }\n}\n\n/**\n * @param {Error} err\n * @returns {string}\n */\nconst stackWithCauses = (err) => _stackWithCauses(err, new Set())\n\n/**\n * Internal method that keeps a track of which error we have already added, to avoid circular recursion\n *\n * @private\n * @param {Error} err\n * @param {Set} seen\n * @param {boolean} [skip]\n * @returns {string}\n */\nconst _messageWithCauses = (err, seen, skip) => {\n if (!(err instanceof Error)) return ''\n\n const message = skip ? '' : (err.message || '')\n\n // Ensure we don't go circular or crazily deep\n if (seen.has(err)) {\n return message + ': ...'\n }\n\n const cause = getErrorCause(err)\n\n if (cause) {\n seen.add(err)\n\n // @ts-ignore\n const skipIfVErrorStyleCause = typeof err.cause === 'function'\n\n return (message +\n (skipIfVErrorStyleCause ? '' : ': ') +\n _messageWithCauses(cause, seen, skipIfVErrorStyleCause))\n } else {\n return message\n }\n}\n\n/**\n * @param {Error} err\n * @returns {string}\n */\nconst messageWithCauses = (err) => _messageWithCauses(err, new Set())\n\nmodule.exports = {\n getErrorCause,\n stackWithCauses,\n messageWithCauses\n}\n","'use strict'\n\nmodule.exports = errSerializer\n\nconst { messageWithCauses, stackWithCauses } = require('./err-helpers')\n\nconst { toString } = Object.prototype\nconst seen = Symbol('circular-ref-tag')\nconst rawSymbol = Symbol('pino-raw-err-ref')\nconst pinoErrProto = Object.create({}, {\n type: {\n enumerable: true,\n writable: true,\n value: undefined\n },\n message: {\n enumerable: true,\n writable: true,\n value: undefined\n },\n stack: {\n enumerable: true,\n writable: true,\n value: undefined\n },\n aggregateErrors: {\n enumerable: true,\n writable: true,\n value: undefined\n },\n raw: {\n enumerable: false,\n get: function () {\n return this[rawSymbol]\n },\n set: function (val) {\n this[rawSymbol] = val\n }\n }\n})\nObject.defineProperty(pinoErrProto, rawSymbol, {\n writable: true,\n value: {}\n})\n\nfunction errSerializer (err) {\n if (!(err instanceof Error)) {\n return err\n }\n\n err[seen] = undefined // tag to prevent re-looking at this\n const _err = Object.create(pinoErrProto)\n _err.type = toString.call(err.constructor) === '[object Function]'\n ? err.constructor.name\n : err.name\n _err.message = messageWithCauses(err)\n _err.stack = stackWithCauses(err)\n\n if (global.AggregateError !== undefined && err instanceof global.AggregateError && Array.isArray(err.errors)) {\n _err.aggregateErrors = err.errors.map(err => errSerializer(err))\n }\n\n for (const key in err) {\n if (_err[key] === undefined) {\n const val = err[key]\n if (val instanceof Error) {\n // We append cause messages and stacks to _err, therefore skipping causes here\n if (key !== 'cause' && !Object.prototype.hasOwnProperty.call(val, seen)) {\n _err[key] = errSerializer(val)\n }\n } else {\n _err[key] = val\n }\n }\n }\n\n delete err[seen] // clean up tag in case err is serialized again later\n _err.raw = err\n return _err\n}\n","'use strict'\n\nmodule.exports = {\n mapHttpRequest,\n reqSerializer\n}\n\nconst rawSymbol = Symbol('pino-raw-req-ref')\nconst pinoReqProto = Object.create({}, {\n id: {\n enumerable: true,\n writable: true,\n value: ''\n },\n method: {\n enumerable: true,\n writable: true,\n value: ''\n },\n url: {\n enumerable: true,\n writable: true,\n value: ''\n },\n query: {\n enumerable: true,\n writable: true,\n value: ''\n },\n params: {\n enumerable: true,\n writable: true,\n value: ''\n },\n headers: {\n enumerable: true,\n writable: true,\n value: {}\n },\n remoteAddress: {\n enumerable: true,\n writable: true,\n value: ''\n },\n remotePort: {\n enumerable: true,\n writable: true,\n value: ''\n },\n raw: {\n enumerable: false,\n get: function () {\n return this[rawSymbol]\n },\n set: function (val) {\n this[rawSymbol] = val\n }\n }\n})\nObject.defineProperty(pinoReqProto, rawSymbol, {\n writable: true,\n value: {}\n})\n\nfunction reqSerializer (req) {\n // req.info is for hapi compat.\n const connection = req.info || req.socket\n const _req = Object.create(pinoReqProto)\n _req.id = (typeof req.id === 'function' ? req.id() : (req.id || (req.info ? req.info.id : undefined)))\n _req.method = req.method\n // req.originalUrl is for expressjs compat.\n if (req.originalUrl) {\n _req.url = req.originalUrl\n } else {\n const path = req.path\n // path for safe hapi compat.\n _req.url = typeof path === 'string' ? path : (req.url ? req.url.path || req.url : undefined)\n }\n\n if (req.query) {\n _req.query = req.query\n }\n\n if (req.params) {\n _req.params = req.params\n }\n\n _req.headers = req.headers\n _req.remoteAddress = connection && connection.remoteAddress\n _req.remotePort = connection && connection.remotePort\n // req.raw is for hapi compat/equivalence\n _req.raw = req.raw || req\n return _req\n}\n\nfunction mapHttpRequest (req) {\n return {\n req: reqSerializer(req)\n }\n}\n","'use strict'\n\nmodule.exports = {\n mapHttpResponse,\n resSerializer\n}\n\nconst rawSymbol = Symbol('pino-raw-res-ref')\nconst pinoResProto = Object.create({}, {\n statusCode: {\n enumerable: true,\n writable: true,\n value: 0\n },\n headers: {\n enumerable: true,\n writable: true,\n value: ''\n },\n raw: {\n enumerable: false,\n get: function () {\n return this[rawSymbol]\n },\n set: function (val) {\n this[rawSymbol] = val\n }\n }\n})\nObject.defineProperty(pinoResProto, rawSymbol, {\n writable: true,\n value: {}\n})\n\nfunction resSerializer (res) {\n const _res = Object.create(pinoResProto)\n _res.statusCode = res.headersSent ? res.statusCode : null\n _res.headers = res.getHeaders ? res.getHeaders() : res._headers\n _res.raw = res\n return _res\n}\n\nfunction mapHttpResponse (res) {\n return {\n res: resSerializer(res)\n }\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue,\n errWithCause: asErrValue\n}\nfunction levelToValue (level, logger) {\n return level === 'silent'\n ? Infinity\n : logger.levels.values[level]\n}\nconst baseLogFunctionSymbol = Symbol('pino.logFuncs')\nconst hierarchySymbol = Symbol('pino.hierarchy')\n\nconst logFallbackMap = {\n error: 'log',\n fatal: 'error',\n warn: 'error',\n info: 'log',\n debug: 'log',\n trace: 'log'\n}\n\nfunction appendChildLogger (parentLogger, childLogger) {\n const newEntry = {\n logger: childLogger,\n parent: parentLogger[hierarchySymbol]\n }\n childLogger[hierarchySymbol] = newEntry\n}\n\nfunction setupBaseLogFunctions (logger, levels, proto) {\n const logFunctions = {}\n levels.forEach(level => {\n logFunctions[level] = proto[level] ? proto[level] : (_console[level] || _console[logFallbackMap[level] || 'log'] || noop)\n })\n logger[baseLogFunctionSymbol] = logFunctions\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const customLevels = Object.keys(opts.customLevels || {})\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace'].concat(customLevels)\n\n if (typeof proto === 'function') {\n levels.forEach(function (level) {\n proto[level] = proto\n })\n }\n if (opts.enabled === false || opts.browser.disabled) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n setupBaseLogFunctions(logger, levels, proto)\n // setup root hierarchy entry\n appendChildLogger({}, logger)\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = getLevels(opts)\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return levelToValue(this.level, this)\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(this, setOpts, logger, 'error') // <-- must stay first\n set(this, setOpts, logger, 'fatal')\n set(this, setOpts, logger, 'warn')\n set(this, setOpts, logger, 'info')\n set(this, setOpts, logger, 'debug')\n set(this, setOpts, logger, 'trace')\n\n customLevels.forEach((level) => {\n set(this, setOpts, logger, level)\n })\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n\n // make sure bindings are available in the `set` function\n this.bindings = bindings\n\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n const newLogger = new Child(this)\n\n // must happen before the level is assigned\n appendChildLogger(this, newLogger)\n // required to actually initialize the logger functions for any given child\n newLogger.level = this.level\n\n return newLogger\n }\n return logger\n}\n\nfunction getLevels (opts) {\n const customLevels = opts.customLevels || {}\n\n const values = Object.assign({}, pino.levels.values, customLevels)\n const labels = Object.assign({}, pino.levels.labels, invertObject(customLevels))\n\n return {\n values,\n labels\n }\n}\n\nfunction invertObject (obj) {\n const inverted = {}\n Object.keys(obj).forEach(function (key) {\n inverted[obj[key]] = key\n })\n return inverted\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction getBindingChain (logger) {\n const bindings = []\n if (logger.bindings) {\n bindings.push(logger.bindings)\n }\n\n // traverse up the tree to get all bindings\n let hierarchy = logger[hierarchySymbol]\n while (hierarchy.parent) {\n hierarchy = hierarchy.parent\n if (hierarchy.logger.bindings) {\n bindings.push(hierarchy.logger.bindings)\n }\n }\n\n return bindings.reverse()\n}\n\nfunction set (self, opts, rootLogger, level) {\n // override the current log functions with either `noop` or the base log function\n self[level] = levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger)\n ? noop\n : rootLogger[baseLogFunctionSymbol][level]\n\n if (!opts.transmit && self[level] === noop) {\n return\n }\n\n // make sure the log format is correct\n self[level] = createWrap(self, opts, rootLogger, level)\n\n // prepend bindings if it is not the root logger\n const bindings = getBindingChain(self)\n if (bindings.length === 0) {\n // early exit in case for rootLogger\n return\n }\n self[level] = prependBindingsInArguments(bindings, self[level])\n}\n\nfunction prependBindingsInArguments (bindings, logFunc) {\n return function () {\n return logFunc.apply(this, [...bindings, ...arguments])\n }\n}\n\nfunction createWrap (self, opts, rootLogger, level) {\n return (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || self._level\n const transmitValue = rootLogger.levels.values[transmitLevel]\n const methodValue = rootLogger.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: rootLogger.levels.values[opts.transmit.level || self._level],\n send: opts.transmit.send,\n val: levelToValue(self._level, rootLogger)\n }, args)\n }\n }\n })(self[baseLogFunctionSymbol][level])\n}\n\nfunction asObject (logger, level, args, ts) {\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const o = {}\n if (ts) {\n o.time = ts\n }\n o.level = logger.levels.values[level]\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(o, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) o.msg = msg\n return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n\nmodule.exports.default = pino\nmodule.exports.pino = pino\n"],"names":["displayAlreadyInitializedError","sdkName","initConfiguration","silentMultipleInit","_tools_display__WEBPACK_IMPORTED_MODULE_0__","jf","error","makePublicApi","stub","publicApi","version","onReady","callback","Object","defineProperty","get","_tools_monitor__WEBPACK_IMPORTED_MODULE_0__","yD","enumerable","defineGlobal","global","name","api","existingGlobalVariable","q","_tools_display__WEBPACK_IMPORTED_MODULE_1__","warn","forEach","_tools_catchUserErrors__WEBPACK_IMPORTED_MODULE_2__","Z","fn","addEventListener","configuration","eventTarget","eventName","listener","options","addEventListeners","eventNames","once","capture","passive","listenerWithMonitor","zk","isTrusted","event","__ddIsTrusted","allowUntrustedEvents","stop","listenerTarget","window","EventTarget","prototype","add","_tools_getZoneJsOriginalValue__WEBPACK_IMPORTED_MODULE_1__","I","remove","call","initCookieParsed","getCurrentSiteCache","setCookie","value","expireDelay","date","Date","setTime","getTime","expires","toUTCString","sameSite","crossSite","domain","secure","partitioned","document","cookie","getCookie","_tools_utils_stringUtils__WEBPACK_IMPORTED_MODULE_0__","MY","getInitCookie","kq","areCookiesAuthorized","undefined","testCookieName","DO","testCookieValue","_tools_utils_timeUtils__WEBPACK_IMPORTED_MODULE_1__","yR","isCookieCorrectlySet","_tools_display__WEBPACK_IMPORTED_MODULE_2__","getCurrentSite","domainLevels","location","hostname","split","candidateDomain","pop","length","WT","fetchObservable","initFetchObservable","_tools_observable__WEBPACK_IMPORTED_MODULE_0__","y","fetch","_tools_instrumentMethod__WEBPACK_IMPORTED_MODULE_1__","S","beforeSend","parameters","onPostCall","handlingStack","observable","input","init","methodFromParams","method","Request","String","toUpperCase","url","_tools_utils_urlPolyfill__WEBPACK_IMPORTED_MODULE_2__","D5","context","state","startClocks","_tools_utils_timeUtils__WEBPACK_IMPORTED_MODULE_3__","$I","notify","afterSend","responsePromise","startContext","reportFetch","partialContext","assign","then","_tools_monitor__WEBPACK_IMPORTED_MODULE_4__","response","responseType","type","status","isAborted","_a","_b","signal","aborted","DOMException","code","ABORT_ERR","computeHandlingStack","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","createPageExitObservable","stopListeners","_addEventListener__WEBPACK_IMPORTED_MODULE_1__","visibilityState","reason","stopBeforeUnloadListener","O","isPageExitReason","_tools_utils_polyfills__WEBPACK_IMPORTED_MODULE_2__","TT","includes","xhrObservable","xhrContexts","WeakMap","initXhrObservable","stopInstrumentingStart","XMLHttpRequest","openXhr","stopInstrumentingSend","sendXhr","target","xhr","hasBeenReported","stopInstrumentingOnReadyStateChange","readyState","DONE","onEnd","unsubscribeLoadEndListener","completeContext","duration","_J","timeStamp","n$","_tools_utils_objectUtils__WEBPACK_IMPORTED_MODULE_4__","mv","_addEventListener__WEBPACK_IMPORTED_MODULE_5__","stopInstrumentingAbort","abortXhr","set","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","TraceContextInjection","ALL","SAMPLED","isString","tag","tagName","isSampleRate","sampleRate","_tools_utils_numberUtils__WEBPACK_IMPORTED_MODULE_1__","zz","validateAndBuildConfiguration","_c","_d","_e","_f","site","clientToken","test","IA","aA","sessionSampleRate","telemetrySampleRate","telemetryConfigurationSampleRate","telemetryUsageSampleRate","env","service","trackingConsent","_tools_utils_objectUtils__WEBPACK_IMPORTED_MODULE_2__","E5","_trackingConsent__WEBPACK_IMPORTED_MODULE_3__","h","_tools_catchUserErrors__WEBPACK_IMPORTED_MODULE_4__","sessionStoreStrategyType","_session_sessionStore__WEBPACK_IMPORTED_MODULE_5__","hB","GRANTED","trackAnonymousUser","storeContextsAcrossPages","batchBytesLimit","_tools_utils_byteUtils__WEBPACK_IMPORTED_MODULE_6__","Hi","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","_tools_utils_timeUtils__WEBPACK_IMPORTED_MODULE_7__","batchMessagesLimit","messageBytesLimit","_transportConfiguration__WEBPACK_IMPORTED_MODULE_8__","serializeConfiguration","session_sample_rate","telemetry_sample_rate","telemetry_configuration_sample_rate","telemetry_usage_sample_rate","use_before_send","use_partitioned_cross_site_session_cookie","usePartitionedCrossSiteSessionCookie","use_secure_session_cookie","useSecureSessionCookie","use_proxy","proxy","silent_multiple_init","track_session_across_subdomains","trackSessionAcrossSubdomains","track_anonymous_user","session_persistence","sessionPersistence","allow_fallback_to_local_storage","allowFallbackToLocalStorage","store_contexts_across_pages","allow_untrusted_events","tracking_consent","createEndpointBuilder","trackType","configurationTags","buildUrlWithParameters","createEndpointUrlWithParametersBuilder","path","normalizedProxyUrl","_tools_utils_urlPolyfill__WEBPACK_IMPORTED_MODULE_0__","encodeURIComponent","host","buildEndpointHost","build","payload","buildEndpointParameters","internalAnalyticsSubdomain","retry","encoding","tags","concat","push","count","lastFailureStatus","join","_tools_utils_stringUtils__WEBPACK_IMPORTED_MODULE_2__","reverse","urlPrefix","_intakeSites__WEBPACK_IMPORTED_MODULE_1__","D_","usePciIntake","iL","by","domainParts","extension","INTAKE_SITE_STAGING","INTAKE_SITE_FED_STAGING","INTAKE_SITE_US1","INTAKE_SITE_EU1","INTAKE_SITE_US1_FED","PCI_INTAKE_HOST_US1","INTAKE_URL_PARAMETERS","buildTag","key","rawValue","valueSizeLimit","TAG_SIZE_LIMIT","display","sanitizedValue","replace","computeTransportConfiguration","intakeSites","buildTags","datacenter","endpointBuilders","logsEndpointBuilder","endpointBuilder","E","rumEndpointBuilder","sessionReplayEndpointBuilder","replica","computeReplicaConfiguration","replicaConfiguration","replicaEndpointBuilders","applicationId","isIntakeUrl","Rg","every","param","getConnectivity","navigator","onLine","interfaces","connection","effective_type","effectiveType","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","map","originalConsoleApi","jG","params","apply","console","_tools_stackTrace_handlingStack__WEBPACK_IMPORTED_MODULE_2__","Xp","_tools_monitor__WEBPACK_IMPORTED_MODULE_3__","L6","buildConsoleLog","message","_tools_serialisation_sanitize__WEBPACK_IMPORTED_MODULE_8__","N","_error_error__WEBPACK_IMPORTED_MODULE_4__","VZ","jN","_tools_stackTrace_computeStackTrace__WEBPACK_IMPORTED_MODULE_5__","_","_tools_serialisation_jsonStringify__WEBPACK_IMPORTED_MODULE_9__","l","vA","firstErrorParam","find","stack","P3","fingerprint","un","causes","mD","_tools_utils_timeUtils__WEBPACK_IMPORTED_MODULE_6__","source","_error_error_types__WEBPACK_IMPORTED_MODULE_7__","z","CONSOLE","handling","$","createContextManager","customerDataTracker","changeObservable","contextManager","getContext","_tools_mergeInto__WEBPACK_IMPORTED_MODULE_1__","I8","setContext","_tools_utils_typeUtils__WEBPACK_IMPORTED_MODULE_2__","o","newContext","_tools_serialisation_sanitize__WEBPACK_IMPORTED_MODULE_3__","updateCustomerData","clearContext","setContextProperty","property","removeContextProperty","resetCustomerData","CUSTOMER_DATA_BYTES_LIMIT","_tools_utils_byteUtils__WEBPACK_IMPORTED_MODULE_0__","CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT","createCustomerDataTrackerManager","compressionStatus","customerDataTrackers","Map","alreadyWarned","checkCustomerDataLimit","initialBytesCount","bytesCountLimit","bytesCount","tracker","getBytesCount","_tools_display__WEBPACK_IMPORTED_MODULE_4__","Qo","createDetachedTracker","createCustomerDataTracker","getOrCreateTracker","has","setCompressionStatus","newCompressionStatus","getCompressionStatus","clear","bytesCountCache","throttled","computeBytesCountThrottled","cancel","cancelComputeBytesCount","_tools_utils_functionUtils__WEBPACK_IMPORTED_MODULE_1__","P","qt","_tools_serialisation_jsonStringify__WEBPACK_IMPORTED_MODULE_2__","resetBytesCount","_tools_utils_objectUtils__WEBPACK_IMPORTED_MODULE_3__","Qr","storageListeners","storeContextManager","productKey","customerDataType","storageKey","getFromStorage","rawContext","localStorage","getItem","JSON","parse","_browser_addEventListener__WEBPACK_IMPORTED_MODULE_0__","subscribe","setItem","stringify","$e","NO_ERROR_STACK_PRESENT_MESSAGE","computeRawError","stackTrace","originalError","componentStack","nonErrorPrefix","isErrorInstance","isError","_tools_serialisation_jsonStringify__WEBPACK_IMPORTED_MODULE_1__","_tools_serialisation_sanitize__WEBPACK_IMPORTED_MODULE_2__","hasUsableStack","_tools_stackTrace_handlingStack__WEBPACK_IMPORTED_MODULE_0__","flattenErrorCauses","tryToGetFingerprint","dd_fingerprint","getFileFromStackTraceString","exec","Error","toString","parentSource","currentError","cause","_tools_stackTrace_computeStackTrace__WEBPACK_IMPORTED_MODULE_3__","ErrorSource","AGENT","CUSTOM","LOGGER","NETWORK","SOURCE","REPORT","trackRuntimeError","errorObservable","handleRuntimeError","rawError","_error__WEBPACK_IMPORTED_MODULE_0__","AP","_error_types__WEBPACK_IMPORTED_MODULE_2__","stopInstrumentingOnError","_tools_instrumentMethod__WEBPACK_IMPORTED_MODULE_3__","messageObj","line","column","errorObj","_tools_stackTrace_computeStackTrace__WEBPACK_IMPORTED_MODULE_4__","f","stopInstrumentingOnUnhandledRejection","e","createEventRateLimiter","eventType","limit","onLimitReached","eventCount","allowNextEvent","isLimitReached","_tools_timer__WEBPACK_IMPORTED_MODULE_0__","iK","_error_error_types__WEBPACK_IMPORTED_MODULE_2__","RawReportType","intervention","deprecation","cspViolation","initReportObservable","observables","_browser_addEventListener__WEBPACK_IMPORTED_MODULE_2__","buildRawReportErrorFromCspViolation","blockedURI","effectiveDirective","buildRawReportError","csp","disposition","buildStack","originalPolicy","_tools_utils_stringUtils__WEBPACK_IMPORTED_MODULE_3__","_z","sourceFile","lineNumber","columnNumber","reportTypes","filter","ReportingObserver","handleReports","_tools_monitor__WEBPACK_IMPORTED_MODULE_1__","reports","buildRawReportErrorFromReport","report","body","id","observer","types","buffered","observe","disconnect","partial","_tools_utils_timeUtils__WEBPACK_IMPORTED_MODULE_4__","_error_error_types__WEBPACK_IMPORTED_MODULE_5__","_tools_stackTrace_handlingStack__WEBPACK_IMPORTED_MODULE_6__","func","SESSION_TIME_OUT_DELAY","_tools_utils_timeUtils__WEBPACK_IMPORTED_MODULE_0__","dV","SESSION_EXPIRATION_DELAY","SESSION_COOKIE_EXPIRATION_DELAY","P5","SessionPersistence","COOKIE","LOCAL_STORAGE","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","_sessionConstants__WEBPACK_IMPORTED_MODULE_1__","TN","stopCallbacks","startSessionManager","computeSessionState","trackingConsentState","renewObservable","_tools_observable__WEBPACK_IMPORTED_MODULE_2__","expireObservable","sessionStore","_sessionStore__WEBPACK_IMPORTED_MODULE_3__","vH","sessionContextHistory","_tools_valueHistory__WEBPACK_IMPORTED_MODULE_4__","p","buildSessionContext","getSession","trackingType","isReplayForced","forcedReplay","anonymousId","_q","closeActive","expandOrRenewSession","cQ","relative","isGranted","expire","trackActivity","_browser_addEventListener__WEBPACK_IMPORTED_MODULE_5__","trackVisibility","expandSession","expandSessionWhenVisible","visibilityCheckInterval","_tools_timer__WEBPACK_IMPORTED_MODULE_6__","Zi","cv","trackResume","cb","restartSession","findSession","startTime","sessionStateUpdateObservable","updateSessionState","ongoingOperations","SESSION_STORE_KEY","SESSION_ENTRY_REGEXP","getExpiredSessionState","previousSessionState","expiredSessionState","isExpired","user","os","isSessionInNotStartedState","session","objectUtils","isSessionInExpiredState","sessionState","created","timeUtils","m6","Number","sessionConstants","expandSessionState","sr","toSessionString","polyfills","qP","toSessionState","sessionString","indexOf","matches","entry","selectCookieStrategy","cookieOptions","buildCookieOptions","WQ","oX","retrieveSessionCookie","ej","selectLocalStorageStrategy","stringUtils","testKey","retrievedId","removeItem","persistInLocalStorage","retrieveSessionFromLocalStorage","bufferedOperations","processSessionStoreOperations","operations","sessionStoreStrategy","numberOfRetries","currentLock","isLockEnabled","persistSession","expireSession","persistWithLock","lock","retrieveStore","retrieveSession","next","currentStore","retryLater","processedSession","process","after","currentNumberOfRetries","timer","nextOperations","shift","STORAGE_POLL_DELAY","selectSessionStoreStrategyType","startSessionStore","sessionCache","initCookieStrategy","cookieStore","browserDetection","mJ","d8","expireSessionCookie","uY","tryOldCookiesMigration","cookieStoreStrategy","OC","oldSessionId","oldRumType","oldLogsType","watchSessionTimeoutId","synchronizeSession","startSession","throttledExpandOrRenewSession","cancelExpandOrRenewSession","functionUtils","synchronizedSession","expandOrRenewSessionState","isTracked","hasSessionInCache","previousState","newState","partialSessionState","willSyntheticsInjectRum","Boolean","_DATADOG_SYNTHETICS_INJECTS_RUM","_browser_cookie__WEBPACK_IMPORTED_MODULE_0__","getSyntheticsTestId","_DATADOG_SYNTHETICS_PUBLIC_ID","getSyntheticsResultId","_DATADOG_SYNTHETICS_RESULT_ID","ALLOWED_FRAME_URLS","TELEMETRY_EXCLUDED_SITES","y7","preStartTelemetryBuffer","boundedBuffer","D","onRawTelemetryEventCollected","startTelemetry","telemetryService","contextProvider","tools_observable","alreadySentEvents","Set","telemetryEnabled","numberUtils","telemetryEnabledPerType","runtimeEnvInfo","is_local_file","protocol","is_worker","self","stringifiedEvent","jsonStringify","rawEvent","size","mergeInto","_dd","format_version","telemetry","runtime_env","connectivity","T","sdk_setup","experimental_features","Array","from","experimentalFeatures","u0","sendToExtension","j","monitor","P_","addTelemetryError","setContextProvider","provider","enabled","drainPreStartTelemetry","drain","isTelemetryReplicationAllowed","DZ","addTelemetryDebug","DV","debug","formatError","computeStackTrace","kind","frame","some","startsWith","allowedFrameUrl","K$","addTelemetryConfiguration","addTelemetryUsage","usage","TrackingConsent","NOT_GRANTED","createTrackingConsentState","currentConsent","tryToInit","update","sanitizeUser","newUser","keys","checkUser","isValid","_tools_utils_typeUtils__WEBPACK_IMPORTED_MODULE_0__","generateAnonymousId","Math","floor","random","padStart","AbstractLifeCycle","constructor","callbacks","data","eventCallbacks","unsubscribe","other","createBoundedBuffer","buffer","splice","_utils_arrayUtils__WEBPACK_IMPORTED_MODULE_0__","c","arg","catchUserErrors","errorMsg","args","err","_display__WEBPACK_IMPORTED_MODULE_0__","ConsoleApiName","log","info","globalConsole","originalConsoleMethods","PREFIX","bind","DOCS_ORIGIN","DOCS_TROUBLESHOOTING","MORE_DETAILS","createIdentityEncoder","output","outputBytesCount","isAsync","isEmpty","write","additionalEncodedBytesCount","_utils_byteUtils__WEBPACK_IMPORTED_MODULE_0__","finish","finishSync","result","rawBytesCount","pendingData","estimateEncodedBytesCount","ExperimentalFeature","enabledExperimentalFeatures","initFeatureFlags","enableExperimentalFeatures","isArray","addExperimentalFeatures","enabledFeatures","flag","_utils_objectUtils__WEBPACK_IMPORTED_MODULE_0__","isExperimentalFeatureEnabled","featureName","getExperimentalFeatures","getGlobalObject","globalThis","configurable","globalObject","_dd_temp_","getZoneJsOriginalValue","original","browserWindow","_getGlobalObject__WEBPACK_IMPORTED_MODULE_0__","R","Zone","__symbol__","instrumentMethod","targetPrototype","onPreCall","_utils_functionUtils__WEBPACK_IMPORTED_MODULE_0__","stopped","instrumentation","postCallCallback","arguments","_monitor__WEBPACK_IMPORTED_MODULE_1__","_stackTrace_handlingStack__WEBPACK_IMPORTED_MODULE_2__","instrumentSetter","originalDescriptor","getOwnPropertyDescriptor","stoppedInstrumentation","_timer__WEBPACK_IMPORTED_MODULE_3__","instrumentationWrapper","destination","circularReferenceChecker","createCircularReferenceChecker","WeakSet","hasAlreadyBeenSeen","array","RegExp","flags","ignoreCase","multiline","sticky","unicode","merged","i","_utils_typeUtils__WEBPACK_IMPORTED_MODULE_0__","hasOwnProperty","deepClone","combine","sources","onMonitorErrorCollected","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","monitored","__","descriptor","originalMethod","decorated","callMonitored","monitorError","displayIfDebugEnabled","Observable","onFirstSubscribe","observers","onLastUnsubscribe","mergeObservables","subscriptions","globalObservable","subscription","readBytesFromStream","stream","reader","getReader","chunks","readBytesCount","onDone","bytes","limitExceeded","catch","_utils_functionUtils__WEBPACK_IMPORTED_MODULE_1__","collectStreamBody","completeBuffer","Uint8Array","offset","chunk","slice","bytesLimit","readMore","read","_monitor__WEBPACK_IMPORTED_MODULE_0__","done","__ddBrowserSdkExtensionCallback","replacer","space","restoreObjectPrototypeToJson","detachToJsonMethod","restoreArrayPrototypeToJson","restoreValuePrototypeToJson","getPrototypeOf","restoreValueToJson","objectToJson","object","toJSON","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","sanitize","maxCharacterCount","_jsonStringify__WEBPACK_IMPORTED_MODULE_1__","containerQueue","visitedObjectsWithPath","sanitizedData","sanitizeProcessor","serializedSanitizedData","accumulatedCharacterCount","warnOverCharacterLimit","containerToProcess","separatorLength","targetData","parentPath","queue","sourceToSanitize","tryToApplyToJSON","description","sanitizedSource","sanitizeObjects","Event","currentTarget","match","currentPath","changeType","_display__WEBPACK_IMPORTED_MODULE_2__","ex","stackProperty","tryToGetString","exString","stackFrame","parseChromeLine","parts","CHROME_LINE_RE","isNative","isEval","submatch","CHROME_EVAL_RE","parseChromeAnonymousLine","CHROME_ANONYMOUS_FUNCTION_RE","parseWinLine","WINJS_LINE_RE","parseGeckoLine","GECKO_LINE_RE","GECKO_EVAL_RE","fileUrl","filePosition","candidate","computeStackTraceFromOnErrorMessage","ERROR_TYPES_RE","createHandlingStack","formattedStack","_computeStackTrace__WEBPACK_IMPORTED_MODULE_1__","toStackTraceString","formatErrorMessage","setTimeout","delay","_getZoneJsOriginalValue__WEBPACK_IMPORTED_MODULE_0__","_getGlobalObject__WEBPACK_IMPORTED_MODULE_1__","_monitor__WEBPACK_IMPORTED_MODULE_2__","clearTimeout","timeoutId","setInterval","clearInterval","removeDuplicates","item","index","browserCache","isChromium","detectBrowserCached","isSafari","detectBrowser","userAgent","chrome","vendor","ONE_KIBI_BYTE","ONE_MEBI_BYTE","HAS_MULTI_BYTES_CHARACTERS","computeBytesCount","TextEncoder","encode","Blob","concatBuffers","buffers","reduce","total","throttle","wait","pendingExecutionWithParameters","pendingTimeoutId","needLeadingExecution","leading","needTrailingExecution","trailing","inWaitPeriod","_timer__WEBPACK_IMPORTED_MODULE_0__","gr","noop","performDraw","threshold","round","num","decimals","toFixed","isPercentage","isNumber","shallowClone","objectHasValue","isEmptyObject","mapValues","newObject","findLast","predicate","objectValues","values","objectEntries","entries","isServerError","tryToClone","clone","generateUUID","placeholder","parseInt","COMMA_SEPARATED_KEY_VALUE","findCommaSeparatedValue","rawString","lastIndex","findCommaSeparatedValues","safeTruncate","suffix","lastChar","charCodeAt","correctedLength","isLastCharSurrogatePair","navigationStart","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_YEAR","relativeToClocks","getCorrectedTimeStamp","relativeTime","correctedOrigin","dateNow","performance","now","getNavigationStart","a","timeStampToClocks","getRelativeTime","currentDrift","b","toServerDuration","_numberUtils__WEBPACK_IMPORTED_MODULE_0__","hj","NM","timeStampNow","relativeNow","clocksNow","clocksOrigin","elapsed","start","end","addDuration","timestamp","looksLikeRelativeTime","time","timing","getType","isURLSupported","normalizeUrl","buildUrl","href","isValidUrl","getPathName","pathname","base","supportedURL","getSupportedUrl","originalURL","_serialisation_jsonStringify__WEBPACK_IMPORTED_MODULE_0__","doc","anchorElement","createElement","baseElement","implementation","createHTMLDocument","head","appendChild","URL","END_OF_TIMES","Infinity","CLEAR_OLD_VALUES_INTERVAL","_utils_timeUtils__WEBPACK_IMPORTED_MODULE_0__","createValueHistory","maxEntries","deletedEntries","clearOldValuesInterval","_timer__WEBPACK_IMPORTED_MODULE_1__","clearOldValues","oldTimeThreshold","endTime","_utils_arrayUtils__WEBPACK_IMPORTED_MODULE_2__","close","unshift","returnInactive","latestEntry","findAll","WK","reset","getAllEntries","getDeletedEntries","getEventBridge","eventBridgeGlobal","_tools_getGlobalObject__WEBPACK_IMPORTED_MODULE_0__","DatadogEventBridge","getCapabilities","getPrivacyLevel","getAllowedWebViewHosts","send","viewId","view","bridgeSupports","capability","bridge","canUseEventBridge","currentHost","allowedHost","endsWith","MAX_ONGOING_BYTES_COUNT","byteUtils","MAX_QUEUE_BYTES_COUNT","X9","MAX_BACKOFF_TIME","INITIAL_BACKOFF_TIME","sendWithRetryStrategy","sendStrategy","reportError","transportStatus","queuedPayloads","bandwidthMonitor","canHandle","onSuccess","retryQueuedPayloads","onFailure","enqueue","scheduleRetry","first","dequeue","currentBackoffTime","min","responseUtils","ongoingRequestCount","isFull","queueFullReported","error_types","previousQueue","newPayloadQueue","createHttpRequest","retryState","ongoingByteCount","sendStrategyForRetry","onResponse","isKeepAliveSupported","keepalive","mode","sendXHR","sendOnExit","sendBeaconStrategy","sendBeacon","beaconUrl","hasReportedBeaconError","Sz","request","open","setRequestHeader","createBatch","encoder","flushController","upsertBuffer","flushSubscription","flushObservable","flush","upsertMessages","isPageExit","pageExitObservable","PT","encoderResult","formatPayloadFromEncoder","pendingMessages","addOrUpdate","serializedMessage","estimatedMessageBytesCount","removedMessage","messageBytesCount","notifyAfterRemoveMessage","notifyBeforeAddMessage","notifyAfterAddMessage","realMessageBytesCount","upsert","startBatchWithReplica","primary","sessionExpireObservable","batchFactoryImp","primaryBatch","createBatchFromConfig","replicaBatch","endpoint","httpRequest","UF","createFlushController","messagesLimit","durationLimit","durationLimitTimeoutId","pageExitSubscription","sessionExpireSubscription","currentBytesCount","currentMessagesCount","flushReason","messagesCount","cancelDurationLimitTimeout","messageBytesCountDiff","replicated","transformMessage","isAuthorized","handlerType","logger","loggerHandler","getHandler","sanitizedHandlerType","STATUS_PRIORITIES","getLevel","StatusType","ok","notice","critical","alert","emerg","createErrorFieldFromRawError","includeMessage","STATUSES","Logger","handleLogStrategy","level","loggerContext","W","logImplementation","messageContext","sanitizedMessageContext","error_error","stackTrace_handlingStack","setHandler","handler","setLevel","createLoggerMethod","__decorate","decorators","desc","d","r","Reflect","decorate","Th","DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT","validateAndBuildForwardOption","option","allowedValues","label","arrayUtils","LOGS_STORAGE_KEY","computeTrackingType","logsSentBeforeRumInjectionTelemetryAdded","getRUMInternalContext","syntheticsWorkerValues","Y9","getInternalContextFromRumGlobal","DD_RUM_SYNTHETICS","telemetry_telemetry","eJ","testId","L7","resultId","QB","DD_RUM","rumGlobal","getInternalContext","LogStatusForApi","truncateResponseText","responseText","requestErrorResponseLengthLimit","substring","LifeCycle","abstractLifeCycle","loggerToConsoleApiName","datadogLogs","makeLogsPublicApi","startLogsImpl","customerDataTrackerManager","iv","globalContextManager","userContextManager","H","getCommonContext","referrer","strategy","createPreStartStrategy","doStartLogs","cachedInitConfiguration","cachedConfiguration","bufferApiCalls","trackingConsentStateSubscription","tryStartLogs","startLogsResult","fG","eventBridge","xT","validateAndBuildLogsConfiguration","baseConfiguration","configuration_configuration","fP","forwardConsoleLogs","forwardReports","reportObservable","forwardErrorsToLogs","handleLog","statusType","ue","customLoggers","mainLogger","setTrackingConsent","eG","feature","getGlobalContext","setGlobalContext","setGlobalContextProperty","removeGlobalContextProperty","clearGlobalContext","createLogger","conf","getLogger","getInitConfiguration","setUser","zB","Io","getUser","setUserProperty","sanitizedProperty","removeUserProperty","clearUser","lifeCycle","cleanupTasks","rawLogsEvent","origin","browser_pageExitObservable","Pd","startLogsSessionManagerStub","findTrackedSession","startLogsSessionManager","sessionManager","session_sessionManager","HX","rawSessionType","hasValidLoggerSession","rawTrackingType","stopLogsTelemetry","startLogsTelemetry","VL","application","application_id","action","user_action","Ad","telemetrySubscription","telemetryBatch","G","VG","kx","Uo","serializeLogsConfiguration","baseSerializedInitConfiguration","JZ","forward_errors_to_logs","forward_console_logs","forward_reports","use_pci_intake","task","startNetworkErrorCollection","handleResponse","onResponseDataAvailable","responseData","domainContext","http","status_code","transportConfiguration","isRejected","computeFetchResponseText","clonedResponse","u","TextDecoder","n","decode","text","startRuntimeErrorCollection","rawErrorObservable","stopRuntimeErrorTracking","Lp","startConsoleCollection","consoleObservable","collectedData","startReportCollection","v","u5","logsMessage","savedCommonContext","savedDate","displayInConsole","LD","rawLogEventData","startLogsAssembly","statusWithCustom","logRateLimiters","K","ni","commonContext","anonymous_id","session_id","usr","startLogsBridge","serverLogsEvent","stopLogsBatch","startLogsBatch","batch","trackedSession","tryStringify","module","exports","opts","ss","len","objects","argLen","str","lastPos","flen","u4","errSerializer","__webpack_require__","reqSerializers","resSerializers","mapHttpRequest","mapHttpResponse","req","reqSerializer","res","resSerializer","wrapErrorSerializer","customSerializer","wrapRequestSerializer","wrapResponseSerializer","getErrorCause","causeResult","_stackWithCauses","seen","_messageWithCauses","skip","skipIfVErrorStyleCause","stackWithCauses","messageWithCauses","_err","create","pinoErrProto","g","AggregateError","errors","aggregateErrors","val","raw","Symbol","rawSymbol","writable","pinoReqProto","query","headers","remoteAddress","remotePort","socket","_req","originalUrl","pinoResProto","statusCode","_res","headersSent","getHeaders","_headers","format","pino","_console","pfGlobalThisOrFallback","defd","levelToValue","levels","baseLogFunctionSymbol","hierarchySymbol","logFallbackMap","fatal","trace","appendChildLogger","parentLogger","childLogger","newEntry","parent","serialize","browser","transmit","proto","asObject","serializers","k","stdErrSerialize","customLevels","disabled","setupBaseLogFunctions","logFunctions","_level","setOpts","nullTime","epochTime","getLevels","labels","invertObject","obj","inverted","setMaxListeners","getMaxListeners","emit","addListener","on","prependListener","prependOnceListener","removeListener","removeAllListeners","listeners","listenerCount","_serialize","_stdErrSerialize","child","bindings","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","_childLevel","_logEvent","createLogEventShape","newLogger","rootLogger","logFunc","ts","argsCloned","msg","lvl","transmitLevel","transmitValue","methodValue","methodLevel","messages","getBindingChain","hierarchy","stdSerializers","asErrValue","mock","passthrough","errWithCause","stdTimeFunctions","unixTime","isoTime","toISOString"],"sourceRoot":""}