{"version":3,"file":"static/chunks/pages/_app-f1e34a7aa4bca9da.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/cookie/index.js","webpack://_N_E/?7dfe","webpack://_N_E/./configs/settings.ts","webpack://_N_E/./contents/landingPage.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/logger.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/removable.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/query.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/queryCache.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/mutation.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","webpack://_N_E/./node_modules/@tanstack/react-query-devtools/build/lib/index.mjs","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/display.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/timer.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/typeUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/mergeInto.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/observable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/heavyCustomerDataWarning.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/boundedBuffer.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/timeUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/storedContextManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/tracekit/computeStackTrace.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.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/sessionState.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/oldCookiesMigration.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/tools/utils/urlPolyfill.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/endpointBuilder.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/configuration/configuration.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/configuration.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/sendToExtension.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/browser/pageExitObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.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/eventRateLimiter/createEventRateLimiter.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciTestContext.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/tracekit/tracekit.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestTiming.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/foregroundContexts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/batch.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/flushController.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/constants.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/privacy.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/moveObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/scrollObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/mouseInteractionObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/inputObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/styleSheetObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/mutationObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/observers.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/mediaInteractionObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/focusObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/recordIds.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/viewportResizeObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/frustrationObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/entries/main.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/boot/init.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewContexts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack://_N_E/../../packages/datadog/dist/index.js","webpack://_N_E/../../node_modules/react-cookie/es6/CookiesContext.js","webpack://_N_E/../../node_modules/react-cookie/es6/CookiesProvider.js","webpack://_N_E/../../node_modules/recoil/es/index.js","webpack://_N_E/./pages/_app.tsx","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/queryClient.mjs","webpack://_N_E/../../node_modules/next/dist/shared/lib/dynamic.js","webpack://_N_E/../../node_modules/next/dist/shared/lib/loadable-context.js","webpack://_N_E/../../node_modules/next/dist/shared/lib/loadable.js","webpack://_N_E/../../node_modules/next/dynamic.js","webpack://_N_E/../../node_modules/next/head.js","webpack://_N_E/../../node_modules/next/router.js","webpack://_N_E/../../node_modules/process/browser.js","webpack://_N_E/../../node_modules/react-cookie/es6/Cookies.js","webpack://_N_E/../../node_modules/universal-cookie/es6/utils.js","webpack://_N_E/../../node_modules/universal-cookie/es6/Cookies.js","webpack://_N_E/../../node_modules/universal-cookie/es6/index.js","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/focusManager.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/retryer.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/subscribable.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/utils.mjs","webpack://_N_E/./node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","webpack://_N_E/../../node_modules/next/node_modules/@swc/helpers/src/_define_property.mjs","webpack://_N_E/../../node_modules/next/node_modules/@swc/helpers/src/_object_spread.mjs","webpack://_N_E/../../node_modules/next/node_modules/@swc/helpers/src/_object_spread_props.mjs"],"sourcesContent":["/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"private-next-pages/_app.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n ","type Settings = {\n API_DOMAIN: string;\n CDN_DOMAIN: string;\n MODE?: string;\n PEOPLES_S3_DOMAIN: string;\n};\n\nconst ENV_MODE = process.env.NEXT_PUBLIC_MODE;\n\nconst devDefaultSettings: Settings = {\n API_DOMAIN: \"https://api.elecle.me\",\n CDN_DOMAIN: \"https://d12plrb6tqz2pw.cloudfront.net/assets\",\n PEOPLES_S3_DOMAIN:\n \"https://nine2one.s3.ap-northeast-2.amazonaws.com/station/people/data.json\"\n};\n\nconst prodDefaultSettings: Settings = {\n API_DOMAIN: \"https://api.elecle.bike\",\n CDN_DOMAIN: \"https://cdn.elecle.bike/assets\",\n PEOPLES_S3_DOMAIN:\n \"https://nine2one.s3.ap-northeast-2.amazonaws.com/station/people/data.json\"\n};\n\nconst environmentSettings: { [key: string]: Settings } = {\n development: {\n ...devDefaultSettings,\n MODE: \"development\"\n },\n production: {\n ...prodDefaultSettings,\n MODE: \"production\"\n }\n};\n\nexport const settings: Partial = {\n ...environmentSettings[ENV_MODE]\n};\n\nexport const chatbotSettings = {\n BRAND_KEY: process.env.NEXT_PUBLIC_CHAT_BRAND_KEY,\n CHANNEL_TYPE: process.env.NEXT_PUBLIC_CHAT_CHANNEL_TYPE,\n SCENARIO_ID: process.env.NEXT_PUBLIC_CHAT_SCENARIOD_ID\n};\n","export const SPIRIT = [\n {\n id: \"1.\",\n title: \"우리는 어떤 의견이든 일단 경청합니다.\"\n },\n {\n id: \"2.\",\n title: \"나인투원에서는 누구나 의견을 이야기할 수 있습니다.\"\n },\n {\n id: \"3.\",\n title:\n \"우리는 자유롭게 일할 수 있는 회사에서 최고의 퍼포먼스가 나온다고 믿습니다.\"\n },\n {\n id: \"4.\",\n title: \"우리는 스스로, 열정적으로 경쟁력을 만들어 나갑니다.\"\n },\n {\n id: \"5.\",\n title:\n \"나인투원의 프로페셔널은 각자의 역할과 자부심으로 서로를 편견없이 존중하는 것입니다.\"\n },\n {\n id: \"6.\",\n title: \"우리는 세상에 없던 무언가를 만들어내기 위해 즐겁게 일합니다.\"\n },\n {\n id: \"7.\",\n title: \"우리는 똑똑과 열정 이전에 올바름을 갖춘 사람을 지향합니다.\"\n },\n {\n id: \"8.\",\n title: \"고민과 토론은 충분히, 결정은 신속히, 실행은 지금 즉시합니다.\"\n },\n {\n id: \"9.\",\n title: \"우리는 투명한 정보공유가 최선의 의사결정을 만든다고 믿습니다.\"\n }\n];\n\nexport const PEOPLE = [\n {\n id: 0,\n name: \"배지훈\",\n nickname: \"niel\",\n position: \"CEO\",\n intro:\n \"이동 불편이 더 이상 당연하지 않은 세상을 만들고자 일레클을 시작했습니다. 일레클과 함께하는 일상이 당연한 세상을 만들어나가고 싶습니다.\"\n },\n {\n id: 1,\n name: \"최정완\",\n nickname: \"keats\",\n position: \"COO\",\n intro: \"나인투원에서 일레클 서비스를 운영하고 있는 최정완입니다.\"\n },\n {\n id: 2,\n name: \"이제준\",\n nickname: \"jl\",\n position: \"Head of SW Development\",\n intro:\n \"명확하고 깔끔한 로직을 추구하는, 똑똑하지는 않지만 어려운 문제를 좋아하는, 게으르고 걷는 걸 싫어하는, 자전거 안전홍보대사 출신 개발자입니다. 여러분의 이동을 빠르고 편리하게! elecle\"\n },\n {\n id: 4,\n name: \"김선필\",\n nickname: \"spears\",\n position: \"Backend Engineering Lead\",\n intro:\n '인류의 진화를 견인하는 \"엔지니어\" 들 중 한 명으로 살아가고 있어 늘 짜릿하고 행복합니다. 일레클과 일레클팀에도 저의 이런 마음이 녹아있지요. \"Move or nothing!\"'\n },\n {\n id: 6,\n name: \"이승건\",\n nickname: \"begun\",\n position: \"Head of Business Development\",\n intro:\n \"Innovation = Invention * Commercialization \\n 혁신을 만들기 위해 일레클의 기술력을 사업화하는 역할을 맡고 있습니다. 없어서는 안되는 서비스를 지향합니다.\"\n },\n {\n id: 8,\n name: \"정하나\",\n nickname: \"lucky\",\n position: \"Head of Customer Service\",\n intro:\n \"혼자가 아닌 팀과 협동하여 목표를 이루어 낼 때 진정한 쾌감을 느낍니다. 일레클과 함께 더 큰 목표를 달성하기 위해 열심히 달리겠습니다!\"\n },\n {\n id: 10,\n name: \"홍창석\",\n nickname: \"kendric\",\n position: \"Operation Leader\",\n intro:\n \"서비스관리부 각 파트의 구성원들이 담당업무에서 최고의 성과를 낼 수 있도록 지원하고 운영전반을 관리하고 있습니다.\"\n },\n {\n id: 11,\n name: \"이종현\",\n nickname: \"sena\",\n position: \"CTO\",\n intro:\n \"저는 바퀴 달리고 화면 달린 건 다 좋아합니다. 그래서 바퀴 달린 것에 화면 다는 일을 하고 있습니다:)\"\n },\n {\n id: 12,\n name: \"현정호\",\n nickname: \"neat\",\n position: \"Production & Sourcing Manager\",\n intro:\n \"나인투원에서 기구 설계 및 Fleet Sourcing 을 담당하고 있습니다. 사용자와 물리적으로 맞닿는 모든 부분을 개선하기 위해 노력합니다.\"\n },\n {\n id: 13,\n name: \"장민수\",\n nickname: \"jeioter\",\n position: \"Embedded Engineer(FW)\",\n intro:\n \"임베디드 개발 5년차 장민수입니다. 사람들의 일상이동을 더 쉽고 편하게 만들기 위해 노력합니다.\"\n },\n {\n id: 16,\n name: \"장민순\",\n nickname: \"jeongal\",\n position: \"Embedded Engineer(FW)\",\n intro: \"좋은 서비스를 위해 최선을 다하겠습니다!\"\n },\n {\n id: 20,\n name: \"원민중\",\n nickname: \"lavina\",\n position: \"Product Manager\",\n intro:\n \"유저와 비즈니스 모두 만족시키는 프로덕트를 추구합니다. 그런데 저는 유저를 더 사랑해요.\"\n },\n\n {\n id: 21,\n name: \"박의연\",\n nickname: \"edwin\",\n position: \"Data Specialist\",\n intro:\n \"데이터를 통해 세상을 바라보고, 소통하는 것이 즐거운 박의연입니다. 어려운 문제를 고민하고 해결하며 성장하는 것을 좋아해요.\"\n },\n\n {\n id: 22,\n name: \"백지민\",\n nickname: \"mz\",\n position: \"Business Development Manager\",\n intro:\n \"새로운 시도와 문제를 해결해 나가는 과정을 좋아합니다. 일레클이 더 많은 사람들의 일상 속에 스며들 수 있도록 사업적인 방법을 고민하고 있어요.\"\n },\n\n {\n id: 23,\n name: \"엄윤경\",\n nickname: \"dochi\",\n position: \"Product Manager\",\n intro:\n \"사람들의 고민과 이야기를 듣고 같이 해결해나가는 것을 좋아합니다. 평범한 일상에서 아이디어와 영감을 얻을 때 늘 짜릿합니다..!\"\n },\n {\n id: 30,\n name: \"김건우\",\n nickname: \"slinky\",\n position: \"Android Engineer\",\n intro: \"안드로이드 개발자 김건우입니다. 누구나 사용하기 쉬운 앱을 만듭니다!\"\n },\n {\n id: 31,\n name: \"이주석\",\n nickname: \"saturn\",\n position: \"Supply Chain Manager\",\n intro:\n \"지리와 교통수단에 관심이 많아 어느곳으로든 편하고 빠르게 이동할 수 있도록 물류에 발을 들였습니다. 전국 어디에서나 일레클을 즐겁게 이용하실 수 있도록 돕겠습니다.\"\n },\n {\n id: 35,\n name: \"김민해\",\n nickname: \"tombo\",\n position: \"Product Designer\",\n intro: \"일레클에서의 경험을 디자인하는 김민해입니다. 따르릉!\"\n },\n {\n id: 36,\n name: \"진수철\",\n nickname: \"road\",\n position: \"Operation Planning Manager\",\n intro:\n \"운영기획을 담당하고 있습니다. 일레클을 이용하는 모든 순간을 즐겁게 만드는것이 목표입니다.\"\n },\n {\n id: 37,\n name: \"장승화\",\n nickname: \"lorang\",\n position: \"Operation Planning Manager\",\n intro:\n \"나인투원의 운영과 기획을 담당하고 있습니다. 고객의 진짜 문제를 찾고 해결하는 것을 지향합니다.\"\n },\n {\n id: 38,\n name: \"최민석\",\n nickname: \"liljerry\",\n position: \"Business Development Analyst\",\n intro:\n \"어제보다 나은 오늘, 오늘보다 나은 내일을 위해 노력합니다! 일레클을 통해 새로운 이동으로의 전환을 가속시키겠습니다!\"\n },\n {\n id: 39,\n name: \"이지원\",\n nickname: \"rieul\",\n position: \"iOS Engineer\",\n intro: \"더 나은 코드를 위해 끊임없이 고민하고 있습니다.\"\n },\n {\n id: 40,\n name: \"신지호\",\n nickname: \"harrison\",\n position: \"Android Engineer\",\n intro:\n \"깔끔한 로직을 추구하고, 사용자의 관점에서 생각하며 개발하는것을 좋아합니다.\"\n },\n {\n id: 41,\n name: \"류명기\",\n nickname: \"chopa\",\n position: \"Backend Engineer\",\n intro:\n \"신뢰할 수 있는 서비스를 위해 다양한 고민과 새로운 도전을 좋아합니다. 꾸준함의 힘을 믿습니다!\"\n },\n {\n id: 42,\n name: \"박상진\",\n nickname: \"nathan\",\n position: \"HR Manager\",\n intro:\n \"나인투원 팀원 모두가 행복하게 일할 수 있도록 돕는 일을 합니다. 모두 행복하세요!\"\n },\n {\n id: 44,\n name: \"우호용\",\n nickname: \"dominico\",\n position: \"Customer Service Manager\",\n intro: \"항상 더 좋은 서비스로 불편함이 없도록 생각하고 노력하겠습니다!\"\n },\n {\n id: 45,\n name: \"박민이\",\n nickname: \"mininer\",\n position: \"Operations Planning Manager\",\n intro:\n \"일레클의 운영 기획을 담당하고 있습니다. 언제 어디서나 일레클을 이용하실 수 있게 하고 싶습니다.\"\n },\n {\n id: 46,\n name: \"김승훈\",\n nickname: \"frank\",\n position: \"Business Development Analyst\",\n intro:\n \"전국에 일레클이 많아질수록 이동의 퀄리티는 높아진다고 믿습니다. 더 많은 지역에서 더 많은 분들이 일레클을 경험하실 수 있기를 바랍니다.\"\n },\n {\n id: 47,\n name: \"임수진\",\n nickname: \"gia\",\n position: \"Web Frontend Engineer\",\n intro: \"새로운 지식 습득을 즐기고 읽기 좋은 코드를 만드는걸 좋아합니다.\"\n },\n {\n id: 48,\n name: \"유아린\",\n nickname: \"lini\",\n position: \"Marketing Designer\",\n intro:\n \"마케팅 디자인을 담당하고 있으며 아이디어를 시각적으로 잘 표현해내기 위해 노력합니다!\"\n },\n {\n id: 49,\n name: \"홍주리\",\n nickname: \"dora\",\n position: \"Data Analyst\",\n intro:\n \"일레클의 데이터를 분석하고 있습니다. 데이터 속에 답이 있다고 믿고 있습니다!\"\n },\n {\n id: 51,\n name: \"박병성\",\n nickname: \"kuma\",\n position: \"Production Manager\",\n intro: \"나인투원에서 모빌리티를 효율적으로 생산이 가능하도록 노력합니다.\"\n },\n {\n id: 52,\n name: \"이승연\",\n nickname: \"lyla\",\n position: \"Backend Engineer\",\n intro:\n \"잘 정리된 시스템을 만들기 위해 노력하는 백엔드 개발자입니다. 일레클과 함께 끊임없이 성장하고 싶습니다.\"\n },\n {\n id: 53,\n name: \"서상진\",\n nickname: \"podong\",\n position: \"Backend Engineer\",\n intro:\n \"상상을 현실로 만들기 위해 끊임없이 도전하고, 실패를 통해 얻은 지식으로 안전하고 견고한 서비스 개발을 지향하는 개발자입니다.\"\n },\n {\n id: 54,\n name: \"송기웅\",\n nickname: \"dune\",\n position: \"Backend Engineer\",\n intro:\n \"서버 개발과 인프라 설계에 관심이 있는 개발자입니다. 주변 사람들에게 긍정적인 영향을 줄 수 있는 개발자가 되고 싶습니다. 365일 장애없는 서비스 운영을 목표로 열심히 달려보겠습니다.\"\n },\n {\n id: 55,\n name: \"이지원\",\n nickname: \"zion\",\n position: \"Franchise Sales Manager\",\n intro: \"일레클이 더 많은 사람들에게 닿기를 바랍니다!\"\n },\n {\n id: 56,\n name: \"이지은\",\n nickname: \"wiggle\",\n position: \"Franchise Sales Manager\",\n intro:\n \"일상 속 힐링과 재미를 주는 일레클 :) 많은 사람들이 경험할 수 있도록 무한 질주하겠습니다\"\n },\n {\n id: 57,\n name: \"장서윤\",\n nickname: \"unis\",\n position: \"Business Development Analyst\",\n intro: \"데이터를 통해 일레클 유저의 마음을 읽고자 합니다 :)\"\n }\n];\nexport const PARTNERS = [\n \"molit\",\n \"mois\",\n \"seoul\",\n \"sejong\",\n \"gimpo\",\n \"bucheon\",\n \"jeju\",\n \"samsung\",\n \"h-ec\",\n \"socar\",\n \"lgcns\",\n \"ktpowertel\"\n];\n\nexport const ARTICLES = [\n {\n title: \"쏘카 공유전기자전거 3기 가맹사업자 모집\",\n subtitle: \"헤럴드경제 | 2024.01.15\",\n link: \"https://news.heraldcorp.com/view.php?ud=20240115000351\"\n },\n {\n title: \"쏘카 공유 퍼스널 모빌리티 플랫폼 일레클, 3기 가맹사업자 모집\",\n subtitle: \"매일일보 | 2024.01.12\",\n link: \"https://www.m-i.kr/news/articleView.html?idxno=1084024\"\n },\n {\n title:\n \"전기자전거 일레클, 가맹사업자 3기 모집…상반기 가맹 규모 1만 대까지 확대\",\n subtitle: \"서울경제 | 2024.01.12\",\n link: \"https://www.sedaily.com/NewsView/2D420IAVKO\"\n },\n {\n title: \"일레클, 3기 가맹사업자 모집…상반기 가맹 운영대수 1만대로\",\n subtitle: \"연합뉴스 | 2024.01.12\",\n link: \"https://www.yna.co.kr/view/AKR20240112024900030?input=1195m\"\n },\n {\n title: \"'이동의 모든 순간을 연결하라'…쏘카, 스트리밍 모빌리티 고도화\",\n subtitle: \"이데일리 | 2023.10.31\",\n link: \"https://www.edaily.co.kr/news/read?newsId=01292326635778496&mediaCodeNo=257&OutLnkChk=Y\"\n },\n {\n title: \"메이트네트웍스, 속초 이어 강릉으로 전기자전거 '일레클' 서비스 확대\",\n subtitle: \"에너지경제신문 | 2023.09.08\",\n link: \"https://www.ekn.kr/web/view.php?key=20230908001049034\"\n },\n {\n title: \"'일레클' 고성장…쏘카, 연간 흑자 기대감 '솔솔'\",\n subtitle: \"딜사이트 | 2023.08.21\",\n link: \"https://dealsite.co.kr/articles/108810\"\n },\n {\n title: \"“전기자전거로만 110억원”...쏘카 일레클 매출 3배 ‘쑥’\",\n subtitle: \"매일경제 | 2023.02.18\",\n link: \"https://www.mk.co.kr/news/business/10650077\"\n }\n];\n\nexport const GA_ID = \"UA-144258378-1\";\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\"Missing queryFn for queryKey '\" + this.options.queryHash + \"'\");\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error(this.queryHash + \" data is undefined\"));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState,\n fetchStatus: 'idle'\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject(\"Missing queryFn for queryKey '\" + context.options.queryHash + \"'\"));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","'use client';\nimport { ReactQueryDevtools as ReactQueryDevtools$1, ReactQueryDevtoolsPanel as ReactQueryDevtoolsPanel$1 } from './devtools.mjs';\n\nconst ReactQueryDevtools = process.env.NODE_ENV !== 'development' ? function () {\n return null;\n} : ReactQueryDevtools$1;\nconst ReactQueryDevtoolsPanel = process.env.NODE_ENV !== 'development' ? function () {\n return null;\n} : ReactQueryDevtoolsPanel$1;\n\nexport { ReactQueryDevtools, ReactQueryDevtoolsPanel };\n//# sourceMappingURL=index.mjs.map\n","/* 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 var 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 var globalConsole = console;\nexport var originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach(function (name) {\n originalConsoleMethods[name] = globalConsole[name];\n});\nvar PREFIX = 'Datadog Browser SDK:';\nexport var 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};\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { display } from './display';\nvar onMonitorErrorCollected;\nvar 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 var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var 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 displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (debugMode) {\n display.error.apply(display, __spreadArray(['[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.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: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var 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","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar 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 var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.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 var browserWindow = getGlobalObject();\n var 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 { 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","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\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 * 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 { 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) {\n if (circularReferenceChecker === void 0) { 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 var 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 var merged_1 = Array.isArray(destination) ? destination : [];\n for (var i = 0; i < source.length; ++i) {\n merged_1[i] = mergeInto(merged_1[i], source[i], circularReferenceChecker);\n }\n return merged_1;\n }\n var merged = getType(destination) === 'object' ? destination : {};\n for (var 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() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var destination;\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\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 var set_1 = new WeakSet();\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set_1.has(value);\n if (!has) {\n set_1.add(value);\n }\n return has;\n },\n };\n }\n var array = [];\n return {\n hasAlreadyBeenSeen: function (value) {\n var 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 { 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 var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n var restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n var 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 var object = value;\n var objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return function () {\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, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nvar 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.\nvar KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount) {\n var _a;\n if (maxCharacterCount === void 0) { maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT; }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = [];\n var visitedObjectsWithPath = new WeakMap();\n var sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n var accumulatedCharacterCount = ((_a = JSON.stringify(sanitizedData)) === null || _a === void 0 ? void 0 : _a.length) || 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n var containerToProcess = containerQueue.shift();\n var 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 (var key = 0; key < containerToProcess.source.length; key++) {\n var 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 (var key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n var 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 var sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n var 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 var sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return \"[Reference seen at \".concat(visitedObjectsWithPath.get(sourceAsObject), \"]\");\n }\n // Add processed source to queue\n var currentPath = key !== undefined ? \"\".concat(parentPath, \".\").concat(key) : parentPath;\n var target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target: 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] \".concat(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] \".concat(value.name || 'unknown');\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return \"[Symbol] \".concat(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 * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n };\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value);\n var match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return \"[\".concat(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}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var 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 \".concat(changeType, \" as it is over the limit of \").concat(maxCharacterCount, \" characters:\"), source);\n}\n//# sourceMappingURL=sanitize.js.map","var Observable = /** @class */ (function () {\n function Observable(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n Observable.prototype.subscribe = function (f) {\n var _this = this;\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;\n }\n this.observers.push(f);\n return {\n unsubscribe: function () {\n _this.observers = _this.observers.filter(function (other) { return f !== other; });\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe();\n }\n },\n };\n };\n Observable.prototype.notify = function (data) {\n this.observers.forEach(function (observer) { return observer(data); });\n };\n return Observable;\n}());\nexport { Observable };\nexport function mergeObservables() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var globalObservable = new Observable(function () {\n var subscriptions = observables.map(function (observable) {\n return observable.subscribe(function (data) { return globalObservable.notify(data); });\n });\n return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); };\n });\n return globalObservable;\n}\n//# sourceMappingURL=observable.js.map","var _a;\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { display } from '../../tools/display';\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 var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\nvar CustomerDataLabel = (_a = {},\n _a[0 /* CustomerDataType.FeatureFlag */] = 'feature flag evaluation',\n _a[1 /* CustomerDataType.User */] = 'user',\n _a[2 /* CustomerDataType.GlobalContext */] = 'global context',\n _a[3 /* CustomerDataType.LoggerContext */] = 'logger context',\n _a);\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\"The \".concat(CustomerDataLabel[customerDataType], \" data exceeds the recommended \").concat(CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE, \"KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-3kib-warning\"));\n return true;\n }\n return false;\n}\n//# sourceMappingURL=heavyCustomerDataWarning.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning';\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var context = {};\n var bytesCountCache;\n var alreadyWarned = false;\n var changeObservable = new Observable();\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 var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, customerDataType);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled;\n var contextManager = {\n getBytesCount: function () { return bytesCountCache; },\n /** @deprecated use getContext instead */\n get: function () { return context; },\n /** @deprecated use setContextProperty instead */\n add: function (key, value) {\n context[key] = value;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated renamed to removeContextProperty */\n remove: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated use setContext instead */\n set: function (newContext) {\n context = newContext;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n computeBytesCountThrottled(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n removeContextProperty: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n clearContext: function () {\n context = {};\n bytesCountCache = 0;\n changeObservable.notify();\n },\n changeObservable: changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","var BUFFER_LIMIT = 500;\nvar BoundedBuffer = /** @class */ (function () {\n function BoundedBuffer() {\n this.buffer = [];\n }\n BoundedBuffer.prototype.add = function (callback) {\n var length = this.buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n this.buffer.splice(0, 1);\n }\n };\n BoundedBuffer.prototype.drain = function () {\n this.buffer.forEach(function (callback) { return callback(); });\n this.buffer.length = 0;\n };\n return BoundedBuffer;\n}());\nexport { BoundedBuffer };\n//# sourceMappingURL=boundedBuffer.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","import { isNumber, round } from './numberUtils';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = 60 * ONE_SECOND;\nexport var ONE_HOUR = 60 * ONE_MINUTE;\nexport var ONE_DAY = 24 * ONE_HOUR;\nexport var ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var 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/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\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 */\nvar navigationStart;\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\nexport function resetNavigationStart() {\n navigationStart = undefined;\n}\n//# sourceMappingURL=timeUtils.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date();\n date.setTime(date.getTime() + expireDelay);\n var expires = \"expires=\".concat(date.toUTCString());\n var sameSite = options && options.crossSite ? 'none' : 'strict';\n var domain = options && options.domain ? \";domain=\".concat(options.domain) : '';\n var secure = options && options.secure ? ';secure' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\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 var testCookieName = \"dd_cookie_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n var 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 */\nvar 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 var testCookieName = \"dd_site_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n var domainLevels = window.location.hostname.split('.');\n var candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = \"\".concat(domainLevels.pop(), \".\").concat(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","/**\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 : \"\".concat(1e7, \"-\").concat(1e3, \"-\").concat(4e3, \"-\").concat(8e3, \"-\").concat(1e11).replace(/[018]/g, generateUUID);\n}\nexport function findCommaSeparatedValue(rawString, name) {\n var regex = new RegExp(\"(?:^|;)\\\\s*\".concat(name, \"\\\\s*=\\\\s*([^;]+)\"));\n var matches = regex.exec(rawString);\n return matches ? matches[1] : undefined;\n}\nexport function safeTruncate(candidate, length, suffix) {\n if (suffix === void 0) { suffix = ''; }\n var lastChar = candidate.charCodeAt(length - 1);\n var isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n var correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return \"\".concat(candidate.slice(0, correctedLength)).concat(suffix);\n}\n//# sourceMappingURL=stringUtils.js.map","import { getCookie } from '../../browser/cookie';\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","import { endsWith } from '../tools/utils/polyfills';\nimport { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getAllowedWebViewHosts: function () {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send: function (eventType, event) {\n eventBridgeGlobal.send(JSON.stringify({ eventType: eventType, event: event }));\n },\n };\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 var bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some(function (allowedHost) { return currentHost === allowedHost || endsWith(currentHost, \".\".concat(allowedHost)); }));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.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(_, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var listenerWithMonitor = monitor(once\n ? function (event) {\n stop();\n listener(event);\n }\n : listener);\n var options = passive ? { capture: capture, passive: passive } : capture;\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');\n eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, listenerWithMonitor, options); });\n function stop() {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');\n eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, listenerWithMonitor, options); });\n }\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { createContextManager } from './contextManager';\nvar CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nvar storageListeners = [];\nexport function createStoredContextManager(configuration, productKey, customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var storageKey = buildStorageKey(productKey, customerDataType);\n var contextManager = createContextManager(customerDataType, computeBytesCountImpl);\n synchronizeWithStorage();\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, function (_a) {\n var key = _a.key;\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n return contextManager;\n function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey);\n var context = rawContext !== null ? JSON.parse(rawContext) : {};\n contextManager.setContext(context);\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return \"\".concat(CONTEXT_STORE_KEY_PREFIX, \"_\").concat(productKey, \"_\").concat(customerDataType);\n}\nexport function removeStorageListeners() {\n storageListeners.map(function (listener) { return listener.stop(); });\n}\n//# sourceMappingURL=storedContextManager.js.map","import { startsWith } from '../../tools/utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\n/**\n * Computes a stack trace for an exception.\n */\nexport function computeStackTrace(ex) {\n var stack = [];\n var stackProperty = tryToGetString(ex, 'stack');\n var exString = String(ex);\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach(function (line) {\n var 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: stack,\n };\n}\nvar fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nvar filePosition = '(?::(\\\\d+))';\nvar CHROME_LINE_RE = new RegExp(\"^\\\\s*at (.*?) ?\\\\(\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"?\\\\)?\\\\s*$\"), 'i');\nvar CHROME_EVAL_RE = new RegExp(\"\\\\((\\\\S*)\".concat(filePosition).concat(filePosition, \"\\\\)\"));\nfunction parseChromeLine(line) {\n var parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n var 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}\nvar CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(\"^\\\\s*at ?\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"??\\\\s*$\"), 'i');\nfunction parseChromeAnonymousLine(line) {\n var 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}\nvar WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n var 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}\nvar GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n var parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var 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 var value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { computeStackTrace } from '../tracekit';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { noop } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nexport var NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError(_a) {\n var stackTrace = _a.stackTrace, originalError = _a.originalError, handlingStack = _a.handlingStack, startClocks = _a.startClocks, nonErrorPrefix = _a.nonErrorPrefix, source = _a.source, handling = _a.handling;\n var isErrorInstance = originalError instanceof Error;\n var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n var type = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name;\n var fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n handlingStack: handlingStack,\n originalError: originalError,\n type: type,\n message: message,\n stack: stack,\n causes: causes,\n fingerprint: 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 ? \"\".concat(nonErrorPrefix, \" \").concat(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 originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined;\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack);\n stack.stack.forEach(function (frame) {\n var func = frame.func === '?' ? '' : frame.func;\n var args = frame.args && frame.args.length > 0 ? \"(\".concat(frame.args.join(', '), \")\") : '';\n var line = frame.line ? \":\".concat(frame.line) : '';\n var column = frame.line && frame.column ? \":\".concat(frame.column) : '';\n result += \"\\n at \".concat(func).concat(args, \" @ \").concat(frame.url).concat(line).concat(column);\n });\n return result;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function formatErrorMessage(stack) {\n return \"\".concat(stack.name || 'Error', \": \").concat(stack.message);\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \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 var internalFramesToSkip = 2;\n var error = new Error();\n var formattedStack;\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error;\n }\n catch (e) {\n noop();\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error;\n var causes = [];\n while ((currentError === null || currentError === void 0 ? void 0 : currentError.cause) instanceof Error && causes.length < 10) {\n var 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","/**\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\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"PAGEHIDE\"] = \"pagehide\";\n ExperimentalFeature[\"FEATURE_FLAGS\"] = \"feature_flags\";\n ExperimentalFeature[\"RESOURCE_PAGE_STATES\"] = \"resource_page_states\";\n ExperimentalFeature[\"PAGE_STATES\"] = \"page_states\";\n ExperimentalFeature[\"COLLECT_FLUSH_REASON\"] = \"collect_flush_reason\";\n ExperimentalFeature[\"NO_RESOURCE_DURATION_FROZEN_STATE\"] = \"no_resource_duration_frozen_state\";\n ExperimentalFeature[\"SCROLLMAP\"] = \"scrollmap\";\n ExperimentalFeature[\"INTERACTION_TO_NEXT_PAINT\"] = \"interaction_to_next_paint\";\n ExperimentalFeature[\"WEB_VITALS_ATTRIBUTION\"] = \"web_vitals_attribution\";\n ExperimentalFeature[\"DISABLE_REPLAY_INLINE_CSS\"] = \"disable_replay_inline_css\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nvar enabledExperimentalFeatures = new Set();\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach(function (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","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { assign } from '../../tools/utils/polyfills';\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 var user = assign({}, newUser);\n var keys = ['id', 'name', 'email'];\n keys.forEach(function (key) {\n if (key in user) {\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 var isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\n//# sourceMappingURL=user.js.map","import { assign } from './polyfills';\nexport function shallowClone(object) {\n return assign({}, object);\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some(function (key) { return object[key] === value; });\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n var newObject = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils';\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\n//# sourceMappingURL=sessionConstants.js.map","var browserIsIE;\nexport function isIE() {\n return browserIsIE !== null && browserIsIE !== void 0 ? browserIsIE : (browserIsIE = Boolean(document.documentMode));\n}\nvar browserIsChromium;\nexport function isChromium() {\n return (browserIsChromium !== null && browserIsChromium !== void 0 ? browserIsChromium : (browserIsChromium = !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent)));\n}\nvar browserIsSafari;\nexport function isSafari() {\n return browserIsSafari !== null && browserIsSafari !== void 0 ? browserIsSafari : (browserIsSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent));\n}\n//# sourceMappingURL=browserDetection.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport function isSessionInExpiredState(session) {\n return isEmptyObject(session);\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var 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 clearSession: deleteSessionCookie(cookieOptions),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction deleteSessionCookie(options) {\n return function () {\n deleteCookie(SESSION_STORE_KEY, options);\n };\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { getCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var OLD_SESSION_COOKIE_NAME = '_dd';\nexport var OLD_RUM_COOKIE_NAME = '_dd_r';\nexport var OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport var RUM_SESSION_KEY = 'rum';\nexport var 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 var sessionString = getCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getCookie(OLD_LOGS_COOKIE_NAME);\n var 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 (!isSessionInExpiredState(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY);\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var isLockEnabled = sessionStoreStrategy.isLockEnabled, retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\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 var currentLock;\n var currentSession = retrieveSession();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n currentSession.lock = currentLock;\n persistSession(currentSession);\n // if lock is not acquired, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentSession);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession();\n }\n else {\n expandSessionState(processedSession);\n persistSession(processedSession);\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 currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n delete currentSession.lock;\n persistSession(currentSession);\n processedSession = currentSession;\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 || currentSession);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var 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 { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\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 var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\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, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var clearSession = sessionStoreStrategy.clearSession, retrieveSession = sessionStoreStrategy.retrieveSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache = retrieveActiveSession();\n function expandOrRenewSession() {\n var isTracked;\n processSessionStoreOperations({\n process: function (sessionState) {\n var synchronizedSession = synchronizeSession(sessionState);\n isTracked = expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (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: function (sessionState) { return (!isActiveSession(sessionState) ? {} : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {};\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function expandOrRenewSessionState(sessionState) {\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n return isTracked;\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 = {};\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function retrieveActiveSession() {\n var session = retrieveSession();\n if (isActiveSession(session)) {\n return session;\n }\n return {};\n }\n function 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 }\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n clearSession();\n synchronizeSession({});\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, getLocationOrigin()).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getOrigin(url) {\n return getLinkElementOrigin(buildUrl(url));\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\n}\nexport function getSearch(url) {\n return buildUrl(url).search;\n}\nexport function getHash(url) {\n return buildUrl(url).hash;\n}\nexport function buildUrl(url, base) {\n var 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: \".concat(String(error), \" \").concat(jsonStringify({ url: url, base: base })));\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(\"Invalid URL: '\".concat(url, \"'\"));\n }\n var doc = document;\n var anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n var 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}\nvar originalURL = URL;\nvar isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n var 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}\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location);\n}\n/**\n * Fallback\n * On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n * On Firefox window.location.origin is \"null\" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin;\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '');\n return \"\".concat(element.protocol, \"//\").concat(sanitizedHost);\n}\n//# sourceMappingURL=urlPolyfill.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport var INTAKE_SITE_AP1 = 'ap1.datadoghq.com';\nexport var INTAKE_SITE_US1_FED = 'ddog-gov.com';\n//# sourceMappingURL=intakeSites.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_AP1, INTAKE_SITE_US1 } from './intakeSites';\nexport var ENDPOINTS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'session-replay',\n};\nvar INTAKE_TRACKS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'replay',\n};\nexport function createEndpointBuilder(initConfiguration, endpointType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, endpointType);\n return {\n build: function (api, payload) {\n var parameters = buildEndpointParameters(initConfiguration, endpointType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n endpointType: endpointType,\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, endpointType) {\n var path = \"/api/v2/\".concat(INTAKE_TRACKS[endpointType]);\n var proxy = initConfiguration.proxy, proxyUrl = initConfiguration.proxyUrl;\n if (proxy) {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n var host = buildEndpointHost(initConfiguration, endpointType);\n if (proxy === undefined && proxyUrl) {\n // TODO: remove this in a future major.\n var normalizedProxyUrl_2 = normalizeUrl(proxyUrl);\n return function (parameters) {\n return \"\".concat(normalizedProxyUrl_2, \"?ddforward=\").concat(encodeURIComponent(\"https://\".concat(host).concat(path, \"?\").concat(parameters)));\n };\n }\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(initConfiguration, endpointType) {\n var _a = initConfiguration.site, site = _a === void 0 ? INTAKE_SITE_US1 : _a, internalAnalyticsSubdomain = initConfiguration.internalAnalyticsSubdomain;\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return \"\".concat(internalAnalyticsSubdomain, \".\").concat(INTAKE_SITE_US1);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n var subdomain = site !== INTAKE_SITE_AP1 ? \"\".concat(ENDPOINTS[endpointType], \".\") : '';\n return \"\".concat(subdomain, \"browser-intake-\").concat(domainParts.join('-'), \".\").concat(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(_a, endpointType, configurationTags, api, _b) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;\n var tags = [\"sdk_version:\".concat(\"4.50.1\"), \"api:\".concat(api)].concat(configurationTags);\n if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {\n tags.push(\"flush_reason:\".concat(flushReason));\n }\n if (retry) {\n tags.push(\"retry_count:\".concat(retry.count), \"retry_after:\".concat(retry.lastFailureStatus));\n }\n var parameters = [\n 'ddsource=browser',\n \"ddtags=\".concat(encodeURIComponent(tags.join(','))),\n \"dd-api-key=\".concat(clientToken),\n \"dd-evp-origin-version=\".concat(encodeURIComponent(\"4.50.1\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (encoding) {\n parameters.push(\"dd-evp-encoding=\".concat(encoding));\n }\n if (endpointType === 'rum') {\n parameters.push(\"batch_time=\".concat(timeStampNow()));\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { display } from '../../tools/display';\nexport var TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n var env = configuration.env, service = configuration.service, version = configuration.version, datacenter = configuration.datacenter;\n var 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}\nvar FORBIDDEN_CHARACTERS = /[^a-z0-9_:./-]/;\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 var valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || FORBIDDEN_CHARACTERS.test(rawValue)) {\n display.warn(\"\".concat(key, \" value doesn't meet tag requirements and will be sanitized\"));\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 var sanitizedValue = rawValue.replace(/,/g, '_');\n return \"\".concat(key, \":\").concat(sanitizedValue);\n}\n//# sourceMappingURL=tags.js.map","import { objectValues, assign } from '../../tools/utils/polyfills';\nimport { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1 } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n var tags = buildTags(initConfiguration);\n var endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n var intakeUrlPrefixes = objectValues(endpointBuilders).map(function (builder) { return builder.urlPrefix; });\n var replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags);\n return assign({\n isIntakeUrl: function (url) { return intakeUrlPrefixes.some(function (intakeEndpoint) { return url.indexOf(intakeEndpoint) === 0; }); },\n replica: replicaConfiguration,\n site: initConfiguration.site || INTAKE_SITE_US1,\n }, endpointBuilders);\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'sessionReplay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n var replicaConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n });\n var replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n intakeUrlPrefixes.push.apply(intakeUrlPrefixes, objectValues(replicaEndpointBuilders).map(function (builder) { return builder.urlPrefix; }));\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders);\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { display } from '../../tools/display';\nimport { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures';\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 { assign } from '../../tools/utils/polyfills';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n var sessionSampleRate = (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.sampleRate;\n if (sessionSampleRate !== undefined && !isPercentage(sessionSampleRate)) {\n display.error('Session Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetryConfigurationSampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetryConfigurationSampleRate)) {\n display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {\n addExperimentalFeatures(initConfiguration.enableExperimentalFeatures.filter(function (flag) {\n return objectHasValue(ExperimentalFeature, flag);\n }));\n }\n return assign({\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: sessionSampleRate !== null && sessionSampleRate !== void 0 ? sessionSampleRate : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\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}\nexport function serializeConfiguration(initConfiguration) {\n var _a, _b;\n var proxy = (_a = initConfiguration.proxy) !== null && _a !== void 0 ? _a : initConfiguration.proxyUrl;\n return {\n session_sample_rate: (_b = initConfiguration.sessionSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.sampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: proxy !== undefined ? !!proxy : undefined,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_resources: initConfiguration.trackResources,\n track_long_task: initConfiguration.trackLongTasks,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { startsWith } from './utils/polyfills';\nimport { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n var itemType = getType(item);\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp;\n}\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list, value, useStartsWith) {\n if (useStartsWith === void 0) { useStartsWith = false; }\n return list.some(function (item) {\n try {\n if (typeof item === 'function') {\n return item(value);\n }\n else if (item instanceof RegExp) {\n return item.test(value);\n }\n else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","import { objectEntries, shallowClone, performDraw, isNumber, assign, find, getType, isMatchOption, matchList, } from '@datadog/browser-core';\nexport function isTracingOption(item) {\n var expectedItem = item;\n return (getType(expectedItem) === 'object' &&\n isMatchOption(expectedItem.match) &&\n Array.isArray(expectedItem.propagatorTypes));\n}\n/**\n * Clear tracing information to avoid incomplete traces. Ideally, we should do it when the\n * request did not reach the server, but the browser does not expose this. So, we clear tracing\n * information if the request ended with status 0 without being aborted by the application.\n *\n * Reasoning:\n *\n * * Applications are usually aborting requests after a bit of time, for example when the user is\n * typing (autocompletion) or navigating away (in a SPA). With a performant device and good\n * network conditions, the request is likely to reach the server before being canceled.\n *\n * * Requests aborted otherwise (ex: lack of internet, CORS issue, blocked by a privacy extension)\n * are likely to finish quickly and without reaching the server.\n *\n * Of course, it might not be the case every time, but it should limit having incomplete traces a\n * bit.\n * */\nexport function clearTracingIfNeeded(context) {\n if (context.status === 0 && !context.isAborted) {\n context.traceId = undefined;\n context.spanId = undefined;\n context.traceSampled = undefined;\n }\n}\nexport function startTracer(configuration, sessionManager) {\n return {\n clearTracingIfNeeded: clearTracingIfNeeded,\n traceFetch: function (context) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n var _a;\n if (context.input instanceof Request && !((_a = context.init) === null || _a === void 0 ? void 0 : _a.headers)) {\n context.input = new Request(context.input);\n Object.keys(tracingHeaders).forEach(function (key) {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n var headers_1 = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach(function (value, key) {\n headers_1.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach(function (header) {\n headers_1.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach(function (key) {\n headers_1.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers_1.concat(objectEntries(tracingHeaders));\n }\n });\n },\n traceXhr: function (context, xhr) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n Object.keys(tracingHeaders).forEach(function (name) {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n });\n },\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n if (!isTracingSupported() || !sessionManager.findTrackedSession()) {\n return;\n }\n var tracingOption = find(configuration.allowedTracingUrls, function (tracingOption) {\n return matchList([tracingOption.match], context.url, true);\n });\n if (!tracingOption) {\n return;\n }\n context.traceId = new TraceIdentifier();\n context.spanId = new TraceIdentifier();\n context.traceSampled = !isNumber(configuration.traceSampleRate) || performDraw(configuration.traceSampleRate);\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\n}\nexport function isTracingSupported() {\n return getCrypto() !== undefined;\n}\nfunction getCrypto() {\n return window.crypto || window.msCrypto;\n}\n/**\n * When trace is not sampled, set priority to '0' instead of not adding the tracing headers\n * to prepare the implementation for sampling delegation.\n */\nfunction makeTracingHeaders(traceId, spanId, traceSampled, propagatorTypes) {\n var tracingHeaders = {};\n propagatorTypes.forEach(function (propagatorType) {\n switch (propagatorType) {\n case 'datadog': {\n assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toDecimalString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toDecimalString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n assign(tracingHeaders, {\n traceparent: \"00-0000000000000000\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-0\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n assign(tracingHeaders, {\n b3: \"\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n case 'b3multi': {\n assign(tracingHeaders, {\n 'X-B3-TraceId': traceId.toPaddedHexadecimalString(),\n 'X-B3-SpanId': spanId.toPaddedHexadecimalString(),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\n/* eslint-disable no-bitwise */\nvar TraceIdentifier = /** @class */ (function () {\n function TraceIdentifier() {\n this.buffer = new Uint8Array(8);\n getCrypto().getRandomValues(this.buffer);\n this.buffer[0] = this.buffer[0] & 0x7f; // force 63-bit\n }\n TraceIdentifier.prototype.toString = function (radix) {\n var high = this.readInt32(0);\n var low = this.readInt32(4);\n var str = '';\n do {\n var mod = (high % radix) * 4294967296 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n } while (high || low);\n return str;\n };\n /**\n * Format used everywhere except the trace intake\n */\n TraceIdentifier.prototype.toDecimalString = function () {\n return this.toString(10);\n };\n /**\n * Format used by OTel headers\n */\n TraceIdentifier.prototype.toPaddedHexadecimalString = function () {\n var traceId = this.toString(16);\n return Array(17 - traceId.length).join('0') + traceId;\n };\n TraceIdentifier.prototype.readInt32 = function (offset) {\n return (this.buffer[offset] * 16777216 +\n (this.buffer[offset + 1] << 16) +\n (this.buffer[offset + 2] << 8) +\n this.buffer[offset + 3]);\n };\n return TraceIdentifier;\n}());\nexport { TraceIdentifier };\n/* eslint-enable no-bitwise */\n//# sourceMappingURL=tracer.js.map","import { getType, arrayFrom, getOrigin, isMatchOption, serializeConfiguration, assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core';\nimport { isTracingOption } from './tracing/tracer';\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (initConfiguration.sessionReplaySampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionReplaySampleRate)) {\n display.error('Session Replay Sample Rate should be a number between 0 and 100');\n return;\n }\n // TODO remove fallback in next major\n var premiumSampleRate = (_a = initConfiguration.premiumSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.replaySampleRate;\n if (premiumSampleRate !== undefined && initConfiguration.sessionReplaySampleRate !== undefined) {\n display.warn('Ignoring Premium Sample Rate because Session Replay Sample Rate is set');\n premiumSampleRate = undefined;\n }\n if (premiumSampleRate !== undefined && !isPercentage(premiumSampleRate)) {\n display.error('Premium Sample Rate should be a number between 0 and 100');\n return;\n }\n var traceSampleRate = (_b = initConfiguration.traceSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.tracingSampleRate;\n if (traceSampleRate !== undefined && !isPercentage(traceSampleRate)) {\n display.error('Trace Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.excludedActivityUrls !== undefined && !Array.isArray(initConfiguration.excludedActivityUrls)) {\n display.error('Excluded Activity Urls should be an array');\n return;\n }\n var allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n var baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n var trackUserInteractions = !!((_c = initConfiguration.trackUserInteractions) !== null && _c !== void 0 ? _c : initConfiguration.trackInteractions);\n var trackFrustrations = !!initConfiguration.trackFrustrations;\n return assign({\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: (_e = (_d = initConfiguration.sessionReplaySampleRate) !== null && _d !== void 0 ? _d : premiumSampleRate) !== null && _e !== void 0 ? _e : 100,\n oldPlansBehavior: initConfiguration.sessionReplaySampleRate === undefined,\n traceSampleRate: traceSampleRate,\n allowedTracingUrls: allowedTracingUrls,\n excludedActivityUrls: (_f = initConfiguration.excludedActivityUrls) !== null && _f !== void 0 ? _f : [],\n workerUrl: initConfiguration.workerUrl,\n trackUserInteractions: trackUserInteractions || trackFrustrations,\n trackFrustrations: trackFrustrations,\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: initConfiguration.trackResources,\n trackLongTasks: initConfiguration.trackLongTasks,\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK_USER_INPUT,\n customerDataTelemetrySampleRate: 1,\n }, baseConfiguration);\n}\n/**\n * Handles allowedTracingUrls and processes legacy allowedTracingOrigins\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n // Advise about parameters precedence.\n if (initConfiguration.allowedTracingUrls !== undefined && initConfiguration.allowedTracingOrigins !== undefined) {\n display.warn('Both allowedTracingUrls and allowedTracingOrigins (deprecated) have been defined. The parameter allowedTracingUrls will override allowedTracingOrigins.');\n }\n // Handle allowedTracingUrls first\n if (initConfiguration.allowedTracingUrls !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingUrls)) {\n display.error('Allowed Tracing URLs should be an array');\n return;\n }\n if (initConfiguration.allowedTracingUrls.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n // Convert from (MatchOption | TracingOption) to TracingOption, remove unknown properties\n var tracingOptions_1 = [];\n initConfiguration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n tracingOptions_1.push({ match: option, propagatorTypes: ['datadog'] });\n }\n else if (isTracingOption(option)) {\n tracingOptions_1.push(option);\n }\n else {\n display.warn('Allowed Tracing Urls parameters should be a string, RegExp, function, or an object. Ignoring parameter', option);\n }\n });\n return tracingOptions_1;\n }\n // Handle conversion of allowedTracingOrigins to allowedTracingUrls\n if (initConfiguration.allowedTracingOrigins !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingOrigins)) {\n display.error('Allowed Tracing Origins should be an array');\n return;\n }\n if (initConfiguration.allowedTracingOrigins.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n var tracingOptions_2 = [];\n initConfiguration.allowedTracingOrigins.forEach(function (legacyMatchOption) {\n var tracingOption = convertLegacyMatchOptionToTracingOption(legacyMatchOption);\n if (tracingOption) {\n tracingOptions_2.push(tracingOption);\n }\n });\n return tracingOptions_2;\n }\n return [];\n}\n/**\n * Converts parameters from the deprecated allowedTracingOrigins\n * to allowedTracingUrls. Handles the change from origin to full URLs.\n */\nfunction convertLegacyMatchOptionToTracingOption(item) {\n var match;\n if (typeof item === 'string') {\n match = item;\n }\n else if (item instanceof RegExp) {\n match = function (url) { return item.test(getOrigin(url)); };\n }\n else if (typeof item === 'function') {\n match = function (url) { return item(getOrigin(url)); };\n }\n if (match === undefined) {\n display.warn('Allowed Tracing Origins parameters should be a string, RegExp or function. Ignoring parameter', item);\n return undefined;\n }\n return { match: match, propagatorTypes: ['datadog'] };\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls,\n * and assumes 'datadog' has been selected when using allowedTracingOrigins\n */\nfunction getSelectedTracingPropagators(configuration) {\n var usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n usedTracingPropagators.add('datadog');\n }\n else if (getType(option) === 'object' && Array.isArray(option.propagatorTypes)) {\n // Ensure we have an array, as we cannot rely on types yet (configuration is provided by users)\n option.propagatorTypes.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n });\n }\n if (Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0) {\n usedTracingPropagators.add('datadog');\n }\n return arrayFrom(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var _a, _b;\n var baseSerializedConfiguration = serializeConfiguration(configuration);\n return assign({\n premium_sample_rate: configuration.premiumSampleRate,\n replay_sample_rate: configuration.replaySampleRate,\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n trace_sample_rate: (_a = configuration.traceSampleRate) !== null && _a !== void 0 ? _a : configuration.tracingSampleRate,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_origins: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0,\n use_allowed_tracing_urls: Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0,\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n use_excluded_activity_urls: Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n track_frustrations: configuration.trackFrustrations,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: (_b = configuration.trackUserInteractions) !== null && _b !== void 0 ? _b : configuration.trackInteractions,\n }, baseSerializedConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","export function buildCommonContext(globalContextManager, userContextManager, recorderApi) {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n };\n}\n//# sourceMappingURL=commonContext.js.map","export function sendToExtension(type, payload) {\n var callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type: type, payload: payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","export var TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { computeStackTrace } from '../tracekit';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nvar 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];\nvar TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\nvar telemetryConfiguration = { maxEventsPerPage: 0, sentEventCount: 0, telemetryEnabled: false, telemetryConfigurationEnabled: false };\nvar onRawTelemetryEventCollected;\nexport function startTelemetry(telemetryService, configuration) {\n var contextProvider;\n var observable = new Observable();\n telemetryConfiguration.telemetryEnabled =\n !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);\n telemetryConfiguration.telemetryConfigurationEnabled =\n telemetryConfiguration.telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate);\n var runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event_1);\n sendToExtension('telemetry', event_1);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0,\n });\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"4.50.1\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n }),\n experimental_features: arrayFrom(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: function (provider) {\n contextProvider = provider;\n },\n observable: observable,\n enabled: telemetryConfiguration.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 var events = [];\n assign(telemetryConfiguration, {\n maxEventsPerPage: Infinity,\n sentEventCount: 0,\n });\n onRawTelemetryEventCollected = function (event) {\n events.push(event);\n };\n return events;\n}\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined;\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 addTelemetry(assign({\n type: TelemetryType.log,\n message: message,\n status: \"debug\" /* StatusType.debug */,\n }, context));\n}\nexport function addTelemetryError(e, context) {\n addTelemetry(assign({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n }, formatError(e), context));\n}\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryConfigurationEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration,\n });\n }\n}\nfunction addTelemetry(event) {\n if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {\n telemetryConfiguration.sentEventCount += 1;\n onRawTelemetryEventCollected(event);\n }\n}\nexport function formatError(e) {\n if (e instanceof Error) {\n var 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: \"\".concat(\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */, \" \").concat(jsonStringify(e)),\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) { return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) { return startsWith(frame.url, allowedFrameUrl); }); });\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature } from '../tools/experimentalFeatures';\nimport { Observable } from '../tools/observable';\nimport { objectValues, includes } from '../tools/utils/polyfills';\nimport { noop } from '../tools/utils/functionUtils';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n var observable = new Observable(function () {\n var pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE);\n var stopListeners = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */, \"pagehide\" /* DOM_EVENT.PAGE_HIDE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ && pagehideEnabled) {\n /**\n * Only event that detect page unload events while being compatible with the back/forward cache (bfcache)\n */\n observable.notify({ reason: PageExitReason.PAGEHIDE });\n }\n else 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 }).stop;\n var stopBeforeUnloadListener = noop;\n if (!pagehideEnabled) {\n stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n }\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n return observable;\n}\nexport function isPageExitReason(reason) {\n return includes(objectValues(PageExitReason), reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n var MutationObserver = getMutationObserverConstructor();\n var observable = new Observable(function () {\n if (!MutationObserver) {\n return;\n }\n var observer = new MutationObserver(monitor(function () { return observable.notify(); }));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return function () { return observer.disconnect(); };\n });\n return observable;\n}\nexport function getMutationObserverConstructor() {\n var constructor;\n var browserWindow = window;\n // Angular uses Zone.js to provide a context persisting across async tasks. Zone.js replaces the\n // global MutationObserver constructor with a patched version to support the context propagation.\n // There is an ongoing issue[1][2] with this setup when using a MutationObserver within a Angular\n // component: on some occasions, the callback is being called in an infinite loop, causing the\n // page to freeze (even if the callback is completely empty).\n //\n // To work around this issue, we try to get the original MutationObserver constructor stored by\n // Zone.js.\n //\n // [1] https://github.com/angular/angular/issues/26948\n // [2] https://github.com/angular/angular/issues/31712\n if (browserWindow.Zone) {\n // Zone.js 0.8.6+ is storing original class constructors into the browser 'window' object[3].\n //\n // [3] https://github.com/angular/angular/blob/6375fa79875c0fe7b815efc45940a6e6f5c9c9eb/packages/zone.js/lib/common/utils.ts#L288\n constructor = getZoneJsOriginalValue(browserWindow, 'MutationObserver');\n if (browserWindow.MutationObserver && constructor === browserWindow.MutationObserver) {\n // Anterior Zone.js versions (used in Angular 2) does not expose the original MutationObserver\n // in the 'window' object. Luckily, the patched MutationObserver class is storing an original\n // instance in its properties[4]. Let's get the original MutationObserver constructor from\n // there.\n //\n // [4] https://github.com/angular/zone.js/blob/v0.8.5/lib/common/utils.ts#L412\n var patchedInstance = new browserWindow.MutationObserver(noop);\n var originalInstance = getZoneJsOriginalValue(patchedInstance, 'originalInstance');\n constructor = originalInstance && originalInstance.constructor;\n }\n }\n if (!constructor) {\n constructor = browserWindow.MutationObserver;\n }\n return constructor;\n}\n//# sourceMappingURL=domMutationObservable.js.map","import { addEventListener } from './addEventListener';\nexport function runOnReadyState(configuration, expectedReadyState, callback) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback();\n }\n else {\n var eventName = expectedReadyState === 'complete' ? \"load\" /* DOM_EVENT.LOAD */ : \"DOMContentLoaded\" /* DOM_EVENT.DOM_CONTENT_LOADED */;\n addEventListener(configuration, window, eventName, callback, { once: true });\n }\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { assign, addTelemetryDebug, elapsed, getPathName, includes, isValidUrl, toServerDuration, } from '@datadog/browser-core';\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document';\nvar RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, function (initiatorType) { return FAKE_INITIAL_DOCUMENT === initiatorType; }],\n [\"xhr\" /* ResourceType.XHR */, function (initiatorType) { return 'xmlhttprequest' === initiatorType; }],\n [\"fetch\" /* ResourceType.FETCH */, function (initiatorType) { return 'fetch' === initiatorType; }],\n [\"beacon\" /* ResourceType.BEACON */, function (initiatorType) { return 'beacon' === initiatorType; }],\n [\"css\" /* ResourceType.CSS */, function (_, path) { return /\\.css$/i.test(path); }],\n [\"js\" /* ResourceType.JS */, function (_, path) { return /\\.js$/i.test(path); }],\n [\n \"image\" /* ResourceType.IMAGE */,\n function (initiatorType, path) {\n return includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null;\n },\n ],\n [\"font\" /* ResourceType.FONT */, function (_, path) { return /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null; }],\n [\n \"media\" /* ResourceType.MEDIA */,\n function (initiatorType, path) {\n return includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null;\n },\n ],\n];\nexport function computeResourceKind(timing) {\n var url = timing.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(\"Failed to construct URL for \\\"\".concat(timing.name, \"\\\"\"));\n return \"other\" /* ResourceType.OTHER */;\n }\n var path = getPathName(url);\n for (var _i = 0, RESOURCE_TYPES_1 = RESOURCE_TYPES; _i < RESOURCE_TYPES_1.length; _i++) {\n var _a = RESOURCE_TYPES_1[_i], type = _a[0], isType = _a[1];\n if (isType(timing.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder() {\n var numbers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n numbers[_i] = arguments[_i];\n }\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isRequestKind(timing) {\n return timing.initiatorType === 'xmlhttprequest' || timing.initiatorType === 'fetch';\n}\nexport function computePerformanceResourceDuration(entry) {\n var duration = entry.duration, startTime = entry.startTime, responseEnd = entry.responseEnd;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd));\n }\n return toServerDuration(duration);\n}\nexport function computePerformanceResourceDetails(entry) {\n var validEntry = toValidEntry(entry);\n if (!validEntry) {\n return undefined;\n }\n var startTime = validEntry.startTime, fetchStart = validEntry.fetchStart, redirectStart = validEntry.redirectStart, redirectEnd = validEntry.redirectEnd, domainLookupStart = validEntry.domainLookupStart, domainLookupEnd = validEntry.domainLookupEnd, connectStart = validEntry.connectStart, secureConnectionStart = validEntry.secureConnectionStart, connectEnd = validEntry.connectEnd, requestStart = validEntry.requestStart, responseStart = validEntry.responseStart, responseEnd = validEntry.responseEnd;\n var details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n if (hasRedirection(entry)) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\nexport function toValidEntry(entry) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n if (!areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd)) {\n return undefined;\n }\n if (!hasRedirection(entry)) {\n return entry;\n }\n var redirectStart = entry.redirectStart, redirectEnd = entry.redirectEnd;\n // Firefox doesn't provide redirect timings on cross origin requests.\n // Provide a default for those.\n if (redirectStart < entry.startTime) {\n redirectStart = entry.startTime;\n }\n if (redirectEnd < entry.startTime) {\n redirectEnd = entry.fetchStart;\n }\n // Make sure redirect timings are in order\n if (!areInOrder(entry.startTime, redirectStart, redirectEnd, entry.fetchStart)) {\n return undefined;\n }\n return assign({}, entry, {\n redirectEnd: redirectEnd,\n redirectStart: redirectStart,\n });\n}\nfunction hasRedirection(entry) {\n // The only time fetchStart is different than startTime is if a redirection occurred.\n return entry.fetchStart !== entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n}\nexport function computeSize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return entry.decodedBodySize;\n }\n return undefined;\n}\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !configuration.isIntakeUrl(url);\n}\n//# sourceMappingURL=resourceUtils.js.map","export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot);\n}\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function hasChildNodes(node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node);\n}\nexport function forEachChildNodes(node, callback) {\n node.childNodes.forEach(callback);\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot);\n }\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode;\n}\n//# sourceMappingURL=htmlDomUtils.js.map","import { dateNow, findCommaSeparatedValue, ONE_MINUTE } from '@datadog/browser-core';\nimport { isCommentNode, isTextNode } from '../../browser/htmlDomUtils';\nexport var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE;\nexport function getDocumentTraceId(document) {\n var data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document);\n if (!data || data.traceTime <= dateNow() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {\n return undefined;\n }\n return data.traceId;\n}\nexport function getDocumentTraceDataFromMeta(document) {\n var traceIdMeta = document.querySelector('meta[name=dd-trace-id]');\n var traceTimeMeta = document.querySelector('meta[name=dd-trace-time]');\n return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content);\n}\nexport function getDocumentTraceDataFromComment(document) {\n var comment = findTraceComment(document);\n if (!comment) {\n return undefined;\n }\n return createDocumentTraceData(findCommaSeparatedValue(comment, 'trace-id'), findCommaSeparatedValue(comment, 'trace-time'));\n}\nexport function createDocumentTraceData(traceId, rawTraceTime) {\n var traceTime = rawTraceTime && Number(rawTraceTime);\n if (!traceId || !traceTime) {\n return undefined;\n }\n return {\n traceId: traceId,\n traceTime: traceTime,\n };\n}\nexport function findTraceComment(document) {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n for (var i = 0; i < document.childNodes.length; i += 1) {\n var comment = getTraceCommentFromNode(document.childNodes[i]);\n if (comment) {\n return comment;\n }\n }\n // 2. If the comment is placed after the tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the tag.\n // Try to look for the comment at the end of the by by iterating over its child nodes in\n // reverse order, stopping if we come across a non-text node.\n if (document.body) {\n for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n var node = document.body.childNodes[i];\n var comment = getTraceCommentFromNode(node);\n if (comment) {\n return comment;\n }\n if (!isTextNode(node)) {\n break;\n }\n }\n }\n}\nfunction getTraceCommentFromNode(node) {\n if (node && isCommentNode(node)) {\n var match = /^\\s*DATADOG;(.*?)\\s*$/.exec(node.data);\n if (match) {\n return match[1];\n }\n }\n}\n//# sourceMappingURL=getDocumentTraceId.js.map","import { dateNow, assign, addEventListeners, getRelativeTime, isNumber, monitor, setTimeout, relativeNow, runOnReadyState, addEventListener, objectHasValue, } from '@datadog/browser-core';\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId';\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 performance entry\n// eslint-disable-next-line no-restricted-syntax\nexport var RumPerformanceEntryType;\n(function (RumPerformanceEntryType) {\n RumPerformanceEntryType[\"EVENT\"] = \"event\";\n RumPerformanceEntryType[\"FIRST_INPUT\"] = \"first-input\";\n RumPerformanceEntryType[\"LARGEST_CONTENTFUL_PAINT\"] = \"largest-contentful-paint\";\n RumPerformanceEntryType[\"LAYOUT_SHIFT\"] = \"layout-shift\";\n RumPerformanceEntryType[\"LONG_TASK\"] = \"longtask\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function supportPerformanceTimingEvent(entryType) {\n return (window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType));\n}\nexport function startPerformanceCollection(lifeCycle, configuration) {\n retrieveInitialDocumentResourceTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n if (supportPerformanceObject()) {\n var performanceEntries_1 = performance.getEntries();\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(function () { return handleRumPerformanceEntries(lifeCycle, configuration, performanceEntries_1); });\n }\n if (window.PerformanceObserver) {\n var handlePerformanceEntryList_1 = monitor(function (entries) {\n return handleRumPerformanceEntries(lifeCycle, configuration, entries.getEntries());\n });\n var mainEntries = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n var experimentalEntries = [\n RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT,\n RumPerformanceEntryType.FIRST_INPUT,\n RumPerformanceEntryType.LAYOUT_SHIFT,\n RumPerformanceEntryType.EVENT,\n ];\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach(function (type) {\n var observer = new window.PerformanceObserver(handlePerformanceEntryList_1);\n observer.observe({\n type: type,\n buffered: true,\n // durationThreshold only impact PerformanceEventTiming entries used for INP computation which requires a threshold at 40 (default is 104ms)\n // cf: https://github.com/GoogleChrome/web-vitals/blob/3806160ffbc93c3c4abf210a167b81228172b31c/src/onINP.ts#L209\n durationThreshold: 40,\n });\n });\n }\n catch (e) {\n // Some old browser versions (ex: chrome 67) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to PerformanceObserver with entryTypes\n mainEntries.push.apply(mainEntries, experimentalEntries);\n }\n var mainObserver = new PerformanceObserver(handlePerformanceEntryList_1);\n mainObserver.observe({ entryTypes: mainEntries });\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n });\n }\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION)) {\n retrieveNavigationTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT)) {\n retrieveFirstInputTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n}\nexport function retrieveInitialDocumentResourceTiming(configuration, callback) {\n runOnReadyState(configuration, 'interactive', function () {\n var timing;\n var forcedAttributes = {\n entryType: RumPerformanceEntryType.RESOURCE,\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n toJSON: function () { return assign({}, timing, { toJSON: undefined }); },\n };\n if (supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION) &&\n performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION).length > 0) {\n var navigationEntry = performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION)[0];\n timing = assign(navigationEntry.toJSON(), forcedAttributes);\n }\n else {\n var relativePerformanceTiming = computeRelativePerformanceTiming();\n timing = assign(relativePerformanceTiming, {\n decodedBodySize: 0,\n duration: relativePerformanceTiming.responseEnd,\n name: window.location.href,\n startTime: 0,\n }, forcedAttributes);\n }\n callback(timing);\n });\n}\nfunction retrieveNavigationTiming(configuration, callback) {\n function sendFakeTiming() {\n callback(assign(computeRelativePerformanceTiming(), {\n entryType: RumPerformanceEntryType.NAVIGATION,\n }));\n }\n runOnReadyState(configuration, 'complete', function () {\n // Send it a bit after the actual load event, so the \"loadEventEnd\" timing is accurate\n setTimeout(sendFakeTiming);\n });\n}\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration, callback) {\n var startTimeStamp = dateNow();\n var timingSent = false;\n var removeEventListeners = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"mousedown\" /* DOM_EVENT.MOUSE_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */], function (evt) {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return;\n }\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n var timing = {\n entryType: RumPerformanceEntryType.FIRST_INPUT,\n processingStart: relativeNow(),\n processingEnd: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0,\n name: '',\n };\n if (evt.type === \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true }).stop;\n /**\n * Pointer events are a special case, because they can trigger main or compositor thread behavior.\n * We differentiate these cases based on whether or not we see a pointercancel event, which are\n * fired when we scroll. If we're scrolling we don't need to report input delay since FID excludes\n * scrolling and pinch/zooming.\n */\n function sendTimingIfPointerIsNotCancelled(configuration, timing) {\n addEventListeners(configuration, window, [\"pointerup\" /* DOM_EVENT.POINTER_UP */, \"pointercancel\" /* DOM_EVENT.POINTER_CANCEL */], function (event) {\n if (event.type === \"pointerup\" /* DOM_EVENT.POINTER_UP */) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n var delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\nfunction computeRelativePerformanceTiming() {\n var result = {};\n var timing = performance.timing;\n for (var key in timing) {\n if (isNumber(timing[key])) {\n var numberKey = key;\n var timingElement = timing[numberKey];\n result[numberKey] = timingElement === 0 ? 0 : getRelativeTime(timingElement);\n }\n }\n return result;\n}\nfunction handleRumPerformanceEntries(lifeCycle, configuration, entries) {\n var rumPerformanceEntries = entries.filter(function (entry) {\n return objectHasValue(RumPerformanceEntryType, entry.entryType);\n });\n var rumAllowedPerformanceEntries = rumPerformanceEntries.filter(function (entry) { return !isIncompleteNavigation(entry) && !isForbiddenResource(configuration, entry); });\n if (rumAllowedPerformanceEntries.length) {\n lifeCycle.notify(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, rumAllowedPerformanceEntries);\n }\n}\nfunction isIncompleteNavigation(entry) {\n return entry.entryType === RumPerformanceEntryType.NAVIGATION && entry.loadEventEnd <= 0;\n}\nfunction isForbiddenResource(configuration, entry) {\n return entry.entryType === RumPerformanceEntryType.RESOURCE && !isAllowedRequestUrl(configuration, entry.name);\n}\n//# sourceMappingURL=performanceCollection.js.map","export var 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 { 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 var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\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 \".concat(eventType, \"s by minute: \").concat(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 { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core';\nexport function getSyntheticsContext() {\n var testId = getSyntheticsTestId();\n var resultId = getSyntheticsResultId();\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n };\n }\n}\n//# sourceMappingURL=syntheticsContext.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n var clone = deepClone(object);\n var result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(function (_a) {\n var fieldPath = _a[0], fieldType = _a[1];\n var newValue = get(clone, fieldPath);\n var newType = getType(newValue);\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue));\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {});\n }\n });\n return result;\n}\nfunction get(object, path) {\n var current = object;\n for (var _i = 0, _a = path.split('.'); _i < _a.length; _i++) {\n var field = _a[_i];\n if (!isValidObjectContaining(current, field)) {\n return;\n }\n current = current[field];\n }\n return current;\n}\nfunction set(object, path, value) {\n var current = object;\n var fields = path.split('.');\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n if (!isValidObject(current)) {\n return;\n }\n if (i !== fields.length - 1) {\n current = current[field];\n }\n else {\n current[field] = value;\n }\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\nfunction isValidObjectContaining(object, field) {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field);\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, assign, round, } from '@datadog/browser-core';\nimport { getSyntheticsContext } from './contexts/syntheticsContext';\nimport { getCiTestContext } from './contexts/ciTestContext';\nimport { limitModification } from './limitModification';\nvar VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nvar USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nvar modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError) {\n var _a, _b;\n modifiableFieldPathsByEvent = (_a = {},\n _a[\"view\" /* RumEventType.VIEW */] = VIEW_MODIFIABLE_FIELD_PATHS,\n _a[\"error\" /* RumEventType.ERROR */] = assign({\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"resource\" /* RumEventType.RESOURCE */] = assign({\n 'resource.url': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"action\" /* RumEventType.ACTION */] = assign({\n 'action.target.name': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"long_task\" /* RumEventType.LONG_TASK */] = assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a);\n var eventRateLimiters = (_b = {},\n _b[\"error\" /* RumEventType.ERROR */] = createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n _b[\"action\" /* RumEventType.ACTION */] = createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n _b);\n var syntheticsContext = getSyntheticsContext();\n var ciTestContext = getCiTestContext();\n lifeCycle.subscribe(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, function (_a) {\n var startTime = _a.startTime, rawRumEvent = _a.rawRumEvent, domainContext = _a.domainContext, savedCommonContext = _a.savedCommonContext, customerContext = _a.customerContext;\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var commonContext = savedCommonContext || buildCommonContext();\n var actionId = actionContexts.findActionId(startTime);\n var rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\n session: {\n plan: session.plan,\n },\n configuration: {\n session_sample_rate: round(configuration.sessionSampleRate, 3),\n session_replay_sample_rate: round(configuration.sessionReplaySampleRate, 3),\n },\n browser_sdk_version: canUseEventBridge() ? \"4.50.1\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n service: viewContext.service || configuration.service,\n version: viewContext.version || configuration.version,\n source: 'browser',\n session: {\n id: session.id,\n type: syntheticsContext ? \"synthetics\" /* SessionType.SYNTHETICS */ : ciTestContext ? \"ci_test\" /* SessionType.CI_TEST */ : \"user\" /* SessionType.USER */,\n },\n view: {\n id: viewContext.id,\n name: viewContext.name,\n url: urlContext.url,\n referrer: urlContext.referrer,\n },\n action: needToAssembleWithAction(rawRumEvent) && actionId ? { id: actionId } : undefined,\n synthetics: syntheticsContext,\n ci_test: ciTestContext,\n display: displayContext.get(),\n };\n var serverRumEvent = combine(rumContext, rawRumEvent);\n serverRumEvent.context = combine(commonContext.context, customerContext);\n if (!('has_replay' in serverRumEvent.session)) {\n ;\n serverRumEvent.session.has_replay = commonContext.hasReplay;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context;\n }\n lifeCycle.notify(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n var result = limitModification(event, modifiableFieldPathsByEvent[event.type], function (event) {\n return beforeSend(event, domainContext);\n });\n if (result === false && event.type !== \"view\" /* RumEventType.VIEW */) {\n return false;\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\");\n }\n }\n var rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\nfunction needToAssembleWithAction(event) {\n return [\"error\" /* RumEventType.ERROR */, \"resource\" /* RumEventType.RESOURCE */, \"long_task\" /* RumEventType.LONG_TASK */].indexOf(event.type) !== -1;\n}\n//# sourceMappingURL=assembly.js.map","export function getCiTestContext() {\n var _a;\n var testExecutionId = (_a = window.Cypress) === null || _a === void 0 ? void 0 : _a.env('traceId');\n if (typeof testExecutionId === 'string') {\n return {\n test_execution_id: testExecutionId,\n };\n }\n}\n//# sourceMappingURL=ciTestContext.js.map","var AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { instrumentMethodAndCallOriginal } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, relativeNow, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nvar xhrObservable;\nvar xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n var observable = new Observable(function () {\n var stopInstrumentingStart = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {\n before: openXhr,\n }).stop;\n var stopInstrumentingSend = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'send', {\n before: function () {\n sendXhr.call(this, configuration, observable);\n },\n }).stop;\n var stopInstrumentingAbort = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'abort', {\n before: abortXhr,\n }).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n return observable;\n}\nfunction openXhr(method, url) {\n xhrContexts.set(this, {\n state: 'open',\n method: method,\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(configuration, observable) {\n var _this = this;\n var context = xhrContexts.get(this);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startTime = relativeNow();\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = this;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(this, 'onreadystatechange', {\n before: function () {\n if (this.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 a onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n },\n }).stop;\n var onEnd = function () {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n var completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = _this.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, this, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr() {\n var context = xhrContexts.get(this);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport var LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { setInterval, clearInterval } from './timer';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nvar END_OF_TIMES = Infinity;\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\n/**\n * Store and keep track of values spans. This whole class assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nvar ValueHistory = /** @class */ (function () {\n function ValueHistory(expireDelay, maxEntries) {\n var _this = this;\n this.expireDelay = expireDelay;\n this.maxEntries = maxEntries;\n this.entries = [];\n this.clearOldValuesInterval = setInterval(function () { return _this.clearOldValues(); }, CLEAR_OLD_VALUES_INTERVAL);\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 ValueHistory.prototype.add = function (value, startTime) {\n var _this = this;\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n var index = _this.entries.indexOf(entry);\n if (index >= 0) {\n _this.entries.splice(index, 1);\n }\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop();\n }\n this.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 ValueHistory.prototype.find = function (startTime) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n for (var _i = 0, _a = this.entries; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.startTime <= startTime) {\n if (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 ValueHistory.prototype.closeActive = function (endTime) {\n var latestEntry = this.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 ValueHistory.prototype.findAll = function (startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return this.entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n };\n /**\n * Remove all entries from this collection.\n */\n ValueHistory.prototype.reset = function () {\n this.entries = [];\n };\n /**\n * Stop internal garbage collection of past entries.\n */\n ValueHistory.prototype.stop = function () {\n clearInterval(this.clearOldValuesInterval);\n };\n ValueHistory.prototype.clearOldValues = function () {\n var oldTimeThreshold = relativeNow() - this.expireDelay;\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop();\n }\n };\n return ValueHistory;\n}());\nexport { ValueHistory };\n//# sourceMappingURL=valueHistory.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nexport function instrumentMethod(object, method, instrumentationFactory) {\n var original = object[method];\n var instrumentation = instrumentationFactory(original);\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments);\n };\n object[method] = instrumentationWrapper;\n return {\n stop: function () {\n if (object[method] === instrumentationWrapper) {\n object[method] = original;\n }\n else {\n instrumentation = original;\n }\n },\n };\n}\nexport function instrumentMethodAndCallOriginal(object, method, _a) {\n var before = _a.before, after = _a.after;\n return instrumentMethod(object, method, function (original) {\n return function () {\n var args = arguments;\n var result;\n if (before) {\n callMonitored(before, this, args);\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, args);\n }\n if (after) {\n callMonitored(after, this, args);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n });\n}\nexport function instrumentSetter(object, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(object, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var instrumentation = function (thisObject, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n after(thisObject, value);\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(object, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(object, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(object, property, originalDescriptor);\n }\n else {\n instrumentation = noop;\n }\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { callMonitored, monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nfunction createFetchObservable() {\n var observable = new Observable(function () {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (originalFetch) {\n return function (input, init) {\n var responsePromise;\n var context = callMonitored(beforeSend, null, [observable, input, init]);\n if (context) {\n responsePromise = originalFetch.call(this, context.input, context.init);\n callMonitored(afterSend, null, [observable, responsePromise, context]);\n }\n else {\n responsePromise = originalFetch.call(this, input, init);\n }\n return responsePromise;\n };\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction beforeSend(observable, input, init) {\n var method = (init && init.method) || (input instanceof Request && input.method) || 'GET';\n var url = input instanceof Request ? input.url : normalizeUrl(String(input));\n var startClocks = clocksNow();\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url,\n };\n observable.notify(context);\n return context;\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext;\n context.state = 'resolve';\n if ('stack' in response || response instanceof Error) {\n context.status = 0;\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;\n context.error = response;\n }\n else if ('status' in response) {\n context.response = response;\n context.responseType = response.type;\n context.status = response.status;\n context.isAborted = false;\n }\n observable.notify(context);\n };\n responsePromise.then(monitor(reportFetch), monitor(reportFetch));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nvar nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n var tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, configuration, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n var subscription = initXhrObservable(configuration).subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: context.duration,\n method: context.method,\n requestIndex: context.requestIndex,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"xhr\" /* RequestType.XHR */,\n url: context.url,\n xhr: context.xhr,\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nexport function trackFetch(lifeCycle, configuration, tracer) {\n var subscription = initFetchObservable().subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'resolve':\n waitForResponseToComplete(context, function (duration) {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"fetch\" /* RequestType.FETCH */,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n });\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nfunction getNextRequestIndex() {\n var result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n var clonedResponse = context.response && tryToClone(context.response);\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }\n else {\n readBytesFromStream(clonedResponse.body, function () {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\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","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 var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (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(function (error) { return 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 var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\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_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts(_a) {\n var lifeCycle = _a.lifeCycle, isChildEvent = _a.isChildEvent, _b = _a.onChange, callback = _b === void 0 ? noop : _b;\n var eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n var subscription = lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n var _a;\n if (event.type === 'view' || !isChildEvent(event)) {\n return;\n }\n switch (event.type) {\n case \"error\" /* RumEventType.ERROR */:\n eventCounts.errorCount += 1;\n callback();\n break;\n case \"action\" /* RumEventType.ACTION */:\n eventCounts.actionCount += 1;\n if (event.action.frustration) {\n eventCounts.frustrationCount += event.action.frustration.type.length;\n }\n callback();\n break;\n case \"long_task\" /* RumEventType.LONG_TASK */:\n eventCounts.longTaskCount += 1;\n callback();\n break;\n case \"resource\" /* RumEventType.RESOURCE */:\n if (!((_a = event._dd) === null || _a === void 0 ? void 0 : _a.discarded)) {\n eventCounts.resourceCount += 1;\n callback();\n }\n break;\n }\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { instrumentMethodAndCallOriginal, matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../browser/performanceCollection';\n// Delay to wait for a page activity to validate the tracking process\nexport var PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport var PAGE_ACTIVITY_END_DELAY = 100;\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, pageActivityEndCallback, maxDuration) {\n var pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n var pageActivityEndTimeoutId;\n var hasCompleted = false;\n var validationTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: false }); }), PAGE_ACTIVITY_VALIDATION_DELAY);\n var maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(function () { return complete({ hadActivity: true, end: timeStampNow() }); }), maxDuration)\n : undefined;\n var pageActivitySubscription = pageActivityObservable.subscribe(function (_a) {\n var isBusy = _a.isBusy;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n var lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: true, end: lastChangeTime }); }), PAGE_ACTIVITY_END_DELAY);\n }\n });\n var stop = function () {\n hasCompleted = true;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n clearTimeout(maxDurationTimeoutId);\n pageActivitySubscription.unsubscribe();\n };\n function complete(event) {\n if (hasCompleted) {\n return;\n }\n stop();\n pageActivityEndCallback(event);\n }\n return { stop: stop };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, configuration) {\n var observable = new Observable(function () {\n var subscriptions = [];\n var firstRequestIndex;\n var pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n if (entries.some(function (entry) { return entry.entryType === RumPerformanceEntryType.RESOURCE && !isExcludedUrl(configuration, entry.name); })) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(5 /* LifeCycleEventType.REQUEST_STARTED */, function (startEvent) {\n if (isExcludedUrl(configuration, startEvent.url)) {\n return;\n }\n if (firstRequestIndex === undefined) {\n firstRequestIndex = startEvent.requestIndex;\n }\n pendingRequestsCount += 1;\n notifyPageActivity();\n }), lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n if (isExcludedUrl(configuration, request.url) ||\n firstRequestIndex === undefined ||\n // If the request started before the tracking start, ignore it\n request.requestIndex < firstRequestIndex) {\n return;\n }\n pendingRequestsCount -= 1;\n notifyPageActivity();\n }));\n var stopTrackingWindowOpen = trackWindowOpen(notifyPageActivity).stop;\n return function () {\n stopTrackingWindowOpen();\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n };\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 });\n }\n });\n return observable;\n}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\nfunction trackWindowOpen(callback) {\n return instrumentMethodAndCallOriginal(window, 'open', { before: callback });\n}\n//# sourceMappingURL=waitPageActivityEnd.js.map","import { safeTruncate, isIE, find } from '@datadog/browser-core';\n/**\n * Get the action name from the attribute 'data-dd-action-name' on the element or any of its parent.\n * It can also be retrieved from a user defined attribute.\n */\nexport var DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = 'data-dd-action-name';\nexport function getActionNameFromElement(element, userProgrammaticAttribute) {\n // Proceed to get the action name in two steps:\n // * first, get the name programmatically, explicitly defined by the user.\n // * then, use strategies that are known to return good results. Those strategies will be used on\n // the element and a few parents, but it's likely that they won't succeed at all.\n // * if no name is found this way, use strategies returning less accurate names as a fallback.\n // Those are much likely to succeed.\n return (getActionNameFromElementProgrammatically(element, DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE) ||\n (userProgrammaticAttribute && getActionNameFromElementProgrammatically(element, userProgrammaticAttribute)) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, priorityStrategies) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, fallbackStrategies) ||\n '');\n}\nfunction getActionNameFromElementProgrammatically(targetElement, programmaticAttribute) {\n var elementWithAttribute;\n // We don't use getActionNameFromElementForStrategies here, because we want to consider all parents,\n // without limit. It is up to the user to declare a relevant naming strategy.\n // If available, use element.closest() to match get the attribute from the element or any of its\n // parent. Else fallback to a more traditional implementation.\n if (supportsElementClosest()) {\n elementWithAttribute = targetElement.closest(\"[\".concat(programmaticAttribute, \"]\"));\n }\n else {\n var element = targetElement;\n while (element) {\n if (element.hasAttribute(programmaticAttribute)) {\n elementWithAttribute = element;\n break;\n }\n element = element.parentElement;\n }\n }\n if (!elementWithAttribute) {\n return;\n }\n var name = elementWithAttribute.getAttribute(programmaticAttribute);\n return truncate(normalizeWhitespace(name.trim()));\n}\nvar priorityStrategies = [\n // associated LABEL text\n function (element, userProgrammaticAttribute) {\n // IE does not support element.labels, so we fallback to a CSS selector based on the element id\n // instead\n if (supportsLabelProperty()) {\n if ('labels' in element && element.labels && element.labels.length > 0) {\n return getTextualContent(element.labels[0], userProgrammaticAttribute);\n }\n }\n else if (element.id) {\n var label = element.ownerDocument &&\n find(element.ownerDocument.querySelectorAll('label'), function (label) { return label.htmlFor === element.id; });\n return label && getTextualContent(label, userProgrammaticAttribute);\n }\n },\n // INPUT button (and associated) value\n function (element) {\n if (element.nodeName === 'INPUT') {\n var input = element;\n var type = input.getAttribute('type');\n if (type === 'button' || type === 'submit' || type === 'reset') {\n return input.value;\n }\n }\n },\n // BUTTON, LABEL or button-like element text\n function (element, userProgrammaticAttribute) {\n if (element.nodeName === 'BUTTON' || element.nodeName === 'LABEL' || element.getAttribute('role') === 'button') {\n return getTextualContent(element, userProgrammaticAttribute);\n }\n },\n function (element) { return element.getAttribute('aria-label'); },\n // associated element text designated by the aria-labelledby attribute\n function (element, userProgrammaticAttribute) {\n var labelledByAttribute = element.getAttribute('aria-labelledby');\n if (labelledByAttribute) {\n return labelledByAttribute\n .split(/\\s+/)\n .map(function (id) { return getElementById(element, id); })\n .filter(function (label) { return Boolean(label); })\n .map(function (element) { return getTextualContent(element, userProgrammaticAttribute); })\n .join(' ');\n }\n },\n function (element) { return element.getAttribute('alt'); },\n function (element) { return element.getAttribute('name'); },\n function (element) { return element.getAttribute('title'); },\n function (element) { return element.getAttribute('placeholder'); },\n // SELECT first OPTION text\n function (element, userProgrammaticAttribute) {\n if ('options' in element && element.options.length > 0) {\n return getTextualContent(element.options[0], userProgrammaticAttribute);\n }\n },\n];\nvar fallbackStrategies = [\n function (element, userProgrammaticAttribute) { return getTextualContent(element, userProgrammaticAttribute); },\n];\n/**\n * Iterates over the target element and its parent, using the strategies list to get an action name.\n * Each strategies are applied on each element, stopping as soon as a non-empty value is returned.\n */\nvar MAX_PARENTS_TO_CONSIDER = 10;\nfunction getActionNameFromElementForStrategies(targetElement, userProgrammaticAttribute, strategies) {\n var element = targetElement;\n var recursionCounter = 0;\n while (recursionCounter <= MAX_PARENTS_TO_CONSIDER &&\n element &&\n element.nodeName !== 'BODY' &&\n element.nodeName !== 'HTML' &&\n element.nodeName !== 'HEAD') {\n for (var _i = 0, strategies_1 = strategies; _i < strategies_1.length; _i++) {\n var strategy = strategies_1[_i];\n var name_1 = strategy(element, userProgrammaticAttribute);\n if (typeof name_1 === 'string') {\n var trimmedName = name_1.trim();\n if (trimmedName) {\n return truncate(normalizeWhitespace(trimmedName));\n }\n }\n }\n // Consider a FORM as a contextual limit to get the action name. This is experimental and may\n // be reconsidered in the future.\n if (element.nodeName === 'FORM') {\n break;\n }\n element = element.parentElement;\n recursionCounter += 1;\n }\n}\nfunction normalizeWhitespace(s) {\n return s.replace(/\\s+/g, ' ');\n}\nfunction truncate(s) {\n return s.length > 100 ? \"\".concat(safeTruncate(s, 100), \" [...]\") : s;\n}\nfunction getElementById(refElement, id) {\n // Use the element ownerDocument here, because tests are executed in an iframe, so\n // document.getElementById won't work.\n return refElement.ownerDocument ? refElement.ownerDocument.getElementById(id) : null;\n}\nfunction getTextualContent(element, userProgrammaticAttribute) {\n if (element.isContentEditable) {\n return;\n }\n if ('innerText' in element) {\n var text_1 = element.innerText;\n var removeTextFromElements = function (query) {\n var list = element.querySelectorAll(query);\n for (var index = 0; index < list.length; index += 1) {\n var element_1 = list[index];\n if ('innerText' in element_1) {\n var textToReplace = element_1.innerText;\n if (textToReplace && textToReplace.trim().length > 0) {\n text_1 = text_1.replace(textToReplace, '');\n }\n }\n }\n };\n if (!supportsInnerTextScriptAndStyleRemoval()) {\n // remove the inner text of SCRIPT and STYLES from the result. This is a bit dirty, but should\n // be relatively fast and work in most cases.\n removeTextFromElements('script, style');\n }\n // remove the text of elements with programmatic attribute value\n removeTextFromElements(\"[\".concat(DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE, \"]\"));\n if (userProgrammaticAttribute) {\n removeTextFromElements(\"[\".concat(userProgrammaticAttribute, \"]\"));\n }\n return text_1;\n }\n return element.textContent;\n}\n/**\n * Returns true if element.innerText excludes the text from inline SCRIPT and STYLE element. This\n * should be the case everywhere except on Internet Explorer 10 and 11 (see [1])\n *\n * The innerText property relies on what is actually rendered to compute its output, so to check if\n * it actually excludes SCRIPT and STYLE content, a solution would be to create a style element, set\n * its content to '*', inject it in the document body, and check if the style element innerText\n * property returns '*'. Using a new `document` instance won't work as it is not rendered.\n *\n * This solution requires specific CSP rules (see [2]) to be set by the customer. We want to avoid\n * this, so instead we rely on browser detection. In case of false negative, the impact should be\n * low, since we rely on this result to remove the SCRIPT and STYLE innerText (which will be empty)\n * from a parent element innerText.\n *\n * [1]: https://web.archive.org/web/20210602165716/http://perfectionkills.com/the-poor-misunderstood-innerText/#diff-with-textContent\n * [2]: https://github.com/DataDog/browser-sdk/issues/1084\n */\nfunction supportsInnerTextScriptAndStyleRemoval() {\n return !isIE();\n}\n/**\n * Returns true if the browser supports the element.labels property. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsLabelPropertyResult;\nfunction supportsLabelProperty() {\n if (supportsLabelPropertyResult === undefined) {\n supportsLabelPropertyResult = 'labels' in HTMLInputElement.prototype;\n }\n return supportsLabelPropertyResult;\n}\n/**\n * Returns true if the browser supports the element.closest method. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsElementClosestResult;\nfunction supportsElementClosest() {\n if (supportsElementClosestResult === undefined) {\n supportsElementClosestResult = 'closest' in HTMLElement.prototype;\n }\n return supportsElementClosestResult;\n}\n//# sourceMappingURL=getActionNameFromElement.js.map","import { cssEscape } from '@datadog/browser-core';\nimport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './action/getActionNameFromElement';\n/**\n * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:\n * component). Those attribute values should not be generated randomly (hardcoded most of the time)\n * and stay the same across deploys. They are not necessarily unique across the document.\n */\nexport var STABLE_ATTRIBUTES = [\n DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,\n // Common test attributes (list provided by google recorder)\n 'data-testid',\n 'data-test',\n 'data-qa',\n 'data-cy',\n 'data-test-id',\n 'data-qa-id',\n 'data-testing',\n // FullStory decorator attributes:\n 'data-component',\n 'data-element',\n 'data-source-file',\n];\n// Selectors to use if they target a single element on the whole document. Those selectors are\n// considered as \"stable\" and uniquely identify an element regardless of the page state. If we find\n// one, we should consider the selector \"complete\" and stop iterating over ancestors.\nvar GLOBALLY_UNIQUE_SELECTOR_GETTERS = [getStableAttributeSelector, getIDSelector];\n// Selectors to use if they target a single element among an element descendants. Those selectors\n// are more brittle than \"globally unique\" selectors and should be combined with ancestor selectors\n// to improve specificity.\nvar UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS = [\n getStableAttributeSelector,\n getClassSelector,\n getTagNameSelector,\n];\nexport function getSelectorFromElement(targetElement, actionNameAttribute) {\n var targetElementSelector = '';\n var element = targetElement;\n while (element && element.nodeName !== 'HTML') {\n var globallyUniqueSelector = findSelector(element, GLOBALLY_UNIQUE_SELECTOR_GETTERS, isSelectorUniqueGlobally, actionNameAttribute, targetElementSelector);\n if (globallyUniqueSelector) {\n return globallyUniqueSelector;\n }\n var uniqueSelectorAmongChildren = findSelector(element, UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS, isSelectorUniqueAmongSiblings, actionNameAttribute, targetElementSelector);\n targetElementSelector =\n uniqueSelectorAmongChildren || combineSelector(getPositionSelector(element), targetElementSelector);\n element = element.parentElement;\n }\n return targetElementSelector;\n}\nfunction isGeneratedValue(value) {\n // To compute the \"URL path group\", the backend replaces every URL path parts as a question mark\n // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is\n // present.\n //\n // Here, we use the same strategy: if a the value contains a digit, we consider it generated. This\n // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate\n // CSS selectors so it should be fine most of the time. We might want to allow customers to\n // provide their own `isGeneratedValue` at some point.\n return /[0-9]/.test(value);\n}\nfunction getIDSelector(element) {\n if (element.id && !isGeneratedValue(element.id)) {\n return \"#\".concat(cssEscape(element.id));\n }\n}\nfunction getClassSelector(element) {\n if (element.tagName === 'BODY') {\n return;\n }\n if (element.classList.length > 0) {\n for (var i = 0; i < element.classList.length; i += 1) {\n var className = element.classList[i];\n if (isGeneratedValue(className)) {\n continue;\n }\n return \"\".concat(cssEscape(element.tagName), \".\").concat(cssEscape(className));\n }\n }\n}\nfunction getTagNameSelector(element) {\n return cssEscape(element.tagName);\n}\nfunction getStableAttributeSelector(element, actionNameAttribute) {\n if (actionNameAttribute) {\n var selector = getAttributeSelector(actionNameAttribute);\n if (selector) {\n return selector;\n }\n }\n for (var _i = 0, STABLE_ATTRIBUTES_1 = STABLE_ATTRIBUTES; _i < STABLE_ATTRIBUTES_1.length; _i++) {\n var attributeName = STABLE_ATTRIBUTES_1[_i];\n var selector = getAttributeSelector(attributeName);\n if (selector) {\n return selector;\n }\n }\n function getAttributeSelector(attributeName) {\n if (element.hasAttribute(attributeName)) {\n return \"\".concat(cssEscape(element.tagName), \"[\").concat(attributeName, \"=\\\"\").concat(cssEscape(element.getAttribute(attributeName)), \"\\\"]\");\n }\n }\n}\nfunction getPositionSelector(element) {\n var sibling = element.parentElement.firstElementChild;\n var elementIndex = 1;\n while (sibling && sibling !== element) {\n if (sibling.tagName === element.tagName) {\n elementIndex += 1;\n }\n sibling = sibling.nextElementSibling;\n }\n return \"\".concat(cssEscape(element.tagName), \":nth-of-type(\").concat(elementIndex, \")\");\n}\nfunction findSelector(element, selectorGetters, predicate, actionNameAttribute, childSelector) {\n for (var _i = 0, selectorGetters_1 = selectorGetters; _i < selectorGetters_1.length; _i++) {\n var selectorGetter = selectorGetters_1[_i];\n var elementSelector = selectorGetter(element, actionNameAttribute);\n if (!elementSelector) {\n continue;\n }\n var fullSelector = combineSelector(elementSelector, childSelector);\n if (predicate(element, fullSelector)) {\n return fullSelector;\n }\n }\n}\n/**\n * Check whether the selector is unique among the whole document.\n */\nfunction isSelectorUniqueGlobally(element, selector) {\n return element.ownerDocument.querySelectorAll(selector).length === 1;\n}\n/**\n * Check whether the selector is unique among the element siblings. In other words, it returns true\n * if \"ELEMENT_PARENT > SELECTOR\" returns a single element.\n *\n * The result will be less accurate on browsers that don't support :scope (i. e. IE): it will check\n * for any element matching the selector contained in the parent (in other words,\n * \"ELEMENT_PARENT SELECTOR\" returns a single element), regardless of whether the selector is a\n * direct descendent of the element parent. This should not impact results too much: if it\n * inaccurately returns false, we'll just fall back to another strategy.\n */\nfunction isSelectorUniqueAmongSiblings(element, selector) {\n return (element.parentElement.querySelectorAll(supportScopeSelector() ? combineSelector(':scope', selector) : selector)\n .length === 1);\n}\nfunction combineSelector(parent, child) {\n return child ? \"\".concat(parent, \">\").concat(child) : parent;\n}\nvar supportScopeSelectorCache;\nexport function supportScopeSelector() {\n if (supportScopeSelectorCache === undefined) {\n try {\n document.querySelector(':scope');\n supportScopeSelectorCache = true;\n }\n catch (_a) {\n supportScopeSelectorCache = false;\n }\n }\n return supportScopeSelectorCache;\n}\n//# sourceMappingURL=getSelectorFromElement.js.map","import { ONE_SECOND, clearTimeout, setTimeout } from '@datadog/browser-core';\nexport var MAX_DURATION_BETWEEN_CLICKS = ONE_SECOND;\nexport var MAX_DISTANCE_BETWEEN_CLICKS = 100;\nexport function createClickChain(firstClick, onFinalize) {\n var bufferedClicks = [];\n var status = 0 /* ClickChainStatus.WaitingForMoreClicks */;\n var maxDurationBetweenClicksTimeoutId;\n appendClick(firstClick);\n function appendClick(click) {\n click.stopObservable.subscribe(tryFinalize);\n bufferedClicks.push(click);\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n maxDurationBetweenClicksTimeoutId = setTimeout(dontAcceptMoreClick, MAX_DURATION_BETWEEN_CLICKS);\n }\n function tryFinalize() {\n if (status === 1 /* ClickChainStatus.WaitingForClicksToStop */ && bufferedClicks.every(function (click) { return click.isStopped(); })) {\n status = 2 /* ClickChainStatus.Finalized */;\n onFinalize(bufferedClicks);\n }\n }\n function dontAcceptMoreClick() {\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n if (status === 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n status = 1 /* ClickChainStatus.WaitingForClicksToStop */;\n tryFinalize();\n }\n }\n return {\n tryAppend: function (click) {\n if (status !== 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n return false;\n }\n if (bufferedClicks.length > 0 &&\n !areEventsSimilar(bufferedClicks[bufferedClicks.length - 1].event, click.event)) {\n dontAcceptMoreClick();\n return false;\n }\n appendClick(click);\n return true;\n },\n stop: function () {\n dontAcceptMoreClick();\n },\n };\n}\n/**\n * Checks whether two events are similar by comparing their target, position and timestamp\n */\nfunction areEventsSimilar(first, second) {\n return (first.target === second.target &&\n mouseEventDistance(first, second) <= MAX_DISTANCE_BETWEEN_CLICKS &&\n first.timeStamp - second.timeStamp <= MAX_DURATION_BETWEEN_CLICKS);\n}\nfunction mouseEventDistance(origin, other) {\n return Math.sqrt(Math.pow(origin.clientX - other.clientX, 2) + Math.pow(origin.clientY - other.clientY, 2));\n}\n//# sourceMappingURL=clickChain.js.map","import { addEventListener } from '@datadog/browser-core';\nexport function listenActionEvents(configuration, _a) {\n var onPointerDown = _a.onPointerDown, onPointerUp = _a.onPointerUp;\n var selectionEmptyAtPointerDown;\n var userActivity = {\n selection: false,\n input: false,\n };\n var clickContext;\n var listeners = [\n addEventListener(configuration, window, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, function (event) {\n if (isValidPointerEvent(event)) {\n selectionEmptyAtPointerDown = isSelectionEmpty();\n userActivity = {\n selection: false,\n input: false,\n };\n clickContext = onPointerDown(event);\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"selectionchange\" /* DOM_EVENT.SELECTION_CHANGE */, function () {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"pointerup\" /* DOM_EVENT.POINTER_UP */, function (event) {\n if (isValidPointerEvent(event) && clickContext) {\n // Use a scoped variable to make sure the value is not changed by other clicks\n var localUserActivity_1 = userActivity;\n onPointerUp(clickContext, event, function () { return localUserActivity_1; });\n clickContext = undefined;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"input\" /* DOM_EVENT.INPUT */, function () {\n userActivity.input = true;\n }, { capture: true }),\n ];\n return {\n stop: function () {\n listeners.forEach(function (listener) { return listener.stop(); });\n },\n };\n}\nfunction isSelectionEmpty() {\n var selection = window.getSelection();\n return !selection || selection.isCollapsed;\n}\nfunction isValidPointerEvent(event) {\n return (event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false);\n}\n//# sourceMappingURL=listenActionEvents.js.map","import { elementMatches, ONE_SECOND } from '@datadog/browser-core';\nvar MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE = 3;\nexport function computeFrustration(clicks, rageClick) {\n if (isRage(clicks)) {\n rageClick.addFrustration(\"rage_click\" /* FrustrationType.RAGE_CLICK */);\n if (clicks.some(isDead)) {\n rageClick.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n if (rageClick.hasError) {\n rageClick.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n return { isRage: true };\n }\n var hasSelectionChanged = clicks.some(function (click) { return click.getUserActivity().selection; });\n clicks.forEach(function (click) {\n if (click.hasError) {\n click.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n if (isDead(click) &&\n // Avoid considering clicks part of a double-click or triple-click selections as dead clicks\n !hasSelectionChanged) {\n click.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n });\n return { isRage: false };\n}\nexport function isRage(clicks) {\n if (clicks.some(function (click) { return click.getUserActivity().selection; })) {\n return false;\n }\n for (var i = 0; i < clicks.length - (MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1); i += 1) {\n if (clicks[i + MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1].event.timeStamp - clicks[i].event.timeStamp <=\n ONE_SECOND) {\n return true;\n }\n }\n return false;\n}\nvar DEAD_CLICK_EXCLUDE_SELECTOR = \n// inputs that don't trigger a meaningful event like \"input\" when clicked, including textual\n// inputs (using a negative selector is shorter here)\n'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]):not([type=\"range\"]),' +\n 'textarea,' +\n 'select,' +\n // contenteditable and their descendants don't always trigger meaningful changes when manipulated\n '[contenteditable],' +\n '[contenteditable] *,' +\n // canvas, as there is no good way to detect activity occurring on them\n 'canvas,' +\n // links that are interactive (have an href attribute) or any of their descendants, as they can\n // open a new tab or navigate to a hash without triggering a meaningful event\n 'a[href],' +\n 'a[href] *';\nexport function isDead(click) {\n if (click.hasPageActivity || click.getUserActivity().input) {\n return false;\n }\n return !elementMatches(click.event.target, DEAD_CLICK_EXCLUDE_SELECTOR);\n}\n//# sourceMappingURL=computeFrustration.js.map","import { includes, timeStampNow, Observable, assign, getRelativeTime, ONE_MINUTE, ValueHistory, generateUUID, clocksNow, ONE_SECOND, elapsed, } from '@datadog/browser-core';\nimport { trackEventCounts } from '../trackEventCounts';\nimport { PAGE_ACTIVITY_VALIDATION_DELAY, waitPageActivityEnd } from '../waitPageActivityEnd';\nimport { getSelectorFromElement } from '../getSelectorFromElement';\nimport { createClickChain } from './clickChain';\nimport { getActionNameFromElement } from './getActionNameFromElement';\nimport { listenActionEvents } from './listenActionEvents';\nimport { computeFrustration } from './computeFrustration';\n// Maximum duration for click actions\nexport var CLICK_ACTION_MAX_DURATION = 10 * ONE_SECOND;\nexport var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE; // arbitrary\nexport function trackClickActions(lifeCycle, domMutationObservable, configuration) {\n var history = new ValueHistory(ACTION_CONTEXT_TIME_OUT_DELAY);\n var stopObservable = new Observable();\n var currentClickChain;\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n history.reset();\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, stopClickChain);\n var stopActionEventsListener = listenActionEvents(configuration, {\n onPointerDown: function (pointerDownEvent) {\n return processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent);\n },\n onPointerUp: function (_a, startEvent, getUserActivity) {\n var clickActionBase = _a.clickActionBase, hadActivityOnPointerDown = _a.hadActivityOnPointerDown;\n return startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown);\n },\n }).stop;\n var actionContexts = {\n findActionId: function (startTime) {\n return configuration.trackFrustrations ? history.findAll(startTime) : history.find(startTime);\n },\n };\n return {\n stop: function () {\n stopClickChain();\n stopObservable.notify();\n stopActionEventsListener();\n },\n actionContexts: actionContexts,\n };\n function appendClickToClickChain(click) {\n if (!currentClickChain || !currentClickChain.tryAppend(click)) {\n var rageClick_1 = click.clone();\n currentClickChain = createClickChain(click, function (clicks) {\n finalizeClicks(clicks, rageClick_1);\n });\n }\n }\n function stopClickChain() {\n if (currentClickChain) {\n currentClickChain.stop();\n }\n }\n}\nfunction processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent) {\n if (!configuration.trackFrustrations && history.find()) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any new\n // action if another one is already occurring.\n return;\n }\n var clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute);\n if (!configuration.trackFrustrations && !clickActionBase.name) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any action\n // with a blank name\n return;\n }\n var hadActivityOnPointerDown = false;\n waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n hadActivityOnPointerDown = pageActivityEndEvent.hadActivity;\n }, \n // We don't care about the activity duration, we just want to know whether an activity did happen\n // within the \"validation delay\" or not. Limit the duration so the callback is called sooner.\n PAGE_ACTIVITY_VALIDATION_DELAY);\n return { clickActionBase: clickActionBase, hadActivityOnPointerDown: function () { return hadActivityOnPointerDown; } };\n}\nfunction startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown) {\n var click = newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent);\n if (configuration.trackFrustrations) {\n appendClickToClickChain(click);\n }\n var stopWaitPageActivityEnd = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n if (pageActivityEndEvent.hadActivity && pageActivityEndEvent.end < click.startClocks.timeStamp) {\n // If the clock is looking weird, just discard the click\n click.discard();\n }\n else {\n if (pageActivityEndEvent.hadActivity) {\n click.stop(pageActivityEndEvent.end);\n }\n else if (hadActivityOnPointerDown()) {\n click.stop(\n // using the click start as activity end, so the click will have some activity but its\n // duration will be 0 (as the activity started before the click start)\n click.startClocks.timeStamp);\n }\n else {\n click.stop();\n }\n // Validate or discard the click only if we don't track frustrations. It'll be done when\n // the click chain is finalized.\n if (!configuration.trackFrustrations) {\n if (!pageActivityEndEvent.hadActivity) {\n // If we are not tracking frustrations, we should discard the click to keep backward\n // compatibility.\n click.discard();\n }\n else {\n click.validate();\n }\n }\n }\n }, CLICK_ACTION_MAX_DURATION).stop;\n var viewEndedSubscription = lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n click.stop(endClocks.timeStamp);\n });\n var stopSubscription = stopObservable.subscribe(function () {\n click.stop();\n });\n click.stopObservable.subscribe(function () {\n viewEndedSubscription.unsubscribe();\n stopWaitPageActivityEnd();\n stopSubscription.unsubscribe();\n });\n}\nfunction computeClickActionBase(event, actionNameAttribute) {\n var rect = event.target.getBoundingClientRect();\n return {\n type: \"click\" /* ActionType.CLICK */,\n target: {\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n selector: getSelectorFromElement(event.target, actionNameAttribute),\n },\n position: {\n // Use clientX and Y because for SVG element offsetX and Y are relatives to the element\n x: Math.round(event.clientX - rect.left),\n y: Math.round(event.clientY - rect.top),\n },\n name: getActionNameFromElement(event.target, actionNameAttribute),\n };\n}\nfunction newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent) {\n var id = generateUUID();\n var startClocks = clocksNow();\n var historyEntry = history.add(id, startClocks.relative);\n var eventCountsSubscription = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) {\n return event.action !== undefined &&\n (Array.isArray(event.action.id) ? includes(event.action.id, id) : event.action.id === id);\n },\n });\n var status = 0 /* ClickStatus.ONGOING */;\n var activityEndTime;\n var frustrationTypes = [];\n var stopObservable = new Observable();\n function stop(newActivityEndTime) {\n if (status !== 0 /* ClickStatus.ONGOING */) {\n return;\n }\n activityEndTime = newActivityEndTime;\n status = 1 /* ClickStatus.STOPPED */;\n if (activityEndTime) {\n historyEntry.close(getRelativeTime(activityEndTime));\n }\n else {\n historyEntry.remove();\n }\n eventCountsSubscription.stop();\n stopObservable.notify();\n }\n return {\n event: startEvent,\n stop: stop,\n stopObservable: stopObservable,\n get hasError() {\n return eventCountsSubscription.eventCounts.errorCount > 0;\n },\n get hasPageActivity() {\n return activityEndTime !== undefined;\n },\n getUserActivity: getUserActivity,\n addFrustration: function (frustrationType) {\n frustrationTypes.push(frustrationType);\n },\n startClocks: startClocks,\n isStopped: function () { return status === 1 /* ClickStatus.STOPPED */ || status === 2 /* ClickStatus.FINALIZED */; },\n clone: function () { return newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent); },\n validate: function (domEvents) {\n stop();\n if (status !== 1 /* ClickStatus.STOPPED */) {\n return;\n }\n var _a = eventCountsSubscription.eventCounts, resourceCount = _a.resourceCount, errorCount = _a.errorCount, longTaskCount = _a.longTaskCount;\n var clickAction = assign({\n type: \"click\" /* ActionType.CLICK */,\n duration: activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),\n startClocks: startClocks,\n id: id,\n frustrationTypes: frustrationTypes,\n counts: {\n resourceCount: resourceCount,\n errorCount: errorCount,\n longTaskCount: longTaskCount,\n },\n events: domEvents !== null && domEvents !== void 0 ? domEvents : [startEvent],\n event: startEvent,\n }, clickActionBase);\n lifeCycle.notify(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, clickAction);\n status = 2 /* ClickStatus.FINALIZED */;\n },\n discard: function () {\n stop();\n status = 2 /* ClickStatus.FINALIZED */;\n },\n };\n}\nexport function finalizeClicks(clicks, rageClick) {\n var isRage = computeFrustration(clicks, rageClick).isRage;\n if (isRage) {\n clicks.forEach(function (click) { return click.discard(); });\n rageClick.stop(timeStampNow());\n rageClick.validate(clicks.map(function (click) { return click.event; }));\n }\n else {\n rageClick.discard();\n clicks.forEach(function (click) { return click.validate(); });\n }\n}\n//# sourceMappingURL=trackClickActions.js.map","import { noop, assign, combine, toServerDuration, generateUUID } from '@datadog/browser-core';\nimport { trackClickActions } from './trackClickActions';\nexport function startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory) {\n lifeCycle.subscribe(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, function (action) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processAction(action, pageStateHistory));\n });\n var actionContexts = { findActionId: noop };\n if (configuration.trackUserInteractions) {\n actionContexts = trackClickActions(lifeCycle, domMutationObservable, configuration).actionContexts;\n }\n return {\n addAction: function (action, savedCommonContext) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n savedCommonContext: savedCommonContext,\n }, processAction(action, pageStateHistory)));\n },\n actionContexts: actionContexts,\n };\n}\nfunction processAction(action, pageStateHistory) {\n var autoActionProperties = isAutoAction(action)\n ? {\n action: {\n id: action.id,\n loading_time: toServerDuration(action.duration),\n frustration: {\n type: action.frustrationTypes,\n },\n error: {\n count: action.counts.errorCount,\n },\n long_task: {\n count: action.counts.longTaskCount,\n },\n resource: {\n count: action.counts.resourceCount,\n },\n },\n _dd: {\n action: {\n target: action.target,\n position: action.position,\n },\n },\n }\n : undefined;\n var customerContext = !isAutoAction(action) ? action.context : undefined;\n var actionEvent = combine({\n action: {\n id: generateUUID(),\n target: {\n name: action.name,\n },\n type: action.type,\n },\n date: action.startClocks.timeStamp,\n type: \"action\" /* RumEventType.ACTION */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(action.startClocks.relative) },\n }, autoActionProperties);\n return {\n customerContext: customerContext,\n rawRumEvent: actionEvent,\n startTime: action.startClocks.relative,\n domainContext: isAutoAction(action) ? { event: action.event, events: action.events } : {},\n };\n}\nfunction isAutoAction(action) {\n return action.type !== \"custom\" /* ActionType.CUSTOM */;\n}\n//# sourceMappingURL=actionCollection.js.map","import { instrumentMethodAndCallOriginal } from '../../tools/instrumentMethod';\nimport { computeStackTrace } from './computeStackTrace';\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\n/**\n * Cross-browser collection of unhandled errors\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Tries to catch all unhandled errors and report them to the\n * callback.\n *\n * Callbacks receive a StackTrace object as described in the\n * computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nexport function startUnhandledErrorCollection(callback) {\n var stopInstrumentingOnError = instrumentOnError(callback).stop;\n var stopInstrumentingOnUnhandledRejection = instrumentUnhandledRejection(callback).stop;\n return {\n stop: function () {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\n/**\n * Install a global onerror handler\n */\nfunction instrumentOnError(callback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before: function (messageObj, url, line, column, errorObj) {\n var stackTrace;\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name_1 = _a.name, message = _a.message;\n stackTrace = {\n name: name_1,\n message: message,\n stack: stack,\n };\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n },\n });\n}\nfunction tryToParseMessage(messageObj) {\n var _a;\n var name;\n var message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n _a = ERROR_TYPES_RE.exec(messageObj), name = _a[1], message = _a[2];\n }\n return { name: name, message: message };\n}\n/**\n * Install a global onunhandledrejection handler\n */\nfunction instrumentUnhandledRejection(callback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before: function (e) {\n var reason = e.reason || 'Empty reason';\n var stack = computeStackTrace(reason);\n callback(stack, reason);\n },\n });\n}\n//# sourceMappingURL=tracekit.js.map","import { computeStackTrace } from '../tracekit';\nimport { createHandlingStack, formatErrorMessage, toStackTraceString, 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 { find } from '../../tools/utils/polyfills';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nvar consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n var consoleObservables = apis.map(function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api);\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables.apply(void 0, consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n var observable = new Observable(function () {\n var originalConsoleApi = globalConsole[api];\n globalConsole[api] = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n originalConsoleApi.apply(console, params);\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return function () {\n globalConsole[api] = originalConsoleApi;\n };\n });\n return observable;\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n // Todo: remove console error prefix in the next major version\n var message = params.map(function (param) { return formatConsoleParameters(param); }).join(' ');\n var stack;\n var fingerprint;\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) { return param instanceof Error; });\n stack = firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined;\n fingerprint = tryToGetFingerprint(firstErrorParam);\n message = \"console error: \".concat(message);\n }\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n fingerprint: fingerprint,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { toStackTraceString } from '../error/error';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { includes } from '../../tools/utils/polyfills';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n var observables = [];\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n var reportTypes = apis.filter(function (api) { return api !== RawReportType.cspViolation; });\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables.apply(void 0, observables);\n}\nfunction createReportObservable(reportTypes) {\n var observable = new Observable(function () {\n if (!window.ReportingObserver) {\n return;\n }\n var handleReports = monitor(function (reports, _) {\n return reports.forEach(function (report) {\n observable.notify(buildRawReportFromReport(report));\n });\n });\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return function () {\n observer.disconnect();\n };\n });\n return observable;\n}\nfunction createCspViolationReportObservable(configuration) {\n var observable = new Observable(function () {\n var stop = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, function (event) {\n observable.notify(buildRawReportFromCspViolation(event));\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction buildRawReportFromReport(_a) {\n var type = _a.type, body = _a.body;\n return {\n type: type,\n subtype: body.id,\n message: \"\".concat(type, \": \").concat(body.message),\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n };\n}\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation;\n var message = \"'\".concat(event.blockedURI, \"' blocked by '\").concat(event.effectiveDirective, \"' directive\");\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: \"\".concat(type, \": \").concat(message),\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? \"\".concat(message, \" of the policy \\\"\").concat(safeTruncate(event.originalPolicy, 100, '...'), \"\\\"\")\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name: name,\n message: 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 { isEmptyObject, assign, ErrorSource, generateUUID, computeRawError, computeStackTrace, Observable, trackRuntimeError, } from '@datadog/browser-core';\nimport { trackConsoleError } from './trackConsoleError';\nimport { trackReportError } from './trackReportError';\nexport function startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts) {\n var errorObservable = new Observable();\n trackConsoleError(errorObservable);\n trackRuntimeError(errorObservable);\n trackReportError(configuration, errorObservable);\n errorObservable.subscribe(function (error) { return lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error }); });\n return doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts);\n}\nexport function doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts) {\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, function (_a) {\n var error = _a.error, customerContext = _a.customerContext, savedCommonContext = _a.savedCommonContext;\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n }, processError(error, pageStateHistory, featureFlagContexts)));\n });\n return {\n addError: function (_a, savedCommonContext) {\n var error = _a.error, handlingStack = _a.handlingStack, startClocks = _a.startClocks, customerContext = _a.context;\n var stackTrace = error instanceof Error ? computeStackTrace(error) : undefined;\n var rawError = computeRawError({\n stackTrace: stackTrace,\n originalError: error,\n handlingStack: handlingStack,\n startClocks: startClocks,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.CUSTOM,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n });\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, {\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n error: rawError,\n });\n },\n };\n}\nfunction processError(error, pageStateHistory, featureFlagContexts) {\n var rawRumEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: generateUUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser',\n fingerprint: error.fingerprint,\n },\n type: \"error\" /* RumEventType.ERROR */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(error.startClocks.relative) },\n };\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(error.startClocks.relative);\n if (featureFlagContext && !isEmptyObject(featureFlagContext)) {\n rawRumEvent.feature_flags = featureFlagContext;\n }\n return {\n rawRumEvent: rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError,\n },\n };\n}\n//# sourceMappingURL=errorCollection.js.map","import { clocksNow, initConsoleObservable, ErrorSource, ConsoleApiName } from '@datadog/browser-core';\nexport function trackConsoleError(errorObservable) {\n var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(function (consoleError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: consoleError.message,\n stack: consoleError.stack,\n fingerprint: consoleError.fingerprint,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack: consoleError.handlingStack,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackConsoleError.js.map","import { clocksNow } from '../../tools/utils/timeUtils';\nimport { startUnhandledErrorCollection } from '../tracekit';\nimport { computeRawError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n return startUnhandledErrorCollection(function (stackTrace, originalError) {\n errorObservable.notify(computeRawError({\n stackTrace: stackTrace,\n originalError: originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n }));\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { clocksNow, ErrorSource, initReportObservable, RawReportType } from '@datadog/browser-core';\nexport function trackReportError(configuration, errorObservable) {\n var subscription = initReportObservable(configuration, [\n RawReportType.cspViolation,\n RawReportType.intervention,\n ]).subscribe(function (reportError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: reportError.message,\n stack: reportError.stack,\n type: reportError.subtype,\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackReportError.js.map","import { addDuration } from '@datadog/browser-core';\nimport { toValidEntry } from './resourceUtils';\n/**\n * Look for corresponding timing in resource timing buffer\n *\n * Observations:\n * - Timing (start, end) are nested inside the request (start, end)\n * - Some timing can be not exactly nested, being off by < 1 ms\n *\n * Strategy:\n * - from valid nested entries (with 1 ms error margin)\n * - if a single timing match, return the timing\n * - otherwise we can't decide, return undefined\n */\nexport function matchRequestTiming(request) {\n if (!performance || !('getEntriesByName' in performance)) {\n return;\n }\n var sameNameEntries = performance.getEntriesByName(request.url, 'resource');\n if (!sameNameEntries.length || !('toJSON' in sameNameEntries[0])) {\n return;\n }\n var candidates = sameNameEntries\n .map(function (entry) { return entry.toJSON(); })\n .filter(toValidEntry)\n .filter(function (entry) {\n return isBetween(entry, request.startClocks.relative, endTime({ startTime: request.startClocks.relative, duration: request.duration }));\n });\n if (candidates.length === 1) {\n return candidates[0];\n }\n return;\n}\nfunction endTime(timing) {\n return addDuration(timing.startTime, timing.duration);\n}\nfunction isBetween(timing, start, end) {\n var errorMargin = 1;\n return timing.startTime >= start - errorMargin && endTime(timing) <= addDuration(end, errorMargin);\n}\n//# sourceMappingURL=matchRequestTiming.js.map","import { combine, generateUUID, toServerDuration, relativeToClocks, assign, isNumber, isExperimentalFeatureEnabled, ExperimentalFeature, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nimport { matchRequestTiming } from './matchRequestTiming';\nimport { computePerformanceResourceDetails, computePerformanceResourceDuration, computeResourceKind, computeSize, isRequestKind, } from './resourceUtils';\nexport function startResourceCollection(lifeCycle, configuration, sessionManager, pageStateHistory) {\n lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processRequest(request, configuration, sessionManager, pageStateHistory));\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.RESOURCE && !isRequestKind(entry)) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processResourceEntry(entry, configuration, sessionManager, pageStateHistory));\n }\n }\n });\n}\nfunction processRequest(request, configuration, sessionManager, pageStateHistory) {\n var _a;\n var type = request.type === \"xhr\" /* RequestType.XHR */ ? \"xhr\" /* ResourceType.XHR */ : \"fetch\" /* ResourceType.FETCH */;\n var matchingTiming = matchRequestTiming(request);\n var startClocks = matchingTiming ? relativeToClocks(matchingTiming.startTime) : request.startClocks;\n var correspondingTimingOverrides = matchingTiming ? computePerformanceEntryMetrics(matchingTiming) : undefined;\n var tracingInfo = computeRequestTracingInfo(request, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var duration = computeRequestDuration(pageStateHistory, startClocks, request.duration);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, (_a = matchingTiming === null || matchingTiming === void 0 ? void 0 : matchingTiming.duration) !== null && _a !== void 0 ? _a : request.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n duration: duration,\n method: request.method,\n status_code: request.status,\n url: request.url,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, correspondingTimingOverrides, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: matchingTiming && toPerformanceEntryRepresentation(matchingTiming),\n xhr: request.xhr,\n response: request.response,\n requestInput: request.input,\n requestInit: request.init,\n error: request.error,\n },\n };\n}\nfunction processResourceEntry(entry, configuration, sessionManager, pageStateHistory) {\n var type = computeResourceKind(entry);\n var entryMetrics = computePerformanceEntryMetrics(entry);\n var startClocks = relativeToClocks(entry.startTime);\n var tracingInfo = computeEntryTracingInfo(entry, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, entry.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n url: entry.name,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, entryMetrics, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: toPerformanceEntryRepresentation(entry),\n },\n };\n}\nfunction computePerformanceEntryMetrics(timing) {\n return {\n resource: assign({\n duration: computePerformanceResourceDuration(timing),\n size: computeSize(timing),\n }, computePerformanceResourceDetails(timing)),\n };\n}\nfunction computeRequestTracingInfo(request, configuration) {\n var hasBeenTraced = request.traceSampled && request.traceId && request.spanId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n span_id: request.spanId.toDecimalString(),\n trace_id: request.traceId.toDecimalString(),\n rule_psr: getRulePsr(configuration),\n },\n };\n}\nfunction computeEntryTracingInfo(entry, configuration) {\n var hasBeenTraced = entry.traceId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n trace_id: entry.traceId,\n rule_psr: getRulePsr(configuration),\n },\n };\n}\n// TODO next major: use directly PerformanceEntry type in domain context\nfunction toPerformanceEntryRepresentation(entry) {\n return entry;\n}\n/**\n * @returns number between 0 and 1 which represents trace sample rate\n */\nfunction getRulePsr(configuration) {\n return isNumber(configuration.traceSampleRate) ? configuration.traceSampleRate / 100 : undefined;\n}\nfunction computeIndexingInfo(sessionManager, resourceStart) {\n var session = sessionManager.findTrackedSession(resourceStart.relative);\n return {\n _dd: {\n discarded: !session || !session.resourceAllowed,\n },\n };\n}\nfunction computePageStateInfo(pageStateHistory, startClocks, duration) {\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.RESOURCE_PAGE_STATES)) {\n return;\n }\n return {\n _dd: {\n page_states: pageStateHistory.findAll(startClocks.relative, duration),\n page_was_discarded: String(document.wasDiscarded),\n },\n };\n}\nfunction computeRequestDuration(pageStateHistory, startClocks, duration) {\n var _a;\n // TODO remove FF in next major\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.NO_RESOURCE_DURATION_FROZEN_STATE)) {\n return toServerDuration(duration);\n }\n var requestCrossedFrozenState = (_a = pageStateHistory\n .findAll(startClocks.relative, duration)) === null || _a === void 0 ? void 0 : _a.some(function (pageState) { return pageState.state === \"frozen\" /* PageState.FROZEN */; });\n return !requestCrossedFrozenState ? toServerDuration(duration) : undefined;\n}\n//# sourceMappingURL=resourceCollection.js.map","import { toServerDuration } from '@datadog/browser-core';\n// Todo: Remove in the next major release\nexport function mapToForegroundPeriods(pageStateServerEntries, duration) {\n var foregroundPeriods = [];\n for (var i = 0; i < pageStateServerEntries.length; i++) {\n var current = pageStateServerEntries[i];\n var next = pageStateServerEntries[i + 1];\n if (current.state === \"active\" /* PageState.ACTIVE */) {\n var start = current.start >= 0 ? current.start : 0;\n var end = next ? next.start : toServerDuration(duration);\n foregroundPeriods.push({\n start: start,\n duration: (end - start),\n });\n }\n }\n return foregroundPeriods;\n}\n//# sourceMappingURL=foregroundContexts.js.map","import { ExperimentalFeature, ONE_MINUTE, addEventListeners, findLast, isExperimentalFeatureEnabled, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n// Discard LCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var LCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\n/**\n * Track the largest contentful paint (LCP) occurring during the initial View. This can yield\n * multiple values, only the most recent one should be used.\n * Documentation: https://web.dev/lcp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/onLCP.ts\n */\nexport function trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, eventTarget, callback) {\n // Ignore entries that come after the first user interaction. According to the documentation, the\n // browser should not send largest-contentful-paint entries after a user interact with the page,\n // but the web-vitals reference implementation uses this as a safeguard.\n var firstInteractionTimestamp = Infinity;\n var stopEventListener = addEventListeners(configuration, eventTarget, [\"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */], function (event) {\n firstInteractionTimestamp = event.timeStamp;\n }, { capture: true, once: true }).stop;\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var lcpEntry = findLast(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < LCP_MAXIMUM_DELAY;\n });\n if (lcpEntry) {\n var lcpTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) && lcpEntry.element) {\n lcpTargetSelector = getSelectorFromElement(lcpEntry.element, configuration.actionNameAttribute);\n }\n callback({\n value: lcpEntry.startTime,\n targetSelector: lcpTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: function () {\n stopEventListener();\n unsubscribeLifeCycle();\n },\n };\n}\n//# sourceMappingURL=trackLargestContentfulPaint.js.map","/**\n * performance.interactionCount polyfill\n *\n * The interactionCount is an integer which counts the total number of distinct user interactions,\n * for which there was a unique interactionId.\n *\n * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213\n * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.\n * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.\n *\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts\n */\nimport { monitor } from '@datadog/browser-core';\nvar observer;\nvar interactionCountEstimate = 0;\nvar minKnownInteractionId = Infinity;\nvar maxKnownInteractionId = 0;\nexport function initInteractionCountPolyfill() {\n if ('interactionCount' in performance || observer) {\n return;\n }\n observer = new window.PerformanceObserver(monitor(function (entries) {\n entries.getEntries().forEach(function (e) {\n var entry = e;\n if (entry.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, entry.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, entry.interactionId);\n interactionCountEstimate = (maxKnownInteractionId - minKnownInteractionId) / 7 + 1;\n }\n });\n }));\n observer.observe({ type: 'event', buffered: true, durationThreshold: 0 });\n}\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport var getInteractionCount = function () {\n return observer ? interactionCountEstimate : window.performance.interactionCount || 0;\n};\n//# sourceMappingURL=interactionCountPolyfill.js.map","import { trackFirstContentfulPaint } from './trackFirstContentfulPaint';\nimport { trackFirstInput } from './trackFirstInput';\nimport { trackNavigationTimings } from './trackNavigationTimings';\nimport { trackLargestContentfulPaint } from './trackLargestContentfulPaint';\nimport { trackFirstHidden } from './trackFirstHidden';\nexport function trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate) {\n var initialViewMetrics = {};\n var stopNavigationTracking = trackNavigationTimings(lifeCycle, function (navigationTimings) {\n setLoadEvent(navigationTimings.loadEvent);\n initialViewMetrics.navigationTimings = navigationTimings;\n scheduleViewUpdate();\n }).stop;\n var firstHidden = trackFirstHidden(configuration);\n var stopFCPTracking = trackFirstContentfulPaint(lifeCycle, firstHidden, function (firstContentfulPaint) {\n initialViewMetrics.firstContentfulPaint = firstContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopLCPTracking = trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, window, function (largestContentfulPaint) {\n initialViewMetrics.largestContentfulPaint = largestContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopFIDTracking = trackFirstInput(lifeCycle, configuration, firstHidden, function (firstInput) {\n initialViewMetrics.firstInput = firstInput;\n scheduleViewUpdate();\n }).stop;\n function stop() {\n stopNavigationTracking();\n stopFCPTracking();\n stopLCPTracking();\n stopFIDTracking();\n firstHidden.stop();\n }\n return {\n stop: stop,\n initialViewMetrics: initialViewMetrics,\n };\n}\n//# sourceMappingURL=trackInitialViewMetrics.js.map","import { relativeNow } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nexport function trackNavigationTimings(lifeCycle, callback) {\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.NAVIGATION) {\n callback({\n domComplete: entry.domComplete,\n domContentLoaded: entry.domContentLoadedEventEnd,\n domInteractive: entry.domInteractive,\n loadEvent: entry.loadEventEnd,\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n firstByte: entry.responseStart >= 0 && entry.responseStart <= relativeNow() ? entry.responseStart : undefined,\n });\n }\n }\n }).unsubscribe;\n return { stop: stop };\n}\n//# sourceMappingURL=trackNavigationTimings.js.map","import { addEventListeners } from '@datadog/browser-core';\nexport function trackFirstHidden(configuration, eventTarget) {\n if (eventTarget === void 0) { eventTarget = window; }\n var timeStamp;\n var stopListeners;\n if (document.visibilityState === 'hidden') {\n timeStamp = 0;\n }\n else {\n timeStamp = Infinity;\n (stopListeners = addEventListeners(configuration, eventTarget, [\"pagehide\" /* DOM_EVENT.PAGE_HIDE */, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ || document.visibilityState === 'hidden') {\n timeStamp = event.timeStamp;\n stopListeners();\n }\n }, { capture: true }).stop);\n }\n return {\n get timeStamp() {\n return timeStamp;\n },\n stop: function () {\n stopListeners === null || stopListeners === void 0 ? void 0 : stopListeners();\n },\n };\n}\n//# sourceMappingURL=trackFirstHidden.js.map","import { ONE_MINUTE, find } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\n// Discard FCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var FCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\nexport function trackFirstContentfulPaint(lifeCycle, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var fcpEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.PAINT &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < FCP_MAXIMUM_DELAY;\n });\n if (fcpEntry) {\n callback(fcpEntry.startTime);\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstContentfulPaint.js.map","import { elapsed, find, ExperimentalFeature, isExperimentalFeatureEnabled } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the first input occurring during the initial View to return:\n * - First Input Delay\n * - First Input Time\n * Callback is called at most one time.\n * Documentation: https://web.dev/fid/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getFID.ts\n */\nexport function trackFirstInput(lifeCycle, configuration, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var firstInputEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.FIRST_INPUT && entry.startTime < firstHidden.timeStamp;\n });\n if (firstInputEntry) {\n var firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart);\n var firstInputTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n firstInputEntry.target &&\n isElementNode(firstInputEntry.target)) {\n firstInputTargetSelector = getSelectorFromElement(firstInputEntry.target, configuration.actionNameAttribute);\n }\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n delay: firstInputDelay >= 0 ? firstInputDelay : 0,\n time: firstInputEntry.startTime,\n targetSelector: firstInputTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstInput.js.map","import { round, find, ONE_SECOND, isExperimentalFeatureEnabled, ExperimentalFeature, noop, } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { supportPerformanceTimingEvent, RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nexport function trackCumulativeLayoutShift(configuration, lifeCycle, callback) {\n if (!isLayoutShiftSupported()) {\n return {\n stop: noop,\n };\n }\n var maxClsValue = 0;\n // if no layout shift happen the value should be reported as 0\n callback({\n value: 0,\n });\n var window = slidingSessionWindow();\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.LAYOUT_SHIFT && !entry.hadRecentInput) {\n window.update(entry);\n if (window.value() > maxClsValue) {\n maxClsValue = window.value();\n var cls = round(maxClsValue, 4);\n var clsTarget = window.largestLayoutShiftTarget();\n var cslTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) && clsTarget) {\n cslTargetSelector = getSelectorFromElement(clsTarget, configuration.actionNameAttribute);\n }\n callback({\n value: cls,\n targetSelector: cslTargetSelector,\n });\n }\n }\n }\n }).unsubscribe;\n return {\n stop: stop,\n };\n}\nfunction slidingSessionWindow() {\n var value = 0;\n var startTime;\n var endTime;\n var largestLayoutShift = 0;\n var largestLayoutShiftTarget;\n var largestLayoutShiftTime;\n return {\n update: function (entry) {\n var _a, _b;\n var shouldCreateNewWindow = startTime === undefined ||\n entry.startTime - endTime >= ONE_SECOND ||\n entry.startTime - startTime >= 5 * ONE_SECOND;\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime;\n value = entry.value;\n largestLayoutShift = 0;\n largestLayoutShiftTarget = undefined;\n }\n else {\n value += entry.value;\n endTime = entry.startTime;\n }\n if (entry.value > largestLayoutShift) {\n largestLayoutShift = entry.value;\n largestLayoutShiftTime = entry.startTime;\n if ((_a = entry.sources) === null || _a === void 0 ? void 0 : _a.length) {\n largestLayoutShiftTarget = (_b = find(entry.sources, function (s) { return !!s.node && isElementNode(s.node); })) === null || _b === void 0 ? void 0 : _b.node;\n }\n else {\n largestLayoutShiftTarget = undefined;\n }\n }\n },\n value: function () { return value; },\n largestLayoutShiftTarget: function () { return largestLayoutShiftTarget; },\n largestLayoutShiftTime: function () { return largestLayoutShiftTime; },\n };\n}\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nexport function isLayoutShiftSupported() {\n return supportPerformanceTimingEvent(RumPerformanceEntryType.LAYOUT_SHIFT);\n}\n//# sourceMappingURL=trackCumulativeLayoutShift.js.map","import { Observable, throttle, addEventListener } from '@datadog/browser-core';\nvar viewportObservable;\nexport function initViewportObservable(configuration) {\n if (!viewportObservable) {\n viewportObservable = createViewportObservable(configuration);\n }\n return viewportObservable;\n}\nexport function createViewportObservable(configuration) {\n var observable = new Observable(function () {\n var updateDimension = throttle(function () {\n observable.notify(getViewportDimension());\n }, 200).throttled;\n return addEventListener(configuration, window, \"resize\" /* DOM_EVENT.RESIZE */, updateDimension, { capture: true, passive: true })\n .stop;\n });\n return observable;\n}\n// excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport\nexport function getViewportDimension() {\n var visual = window.visualViewport;\n if (visual) {\n return {\n width: Number(visual.width * visual.scale),\n height: Number(visual.height * visual.scale),\n };\n }\n return {\n width: Number(window.innerWidth || 0),\n height: Number(window.innerHeight || 0),\n };\n}\n//# sourceMappingURL=viewportObservable.js.map","import { noop, isExperimentalFeatureEnabled, ExperimentalFeature, ONE_MINUTE, addTelemetryDebug, elapsed, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType, supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { getInteractionCount, initInteractionCountPolyfill } from './interactionCountPolyfill';\n// Arbitrary value to prevent unnecessary memory usage on views with lots of interactions.\nvar MAX_INTERACTION_ENTRIES = 10;\n/**\n * Track the interaction to next paint (INP).\n * To avoid outliers, return the p98 worst interaction of the view.\n * Documentation: https://web.dev/inp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/onINP.ts\n */\nexport function trackInteractionToNextPaint(configuration, viewStart, viewLoadingType, lifeCycle) {\n if (!isInteractionToNextPaintSupported() ||\n !isExperimentalFeatureEnabled(ExperimentalFeature.INTERACTION_TO_NEXT_PAINT)) {\n return {\n getInteractionToNextPaint: function () { return undefined; },\n stop: noop,\n };\n }\n var getViewInteractionCount = trackViewInteractionCount(viewLoadingType).getViewInteractionCount;\n var longestInteractions = trackLongestInteractions(getViewInteractionCount);\n var interactionToNextPaint = -1;\n var interactionToNextPaintTargetSelector;\n var telemetryCollected = false;\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var _a;\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if ((entry.entryType === RumPerformanceEntryType.EVENT ||\n entry.entryType === RumPerformanceEntryType.FIRST_INPUT) &&\n entry.interactionId) {\n longestInteractions.process(entry);\n }\n }\n var newInteraction = longestInteractions.estimateP98Interaction();\n if (newInteraction) {\n interactionToNextPaint = newInteraction.duration;\n if (interactionToNextPaint > 10 * ONE_MINUTE && !telemetryCollected) {\n telemetryCollected = true;\n addTelemetryDebug('INP outlier', {\n inp: interactionToNextPaint,\n interaction: {\n timeFromViewStart: elapsed(viewStart.relative, newInteraction.startTime),\n duration: newInteraction.duration,\n startTime: newInteraction.startTime,\n processingStart: newInteraction.processingStart,\n processingEnd: newInteraction.processingEnd,\n interactionId: newInteraction.interactionId,\n name: newInteraction.name,\n targetNodeName: (_a = newInteraction.target) === null || _a === void 0 ? void 0 : _a.nodeName,\n },\n });\n }\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n newInteraction.target &&\n isElementNode(newInteraction.target)) {\n interactionToNextPaintTargetSelector = getSelectorFromElement(newInteraction.target, configuration.actionNameAttribute);\n }\n else {\n interactionToNextPaintTargetSelector = undefined;\n }\n }\n }).unsubscribe;\n return {\n getInteractionToNextPaint: function () {\n // If no INP duration where captured because of the performanceObserver 40ms threshold\n // but the view interaction count > 0 then report 0\n if (interactionToNextPaint >= 0) {\n return {\n value: interactionToNextPaint,\n targetSelector: interactionToNextPaintTargetSelector,\n };\n }\n else if (getViewInteractionCount()) {\n return {\n value: 0,\n };\n }\n },\n stop: stop,\n };\n}\nfunction trackLongestInteractions(getViewInteractionCount) {\n var longestInteractions = [];\n function sortAndTrimLongestInteractions() {\n longestInteractions.sort(function (a, b) { return b.duration - a.duration; }).splice(MAX_INTERACTION_ENTRIES);\n }\n return {\n /**\n * Process the performance entry:\n * - if its duration is long enough, add the performance entry to the list of worst interactions\n * - if an entry with the same interaction id exists and its duration is lower than the new one, then replace it in the list of worst interactions\n */\n process: function (entry) {\n var interactionIndex = longestInteractions.findIndex(function (interaction) { return entry.interactionId === interaction.interactionId; });\n var minLongestInteraction = longestInteractions[longestInteractions.length - 1];\n if (interactionIndex !== -1) {\n if (entry.duration > longestInteractions[interactionIndex].duration) {\n longestInteractions[interactionIndex] = entry;\n sortAndTrimLongestInteractions();\n }\n }\n else if (longestInteractions.length < MAX_INTERACTION_ENTRIES ||\n entry.duration > minLongestInteraction.duration) {\n longestInteractions.push(entry);\n sortAndTrimLongestInteractions();\n }\n },\n /**\n * Compute the p98 longest interaction.\n * For better performance the computation is based on 10 longest interactions and the interaction count of the current view.\n */\n estimateP98Interaction: function () {\n var interactionIndex = Math.min(longestInteractions.length - 1, Math.floor(getViewInteractionCount() / 50));\n return longestInteractions[interactionIndex];\n },\n };\n}\nexport function trackViewInteractionCount(viewLoadingType) {\n initInteractionCountPolyfill();\n var previousInteractionCount = viewLoadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */ ? 0 : getInteractionCount();\n return {\n getViewInteractionCount: function () { return getInteractionCount() - previousInteractionCount; },\n };\n}\nexport function isInteractionToNextPaintSupported() {\n return (supportPerformanceTimingEvent(RumPerformanceEntryType.EVENT) &&\n window.PerformanceEventTiming &&\n 'interactionId' in PerformanceEventTiming.prototype);\n}\n//# sourceMappingURL=trackInteractionToNextPaint.js.map","export function getScrollX() {\n var scrollX;\n var visual = window.visualViewport;\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft;\n }\n else if (window.scrollX !== undefined) {\n scrollX = window.scrollX;\n }\n else {\n scrollX = window.pageXOffset || 0;\n }\n return Math.round(scrollX);\n}\nexport function getScrollY() {\n var scrollY;\n var visual = window.visualViewport;\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop;\n }\n else if (window.scrollY !== undefined) {\n scrollY = window.scrollY;\n }\n else {\n scrollY = window.pageYOffset || 0;\n }\n return Math.round(scrollY);\n}\n//# sourceMappingURL=scroll.js.map","import { Observable, ONE_SECOND, elapsed, relativeNow, throttle, addEventListener, monitor, } from '@datadog/browser-core';\nimport { getScrollY } from '../../../browser/scroll';\nimport { getViewportDimension } from '../../../browser/viewportObservable';\n/** Arbitrary scroll throttle duration */\nexport var THROTTLE_SCROLL_DURATION = ONE_SECOND;\nexport function trackScrollMetrics(configuration, viewStart, callback, scrollValues) {\n if (scrollValues === void 0) { scrollValues = createScrollValuesObservable(configuration); }\n var maxScrollDepth = 0;\n var maxScrollHeight = 0;\n var maxScrollHeightTime = 0;\n var subscription = scrollValues.subscribe(function (_a) {\n var scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight;\n var shouldUpdate = false;\n if (scrollDepth > maxScrollDepth) {\n maxScrollDepth = scrollDepth;\n shouldUpdate = true;\n }\n if (scrollHeight > maxScrollHeight) {\n maxScrollHeight = scrollHeight;\n var now = relativeNow();\n maxScrollHeightTime = elapsed(viewStart.relative, now);\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n callback({\n maxDepth: Math.min(maxScrollDepth, maxScrollHeight),\n maxDepthScrollTop: scrollTop,\n maxScrollHeight: maxScrollHeight,\n maxScrollHeightTime: maxScrollHeightTime,\n });\n }\n });\n return {\n stop: function () { return subscription.unsubscribe(); },\n };\n}\nexport function computeScrollValues() {\n var scrollTop = getScrollY();\n var height = getViewportDimension().height;\n var scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight);\n var scrollDepth = Math.round(height + scrollTop);\n return {\n scrollHeight: scrollHeight,\n scrollDepth: scrollDepth,\n scrollTop: scrollTop,\n };\n}\nexport function createScrollValuesObservable(configuration, throttleDuration) {\n if (throttleDuration === void 0) { throttleDuration = THROTTLE_SCROLL_DURATION; }\n var observable = new Observable(function () {\n function notify() {\n observable.notify(computeScrollValues());\n }\n if (window.ResizeObserver) {\n var throttledNotify_1 = throttle(notify, throttleDuration, {\n leading: false,\n trailing: true,\n });\n var observerTarget_1 = document.scrollingElement || document.documentElement;\n var resizeObserver_1 = new ResizeObserver(monitor(throttledNotify_1.throttled));\n resizeObserver_1.observe(observerTarget_1);\n var eventListener_1 = addEventListener(configuration, window, \"scroll\" /* DOM_EVENT.SCROLL */, throttledNotify_1.throttled, {\n passive: true,\n });\n return function () {\n throttledNotify_1.cancel();\n resizeObserver_1.unobserve(observerTarget_1);\n eventListener_1.stop();\n };\n }\n });\n return observable;\n}\n//# sourceMappingURL=trackScrollMetrics.js.map","import { trackCumulativeLayoutShift } from './trackCumulativeLayoutShift';\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint';\nimport { trackLoadingTime } from './trackLoadingTime';\nimport { trackScrollMetrics } from './trackScrollMetrics';\nexport function trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart) {\n var commonViewMetrics = {};\n var _a = trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {\n commonViewMetrics.loadingTime = newLoadingTime;\n scheduleViewUpdate();\n }), stopLoadingTimeTracking = _a.stop, setLoadEvent = _a.setLoadEvent;\n var stopScrollMetricsTracking = trackScrollMetrics(configuration, viewStart, function (newScrollMetrics) {\n commonViewMetrics.scroll = newScrollMetrics;\n }).stop;\n var stopCLSTracking = trackCumulativeLayoutShift(configuration, lifeCycle, function (cumulativeLayoutShift) {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;\n scheduleViewUpdate();\n }).stop;\n var _b = trackInteractionToNextPaint(configuration, viewStart, loadingType, lifeCycle), stopINPTracking = _b.stop, getInteractionToNextPaint = _b.getInteractionToNextPaint;\n return {\n stop: function () {\n stopLoadingTimeTracking();\n stopCLSTracking();\n stopScrollMetricsTracking();\n stopINPTracking();\n },\n setLoadEvent: setLoadEvent,\n getCommonViewMetrics: function () {\n commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint();\n return commonViewMetrics;\n },\n };\n}\n//# sourceMappingURL=trackCommonViewMetrics.js.map","import { elapsed } from '@datadog/browser-core';\nimport { waitPageActivityEnd } from '../../waitPageActivityEnd';\nexport function trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadType, viewStart, callback) {\n var isWaitingForLoadEvent = loadType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */;\n var isWaitingForActivityLoadingTime = true;\n var loadingTimeCandidates = [];\n function invokeCallbackIfAllCandidatesAreReceived() {\n if (!isWaitingForActivityLoadingTime && !isWaitingForLoadEvent && loadingTimeCandidates.length > 0) {\n callback(Math.max.apply(Math, loadingTimeCandidates));\n }\n }\n var stop = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (event) {\n if (isWaitingForActivityLoadingTime) {\n isWaitingForActivityLoadingTime = false;\n if (event.hadActivity) {\n loadingTimeCandidates.push(elapsed(viewStart.timeStamp, event.end));\n }\n invokeCallbackIfAllCandidatesAreReceived();\n }\n }).stop;\n return {\n stop: stop,\n setLoadEvent: function (loadEvent) {\n if (isWaitingForLoadEvent) {\n isWaitingForLoadEvent = false;\n loadingTimeCandidates.push(loadEvent);\n invokeCallbackIfAllCandidatesAreReceived();\n }\n },\n };\n}\n//# sourceMappingURL=trackLoadingTime.js.map","import { noop, PageExitReason, shallowClone, elapsed, generateUUID, ONE_MINUTE, throttle, clocksNow, clocksOrigin, timeStampNow, display, looksLikeRelativeTime, setInterval, clearInterval, setTimeout, Observable, } from '@datadog/browser-core';\nimport { trackViewEventCounts } from './trackViewEventCounts';\nimport { trackInitialViewMetrics } from './viewMetrics/trackInitialViewMetrics';\nimport { trackCommonViewMetrics } from './viewMetrics/trackCommonViewMetrics';\nexport var THROTTLE_VIEW_UPDATE_PERIOD = 3000;\nexport var SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE;\n// Some events or metrics can be captured after the end of the view. To avoid missing those;\n// an arbitrary delay is added for stopping their tracking after the view ends.\n//\n// Ideally, we would not stop and keep tracking events or metrics until the end of the session.\n// But this might have a small performance impact if there are many many views.\n// So let's have a fairly short delay improving the situation in most cases and avoid impacting performances too much.\nexport var KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * ONE_MINUTE;\nexport function trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, areViewsTrackedAutomatically, initialViewOptions) {\n var activeViews = new Set();\n var currentView = startNewView(\"initial_load\" /* ViewLoadingType.INITIAL_LOAD */, clocksOrigin(), initialViewOptions);\n startViewLifeCycle();\n var locationChangeSubscription;\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable);\n }\n function startNewView(loadingType, startClocks, viewOptions) {\n var newlyCreatedView = newView(lifeCycle, domMutationObservable, configuration, location, loadingType, startClocks, viewOptions);\n activeViews.add(newlyCreatedView);\n newlyCreatedView.stopObservable.subscribe(function () {\n activeViews.delete(newlyCreatedView);\n });\n return newlyCreatedView;\n }\n function startViewLifeCycle() {\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n // Renew view on session renewal\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, undefined, {\n name: currentView.name,\n service: currentView.service,\n version: currentView.version,\n });\n });\n lifeCycle.subscribe(7 /* LifeCycleEventType.SESSION_EXPIRED */, function () {\n currentView.end({ sessionIsActive: false });\n });\n // End the current view on page unload\n lifeCycle.subscribe(9 /* LifeCycleEventType.PAGE_EXITED */, function (pageExitEvent) {\n if (pageExitEvent.reason === PageExitReason.UNLOADING || pageExitEvent.reason === PageExitReason.PAGEHIDE) {\n currentView.end();\n }\n });\n }\n function renewViewOnLocationChange(locationChangeObservable) {\n return locationChangeObservable.subscribe(function (_a) {\n var oldLocation = _a.oldLocation, newLocation = _a.newLocation;\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end();\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */);\n }\n });\n }\n return {\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n currentView.addTiming(name, time);\n },\n startView: function (options, startClocks) {\n currentView.end({ endClocks: startClocks });\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, startClocks, options);\n },\n stop: function () {\n locationChangeSubscription === null || locationChangeSubscription === void 0 ? void 0 : locationChangeSubscription.unsubscribe();\n currentView.end();\n activeViews.forEach(function (view) { return view.stop(); });\n },\n };\n}\nfunction newView(lifeCycle, domMutationObservable, configuration, initialLocation, loadingType, startClocks, viewOptions) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n // Setup initial values\n var id = generateUUID();\n var stopObservable = new Observable();\n var customTimings = {};\n var documentVersion = 0;\n var endClocks;\n var location = shallowClone(initialLocation);\n var sessionIsActive = true;\n var name;\n var service;\n var version;\n if (viewOptions) {\n name = viewOptions.name;\n service = viewOptions.service;\n version = viewOptions.version;\n }\n lifeCycle.notify(2 /* LifeCycleEventType.VIEW_CREATED */, {\n id: id,\n name: name,\n startClocks: startClocks,\n service: service,\n version: version,\n });\n // Update the view every time the measures are changing\n var _a = throttle(triggerViewUpdate, THROTTLE_VIEW_UPDATE_PERIOD, {\n leading: false,\n }), scheduleViewUpdate = _a.throttled, cancelScheduleViewUpdate = _a.cancel;\n var _b = trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, startClocks), setLoadEvent = _b.setLoadEvent, stopCommonViewMetricsTracking = _b.stop, getCommonViewMetrics = _b.getCommonViewMetrics;\n var _c = loadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */\n ? trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate)\n : { stop: noop, initialViewMetrics: {} }, stopInitialViewMetricsTracking = _c.stop, initialViewMetrics = _c.initialViewMetrics;\n var _d = trackViewEventCounts(lifeCycle, id, scheduleViewUpdate), stopEventCountsTracking = _d.stop, eventCounts = _d.eventCounts;\n // Session keep alive\n var keepAliveIntervalId = setInterval(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL);\n // Initial view update\n triggerViewUpdate();\n function triggerViewUpdate() {\n cancelScheduleViewUpdate();\n documentVersion += 1;\n var currentEnd = endClocks === undefined ? timeStampNow() : endClocks.timeStamp;\n lifeCycle.notify(3 /* LifeCycleEventType.VIEW_UPDATED */, {\n customTimings: customTimings,\n documentVersion: documentVersion,\n id: id,\n name: name,\n service: service,\n version: version,\n loadingType: loadingType,\n location: location,\n startClocks: startClocks,\n commonViewMetrics: getCommonViewMetrics(),\n initialViewMetrics: initialViewMetrics,\n duration: elapsed(startClocks.timeStamp, currentEnd),\n isActive: endClocks === undefined,\n sessionIsActive: sessionIsActive,\n eventCounts: eventCounts,\n });\n }\n return {\n name: name,\n service: service,\n version: version,\n stopObservable: stopObservable,\n end: function (options) {\n var _this = this;\n var _a, _b;\n if (options === void 0) { options = {}; }\n if (endClocks) {\n // view already ended\n return;\n }\n endClocks = (_a = options.endClocks) !== null && _a !== void 0 ? _a : clocksNow();\n sessionIsActive = (_b = options.sessionIsActive) !== null && _b !== void 0 ? _b : true;\n lifeCycle.notify(4 /* LifeCycleEventType.VIEW_ENDED */, { endClocks: endClocks });\n clearInterval(keepAliveIntervalId);\n stopCommonViewMetricsTracking();\n triggerViewUpdate();\n setTimeout(function () {\n _this.stop();\n }, KEEP_TRACKING_AFTER_VIEW_DELAY);\n },\n stop: function () {\n stopInitialViewMetricsTracking();\n stopEventCountsTracking();\n stopObservable.notify();\n },\n addTiming: function (name, time) {\n if (endClocks) {\n return;\n }\n var relativeTime = looksLikeRelativeTime(time) ? time : elapsed(startClocks.timeStamp, time);\n customTimings[sanitizeTiming(name)] = relativeTime;\n scheduleViewUpdate();\n },\n };\n}\n/**\n * Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $\n */\nfunction sanitizeTiming(name) {\n var sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_');\n if (sanitized !== name) {\n display.warn(\"Invalid timing name: \".concat(name, \", sanitized to: \").concat(sanitized));\n }\n return sanitized;\n}\nfunction areDifferentLocation(currentLocation, otherLocation) {\n return (currentLocation.pathname !== otherLocation.pathname ||\n (!isHashAnAnchor(otherLocation.hash) &&\n getPathFromHash(otherLocation.hash) !== getPathFromHash(currentLocation.hash)));\n}\nfunction isHashAnAnchor(hash) {\n var correspondingId = hash.substr(1);\n return !!document.getElementById(correspondingId);\n}\nfunction getPathFromHash(hash) {\n var index = hash.indexOf('?');\n return index < 0 ? hash : hash.slice(0, index);\n}\n//# sourceMappingURL=trackViews.js.map","import { trackEventCounts } from '../trackEventCounts';\nexport function trackViewEventCounts(lifeCycle, viewId, onChange) {\n var _a = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) { return event.view.id === viewId; },\n onChange: onChange,\n }), stop = _a.stop, eventCounts = _a.eventCounts;\n return {\n stop: stop,\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackViewEventCounts.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature, isEmptyObject, mapValues, toServerDuration, isNumber, } from '@datadog/browser-core';\nimport { mapToForegroundPeriods } from '../contexts/foregroundContexts';\nimport { trackViews } from './trackViews';\nexport function startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions) {\n lifeCycle.subscribe(3 /* LifeCycleEventType.VIEW_UPDATED */, function (view) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory));\n });\n return trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, !configuration.trackViewsManually, initialViewOptions);\n}\nfunction processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var replayStats = recorderApi.getReplayStats(view.id);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(view.startClocks.relative);\n var pageStatesEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGE_STATES);\n var pageStates = pageStateHistory.findAll(view.startClocks.relative, view.duration);\n var viewEvent = {\n _dd: {\n document_version: view.documentVersion,\n replay_stats: replayStats,\n page_states: pageStatesEnabled ? pageStates : undefined,\n },\n date: view.startClocks.timeStamp,\n type: \"view\" /* RumEventType.VIEW */,\n view: {\n action: {\n count: view.eventCounts.actionCount,\n },\n frustration: {\n count: view.eventCounts.frustrationCount,\n },\n cumulative_layout_shift: (_a = view.commonViewMetrics.cumulativeLayoutShift) === null || _a === void 0 ? void 0 : _a.value,\n cumulative_layout_shift_target_selector: (_b = view.commonViewMetrics.cumulativeLayoutShift) === null || _b === void 0 ? void 0 : _b.targetSelector,\n first_byte: toServerDuration((_c = view.initialViewMetrics.navigationTimings) === null || _c === void 0 ? void 0 : _c.firstByte),\n dom_complete: toServerDuration((_d = view.initialViewMetrics.navigationTimings) === null || _d === void 0 ? void 0 : _d.domComplete),\n dom_content_loaded: toServerDuration((_e = view.initialViewMetrics.navigationTimings) === null || _e === void 0 ? void 0 : _e.domContentLoaded),\n dom_interactive: toServerDuration((_f = view.initialViewMetrics.navigationTimings) === null || _f === void 0 ? void 0 : _f.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.initialViewMetrics.firstContentfulPaint),\n first_input_delay: toServerDuration((_g = view.initialViewMetrics.firstInput) === null || _g === void 0 ? void 0 : _g.delay),\n first_input_time: toServerDuration((_h = view.initialViewMetrics.firstInput) === null || _h === void 0 ? void 0 : _h.time),\n first_input_target_selector: (_j = view.initialViewMetrics.firstInput) === null || _j === void 0 ? void 0 : _j.targetSelector,\n interaction_to_next_paint: toServerDuration((_k = view.commonViewMetrics.interactionToNextPaint) === null || _k === void 0 ? void 0 : _k.value),\n interaction_to_next_paint_target_selector: (_l = view.commonViewMetrics.interactionToNextPaint) === null || _l === void 0 ? void 0 : _l.targetSelector,\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration((_m = view.initialViewMetrics.largestContentfulPaint) === null || _m === void 0 ? void 0 : _m.value),\n largest_contentful_paint_target_selector: (_o = view.initialViewMetrics.largestContentfulPaint) === null || _o === void 0 ? void 0 : _o.targetSelector,\n load_event: toServerDuration((_p = view.initialViewMetrics.navigationTimings) === null || _p === void 0 ? void 0 : _p.loadEvent),\n loading_time: discardNegativeDuration(toServerDuration(view.commonViewMetrics.loadingTime)),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount,\n },\n resource: {\n count: view.eventCounts.resourceCount,\n },\n time_spent: toServerDuration(view.duration),\n in_foreground_periods: !pageStatesEnabled && pageStates ? mapToForegroundPeriods(pageStates, view.duration) : undefined, // Todo: Remove in the next major release\n },\n feature_flags: featureFlagContext && !isEmptyObject(featureFlagContext) ? featureFlagContext : undefined,\n display: view.commonViewMetrics.scroll\n ? {\n scroll: {\n max_depth: view.commonViewMetrics.scroll.maxDepth,\n max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,\n max_scroll_height_time: toServerDuration(view.commonViewMetrics.scroll.maxScrollHeightTime),\n },\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false,\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel,\n },\n };\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(view.customTimings, toServerDuration);\n }\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location,\n },\n };\n}\nfunction discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=viewCollection.js.map","import { ValueHistory } 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 var VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nvar stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState) {\n // TODO - Improve configuration type and remove assertion\n var sessionStore = startSessionStore(configuration.sessionStoreStrategyType, productKey, computeSessionState);\n stopCallbacks.push(function () { return sessionStore.stop(); });\n var sessionContextHistory = new ValueHistory(SESSION_CONTEXT_TIMEOUT_DELAY);\n stopCallbacks.push(function () { return sessionContextHistory.stop(); });\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n });\n sessionStore.expireObservable.subscribe(function () {\n sessionContextHistory.closeActive(relativeNow());\n });\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackActivity(configuration, function () { return sessionStore.expandOrRenewSession(); });\n trackVisibility(configuration, function () { return sessionStore.expandSession(); });\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n };\n }\n return {\n findActiveSession: function (startTime) { return sessionContextHistory.find(startTime); },\n renewObservable: sessionStore.renewObservable,\n expireObservable: sessionStore.expireObservable,\n expire: sessionStore.expire,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) { return e(); });\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n var 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 }).stop;\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n var stop = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible).stop;\n stopCallbacks.push(stop);\n var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval);\n });\n}\n//# sourceMappingURL=sessionManager.js.map","import { Observable, noop, performDraw, startSessionManager } from '@datadog/browser-core';\nexport var RUM_SESSION_KEY = 'rum';\nexport function startRumSessionManager(configuration, lifeCycle) {\n var sessionManager = startSessionManager(configuration, RUM_SESSION_KEY, function (rawTrackingType) {\n return computeSessionState(configuration, rawTrackingType);\n });\n sessionManager.expireObservable.subscribe(function () {\n lifeCycle.notify(7 /* LifeCycleEventType.SESSION_EXPIRED */);\n });\n sessionManager.renewObservable.subscribe(function () {\n lifeCycle.notify(8 /* LifeCycleEventType.SESSION_RENEWED */);\n });\n return {\n findTrackedSession: function (startTime) {\n var session = sessionManager.findActiveSession(startTime);\n if (!session || !isTypeTracked(session.trackingType)) {\n return;\n }\n var plan = session.trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */\n ? 2 /* RumSessionPlan.WITH_SESSION_REPLAY */\n : 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */;\n return {\n id: session.id,\n plan: plan,\n sessionReplayAllowed: plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n longTaskAllowed: configuration.trackLongTasks !== undefined\n ? configuration.trackLongTasks\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n resourceAllowed: configuration.trackResources !== undefined\n ? configuration.trackResources\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n };\n },\n expire: sessionManager.expire,\n expireObservable: sessionManager.expireObservable,\n };\n}\n/**\n * Start a tracked replay session stub\n */\nexport function startRumSessionManagerStub() {\n var session = {\n id: '00000000-aaaa-0000-aaaa-000000000000',\n plan: 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */,\n sessionReplayAllowed: false,\n longTaskAllowed: true,\n resourceAllowed: true,\n };\n return {\n findTrackedSession: function () { return session; },\n expire: noop,\n expireObservable: new Observable(),\n };\n}\nfunction computeSessionState(configuration, rawTrackingType) {\n var trackingType;\n if (hasValidRumSession(rawTrackingType)) {\n trackingType = rawTrackingType;\n }\n else if (!performDraw(configuration.sessionSampleRate)) {\n trackingType = \"0\" /* RumTrackingType.NOT_TRACKED */;\n }\n else if (!performDraw(configuration.sessionReplaySampleRate)) {\n trackingType = \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */;\n }\n else {\n trackingType = \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */;\n }\n return {\n trackingType: trackingType,\n isTracked: isTypeTracked(trackingType),\n };\n}\nfunction hasValidRumSession(trackingType) {\n return (trackingType === \"0\" /* RumTrackingType.NOT_TRACKED */ ||\n trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */ ||\n trackingType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */);\n}\nfunction isTypeTracked(rumSessionType) {\n return (rumSessionType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */ ||\n rumSessionType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */);\n}\n//# sourceMappingURL=rumSessionManager.js.map","import { display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nvar Batch = /** @class */ (function () {\n function Batch(request, flushController, messageBytesLimit) {\n var _this = this;\n this.request = request;\n this.flushController = flushController;\n this.messageBytesLimit = messageBytesLimit;\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n this.flushSubscription = this.flushController.flushObservable.subscribe(function (event) { return _this.flush(event); });\n }\n Batch.prototype.add = function (message) {\n this.addOrUpdate(message);\n };\n Batch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key);\n };\n Batch.prototype.stop = function () {\n this.flushSubscription.unsubscribe();\n };\n Batch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(objectValues(this.upsertBuffer));\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n var payload = { data: messages.join('\\n'), bytesCount: event.bytesCount, flushReason: event.reason };\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload);\n }\n else {\n this.request.send(payload);\n }\n };\n Batch.prototype.addOrUpdate = function (message, key) {\n var _a = this.process(message), processedMessage = _a.processedMessage, messageBytesCount = _a.messageBytesCount;\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\"Discarded a message whose size was bigger than the maximum allowed size \".concat(this.messageBytesLimit, \"KB.\"));\n return;\n }\n if (this.hasMessageFor(key)) {\n this.remove(key);\n }\n this.push(processedMessage, messageBytesCount, key);\n };\n Batch.prototype.process = function (message) {\n var processedMessage = jsonStringify(message);\n var messageBytesCount = computeBytesCount(processedMessage);\n return { processedMessage: processedMessage, messageBytesCount: messageBytesCount };\n };\n Batch.prototype.push = function (processedMessage, messageBytesCount, key) {\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 0 ? 1 : 0;\n this.flushController.notifyBeforeAddMessage(messageBytesCount + separatorBytesCount);\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage;\n }\n else {\n this.pushOnlyBuffer.push(processedMessage);\n }\n this.flushController.notifyAfterAddMessage();\n };\n Batch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key];\n delete this.upsertBuffer[key];\n var messageBytesCount = computeBytesCount(removedMessage);\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 1 ? 1 : 0;\n this.flushController.notifyAfterRemoveMessage(messageBytesCount + separatorBytesCount);\n };\n Batch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined;\n };\n return Batch;\n}());\nexport { Batch };\n//# sourceMappingURL=batch.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 var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport var MAX_ONGOING_REQUESTS = 32;\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport var MAX_BACKOFF_TIME = ONE_MINUTE;\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, endpointType, 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: function () { return retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, endpointType, reportError); },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, endpointType, reportError);\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, _a) {\n var onSuccess = _a.onSuccess, onFailure = _a.onFailure;\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, function (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, endpointType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: \"Reached max \".concat(endpointType, \" events size queued for upload: \").concat(MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE, \"MiB\"),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n var previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, endpointType, 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 var queue = [];\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first: function () {\n return queue[0];\n },\n dequeue: function () {\n var payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size: function () {\n return queue.length;\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add: function (payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove: function (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(configuration, endpointBuilder, bytesLimit, reportError) {\n var retryState = newRetryState();\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse);\n };\n return {\n send: function (payload) {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.endpointType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload) {\n var canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', payload);\n var isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data);\n}\nvar hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse) {\n var canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor(function (response) { return onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type }); }), monitor(function () {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, 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(configuration, url, data, onResponse) {\n var request = new XMLHttpRequest();\n request.open('POST', url, true);\n addEventListener(configuration, request, 'loadend', function () {\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 { 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(_a) {\n var messagesLimit = _a.messagesLimit, bytesLimit = _a.bytesLimit, durationLimit = _a.durationLimit, pageExitObservable = _a.pageExitObservable, sessionExpireObservable = _a.sessionExpireObservable;\n var pageExitSubscription = pageExitObservable.subscribe(function (event) { return flush(event.reason); });\n var sessionExpireSubscription = sessionExpireObservable.subscribe(function () { return flush('session_expire'); });\n var flushObservable = new Observable(function () { return function () {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n }; });\n var currentBytesCount = 0;\n var currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n var messagesCount = currentMessagesCount;\n var bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount,\n });\n }\n var durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable: 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 notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= 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 += messageBytesCount;\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 notifyAfterAddMessage: function () {\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 notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { combine, isTelemetryReplicationAllowed, startBatchWithReplica } from '@datadog/browser-core';\nexport function startRumBatch(configuration, lifeCycle, telemetryEventObservable, reportError, pageExitObservable, sessionExpireObservable) {\n var replica = configuration.replica;\n var batch = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n }, replica && {\n endpoint: replica.rumEndpointBuilder,\n transformMessage: function (message) { return combine(message, { application: { id: replica.applicationId } }); },\n }, reportError, pageExitObservable, sessionExpireObservable);\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n if (serverRumEvent.type === \"view\" /* RumEventType.VIEW */) {\n batch.upsert(serverRumEvent, serverRumEvent.view.id);\n }\n else {\n batch.add(serverRumEvent);\n }\n });\n telemetryEventObservable.subscribe(function (event) { return batch.add(event, isTelemetryReplicationAllowed(configuration)); });\n return batch;\n}\n//# sourceMappingURL=startRumBatch.js.map","import { Batch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable) {\n var primaryBatch = createBatch(configuration, primary.endpoint);\n var replicaBatch = replica && createBatch(configuration, replica.endpoint);\n function createBatch(configuration, endpointBuilder) {\n return new Batch(createHttpRequest(configuration, endpointBuilder, configuration.batchBytesLimit, reportError), createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable,\n }), configuration.messageBytesLimit);\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add: function (message, replicated) {\n if (replicated === void 0) { replicated = true; }\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: function (message, key) {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: function () {\n primaryBatch.stop();\n replicaBatch === null || replicaBatch === void 0 ? void 0 : replicaBatch.stop();\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","import { addEventListener, instrumentMethodAndCallOriginal, Observable, shallowClone, } from '@datadog/browser-core';\nexport function createLocationChangeObservable(configuration, location) {\n var currentLocation = shallowClone(location);\n var observable = new Observable(function () {\n var stopHistoryTracking = trackHistory(configuration, onLocationChange).stop;\n var stopHashTracking = trackHash(configuration, onLocationChange).stop;\n return function () {\n stopHistoryTracking();\n stopHashTracking();\n };\n });\n function onLocationChange() {\n if (currentLocation.href === location.href) {\n return;\n }\n var newLocation = shallowClone(location);\n observable.notify({\n newLocation: newLocation,\n oldLocation: currentLocation,\n });\n currentLocation = newLocation;\n }\n return observable;\n}\nfunction trackHistory(configuration, onHistoryChange) {\n var stopInstrumentingPushState = instrumentMethodAndCallOriginal(history, 'pushState', {\n after: onHistoryChange,\n }).stop;\n var stopInstrumentingReplaceState = instrumentMethodAndCallOriginal(history, 'replaceState', {\n after: onHistoryChange,\n }).stop;\n var removeListener = addEventListener(configuration, window, \"popstate\" /* DOM_EVENT.POP_STATE */, onHistoryChange).stop;\n return {\n stop: function () {\n stopInstrumentingPushState();\n stopInstrumentingReplaceState();\n removeListener();\n },\n };\n}\nfunction trackHash(configuration, onHashChange) {\n return addEventListener(configuration, window, \"hashchange\" /* DOM_EVENT.HASH_CHANGE */, onHashChange);\n}\n//# sourceMappingURL=locationChangeObservable.js.map","import { isEmptyObject, includes, performDraw, ONE_SECOND, addTelemetryDebug, setInterval } from '@datadog/browser-core';\nexport var MEASURES_PERIOD_DURATION = 10 * ONE_SECOND;\nvar currentPeriodMeasures;\nvar currentBatchMeasures;\nvar batchHasRumEvent;\nexport function startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batchFlushObservable) {\n var customerDataTelemetryEnabled = telemetry.enabled && performDraw(configuration.customerDataTelemetrySampleRate);\n if (!customerDataTelemetryEnabled) {\n return;\n }\n initCurrentPeriodMeasures();\n initCurrentBatchMeasures();\n // We measure the data of every view updates even if there could only be one per batch due to the upsert\n // It means that contexts bytes count sums can be higher than it really is\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n batchHasRumEvent = true;\n updateMeasure(currentBatchMeasures.globalContextBytes, !isEmptyObject(globalContextManager.get()) ? globalContextManager.getBytesCount() : 0);\n updateMeasure(currentBatchMeasures.userContextBytes, !isEmptyObject(userContextManager.get()) ? userContextManager.getBytesCount() : 0);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations();\n var hasFeatureFlagContext = includes([\"view\" /* RumEventType.VIEW */, \"error\" /* RumEventType.ERROR */], event.type) &&\n featureFlagContext &&\n !isEmptyObject(featureFlagContext);\n updateMeasure(currentBatchMeasures.featureFlagBytes, hasFeatureFlagContext ? featureFlagContexts.getFeatureFlagBytesCount() : 0);\n });\n batchFlushObservable.subscribe(function (_a) {\n var bytesCount = _a.bytesCount, messagesCount = _a.messagesCount;\n // Don't measure batch that only contains telemetry events to avoid batch sending loop\n // It could happen because after each batch we are adding a customer data measures telemetry event to the next one\n if (!batchHasRumEvent) {\n return;\n }\n currentPeriodMeasures.batchCount += 1;\n updateMeasure(currentPeriodMeasures.batchBytesCount, bytesCount);\n updateMeasure(currentPeriodMeasures.batchMessagesCount, messagesCount);\n mergeMeasure(currentPeriodMeasures.globalContextBytes, currentBatchMeasures.globalContextBytes);\n mergeMeasure(currentPeriodMeasures.userContextBytes, currentBatchMeasures.userContextBytes);\n mergeMeasure(currentPeriodMeasures.featureFlagBytes, currentBatchMeasures.featureFlagBytes);\n initCurrentBatchMeasures();\n });\n setInterval(sendCurrentPeriodMeasures, MEASURES_PERIOD_DURATION);\n}\nfunction sendCurrentPeriodMeasures() {\n if (currentPeriodMeasures.batchCount === 0) {\n return;\n }\n addTelemetryDebug('Customer data measures', currentPeriodMeasures);\n initCurrentPeriodMeasures();\n}\nfunction createMeasure() {\n return { min: Infinity, max: 0, sum: 0 };\n}\nfunction updateMeasure(measure, value) {\n measure.sum += value;\n measure.min = Math.min(measure.min, value);\n measure.max = Math.max(measure.max, value);\n}\nfunction mergeMeasure(target, source) {\n target.sum += source.sum;\n target.min = Math.min(target.min, source.min);\n target.max = Math.max(target.max, source.max);\n}\nfunction initCurrentPeriodMeasures() {\n currentPeriodMeasures = {\n batchCount: 0,\n batchBytesCount: createMeasure(),\n batchMessagesCount: createMeasure(),\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\nfunction initCurrentBatchMeasures() {\n batchHasRumEvent = false;\n currentBatchMeasures = {\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\n//# sourceMappingURL=startCustomerDataTelemetry.js.map","import { elapsed, ValueHistory, SESSION_TIME_OUT_DELAY, toServerDuration, addEventListeners, relativeNow, } from '@datadog/browser-core';\n// Arbitrary value to cap number of element for memory consumption in the browser\nexport var MAX_PAGE_STATE_ENTRIES = 4000;\n// Arbitrary value to cap number of element for backend & to save bandwidth\nexport var MAX_PAGE_STATE_ENTRIES_SELECTABLE = 500;\nexport var PAGE_STATE_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startPageStateHistory(configuration, maxPageStateEntriesSelectable) {\n if (maxPageStateEntriesSelectable === void 0) { maxPageStateEntriesSelectable = MAX_PAGE_STATE_ENTRIES_SELECTABLE; }\n var pageStateHistory = new ValueHistory(PAGE_STATE_CONTEXT_TIME_OUT_DELAY, MAX_PAGE_STATE_ENTRIES);\n var currentPageState;\n addPageState(getPageState(), relativeNow());\n var stopEventListeners = addEventListeners(configuration, window, [\n \"pageshow\" /* DOM_EVENT.PAGE_SHOW */,\n \"focus\" /* DOM_EVENT.FOCUS */,\n \"blur\" /* DOM_EVENT.BLUR */,\n \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */,\n \"resume\" /* DOM_EVENT.RESUME */,\n \"freeze\" /* DOM_EVENT.FREEZE */,\n \"pagehide\" /* DOM_EVENT.PAGE_HIDE */,\n ], function (event) {\n // Only get events fired by the browser to avoid false currentPageState changes done with custom events\n // cf: developer extension auto flush: https://github.com/DataDog/browser-sdk/blob/2f72bf05a672794c9e33965351964382a94c72ba/developer-extension/src/panel/flushEvents.ts#L11-L12\n if (event.isTrusted) {\n addPageState(computePageState(event), event.timeStamp);\n }\n }, { capture: true }).stop;\n function addPageState(nextPageState, startTime) {\n if (startTime === void 0) { startTime = relativeNow(); }\n if (nextPageState === currentPageState) {\n return;\n }\n currentPageState = nextPageState;\n pageStateHistory.closeActive(startTime);\n pageStateHistory.add({ state: currentPageState, startTime: startTime }, startTime);\n }\n return {\n findAll: function (eventStartTime, duration) {\n var pageStateEntries = pageStateHistory.findAll(eventStartTime, duration);\n if (pageStateEntries.length === 0) {\n return;\n }\n var pageStateServerEntries = [];\n // limit the number of entries to return\n var limit = Math.max(0, pageStateEntries.length - maxPageStateEntriesSelectable);\n // loop page state entries backward to return the selected ones in desc order\n for (var index = pageStateEntries.length - 1; index >= limit; index--) {\n var pageState = pageStateEntries[index];\n // compute the start time relative to the event start time (ex: to be relative to the view start time)\n var relativeStartTime = elapsed(eventStartTime, pageState.startTime);\n pageStateServerEntries.push({\n state: pageState.state,\n start: toServerDuration(relativeStartTime),\n });\n }\n return pageStateServerEntries;\n },\n isInActivePageStateAt: function (startTime) {\n var pageStateEntry = pageStateHistory.find(startTime);\n return pageStateEntry !== undefined && pageStateEntry.state === \"active\" /* PageState.ACTIVE */;\n },\n addPageState: addPageState,\n stop: function () {\n stopEventListeners();\n pageStateHistory.stop();\n },\n };\n}\nfunction computePageState(event) {\n if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n return \"frozen\" /* PageState.FROZEN */;\n }\n else if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */) {\n return event.persisted ? \"frozen\" /* PageState.FROZEN */ : \"terminated\" /* PageState.TERMINATED */;\n }\n return getPageState();\n}\nfunction getPageState() {\n if (document.visibilityState === 'hidden') {\n return \"hidden\" /* PageState.HIDDEN */;\n }\n if (document.hasFocus()) {\n return \"active\" /* PageState.ACTIVE */;\n }\n return \"passive\" /* PageState.PASSIVE */;\n}\n//# sourceMappingURL=pageStateHistory.js.map","import { INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_EU1 } from '@datadog/browser-core';\nexport function getSessionReplayUrl(configuration, _a) {\n var session = _a.session, viewContext = _a.viewContext, errorType = _a.errorType;\n var sessionId = session ? session.id : 'no-session-id';\n var parameters = [];\n if (errorType !== undefined) {\n parameters.push(\"error-type=\".concat(errorType));\n }\n if (viewContext) {\n parameters.push(\"seed=\".concat(viewContext.id));\n parameters.push(\"from=\".concat(viewContext.startClocks.timeStamp));\n }\n var origin = getDatadogSiteUrl(configuration);\n var path = \"/rum/replay/sessions/\".concat(sessionId);\n return \"\".concat(origin).concat(path, \"?\").concat(parameters.join('&'));\n}\nexport function getDatadogSiteUrl(rumConfiguration) {\n var site = rumConfiguration.site;\n var subdomain = rumConfiguration.subdomain || getSiteDefaultSubdomain(rumConfiguration);\n return \"https://\".concat(subdomain ? \"\".concat(subdomain, \".\") : '').concat(site);\n}\nfunction getSiteDefaultSubdomain(configuration) {\n switch (configuration.site) {\n case INTAKE_SITE_US1:\n case INTAKE_SITE_EU1:\n return 'app';\n case INTAKE_SITE_STAGING:\n return 'dd';\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=getSessionReplayUrl.js.map","export var RecordType = {\n FullSnapshot: 2,\n IncrementalSnapshot: 3,\n Meta: 4,\n Focus: 6,\n ViewEnd: 7,\n VisualViewport: 8,\n FrustrationRecord: 9,\n};\nexport var NodeType = {\n Document: 0,\n DocumentType: 1,\n Element: 2,\n Text: 3,\n CDATA: 4,\n DocumentFragment: 11,\n};\nexport var IncrementalSource = {\n Mutation: 0,\n MouseMove: 1,\n MouseInteraction: 2,\n Scroll: 3,\n ViewportResize: 4,\n Input: 5,\n TouchMove: 6,\n MediaInteraction: 7,\n StyleSheetRule: 8,\n // CanvasMutation : 9,\n // Font : 10,\n};\nexport var MouseInteractionType = {\n MouseUp: 0,\n MouseDown: 1,\n Click: 2,\n ContextMenu: 3,\n DblClick: 4,\n Focus: 5,\n Blur: 6,\n TouchStart: 7,\n TouchEnd: 9,\n};\nexport var MediaInteractionType = {\n Play: 0,\n Pause: 1,\n};\n//# sourceMappingURL=sessionReplayConstants.js.map","import { assign, timeStampNow } from '@datadog/browser-core';\nimport { RecordType } from '../../types';\nexport function assembleIncrementalSnapshot(source, data) {\n return {\n data: assign({\n source: source,\n }, data),\n type: RecordType.IncrementalSnapshot,\n timestamp: timeStampNow(),\n };\n}\n//# sourceMappingURL=assembly.js.map","import { DefaultPrivacyLevel } from '@datadog/browser-core';\nexport var NodePrivacyLevel = {\n IGNORE: 'ignore',\n HIDDEN: 'hidden',\n ALLOW: DefaultPrivacyLevel.ALLOW,\n MASK: DefaultPrivacyLevel.MASK,\n MASK_USER_INPUT: DefaultPrivacyLevel.MASK_USER_INPUT,\n};\nexport var PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport var PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport var PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport var PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport var PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport var PRIVACY_CLASS_ALLOW = 'dd-privacy-allow';\nexport var PRIVACY_CLASS_MASK = 'dd-privacy-mask';\nexport var PRIVACY_CLASS_MASK_USER_INPUT = 'dd-privacy-mask-user-input';\nexport var PRIVACY_CLASS_HIDDEN = 'dd-privacy-hidden';\n// Private Replacement Templates\nexport var CENSORED_STRING_MARK = '***';\nexport var CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport var FORM_PRIVATE_TAG_NAMES = {\n INPUT: true,\n OUTPUT: true,\n TEXTAREA: true,\n SELECT: true,\n OPTION: true,\n DATALIST: true,\n OPTGROUP: true,\n};\n//# sourceMappingURL=constants.js.map","import { isElementNode, getParentNode, isTextNode } from '@datadog/browser-rum-core';\nimport { NodePrivacyLevel, PRIVACY_ATTR_NAME, PRIVACY_ATTR_VALUE_ALLOW, PRIVACY_ATTR_VALUE_MASK, PRIVACY_ATTR_VALUE_MASK_USER_INPUT, PRIVACY_ATTR_VALUE_HIDDEN, PRIVACY_CLASS_ALLOW, PRIVACY_CLASS_MASK, PRIVACY_CLASS_MASK_USER_INPUT, PRIVACY_CLASS_HIDDEN, FORM_PRIVATE_TAG_NAMES, CENSORED_STRING_MARK, } from '../../constants';\nexport var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 100000;\nvar TEXT_MASKING_CHAR = 'x';\n/**\n * Get node privacy level by iterating over its ancestors. When the direct parent privacy level is\n * know, it is best to use something like:\n *\n * derivePrivacyLevelGivenParent(getNodeSelfPrivacyLevel(node), parentNodePrivacyLevel)\n */\nexport function getNodePrivacyLevel(node, defaultPrivacyLevel) {\n var parentNode = getParentNode(node);\n var parentNodePrivacyLevel = parentNode ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel) : defaultPrivacyLevel;\n var selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n return reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n}\n/**\n * Reduces the next privacy level based on self + parent privacy levels\n */\nexport function reducePrivacyLevel(childPrivacyLevel, parentNodePrivacyLevel) {\n switch (parentNodePrivacyLevel) {\n // These values cannot be overridden\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return parentNodePrivacyLevel;\n }\n switch (childPrivacyLevel) {\n case NodePrivacyLevel.ALLOW:\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.MASK_USER_INPUT:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return childPrivacyLevel;\n default:\n return parentNodePrivacyLevel;\n }\n}\n/**\n * Determines the node's own privacy level without checking for ancestors.\n */\nexport function getNodeSelfPrivacyLevel(node) {\n // Only Element types can have a privacy level set\n if (!isElementNode(node)) {\n return;\n }\n var privAttr = node.getAttribute(PRIVACY_ATTR_NAME);\n // Overrules for replay purpose\n if (node.tagName === 'BASE') {\n return NodePrivacyLevel.ALLOW;\n }\n // Overrules to enforce end-user protection\n if (node.tagName === 'INPUT') {\n var inputElement = node;\n if (inputElement.type === 'password' || inputElement.type === 'email' || inputElement.type === 'tel') {\n return NodePrivacyLevel.MASK;\n }\n if (inputElement.type === 'hidden') {\n return NodePrivacyLevel.MASK;\n }\n var autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year]\n if (autocomplete && autocomplete.indexOf('cc-') === 0) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (privAttr === PRIVACY_ATTR_VALUE_HIDDEN || node.classList.contains(PRIVACY_CLASS_HIDDEN)) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK || node.classList.contains(PRIVACY_CLASS_MASK)) {\n return NodePrivacyLevel.MASK;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK_USER_INPUT || node.classList.contains(PRIVACY_CLASS_MASK_USER_INPUT)) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_ALLOW || node.classList.contains(PRIVACY_CLASS_ALLOW)) {\n return NodePrivacyLevel.ALLOW;\n }\n if (shouldIgnoreElement(node)) {\n return NodePrivacyLevel.IGNORE;\n }\n}\n/**\n * Helper aiming to unify `mask` and `mask-user-input` privacy levels:\n *\n * In the `mask` case, it is trivial: we should mask the element.\n *\n * In the `mask-user-input` case, we should mask the element only if it is a \"form\" element or the\n * direct parent is a form element for text nodes).\n *\n * Other `shouldMaskNode` cases are edge cases that should not matter too much (ex: should we mask a\n * node if it is ignored or hidden? it doesn't matter since it won't be serialized).\n */\nexport function shouldMaskNode(node, privacyLevel) {\n switch (privacyLevel) {\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return true;\n case NodePrivacyLevel.MASK_USER_INPUT:\n return isTextNode(node) ? isFormElement(node.parentNode) : isFormElement(node);\n default:\n return false;\n }\n}\nfunction isFormElement(node) {\n if (!node || node.nodeType !== node.ELEMENT_NODE) {\n return false;\n }\n var element = node;\n if (element.tagName === 'INPUT') {\n switch (element.type) {\n case 'button':\n case 'color':\n case 'reset':\n case 'submit':\n return false;\n }\n }\n return !!FORM_PRIVATE_TAG_NAMES[element.tagName];\n}\n/**\n * Text censoring non-destructively maintains whitespace characters in order to preserve text shape\n * during replay.\n */\nexport var censorText = function (text) { return text.replace(/\\S/g, TEXT_MASKING_CHAR); };\nexport function getTextContent(textNode, ignoreWhiteSpace, parentNodePrivacyLevel) {\n var _a;\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n var parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n var textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n var nodePrivacyLevel = parentNodePrivacyLevel;\n var isScript = parentTagName === 'SCRIPT';\n if (isScript) {\n // For perf reasons, we don't record script (heuristic)\n textContent = CENSORED_STRING_MARK;\n }\n else if (nodePrivacyLevel === NodePrivacyLevel.HIDDEN) {\n // Should never occur, but just in case, we set to CENSORED_MARK.\n textContent = CENSORED_STRING_MARK;\n }\n else if (shouldMaskNode(textNode, nodePrivacyLevel)) {\n if (\n // Scrambling the child list breaks text nodes for DATALIST/SELECT/OPTGROUP\n parentTagName === 'DATALIST' ||\n parentTagName === 'SELECT' ||\n parentTagName === 'OPTGROUP') {\n if (!textContent.trim()) {\n return;\n }\n }\n else if (parentTagName === 'OPTION') {\n //

(\n// @fb-only: scopeRules?: ParameterizedScopeRules

,\n// @fb-only: param: P,\n// @fb-only: ): ScopeRules | void {\n// @fb-only: return scopeRules?.map(rule =>\n// @fb-only: Array.isArray(rule)\n// @fb-only: ? rule.map(entry => (typeof entry === 'function' ? entry(param) : entry))\n// @fb-only: : rule,\n// @fb-only: );\n// @fb-only: }\n\n/*\nA function which returns an atom based on the input parameter.\n\nEach unique parameter returns a unique atom. E.g.,\n\n const f = atomFamily(...);\n f({a: 1}) => an atom\n f({a: 2}) => a different atom\n\nThis allows components to persist local, private state using atoms. Each\ninstance of the component may have a different key, which it uses as the\nparameter for a family of atoms; in this way, each component will have\nits own atom not shared by other instances. These state keys may be composed\ninto children's state keys as well.\n*/\nfunction atomFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const atomCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n }); // Simple atomFamily implementation to cache individual atoms based\n // on the parameter value equality.\n\n return params => {\n var _stableStringify, _options$effects;\n\n const cachedAtom = atomCache.get(params);\n\n if (cachedAtom != null) {\n return cachedAtom;\n }\n\n const {\n cachePolicyForParams_UNSTABLE,\n ...atomOptions\n } = options;\n const optionsDefault = 'default' in options ? // $FlowIssue[incompatible-type] No way to refine in Flow that property is not defined\n options.default : new Promise(() => {});\n const newAtom = Recoil_atom({ ...atomOptions,\n key: `${options.key}__${(_stableStringify = Recoil_stableStringify(params)) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}`,\n default: typeof optionsDefault === 'function' ? // The default was parameterized\n // Flow doesn't know that T isn't a function, so we need to case to any\n // $FlowIssue[incompatible-use]\n optionsDefault(params) : // Default may be a static value, promise, or RecoilValue\n optionsDefault,\n retainedBy_UNSTABLE: typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE,\n effects: typeof options.effects === 'function' ? options.effects(params) : typeof options.effects_UNSTABLE === 'function' ? options.effects_UNSTABLE(params) : (_options$effects = options.effects) !== null && _options$effects !== void 0 ? _options$effects : options.effects_UNSTABLE // prettier-ignore\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS: mapScopeRules(\n // @fb-only: options.scopeRules_APPEND_ONLY_READ_THE_DOCS,\n // @fb-only: params,\n // @fb-only: ),\n\n });\n atomCache.set(params, newAtom);\n setConfigDeletionHandler$2(newAtom.key, () => {\n atomCache.delete(params);\n });\n return newAtom;\n };\n}\n\nvar Recoil_atomFamily = atomFamily;\n\nconst {\n setConfigDeletionHandler: setConfigDeletionHandler$3\n} = Recoil_Node;\n\n\n\n\n\n // Keep in mind the parameter needs to be serializable as a cahche key\n// using Recoil_stableStringify\n\n\n// Add a unique index to each selector in case the cache implementation allows\n// duplicate keys based on equivalent stringified parameters\nlet nextIndex = 0;\n/* eslint-disable no-redeclare */\n\n// Return a function that returns members of a family of selectors of the same type\n// E.g.,\n//\n// const s = selectorFamily(...);\n// s({a: 1}) => a selector\n// s({a: 2}) => a different selector\n//\n// By default, the selectors are distinguished by distinct values of the\n// parameter based on value equality, not reference equality. This allows using\n// object literals or other equivalent objects at callsites to not create\n// duplicate cache entries. This behavior may be overridden with the\n// cacheImplementationForParams option.\nfunction selectorFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const selectorCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n });\n return params => {\n var _stableStringify;\n\n // Throw an error with selector key so that it is clear which\n // selector is causing an error\n let cachedSelector;\n\n try {\n cachedSelector = selectorCache.get(params);\n } catch (error) {\n throw Recoil_err(`Problem with cache lookup for selector ${options.key}: ${error.message}`);\n }\n\n if (cachedSelector != null) {\n return cachedSelector;\n }\n\n const myKey = `${options.key}__selectorFamily/${(_stableStringify = Recoil_stableStringify(params, {\n // It is possible to use functions in parameters if the user uses\n // a cache with reference equality thanks to the incrementing index.\n allowFunctions: true\n })) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}/${nextIndex++}`; // Append index in case values serialize to the same key string\n\n const myGet = callbacks => options.get(params)(callbacks);\n\n const myCachePolicy = options.cachePolicy_UNSTABLE;\n const retainedBy = typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE;\n let newSelector;\n\n if (options.set != null) {\n const set = options.set;\n\n const mySet = (callbacks, newValue) => set(params)(callbacks, newValue);\n\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n set: mySet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n } else {\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n }\n\n selectorCache.set(params, newSelector);\n setConfigDeletionHandler$3(newSelector.key, () => {\n selectorCache.delete(params);\n });\n return newSelector;\n };\n}\n/* eslint-enable no-redeclare */\n\n\nvar Recoil_selectorFamily = selectorFamily;\n\n// flowlint-next-line unclear-type:off\n\n\nconst constantSelector = Recoil_selectorFamily({\n key: '__constant',\n get: constant => () => constant,\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always produces the\n// same constant value. It may be called multiple times with the\n// same value, based on reference equality, and will provide the\n// same selector.\n\nfunction constSelector(constant) {\n return constantSelector(constant);\n}\n\nvar Recoil_constSelector = constSelector;\n\n// flowlint-next-line unclear-type:off\n\n\nconst throwingSelector = Recoil_selectorFamily({\n key: '__error',\n get: message => () => {\n throw Recoil_err(message);\n },\n // TODO Why?\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always throws an error\n// with the provided message.\n\nfunction errorSelector(message) {\n return throwingSelector(message);\n}\n\nvar Recoil_errorSelector = errorSelector;\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Wraps another recoil value and prevents writing to it.\n *\n * \n * @format\n * @oncall recoil\n */\n\nfunction readOnlySelector(atom) {\n // flowlint-next-line unclear-type: off\n return atom;\n}\n\nvar Recoil_readOnlySelector = readOnlySelector;\n\nconst {\n loadableWithError: loadableWithError$3,\n loadableWithPromise: loadableWithPromise$3,\n loadableWithValue: loadableWithValue$4\n} = Recoil_Loadable$1;\n\n\n\n\n\n /////////////////\n// TRUTH TABLE\n/////////////////\n// Dependencies waitForNone waitForAny waitForAll waitForAllSettled\n// [loading, loading] [Promise, Promise] Promise Promise Promise\n// [value, loading] [value, Promise] [value, Promise] Promise Promise\n// [value, value] [value, value] [value, value] [value, value] [value, value]\n//\n// [error, loading] [Error, Promise] [Error, Promise] Error Promise\n// [error, error] [Error, Error] [Error, Error] Error [error, error]\n// [value, error] [value, Error] [value, Error] Error [value, error]\n// Issue parallel requests for all dependencies and return the current\n// status if they have results, have some error, or are still pending.\n\n\nfunction concurrentRequests(getRecoilValue, deps) {\n const results = Array(deps.length).fill(undefined);\n const exceptions = Array(deps.length).fill(undefined);\n\n for (const [i, dep] of deps.entries()) {\n try {\n results[i] = getRecoilValue(dep);\n } catch (e) {\n // exceptions can either be Promises of pending results or real errors\n exceptions[i] = e;\n }\n }\n\n return [results, exceptions];\n}\n\nfunction isError(exp) {\n return exp != null && !Recoil_isPromise(exp);\n}\n\nfunction unwrapDependencies(dependencies) {\n return Array.isArray(dependencies) ? dependencies : Object.getOwnPropertyNames(dependencies).map(key => dependencies[key]);\n}\n\nfunction wrapResults(dependencies,\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nresults) {\n return Array.isArray(dependencies) ? results : // Object.getOwnPropertyNames() has consistent key ordering with ES6\n Object.getOwnPropertyNames(dependencies).reduce((out, key, idx) => ({ ...out,\n [key]: results[idx]\n }), {});\n}\n\nfunction wrapLoadables(dependencies, results, exceptions) {\n const output = exceptions.map((exception, idx) => exception == null ? loadableWithValue$4(results[idx]) : Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception));\n return wrapResults(dependencies, output);\n}\n\nfunction combineAsyncResultsWithSyncResults(syncResults, asyncResults) {\n return asyncResults.map((result, idx) =>\n /**\n * it's important we use === undefined as opposed to == null, because the\n * resolved value of the async promise could be `null`, in which case we\n * don't want to use syncResults[idx], which would be undefined. If async\n * promise resolves to `undefined`, that's ok because `syncResults[idx]`\n * will also be `undefined`. That's a little hacky, but it works.\n */\n result === undefined ? syncResults[idx] : result);\n} // Selector that requests all dependencies in parallel and immediately returns\n// current results without waiting.\n\n\nconst waitForNone = Recoil_selectorFamily({\n key: '__waitForNone',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // Always return the current status of the results; never block.\n\n return wrapLoadables(dependencies, results, exceptions);\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for at least\n// one to be available before returning results. It will only error if all\n// dependencies have errors.\n\nconst waitForAny = Recoil_selectorFamily({\n key: '__waitForAny',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If any results are available, value or error, return the current status\n\n if (exceptions.some(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Otherwise, return a promise that will resolve when the next result is\n // available, whichever one happens to be next. But, if all pending\n // dependencies end up with errors, then reject the promise.\n\n\n return new Promise(resolve => {\n for (const [i, exp] of exceptions.entries()) {\n if (Recoil_isPromise(exp)) {\n exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n resolve(wrapLoadables(dependencies, results, exceptions));\n }).catch(error => {\n exceptions[i] = error;\n resolve(wrapLoadables(dependencies, results, exceptions));\n });\n }\n }\n });\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for all to be\n// available before returning a value. It will error if any dependencies error.\n\nconst waitForAll = Recoil_selectorFamily({\n key: '__waitForAll',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => exp == null)) {\n return wrapResults(dependencies, results);\n } // If we have any errors, throw the first error\n\n\n const error = exceptions.find(isError);\n\n if (error != null) {\n throw error;\n } // Otherwise, return a promise that will resolve when all results are available\n\n\n return Promise.all(exceptions).then(exceptionResults => wrapResults(dependencies, combineAsyncResultsWithSyncResults(results, exceptionResults)));\n },\n dangerouslyAllowMutability: true\n});\nconst waitForAllSettled = Recoil_selectorFamily({\n key: '__waitForAllSettled',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Wait for all results to settle\n\n\n return Promise.all(exceptions.map((exp, i) => Recoil_isPromise(exp) ? exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n }).catch(error => {\n results[i] = undefined;\n exceptions[i] = error;\n }) : null)) // Then wrap them as loadables\n .then(() => wrapLoadables(dependencies, results, exceptions));\n },\n dangerouslyAllowMutability: true\n});\nconst noWait = Recoil_selectorFamily({\n key: '__noWait',\n get: dependency => ({\n get\n }) => {\n try {\n return Recoil_selector.value(loadableWithValue$4(get(dependency)));\n } catch (exception) {\n return Recoil_selector.value(Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception));\n }\n },\n dangerouslyAllowMutability: true\n});\nvar Recoil_WaitFor = {\n waitForNone,\n waitForAny,\n waitForAll,\n waitForAllSettled,\n noWait\n};\n\nconst {\n RecoilLoadable\n} = Recoil_Loadable$1;\n\nconst {\n DefaultValue: DefaultValue$3\n} = Recoil_Node;\n\n\n\nconst {\n RecoilRoot: RecoilRoot$2,\n useRecoilStoreID: useRecoilStoreID$1\n} = Recoil_RecoilRoot;\n\nconst {\n isRecoilValue: isRecoilValue$5\n} = Recoil_RecoilValue$1;\n\nconst {\n retentionZone: retentionZone$1\n} = Recoil_RetentionZone;\n\nconst {\n freshSnapshot: freshSnapshot$2\n} = Recoil_Snapshot$1;\n\nconst {\n useRecoilState: useRecoilState$1,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE: useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useRecoilValue: useRecoilValue$1,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE: useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE: useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1,\n useResetRecoilState: useResetRecoilState$1,\n useSetRecoilState: useSetRecoilState$1\n} = Recoil_Hooks;\n\nconst {\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$1,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver: useRecoilTransactionObserver$1\n} = Recoil_SnapshotHooks;\n\n\n\n\n\nconst {\n useRecoilCallback: useRecoilCallback$1\n} = Recoil_useRecoilCallback;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n noWait: noWait$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n waitForAny: waitForAny$1,\n waitForNone: waitForNone$1\n} = Recoil_WaitFor;\n\nvar Recoil_index = {\n // Types\n DefaultValue: DefaultValue$3,\n isRecoilValue: isRecoilValue$5,\n RecoilLoadable,\n // Global Recoil environment settiongs\n RecoilEnv: Recoil_RecoilEnv,\n // Recoil Root\n RecoilRoot: RecoilRoot$2,\n useRecoilStoreID: useRecoilStoreID$1,\n useRecoilBridgeAcrossReactRoots_UNSTABLE: Recoil_useRecoilBridgeAcrossReactRoots,\n // Atoms/Selectors\n atom: Recoil_atom,\n selector: Recoil_selector,\n // Convenience Atoms/Selectors\n atomFamily: Recoil_atomFamily,\n selectorFamily: Recoil_selectorFamily,\n constSelector: Recoil_constSelector,\n errorSelector: Recoil_errorSelector,\n readOnlySelector: Recoil_readOnlySelector,\n // Concurrency Helpers for Atoms/Selectors\n noWait: noWait$1,\n waitForNone: waitForNone$1,\n waitForAny: waitForAny$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n // Hooks for Atoms/Selectors\n useRecoilValue: useRecoilValue$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useRecoilState: useRecoilState$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useSetRecoilState: useSetRecoilState$1,\n useResetRecoilState: useResetRecoilState$1,\n useGetRecoilValueInfo_UNSTABLE: Recoil_useGetRecoilValueInfo,\n useRecoilRefresher_UNSTABLE: Recoil_useRecoilRefresher,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE: useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE: useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE: useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1,\n // Hooks for complex operations\n useRecoilCallback: useRecoilCallback$1,\n useRecoilTransaction_UNSTABLE: Recoil_useRecoilTransaction,\n // Snapshots\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$1,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver_UNSTABLE: useRecoilTransactionObserver$1,\n snapshot_UNSTABLE: freshSnapshot$2,\n // Memory Management\n useRetain: Recoil_useRetain,\n retentionZone: retentionZone$1\n};\nvar Recoil_index_1 = Recoil_index.DefaultValue;\nvar Recoil_index_2 = Recoil_index.isRecoilValue;\nvar Recoil_index_3 = Recoil_index.RecoilLoadable;\nvar Recoil_index_4 = Recoil_index.RecoilEnv;\nvar Recoil_index_5 = Recoil_index.RecoilRoot;\nvar Recoil_index_6 = Recoil_index.useRecoilStoreID;\nvar Recoil_index_7 = Recoil_index.useRecoilBridgeAcrossReactRoots_UNSTABLE;\nvar Recoil_index_8 = Recoil_index.atom;\nvar Recoil_index_9 = Recoil_index.selector;\nvar Recoil_index_10 = Recoil_index.atomFamily;\nvar Recoil_index_11 = Recoil_index.selectorFamily;\nvar Recoil_index_12 = Recoil_index.constSelector;\nvar Recoil_index_13 = Recoil_index.errorSelector;\nvar Recoil_index_14 = Recoil_index.readOnlySelector;\nvar Recoil_index_15 = Recoil_index.noWait;\nvar Recoil_index_16 = Recoil_index.waitForNone;\nvar Recoil_index_17 = Recoil_index.waitForAny;\nvar Recoil_index_18 = Recoil_index.waitForAll;\nvar Recoil_index_19 = Recoil_index.waitForAllSettled;\nvar Recoil_index_20 = Recoil_index.useRecoilValue;\nvar Recoil_index_21 = Recoil_index.useRecoilValueLoadable;\nvar Recoil_index_22 = Recoil_index.useRecoilState;\nvar Recoil_index_23 = Recoil_index.useRecoilStateLoadable;\nvar Recoil_index_24 = Recoil_index.useSetRecoilState;\nvar Recoil_index_25 = Recoil_index.useResetRecoilState;\nvar Recoil_index_26 = Recoil_index.useGetRecoilValueInfo_UNSTABLE;\nvar Recoil_index_27 = Recoil_index.useRecoilRefresher_UNSTABLE;\nvar Recoil_index_28 = Recoil_index.useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_29 = Recoil_index.useRecoilValue_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_30 = Recoil_index.useRecoilState_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_31 = Recoil_index.useRecoilCallback;\nvar Recoil_index_32 = Recoil_index.useRecoilTransaction_UNSTABLE;\nvar Recoil_index_33 = Recoil_index.useGotoRecoilSnapshot;\nvar Recoil_index_34 = Recoil_index.useRecoilSnapshot;\nvar Recoil_index_35 = Recoil_index.useRecoilTransactionObserver_UNSTABLE;\nvar Recoil_index_36 = Recoil_index.snapshot_UNSTABLE;\nvar Recoil_index_37 = Recoil_index.useRetain;\nvar Recoil_index_38 = Recoil_index.retentionZone;\n\nexport default Recoil_index;\nexport { Recoil_index_1 as DefaultValue, Recoil_index_4 as RecoilEnv, Recoil_index_3 as RecoilLoadable, Recoil_index_5 as RecoilRoot, Recoil_index_8 as atom, Recoil_index_10 as atomFamily, Recoil_index_12 as constSelector, Recoil_index_13 as errorSelector, Recoil_index_2 as isRecoilValue, Recoil_index_15 as noWait, Recoil_index_14 as readOnlySelector, Recoil_index_38 as retentionZone, Recoil_index_9 as selector, Recoil_index_11 as selectorFamily, Recoil_index_36 as snapshot_UNSTABLE, Recoil_index_26 as useGetRecoilValueInfo_UNSTABLE, Recoil_index_33 as useGotoRecoilSnapshot, Recoil_index_7 as useRecoilBridgeAcrossReactRoots_UNSTABLE, Recoil_index_31 as useRecoilCallback, Recoil_index_27 as useRecoilRefresher_UNSTABLE, Recoil_index_34 as useRecoilSnapshot, Recoil_index_22 as useRecoilState, Recoil_index_23 as useRecoilStateLoadable, Recoil_index_30 as useRecoilState_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_6 as useRecoilStoreID, Recoil_index_35 as useRecoilTransactionObserver_UNSTABLE, Recoil_index_32 as useRecoilTransaction_UNSTABLE, Recoil_index_20 as useRecoilValue, Recoil_index_21 as useRecoilValueLoadable, Recoil_index_28 as useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_29 as useRecoilValue_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_25 as useResetRecoilState, Recoil_index_37 as useRetain, Recoil_index_24 as useSetRecoilState, Recoil_index_18 as waitForAll, Recoil_index_19 as waitForAllSettled, Recoil_index_17 as waitForAny, Recoil_index_16 as waitForNone };\n","import { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\";\nimport { nextDatadogRumInit } from \"datadog\";\nimport type { AppProps } from \"next/app\";\nimport dynamic from \"next/dynamic\";\nimport Head from \"next/head\";\nimport Router from \"next/router\";\nimport { Suspense, useEffect } from \"react\";\nimport { CookiesProvider } from \"react-cookie\";\n// eslint-disable-next-line import/order\nimport { RecoilRoot } from \"recoil\";\n\nimport \"../styles/global.css\";\n\nimport appPacakge from \"../package.json\";\nimport { settings } from \"@/configs/settings\";\nimport { GA_ID } from \"@/contents/landingPage\";\n\nnextDatadogRumInit(\n process.env.NEXT_PUBLIC_MODE === \"development\"\n ? {\n sessionSampleRate: 100,\n sessionReplaySampleRate: 20,\n packageVersion: appPacakge.version\n }\n : {\n sessionSampleRate: 3,\n sessionReplaySampleRate: 20,\n packageVersion: appPacakge.version\n }\n);\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: 0,\n refetchOnWindowFocus: false,\n useErrorBoundary: true,\n staleTime: 1000\n },\n mutations: {\n useErrorBoundary: true\n }\n }\n});\n\nconst App = ({ Component, pageProps }: AppProps) => {\n useEffect(() => {\n if (settings.MODE === \"production\") {\n const handleRouteChangeComplete = () => {\n if (typeof window === \"object\") {\n const { pathname } = window.location;\n\n //TODE: 를 사용하는 형태로 변경\n window.gtag(\"config\", `${GA_ID}`, {\n page_path: pathname\n });\n }\n };\n\n Router.events.on(\"routeChangeComplete\", handleRouteChangeComplete);\n\n return () => {\n Router.events.off(\"routeChangeComplete\", handleRouteChangeComplete);\n };\n }\n }, []);\n\n return (\n <>\n \n \n \n \n }>\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default dynamic(() => Promise.resolve(App), {\n ssr: false\n});\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","\"client\";\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dynamic;\nexports.noSSR = noSSR;\nvar _extends = require(\"@swc/helpers/lib/_extends.js\").default;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nvar _loadable = _interop_require_default(require(\"./loadable\"));\nfunction dynamic(dynamicOptions, options) {\n let loadableFn = _loadable.default;\n let loadableOptions = (options == null ? void 0 : options.suspense) ? {} : {\n // A loading component is not required, so we default it\n loading: ({ error , isLoading , pastDelay })=>{\n if (!pastDelay) return null;\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null;\n }\n if (error) {\n return /*#__PURE__*/ _react.default.createElement(\"p\", null, error.message, /*#__PURE__*/ _react.default.createElement(\"br\", null), error.stack);\n }\n }\n return null;\n }\n };\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = ()=>dynamicOptions;\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions;\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = _extends({}, loadableOptions, dynamicOptions);\n }\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = _extends({}, loadableOptions, options);\n // Error if Fizz rendering is not enabled and `suspense` option is set to true\n if (!process.env.__NEXT_REACT_ROOT && loadableOptions.suspense) {\n throw new Error(`Invalid suspense option usage in next/dynamic. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense`);\n }\n if (loadableOptions.suspense) {\n if (process.env.NODE_ENV !== 'production') {\n /**\n * TODO: Currently, next/dynamic will opt-in to React.lazy if { suspense: true } is used\n * React 18 will always resolve the Suspense boundary on the server-side, effectively ignoring the ssr option\n *\n * In the future, when React Suspense with third-party libraries is stable, we can implement a custom version of\n * React.lazy that can suspense on the server-side while only loading the component on the client-side\n */ if (loadableOptions.ssr === false) {\n console.warn(`\"ssr: false\" is ignored by next/dynamic because you can not enable \"suspense\" while disabling \"ssr\" at the same time. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense`);\n }\n if (loadableOptions.loading != null) {\n console.warn(`\"loading\" is ignored by next/dynamic because you have enabled \"suspense\". Place your loading element in your suspense boundary's \"fallback\" prop instead. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense`);\n }\n }\n delete loadableOptions.ssr;\n delete loadableOptions.loading;\n }\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = _extends({}, loadableOptions, loadableOptions.loadableGenerated);\n delete loadableOptions.loadableGenerated;\n }\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false}).\n // skip `ssr` for suspense mode and opt-in React.lazy directly\n if (typeof loadableOptions.ssr === 'boolean' && !loadableOptions.suspense) {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr;\n return noSSR(loadableFn, loadableOptions);\n }\n delete loadableOptions.ssr;\n }\n return loadableFn(loadableOptions);\n}\n'client';\nconst isServerSide = typeof window === 'undefined';\nfunction noSSR(LoadableInitializer, loadableOptions) {\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack;\n delete loadableOptions.modules;\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions);\n }\n const Loading = loadableOptions.loading;\n // This will only be rendered on the server side\n return ()=>/*#__PURE__*/ _react.default.createElement(Loading, {\n error: null,\n isLoading: true,\n pastDelay: false,\n timedOut: false\n });\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=dynamic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LoadableContext = void 0;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nconst LoadableContext = _react.default.createContext(null);\nexports.LoadableContext = LoadableContext;\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext';\n}\n\n//# sourceMappingURL=loadable-context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends = require(\"@swc/helpers/lib/_extends.js\").default;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nvar _loadableContext = require(\"./loadable-context\");\nconst { useSyncExternalStore } = process.env.__NEXT_REACT_ROOT ? require('react') : require('use-sync-external-store/shim');\nconst ALL_INITIALIZERS = [];\nconst READY_INITIALIZERS = [];\nlet initialized = false;\nfunction load(loader) {\n let promise = loader();\n let state = {\n loading: true,\n loaded: null,\n error: null\n };\n state.promise = promise.then((loaded)=>{\n state.loading = false;\n state.loaded = loaded;\n return loaded;\n }).catch((err)=>{\n state.loading = false;\n state.error = err;\n throw err;\n });\n return state;\n}\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj;\n}\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign({\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n webpack: null,\n modules: null,\n suspense: false\n }, options);\n if (opts.suspense) {\n opts.lazy = _react.default.lazy(opts.loader);\n }\n /** @type LoadableSubscription */ let subscription = null;\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts);\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub)\n };\n }\n return subscription.promise();\n }\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init);\n }\n // Client only\n if (!initialized && typeof window !== 'undefined') {\n // require.resolveWeak check is needed for environments that don't have it available like Jest\n const moduleIds = opts.webpack && typeof require.resolveWeak === 'function' ? opts.webpack() : opts.modules;\n if (moduleIds) {\n READY_INITIALIZERS.push((ids)=>{\n for (const moduleId of moduleIds){\n if (ids.indexOf(moduleId) !== -1) {\n return init();\n }\n }\n });\n }\n }\n function useLoadableModule() {\n init();\n const context = _react.default.useContext(_loadableContext.LoadableContext);\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName)=>{\n context(moduleName);\n });\n }\n }\n function LoadableImpl(props, ref) {\n useLoadableModule();\n const state = useSyncExternalStore(subscription.subscribe, subscription.getCurrentValue, subscription.getCurrentValue);\n _react.default.useImperativeHandle(ref, ()=>({\n retry: subscription.retry\n }), []);\n return _react.default.useMemo(()=>{\n if (state.loading || state.error) {\n return _react.default.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry\n });\n } else if (state.loaded) {\n return _react.default.createElement(resolve(state.loaded), props);\n } else {\n return null;\n }\n }, [\n props,\n state\n ]);\n }\n function LazyImpl(props, ref) {\n useLoadableModule();\n return _react.default.createElement(opts.lazy, _extends({}, props, {\n ref\n }));\n }\n const LoadableComponent = opts.suspense ? LazyImpl : LoadableImpl;\n LoadableComponent.preload = ()=>init();\n LoadableComponent.displayName = 'LoadableComponent';\n return _react.default.forwardRef(LoadableComponent);\n}\nclass LoadableSubscription {\n promise() {\n return this._res.promise;\n }\n retry() {\n this._clearTimeouts();\n this._res = this._loadFn(this._opts.loader);\n this._state = {\n pastDelay: false,\n timedOut: false\n };\n const { _res: res , _opts: opts } = this;\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true;\n } else {\n this._delay = setTimeout(()=>{\n this._update({\n pastDelay: true\n });\n }, opts.delay);\n }\n }\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(()=>{\n this._update({\n timedOut: true\n });\n }, opts.timeout);\n }\n }\n this._res.promise.then(()=>{\n this._update({});\n this._clearTimeouts();\n }).catch((_err)=>{\n this._update({});\n this._clearTimeouts();\n });\n this._update({});\n }\n _update(partial) {\n this._state = _extends({}, this._state, {\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading\n }, partial);\n this._callbacks.forEach((callback)=>callback());\n }\n _clearTimeouts() {\n clearTimeout(this._delay);\n clearTimeout(this._timeout);\n }\n getCurrentValue() {\n return this._state;\n }\n subscribe(callback) {\n this._callbacks.add(callback);\n return ()=>{\n this._callbacks.delete(callback);\n };\n }\n constructor(loadFn, opts){\n this._loadFn = loadFn;\n this._opts = opts;\n this._callbacks = new Set();\n this._delay = null;\n this._timeout = null;\n this.retry();\n }\n}\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts);\n}\nfunction flushInitializers(initializers, ids) {\n let promises = [];\n while(initializers.length){\n let init = initializers.pop();\n promises.push(init(ids));\n }\n return Promise.all(promises).then(()=>{\n if (initializers.length) {\n return flushInitializers(initializers, ids);\n }\n });\n}\nLoadable.preloadAll = ()=>{\n return new Promise((resolveInitializers, reject)=>{\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject);\n });\n};\nLoadable.preloadReady = (ids = [])=>{\n return new Promise((resolvePreload)=>{\n const res = ()=>{\n initialized = true;\n return resolvePreload();\n };\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res);\n });\n};\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady;\n}\nvar _default = Loadable;\nexports.default = _default;\n\n//# sourceMappingURL=loadable.js.map","module.exports = require('./dist/shared/lib/dynamic')\n","module.exports = require('./dist/shared/lib/head')\n","module.exports = require('./dist/client/router')\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import Cookies from 'universal-cookie';\r\nexport default Cookies;\r\n","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n const changed = this.focused !== focused;\n\n if (changed) {\n this.focused = focused;\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nconst onlineEvents = ['online', 'offline'];\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n onlineEvents.forEach(event => {\n window.addEventListener(event, listener, false);\n });\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach(event => {\n window.removeEventListener(event, listener);\n });\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n const changed = this.online !== online;\n\n if (changed) {\n this.online = online;\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","class Subscribable {\n constructor() {\n this.listeners = new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n const identity = {\n listener\n };\n this.listeners.add(identity);\n this.onSubscribe();\n return () => {\n this.listeners.delete(identity);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.size > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","import defineProperty from './_define_property.mjs';\n\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\n\nexport default function _objectSpreadProps(target, source) {\n source = source != null ? source : {}\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(source, key)\n );\n });\n }\n\n return target;\n}"],"names":["exports","str","options","TypeError","obj","opt","pairs","split","dec","decode","i","length","pair","index","indexOf","key","substring","trim","undefined","val","slice","tryDecode","name","enc","encode","fieldContentRegExp","test","value","maxAge","isNaN","isFinite","Math","floor","domain","path","expires","toUTCString","httpOnly","secure","sameSite","toLowerCase","decodeURIComponent","encodeURIComponent","e","window","__NEXT_P","push","environmentSettings","development","API_DOMAIN","CDN_DOMAIN","PEOPLES_S3_DOMAIN","MODE","production","settings","chatbotSettings","BRAND_KEY","process","CHANNEL_TYPE","SCENARIO_ID","SPIRIT","id","title","PARTNERS","ARTICLES","subtitle","link","GA_ID","defaultLogger","console","Removable","destroy","this","clearGcTimeout","scheduleGc","cacheTime","gcTimeout","setTimeout","optionalRemove","updateCacheTime","newCacheTime","max","Infinity","clearTimeout","Query","constructor","config","super","abortSignalConsumed","defaultOptions","setOptions","observers","cache","logger","queryKey","queryHash","initialState","state","data","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","Date","now","error","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","status","fetchStatus","getDefaultState","meta","remove","setData","newData","dispatch","type","updatedAt","manual","setState","setStateOptions","cancel","_this$retryer","promise","retryer","then","catch","Promise","resolve","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","getCurrentResult","isStaleByTime","staleTime","onFocus","_this$retryer2","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","_this$retryer3","shouldFetchOnReconnect","addObserver","includes","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","_this$options$behavio","_context$fetchOptions","_this$retryer4","continueRetry","queryFn","abortController","queryFnContext","pageParam","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","context","fetchFn","reject","_context$fetchOptions2","behavior","onFetch","revertState","onError","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","call","onSettled","isFetchingOptimistic","fn","abort","bind","onSuccess","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","Error","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","action","_action$meta","_action$dataUpdatedAt","reducer","notifyManager","forEach","onQueryUpdate","QueryCache","queries","queriesMap","build","client","_options$queryHash","getLogger","defaultQueryOptions","getQueryDefaults","add","queryInMap","clear","getAll","arg1","arg2","filters","exact","findAll","keys","event","listeners","listener","Mutation","mutationId","mutationCache","failureReason","isPaused","variables","mutation","_this$retryer$continu","execute","async","executeMutation","_this$options$retry","mutationFn","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","onMutate","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","onMutationUpdate","MutationCache","mutations","defaultMutationOptions","mutationKey","getMutationDefaults","resumePausedMutations","_this$resuming","resuming","pausedMutations","reduce","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","isFetchingNextPage","direction","isFetchingPreviousPage","oldPages","pages","oldPageParams","pageParams","newPageParams","cancelled","buildNewPages","param","page","previous","fetchPage","_context$signal","_context$signal2","aborted","addEventListener","queryFnResult","getNextPageParam","getPreviousPageParam","ReactQueryDevtools","ConsoleApiName","log","debug","info","warn","globalConsole","originalConsoleMethods","PREFIX","display","catchUserErrors","errorMsg","args","_i","arguments","apply","err","onMonitorErrorCollected","__spreadArray","to","from","pack","ar","l","Array","prototype","concat","debugMode","setDebugMode","newDebugMode","monitor","callMonitored","displayIfDebugEnabled","candidate","search","arrayFrom","arrayLike","array","Set","item","predicate","objectValues","map","objectEntries","startsWith","cssEscape","CSS","escape","replace","ch","asCodePoint","charCodeAt","toString","target","toAssign","source","hasOwnProperty","getGlobalObject","globalThis","configurable","globalObject","_dd_temp_","self","HAS_MULTI_BYTES_CHARACTERS","computeBytesCount","TextEncoder","Blob","size","getZoneJsOriginalValue","original","browserWindow","Zone","__symbol__","callback","delay","timeoutId","throttle","wait","pendingExecutionWithParameters","pendingTimeoutId","needLeadingExecution","leading","needTrailingExecution","trailing","inWaitPeriod","throttled","parameters","noop","getType","isArray","mergeInto","destination","circularReferenceChecker","WeakSet","set_1","hasAlreadyBeenSeen","has","createCircularReferenceChecker","getTime","RegExp","flags","global","ignoreCase","multiline","sticky","unicode","join","merged_1","merged","deepClone","combine","sources","_a","sources_1","jsonStringify","replacer","space","JSON","stringify","restoreObjectPrototypeToJson","detachToJsonMethod","restoreArrayPrototypeToJson","restoreValuePrototypeToJson","getPrototypeOf","restoreValueToJson","objectToJson","toJSON","sanitize","maxCharacterCount","containerQueue","visitedObjectsWithPath","WeakMap","sanitizedData","sanitizeProcessor","accumulatedCharacterCount","containerToProcess","shift","separatorLength","targetData","warnOverCharacterLimit","parentPath","queue","sourceToSanitize","tryToApplyToJSON","description","sanitizePrimitivesAndFunctions","sanitizedSource","Event","isTrusted","match","sanitizeObjects","sourceAsObject","currentPath","set","changeType","Observable","onFirstSubscribe","subscribe","f","_this","onLastUnsubscribe","unsubscribe","other","mergeObservables","observables","globalObservable","subscriptions","observable","subscription","CustomerDataLabel","warnIfCustomerDataLimitReached","bytesCount","customerDataType","CUSTOMER_DATA_BYTES_LIMIT","createContextManager","computeBytesCountImpl","bytesCountCache","alreadyWarned","changeObservable","computeBytesCountThrottled","contextManager","getBytesCount","newContext","getContext","setContext","clearContext","setContextProperty","property","removeContextProperty","BoundedBuffer","buffer","splice","drain","performDraw","threshold","random","round","num","decimals","toFixed","isPercentage","isNumber","navigationStart","getCurrentSiteCache","ONE_SECOND","ONE_MINUTE","relativeToClocks","relative","timeStamp","getCorrectedTimeStamp","relativeTime","correctedOrigin","dateNow","performance","getNavigationStart","addDuration","getTimeStamp","toServerDuration","duration","timeStampNow","relativeNow","clocksNow","clocksOrigin","elapsed","start","end","a","b","getRelativeTime","timestamp","timing","generateUUID","placeholder","parseInt","findCommaSeparatedValue","rawString","matches","exec","safeTruncate","suffix","lastChar","correctedLength","setCookie","expireDelay","date","setTime","crossSite","document","cookie","getCookie","deleteCookie","willSyntheticsInjectRum","Boolean","_DATADOG_SYNTHETICS_INJECTS_RUM","getEventBridge","eventBridgeGlobal","DatadogEventBridge","getAllowedWebViewHosts","parse","send","eventType","canUseEventBridge","currentHost","location","hostname","bridge","allowedHost","configuration","eventTarget","eventName","addEventListeners","_","eventNames","_b","once","capture","passive","listenerWithMonitor","stop","CONTEXT_STORE_KEY_PREFIX","storageListeners","createStoredContextManager","productKey","storageKey","buildStorageKey","synchronizeWithStorage","localStorage","setItem","rawContext","getItem","UNKNOWN_FUNCTION","computeStackTrace","ex","stack","stackProperty","tryToGetString","exString","String","line","stackFrame","parts","CHROME_LINE_RE","isNative","isEval","submatch","CHROME_EVAL_RE","column","func","url","parseChromeLine","CHROME_ANONYMOUS_FUNCTION_RE","parseChromeAnonymousLine","WINJS_LINE_RE","parseWinLine","GECKO_LINE_RE","GECKO_EVAL_RE","parseGeckoLine","message","fileUrl","filePosition","ExperimentalFeature","NO_ERROR_STACK_PRESENT_MESSAGE","computeRawError","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","handling","isErrorInstance","computeMessage","hasUsableStack","toStackTraceString","causes","parentSource","currentError","cause","flattenErrorCauses","fingerprint","tryToGetFingerprint","dd_fingerprint","result","formatErrorMessage","frame","createHandlingStack","formattedStack","sanitizeUser","newUser","user","enabledExperimentalFeatures","isExperimentalFeatureEnabled","featureName","getExperimentalFeatures","shallowClone","objectHasValue","isEmptyObject","browserIsIE","browserIsChromium","browserIsSafari","SESSION_TIME_OUT_DELAY","SESSION_EXPIRATION_DELAY","SESSION_STORE_KEY","SESSION_ENTRY_REGEXP","SESSION_ENTRY_SEPARATOR","isSessionInExpiredState","session","expandSessionState","expire","toSessionString","toSessionState","sessionString","isValidSessionString","entry","selectCookieStrategy","initConfiguration","cookieOptions","useSecureSessionCookie","useCrossSiteSessionCookie","trackSessionAcrossSubdomains","testCookieName","domainLevels","candidateDomain","pop","getCurrentSite","buildCookieOptions","testCookieValue","isCookieCorrectlySet","areCookiesAuthorized","initCookieStrategy","cookieStore","isLockEnabled","chrome","navigator","userAgent","persistSession","retrieveSession","retrieveSessionCookie","clearSession","deleteSessionCookie","cookieStoreStrategy","oldSessionId","oldRumType","oldLogsType","tryOldCookiesMigration","persistInLocalStorage","sessionState","retrieveSessionFromLocalStorage","clearSessionFromLocalStorage","removeItem","ongoingOperations","bufferedOperations","processSessionStoreOperations","operations","sessionStoreStrategy","numberOfRetries","next","currentLock","currentSession","lock","retryLater","processedSession","after","sessionStore","currentNumberOfRetries","nextOperations","selectSessionStoreStrategyType","sessionStoreStrategyType","allowFallbackToLocalStorage","testKey","retrievedId","selectLocalStorageStrategy","startSessionStore","computeSessionState","renewObservable","expireObservable","watchSessionTimeoutId","isActiveSession","synchronizeSession","sessionCache","retrieveActiveSession","hasSessionInCache","isSessionInCacheOutdated","created","Number","expandOrRenewSession","isTracked","synchronizedSession","trackingType","expandOrRenewSessionState","renewSessionInCache","expandSession","getSession","normalizeUrl","buildUrl","getLinkElementOrigin","href","getOrigin","base","supportedURL","isURLSupported","originalURL","getSupportedUrl","doc","anchorElement","createElement","baseElement","implementation","createHTMLDocument","head","appendChild","body","URL","element","origin","sanitizedHost","host","protocol","INTAKE_SITE_STAGING","INTAKE_SITE_US1","INTAKE_SITE_EU1","INTAKE_SITE_AP1","ENDPOINTS","logs","rum","sessionReplay","INTAKE_TRACKS","createEndpointBuilder","endpointType","configurationTags","buildUrlWithParameters","proxy","proxyUrl","normalizedProxyUrl_1","site","internalAnalyticsSubdomain","domainParts","extension","subdomain","buildEndpointHost","normalizedProxyUrl_2","createEndpointUrlWithParametersBuilder","api","payload","clientToken","flushReason","encoding","tags","COLLECT_FLUSH_REASON","count","lastFailureStatus","reverse","buildEndpointParameters","urlPrefix","FORBIDDEN_CHARACTERS","buildTag","rawValue","valueSizeLimit","sanitizedValue","computeTransportConfiguration","env","service","version","datacenter","buildTags","endpointBuilders","logsEndpointBuilder","rumEndpointBuilder","sessionReplayEndpointBuilder","computeEndpointBuilders","intakeUrlPrefixes","builder","replicaConfiguration","replica","replicaEndpointBuilders","applicationId","computeReplicaConfiguration","isIntakeUrl","intakeEndpoint","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","_c","sessionSampleRate","sampleRate","telemetrySampleRate","telemetryConfigurationSampleRate","enableExperimentalFeatures","flag","beforeSend","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","isMatchOption","itemType","matchList","list","useStartsWith","clearTracingIfNeeded","isAborted","traceId","spanId","traceSampled","injectHeadersIfTracingAllowed","sessionManager","inject","getCrypto","findTrackedSession","tracingOption","allowedTracingUrls","TraceIdentifier","traceSampleRate","propagatorTypes","tracingHeaders","propagatorType","toDecimalString","traceparent","toPaddedHexadecimalString","b3","makeTracingHeaders","crypto","msCrypto","Uint8Array","getRandomValues","radix","high","readInt32","low","mod","offset","validateAndBuildRumConfiguration","_d","_e","_f","sessionReplaySampleRate","premiumSampleRate","replaySampleRate","tracingSampleRate","excludedActivityUrls","allowedTracingOrigins","tracingOptions_1","option","expectedItem","isTracingOption","tracingOptions_2","legacyMatchOption","convertLegacyMatchOptionToTracingOption","validateAndBuildTracingOptions","baseConfiguration","trackUserInteractions","trackInteractions","trackFrustrations","actionNameAttribute","oldPlansBehavior","workerUrl","trackViewsManually","trackResources","trackLongTasks","defaultPrivacyLevel","customerDataTelemetrySampleRate","getSelectedTracingPropagators","usedTracingPropagators","buildCommonContext","globalContextManager","userContextManager","recorderApi","hasReplay","isRecording","sendToExtension","__ddBrowserSdkExtensionCallback","onRawTelemetryEventCollected","TelemetryType","ALLOWED_FRAME_URLS","TELEMETRY_EXCLUDED_SITES","telemetryConfiguration","maxEventsPerPage","sentEventCount","telemetryEnabled","telemetryConfigurationEnabled","startTelemetry","telemetryService","contextProvider","runtimeEnvInfo","is_local_file","is_worker","rawEvent","event_1","_dd","format_version","telemetry","runtime_env","experimental_features","toTelemetryEvent","addTelemetryError","setContextProvider","provider","addTelemetryDebug","addTelemetry","kind","scrubCustomerFrames","formatError","allowedFrameUrl","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","isPageExitReason","reason","getMutationObserverConstructor","MutationObserver","originalInstance","runOnReadyState","expectedReadyState","readyState","FAKE_INITIAL_DOCUMENT","RESOURCE_TYPES","initiatorType","computeResourceKind","isValidUrl","pathname","getPathName","RESOURCE_TYPES_1","isType","areInOrder","numbers","computePerformanceResourceDuration","startTime","responseEnd","computePerformanceResourceDetails","validEntry","toValidEntry","fetchStart","redirectStart","redirectEnd","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","responseStart","details","download","formatTiming","first_byte","connect","ssl","dns","hasRedirection","redirect","computeSize","decodedBodySize","isAllowedRequestUrl","isTextNode","node","nodeType","Node","TEXT_NODE","isElementNode","ELEMENT_NODE","isNodeShadowHost","shadowRoot","isNodeShadowRoot","DOCUMENT_FRAGMENT_NODE","forEachChildNodes","childNodes","getParentNode","parentNode","RumPerformanceEntryType","getDocumentTraceId","traceIdMeta","querySelector","traceTimeMeta","createDocumentTraceData","content","getDocumentTraceDataFromMeta","comment","getTraceCommentFromNode","findTraceComment","getDocumentTraceDataFromComment","traceTime","rawTraceTime","COMMENT_NODE","isCommentNode","supportPerformanceObject","supportPerformanceTimingEvent","entryType","PerformanceObserver","supportedEntryTypes","startPerformanceCollection","lifeCycle","forcedAttributes","RESOURCE","NAVIGATION","getEntriesByType","navigationEntry","relativePerformanceTiming","computeRelativePerformanceTiming","retrieveInitialDocumentResourceTiming","handleRumPerformanceEntries","performanceEntries_1","getEntries","handlePerformanceEntryList_1","entries","mainEntries","LONG_TASK","PAINT","experimentalEntries","LARGEST_CONTENTFUL_PAINT","FIRST_INPUT","LAYOUT_SHIFT","EVENT","observe","buffered","durationThreshold","entryTypes","clearResourceTimings","sendFakeTiming","retrieveNavigationTiming","startTimeStamp","timingSent","removeEventListeners","evt","cancelable","processingStart","processingEnd","sendTimingIfPointerIsNotCancelled","sendTiming","retrieveFirstInputTiming","numberKey","timingElement","rumAllowedPerformanceEntries","loadEventEnd","isIncompleteNavigation","isForbiddenResource","ErrorSource","createEventRateLimiter","limit","onLimitReached","eventCount","allowNextEvent","isLimitReached","getSyntheticsContext","testId","_DATADOG_SYNTHETICS_PUBLIC_ID","getSyntheticsTestId","resultId","_DATADOG_SYNTHETICS_RESULT_ID","getSyntheticsResultId","test_id","result_id","injected","limitModification","modifiableFieldPaths","modifier","clone","fieldPath","fieldType","newValue","current","field","isValidObjectContaining","newType","fields","isValidObject","modifiableFieldPathsByEvent","VIEW_MODIFIABLE_FIELD_PATHS","USER_CUSTOMIZABLE_FIELD_PATHS","startRumAssembly","viewContexts","urlContexts","actionContexts","displayContext","reportError","eventRateLimiters","syntheticsContext","ciTestContext","testExecutionId","Cypress","test_execution_id","getCiTestContext","rawRumEvent","domainContext","savedCommonContext","customerContext","viewContext","findView","urlContext","findUrl","commonContext","actionId","findActionId","serverRumEvent","drift","plan","session_sample_rate","session_replay_sample_rate","browser_sdk_version","application","view","referrer","synthetics","ci_test","has_replay","usr","shouldSend","xhrObservable","LifeCycle","AbstractLifeCycle","callbacks","eventCallbacks","END_OF_TIMES","ValueHistory","maxEntries","clearOldValuesInterval","clearOldValues","endTime","close","unshift","closeActive","latestEntry","oldTimeThreshold","instrumentMethod","method","instrumentationFactory","instrumentation","instrumentationWrapper","instrumentMethodAndCallOriginal","before","instrumentSetter","originalDescriptor","getOwnPropertyDescriptor","thisObject","fetchObservable","xhrContexts","initXhrObservable","stopInstrumentingStart","XMLHttpRequest","openXhr","stopInstrumentingSend","sendXhr","stopInstrumentingAbort","abortXhr","createXhrObservable","startContext","xhr","hasBeenReported","stopInstrumentingOnReadyStateChange","DONE","onEnd","unsubscribeLoadEndListener","completeContext","initFetchObservable","originalFetch","input","init","responsePromise","afterSend","createFetchObservable","Request","reportFetch","response","DOMException","code","ABORT_ERR","responseType","nextRequestIndex","startRequestCollection","tracer","traceFetch","headers","append","headers_1","Headers","header","traceXhr","setRequestHeader","startTracer","requestIndex","getNextRequestIndex","trackXhr","clonedResponse","tryToClone","stream","reader","getReader","chunks","readBytesCount","onDone","bytes","limitExceeded","collectStreamBody","completeBuffer_1","offset_1","chunk","bytesLimit","readMore","read","done","readBytesFromStream","POSITIVE_INFINITY","waitForResponseToComplete","trackFetch","trackEventCounts","isChildEvent","onChange","eventCounts","errorCount","longTaskCount","resourceCount","actionCount","frustrationCount","frustration","discarded","PAGE_ACTIVITY_VALIDATION_DELAY","waitPageActivityEnd","domMutationObservable","pageActivityEndCallback","maxDuration","pageActivityObservable","firstRequestIndex","pendingRequestsCount","notifyPageActivity","isExcludedUrl","startEvent","request","stopTrackingWindowOpen","s","isBusy","createPageActivityObservable","pageActivityEndTimeoutId","hasCompleted","validationTimeoutId","complete","hadActivity","maxDurationTimeoutId","pageActivitySubscription","lastChangeTime","doWaitPageActivityEnd","requestUrl","DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE","getActionNameFromElement","userProgrammaticAttribute","getActionNameFromElementProgrammatically","getActionNameFromElementForStrategies","priorityStrategies","fallbackStrategies","targetElement","programmaticAttribute","elementWithAttribute","supportsElementClosestResult","HTMLElement","supportsElementClosest","closest","hasAttribute","parentElement","truncate","normalizeWhitespace","getAttribute","supportsLabelPropertyResult","HTMLInputElement","supportsLabelProperty","labels","getTextualContent","label","ownerDocument","querySelectorAll","htmlFor","nodeName","labelledByAttribute","refElement","getElementById","strategies","recursionCounter","strategies_1","name_1","strategy","trimmedName","isContentEditable","text_1","innerText","removeTextFromElements","element_1","textToReplace","documentMode","textContent","supportScopeSelectorCache","STABLE_ATTRIBUTES","GLOBALLY_UNIQUE_SELECTOR_GETTERS","getStableAttributeSelector","isGeneratedValue","UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS","tagName","classList","className","getSelectorFromElement","targetElementSelector","globallyUniqueSelector","findSelector","isSelectorUniqueGlobally","isSelectorUniqueAmongSiblings","combineSelector","getPositionSelector","selector","getAttributeSelector","STABLE_ATTRIBUTES_1","attributeName","sibling","firstElementChild","elementIndex","nextElementSibling","selectorGetters","childSelector","selectorGetters_1","elementSelector","selectorGetter","fullSelector","supportScopeSelector","parent","child","MAX_DURATION_BETWEEN_CLICKS","createClickChain","firstClick","onFinalize","maxDurationBetweenClicksTimeoutId","bufferedClicks","appendClick","click","stopObservable","tryFinalize","dontAcceptMoreClick","every","isStopped","tryAppend","first","second","sqrt","pow","clientX","clientY","areEventsSimilar","isSelectionEmpty","selection","getSelection","isCollapsed","isValidPointerEvent","Element","isPrimary","computeFrustration","clicks","rageClick","getUserActivity","isRage","addFrustration","isDead","hasError","hasSelectionChanged","hasPageActivity","msMatchesSelector","elementMatches","trackClickActions","currentClickChain","history","stopClickChain","stopActionEventsListener","selectionEmptyAtPointerDown","clickContext","onPointerDown","onPointerUp","userActivity","localUserActivity_1","listenActionEvents","pointerDownEvent","clickActionBase","rect","getBoundingClientRect","width","height","position","left","y","top","computeClickActionBase","hadActivityOnPointerDown","pageActivityEndEvent","processPointerDown","appendClickToClickChain","newClick","stopWaitPageActivityEnd","discard","validate","viewEndedSubscription","endClocks","stopSubscription","startClickAction","rageClick_1","finalizeClicks","activityEndTime","historyEntry","eventCountsSubscription","frustrationTypes","newActivityEndTime","frustrationType","domEvents","clickAction","counts","events","processAction","pageStateHistory","autoActionProperties","isAutoAction","loading_time","long_task","resource","in_foreground","isInActivePageStateAt","ERROR_TYPES_RE","startUnhandledErrorCollection","stopInstrumentingOnError","messageObj","errorObj","tryToParseMessage","instrumentOnError","stopInstrumentingOnUnhandledRejection","instrumentUnhandledRejection","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","originalConsoleApi","params","buildConsoleLog","createConsoleObservable","formatConsoleParameters","firstErrorParam","RawReportType","initReportObservable","blockedURI","effectiveDirective","subtype","buildStack","originalPolicy","sourceFile","lineNumber","columnNumber","buildRawReportFromCspViolation","createCspViolationReportObservable","reportTypes","ReportingObserver","handleReports","reports","report","buildRawReportFromReport","types","disconnect","createReportObservable","startErrorCollection","featureFlagContexts","errorObservable","consoleError","trackConsoleError","trackRuntimeError","trackReportError","handling_stack","source_type","featureFlagContext","findFeatureFlagEvaluations","feature_flags","processError","addError","rawError","doStartErrorCollection","matchRequestTiming","sameNameEntries","getEntriesByName","candidates","errorMargin","isBetween","startResourceCollection","matchingTiming","correspondingTimingOverrides","computePerformanceEntryMetrics","tracingInfo","span_id","trace_id","rule_psr","getRulePsr","computeRequestTracingInfo","indexingInfo","computeIndexingInfo","NO_RESOURCE_DURATION_FROZEN_STATE","pageState","computeRequestDuration","pageStateInfo","computePageStateInfo","resourceEvent","status_code","performanceEntry","requestInput","requestInit","processRequest","entries_1","processResourceEntry","entryMetrics","computeEntryTracingInfo","resourceStart","resourceAllowed","RESOURCE_PAGE_STATES","page_states","page_was_discarded","wasDiscarded","mapToForegroundPeriods","pageStateServerEntries","foregroundPeriods","trackInitialViewMetrics","setLoadEvent","scheduleViewUpdate","initialViewMetrics","stopNavigationTracking","domComplete","domContentLoaded","domContentLoadedEventEnd","domInteractive","loadEvent","firstByte","trackNavigationTimings","navigationTimings","firstHidden","stopListeners","visibilityState","trackFirstHidden","stopFCPTracking","fcpEntry","trackFirstContentfulPaint","firstContentfulPaint","stopLCPTracking","firstInteractionTimestamp","stopEventListener","unsubscribeLifeCycle","lcpEntry","findLast","lcpTargetSelector","WEB_VITALS_ATTRIBUTION","targetSelector","trackLargestContentfulPaint","largestContentfulPaint","stopFIDTracking","firstInputEntry","firstInputDelay","firstInputTargetSelector","time","trackFirstInput","firstInput","trackCumulativeLayoutShift","maxClsValue","largestLayoutShiftTarget","largestLayoutShiftTime","largestLayoutShift","update","slidingSessionWindow","hadRecentInput","cls","clsTarget","cslTargetSelector","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","viewportObservable","getInteractionCount","interactionCount","trackInteractionToNextPaint","viewStart","viewLoadingType","PerformanceEventTiming","INTERACTION_TO_NEXT_PAINT","getInteractionToNextPaint","interactionToNextPaintTargetSelector","getViewInteractionCount","interactionId","min","previousInteractionCount","trackViewInteractionCount","longestInteractions","sortAndTrimLongestInteractions","sort","interactionIndex","findIndex","interaction","minLongestInteraction","estimateP98Interaction","trackLongestInteractions","interactionToNextPaint","telemetryCollected","newInteraction","inp","timeFromViewStart","targetNodeName","getScrollX","scrollX","visual","visualViewport","pageLeft","offsetLeft","pageXOffset","getScrollY","scrollY","pageTop","offsetTop","pageYOffset","initViewportObservable","updateDimension","getViewportDimension","createViewportObservable","scale","innerWidth","innerHeight","trackScrollMetrics","scrollValues","throttleDuration","scrollTop","scrollHeight","scrollingElement","documentElement","scrollDepth","computeScrollValues","ResizeObserver","throttledNotify_1","observerTarget_1","resizeObserver_1","eventListener_1","unobserve","createScrollValuesObservable","maxScrollDepth","maxScrollHeight","maxScrollHeightTime","shouldUpdate","maxDepth","maxDepthScrollTop","trackCommonViewMetrics","loadingType","commonViewMetrics","loadType","isWaitingForLoadEvent","isWaitingForActivityLoadingTime","loadingTimeCandidates","invokeCallbackIfAllCandidatesAreReceived","trackLoadingTime","newLoadingTime","loadingTime","stopLoadingTimeTracking","stopScrollMetricsTracking","newScrollMetrics","scroll","stopCLSTracking","cumulativeLayoutShift","stopINPTracking","getCommonViewMetrics","SESSION_KEEP_ALIVE_INTERVAL","KEEP_TRACKING_AFTER_VIEW_DELAY","trackViews","locationChangeObservable","areViewsTrackedAutomatically","initialViewOptions","locationChangeSubscription","activeViews","currentView","startNewView","viewOptions","newlyCreatedView","initialLocation","customTimings","documentVersion","sessionIsActive","triggerViewUpdate","cancelScheduleViewUpdate","stopCommonViewMetricsTracking","stopInitialViewMetricsTracking","viewId","trackViewEventCounts","stopEventCountsTracking","keepAliveIntervalId","currentEnd","addTiming","looksLikeRelativeTime","sanitized","sanitizeTiming","newView","delete","pageExitEvent","currentLocation","otherLocation","oldLocation","newLocation","hash","correspondingId","substr","isHashAnAnchor","getPathFromHash","renewViewOnLocationChange","startView","startViewCollection","_g","_h","_j","_k","_l","_m","_o","_p","replayStats","getReplayStats","pageStatesEnabled","PAGE_STATES","pageStates","viewEvent","document_version","replay_stats","cumulative_layout_shift","cumulative_layout_shift_target_selector","dom_complete","dom_content_loaded","dom_interactive","first_contentful_paint","first_input_delay","first_input_time","first_input_target_selector","interaction_to_next_paint","interaction_to_next_paint_target_selector","is_active","largest_contentful_paint","largest_contentful_paint_target_selector","load_event","discardNegativeDuration","loading_type","time_spent","in_foreground_periods","max_depth","max_depth_scroll_top","max_scroll_height","max_scroll_height_time","privacy","replay_level","custom_timings","newObject","mapValues","processViewUpdate","stopCallbacks","startSessionManager","sessionContextHistory","buildSessionContext","trackActivity","expandSessionWhenVisible","visibilityCheckInterval","trackVisibility","findActiveSession","startRumSessionManager","rawTrackingType","hasValidRumSession","isTypeTracked","sessionReplayAllowed","longTaskAllowed","rumSessionType","Batch","flushController","pushOnlyBuffer","upsertBuffer","flushSubscription","flushObservable","flush","addOrUpdate","upsert","messages","sendOnExit","processedMessage","messageBytesCount","hasMessageFor","separatorBytesCount","messagesCount","notifyBeforeAddMessage","notifyAfterAddMessage","removedMessage","notifyAfterRemoveMessage","MAX_QUEUE_BYTES_COUNT","sendWithRetryStrategy","sendStrategy","transportStatus","queuedPayloads","bandwidthMonitor","canHandle","retryQueuedPayloads","onFailure","enqueue","scheduleRetry","dequeue","currentBackoffTime","onLine","shouldRetryRequest","ongoingRequestCount","isFull","queueFullReported","previousQueue","newPayloadQueue","createHttpRequest","endpointBuilder","retryState","ongoingByteCount","sendStrategyForRetry","onResponse","isKeepAliveSupported","fetchUrl","keepalive","mode","xhrUrl","sendXHR","fetchKeepAliveStrategy","sendBeacon","beaconUrl","hasReportedBeaconError","reportBeaconError","sendBeaconStrategy","open","createFlushController","durationLimitTimeoutId","messagesLimit","durationLimit","pageExitObservable","sessionExpireObservable","pageExitSubscription","sessionExpireSubscription","currentBytesCount","currentMessagesCount","cancelDurationLimitTimeout","startRumBatch","telemetryEventObservable","batch","primary","primaryBatch","createBatch","endpoint","replicaBatch","replicated","transformMessage","startBatchWithReplica","isTelemetryReplicationAllowed","createLocationChangeObservable","stopHistoryTracking","onHistoryChange","stopInstrumentingPushState","stopInstrumentingReplaceState","removeListener","trackHistory","onLocationChange","stopHashTracking","onHashChange","trackHash","currentPeriodMeasures","currentBatchMeasures","batchHasRumEvent","sendCurrentPeriodMeasures","batchCount","initCurrentPeriodMeasures","updateMeasure","measure","sum","mergeMeasure","batchBytesCount","batchMessagesCount","globalContextBytes","userContextBytes","featureFlagBytes","initCurrentBatchMeasures","startPageStateHistory","maxPageStateEntriesSelectable","currentPageState","addPageState","getPageState","stopEventListeners","persisted","computePageState","nextPageState","eventStartTime","pageStateEntries","relativeStartTime","pageStateEntry","hasFocus","getSessionReplayUrl","errorType","sessionId","rumConfiguration","getSiteDefaultSubdomain","getDatadogSiteUrl","RecordType","NodeType","IncrementalSource","MouseInteractionType","MediaInteractionType","assembleIncrementalSnapshot","NodePrivacyLevel","IGNORE","PRIVACY_ATTR_NAME","PRIVACY_ATTR_VALUE_HIDDEN","CENSORED_STRING_MARK","FORM_PRIVATE_TAG_NAMES","INPUT","OUTPUT","TEXTAREA","SELECT","OPTION","DATALIST","OPTGROUP","getNodePrivacyLevel","parentNodePrivacyLevel","reducePrivacyLevel","getNodeSelfPrivacyLevel","childPrivacyLevel","privAttr","inputElement","autocomplete","contains","relAttribute","getLowerCaseAttribute","nameAttribute","propertyAttribute","shouldIgnoreElement","shouldMaskNode","privacyLevel","isFormElement","getTextContent","textNode","ignoreWhiteSpace","parentTagName","serializedNodeIds","hasSerializedNode","getSerializedNodeId","getElementInputValue","nodePrivacyLevel","URL_IN_CSS_REF","ABSOLUTE_URL","DATA_URI","switchToAbsoluteUrl","cssText","cssHref","matchingSubstring","singleQuote","urlWrappedInSingleQuotes","doubleQuote","urlWrappedInDoubleQuotes","urlNotWrappedInQuotes","quote","baseUrl","makeUrlAbsolute","TAG_NAME_REGEX","getValidTagName","processedTagName","serializeStyleSheets","cssStyleSheets","cssStyleSheet","rules","cssRules","cssRule","disabled","media","serializeAttribute","attributeValue","getCssRulesString","getCssRuleStringForSafari","getCssRuleString","rule","isCSSStyleRule","selectorText","isCSSImportRule","styleSheet","serializeNodeWithId","serializedNode","DOCUMENT_NODE","serializeChildNodes","adoptedStyleSheets","serializeDocumentNode","isShadowRoot","serializationContext","shadowRootsController","addShadowRoot","serializeDocumentFragmentNode","DOCUMENT_TYPE_NODE","documentType","publicId","systemId","isSVG","el","SVGElement","attributes","rr_width","rr_height","safeAttrs","formValue","optionElement","selected","stylesheet","styleSheets","DISABLE_REPLAY_INLINE_CSS","_cssText","sheet","scrollLeft","checked","mediaElement","rr_mediaState","paused","elementsScrollPositions","rr_scrollLeft","rr_scrollTop","serializeAttributes","hasChildNodes","serializeElementNode","serializeTextNode","CDATA_SECTION_NODE","serializeNode","_nextId","serializedNodeWithId","serializeNodeId","setSerializedNodeId","childNode","serializedChildNode","serializeDocument","isTouchEvent","changedTouches","getEventTarget","composed","composedPath","convertMouseEventToLayoutCoordinates","normalized","layoutViewportX","layoutViewportY","visualViewportX","visualViewportY","abs","isVisualViewportFactoredIn","getVisualViewport","tryToComputeCoordinates","eventTypeToMouseInteraction","initInputObserver","cb","stopPropertySetterInstrumentation","lastInputStateMap","HTMLTextAreaElement","HTMLSelectElement","onElementChange","instrumentationStoppers_1","stopper","inputState","isChecked","text","cbWithDedup","lastInputState","getPathToNestedCSSRule","currentRule","parentRule","index_1","parentStyleSheet","createMutationBatch","processMutationBatch","cancelScheduledFlush","pendingMutations","addMutations","opts","requestIdleCallback","cancelIdleCallback","id_1","requestAnimationFrame","cancelAnimationFrame","timeout","initMutationObserver","mutationCallback","mutationBatch","removedNodes","removedNode","traverseRemovedShadowDom","removeShadowRoot","filteredMutations","isConnected","nodeAndAncestorsHaveSerializedNode","addedAndMovedNodes","Map","_loop_1","addedNodes","mutations_1","sortedAddedAndMovedNodes","nodes","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","sortAddedAndMovedNodes","addedNodeMutations","sortedAddedAndMovedNodes_1","hasBeenSerialized","nextId","getNextSibling","parentId","removedNodeMutations","adds","removes","nextSibling","processChildListMutations","texts","textMutations","handledNodes","filteredMutations_1","oldValue","processCharacterDataMutations","attributeMutations","handledElements","handledAttributes","emittedMutations","filteredMutations_2","transformedValue","inputValue","emittedMutation","processAttributesMutations","processMutations","takeRecords","attributeOldValue","characterData","characterDataOldValue","childList","subtree","shadowDomRemovedCallback","initObservers","o","mediaInteractionCb","focusCb","recordIds","getIdForEvent","initRecordIds","mutationHandler","mutationCb","mousemoveHandler","updatePosition","coordinates","timeOffset","initMoveObserver","mousemoveCb","mouseInteractionHandler","record","initMouseInteractionObserver","mouseInteractionCb","scrollHandler","scrollPositions","initScrollObserver","scrollCb","viewportResizeHandler","initViewportResizeObserver","viewportResizeCb","inputHandler","inputCb","mediaInteractionHandler","styleSheetObserver","checkStyleSheetAndCallback","ownerNode","instrumentationStoppers","CSSStyleSheet","instrumentGroupingCSSRuleClass","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","initStyleSheetObserver","styleSheetCb","focusHandler","has_focus","visualViewportResizeHandler","cancelThrottle","initVisualViewportResizeObserver","visualViewportResizeCb","frustrationHandler","frustrationCb","initFrustrationObserver","emit","scrollPositionsByElement","createElementsScrollPositions","controllerByShadowRoot","stopMutationObserver","stopInputObserver","initShadowRootsController","takeFullSnapshot","initialOffset","p","mouseInteractionRecord","positions","r","d","frustrationRecord","stopObservers","flushMutationsFromObservers","flushMutations","takeSubsequentFullSnapshot","statsPerView","getSegmentsCount","getOrCreateReplayStats","segments_count","records_count","segments_total_raw_size","isFirst_1","_value","deleteOldestStats","Segment","encoder","creationReason","metadata","creation_reason","has_full_snapshot","index_in_view","addRecord","segment","prefix","write","additionalBytesCount","rawBytesCount","SEGMENT_BYTES_LIMIT","startSegmentCollection","httpRequest","getSegmentContext","nextSegmentCreationReason","unsubscribeViewCreated","flushSegment","unsubscribePageExited","rawSegmentBytesCount","formData","FormData","metadataAndSegmentSizes","raw_segment_size","compressed_segment_size","byteLength","serializedMetadataAndSegmentSizes","buildReplayPayload","encodedBytes","expirationTimeoutId","encodedBytesCount","doStartSegmentCollection","computeSegmentContext","isBrowserSupported","createObjectURL","NodeList","getSessionReplayLink","isRecordingStarted","getErrorType","createDeflateEncoder","worker","streamId","compressedDataTrailer","compressedData","nextWriteActionId","pendingWriteActions","removeMessageListener","nextPendingAction","trailer","buffers","total","buffers_1","concatBuffers","postMessage","createDeflateWorker","Worker","startDeflateWorker","onInitializationFailure","createDeflateWorkerImpl","removeErrorListener_1","removeMessageListener_1","initializationFailureCallbacks","onTimeout","doStartDeflateWorker","getDeflateWorkerStatus","baseMessage","worker_version","stream_id","startRecordingImpl","onRumStart","startStrategy","stopStrategy","stopRecording","makeRecorderApi","replayRequest","stopSegmentCollection","unsubscribeViewEnded","startRumImpl","ignoreInitIfSyntheticsWillInjectRum","isAlreadyInitialized","getInternalContextStrategy","getInitConfigurationStrategy","stopSessionStrategy","getSessionReplayLinkStrategy","bufferApiCalls","addTimingStrategy","startViewStrategy","addActionStrategy","addErrorStrategy","providedError","addFeatureFlagEvaluationStrategy","doStartRum","storeContextsAcrossPages","beforeInitGlobalContext","beforeInitUserContext","startRumResults","addAction","addFeatureFlagEvaluation","getInternalContext","stopSession","rumPublicApi","stub","publicApi","onReady","makePublicApi","eventBridgeAvailable","overrideInitConfigurationForBridge","canInitRum","beforeInitCalls","addRumGlobalContext","setGlobalContextProperty","removeRumGlobalContext","removeGlobalContextProperty","getRumGlobalContext","getGlobalContext","setRumGlobalContext","setGlobalContext","clearGlobalContext","getInitConfiguration","setUser","isValid","checkUser","getUser","setUserProperty","sanitizedProperty","removeUserProperty","removeUser","clearUser","startSessionReplayRecording","stopSessionReplayRecording","makeRumPublicApi","cleanupTasks","bridge_1","startRumTelemetry","FEATURE_FLAGS","getFeatureFlagBytesCount","currentContext","startFeatureFlagContexts","pagehideEnabled","stopBeforeUnloadListener","createPageExitObservable","startRumSessionManagerStub","startRumEventBridge","batch_1","batchFlushObservable","hasFeatureFlagContext","startCustomerDataTelemetry","createDOMMutationObservable","viewContextHistory","buildViewContext","startViewContexts","previousViewUrl","urlContextHistory","viewUrl","buildUrlContext","changeTime","startUrlContexts","startActionCollection","viewport","viewportDimension","startDisplayContext","startRumEventCollection","stopRumEventCollection","addTelemetryConfiguration","baseSerializedConfiguration","telemetry_sample_rate","telemetry_configuration_sample_rate","use_before_send","use_cross_site_session_cookie","use_secure_session_cookie","use_proxy","silent_multiple_init","track_session_across_subdomains","track_resources","track_long_task","allow_fallback_to_local_storage","store_contexts_across_pages","serializeConfiguration","premium_sample_rate","replay_sample_rate","trace_sample_rate","action_name_attribute","use_allowed_tracing_origins","use_allowed_tracing_urls","selected_tracing_propagators","default_privacy_level","use_excluded_activity_urls","use_worker_url","track_frustrations","track_views_manually","track_user_interactions","serializeRumConfiguration","startLongTaskCollection","stopViewCollection","internalContext","application_id","session_id","user_action","startInternalContext","task","existingGlobalVariable","q","defineGlobal","getOwnPropertySymbols","propertyIsEnumerable","t","n","D","packageVersion","excludeAuthError","R","CookiesContext","Cookies","Provider","__extends","Consumer","extendStatics","setPrototypeOf","__proto__","__","create","_super","CookiesProvider","props","cookies","render","children","Recoil_err","Recoil_isPromise","Recoil_nullthrows","_defineProperty","writable","BaseLoadable","getValue","toPromise","valueMaybe","valueOrThrow","promiseMaybe","promiseOrThrow","errorMaybe","errorOrThrow","is","contents","_map","ValueLoadable","loadableWithPromise","isLoadable","loadableWithValue","loadableWithError","ErrorLoadable","LoadingLoadable","nextLoadable","freeze","loadableLoading","loadableAll","inputs","output","all","loadableAllArray","getOwnPropertyNames","outputs","out","idx","LoadableStaticInterface","of","loading","Recoil_Loadable","RecoilLoadable","Recoil_Loadable_1","Recoil_Loadable_2","Recoil_Loadable_3","Recoil_Loadable_4","Recoil_Loadable_5","Recoil_Loadable_6","Recoil_Loadable_7","Recoil_Loadable$1","gks","Recoil_gkx_OSS","gk","_gks$get","setPass","setFail","Recoil_gkx","_createMutableSource","_useMutableSource","_useSyncExternalStore","Recoil_recoverableViolation","_projectName","createMutableSource","react","unstable_createMutableSource","useMutableSource","unstable_useMutableSource","useSyncExternalStore","unstable_useSyncExternalStore","ReactRendererVersionMismatchWarnOnce","Recoil_ReactMode","currentRendererSupportsUseSyncExternalStore","_ReactCurrentDispatch","ReactCurrentDispatcher","ReactCurrentOwner","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","isUseSyncExternalStoreSupported","currentDispatcher","reactMode","early","concurrent","$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE","isFastRefreshEnabled","RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED","_process$env$RECOIL_D","_process$env$RECOIL_D2","applyProcessEnvFlagOverrides","Recoil_RecoilEnv","AbstractRecoilValue","newKey","RecoilState","RecoilValueReadOnly","Recoil_RecoilValue","isRecoilValue","Recoil_RecoilValue_1","Recoil_RecoilValue_2","Recoil_RecoilValue_3","Recoil_RecoilValue_4","Recoil_RecoilValue$1","Recoil_expectationViolation","format","Recoil_mapIterable","iterable","isFastRefreshEnabled$1","DefaultValue","DEFAULT_VALUE","recoilValues","NodeMissingError","configDeletionHandlers","getConfigDeletionHandler","Recoil_Node","registerNode","checkForDuplicateAtomKey","recoilValue","getNode","getNodeMaybe","deleteNodeConfigIfPossible","_node$shouldDeleteCon","_getConfigDeletionHan","shouldDeleteConfigOnRelease","setConfigDeletionHandler","recoilValuesForKeys","Recoil_Queue","enqueueExecution","module","hamt_1","_typeof","Symbol","iterator","hamt","BUCKET_SIZE","MAX_INDEX_NODE","MIN_ARRAY_NODE","nothing","constant","len","hashFragment","h","toBitmap","fromBitmap","bitmap","bit","arrayUpdate","mutate","at","v","arr","arraySpliceOut","newLen","g","empty","__hamt_isEmpty","isEmptyNode","Leaf","edit","_modify","Leaf__modify","Collision","Collision__modify","IndexedNode","mask","IndexedNode__modify","ArrayNode","ArrayNode__modify","mergeLeaves","h1","n1","h2","n2","subH1","subH2","canEditNode","keyEq","k","_v","_newValue","updateCollisionList","frag","indx","exists","canEdit","newChildren","subNodes","expand","arraySpliceIn","newChild","removed","elements","elem","editable","root","_editable","_edit","_config","_root","_size","setTree","newRoot","newSize","tryGetHash","alt","tryGet","getHash","hasHash","defKeyCompare","make","isEmpty","modifyHash","NaN","modify","setHash","del","removeHash","deleteHash","beginMutation","endMutation","transient","appk","lazyVisitChildren","lazyVisit","rest","MapIterator","v0","visit","buildPairs","buildKeys","buildValues","values","fold","z","m","toVisit","BuiltInMap","existing","persistentMap","toMap","HashArrayMappedTrieMap","_hamt","Recoil_PersistentMap_1","Recoil_PersistentMap$1","Recoil_differenceSets","setsWithValuesToRemove","ret","FIRST","otherSet","Recoil_mapMap","mergeDepsIntoGraph","newDeps","graph","olderGraph","nodeDeps","nodeToNodeSubscriptions","oldDeps","addedDeps","dep","removedDeps","Recoil_Graph","cloneGraph","saveDepsToStore","deps","store","_storeState$nextTree","_storeState$previousT","_storeState$previousT2","_storeState$previousT3","storeState","getState","currentTree","nextTree","previousTree","getGraph","_storeState$nextTree2","nextVersion","nextTreeStateVersion","nextStoreID","nextComponentID","Recoil_Keys","getNextTreeStateVersion","getNextStoreID","getNextComponentID","persistentMap$1","getNextTreeStateVersion$1","makeEmptyTreeState","stateID","transactionMetadata","dirtyAtoms","atomValues","nonvalidatedAtoms","Recoil_State","makeEmptyStoreState","commitDepth","knownAtoms","knownSelectors","transactionSubscriptions","nodeTransactionSubscriptions","nodeToComponentSubscriptions","queuedComponentCallbacks_DEPRECATED","suspendedComponentResolvers","graphsByVersion","retention","referenceCounts","nodesRetainedByZone","retainablesToCheckForRelease","nodeCleanupFunctions","RetentionZone","Recoil_RetentionZone","retentionZone","Recoil_CopyOnWrite","setByAddingToSet","setByDeletingFromSet","mapBySettingInMap","mapByUpdatingInMap","updater","mapByDeletingFromMap","mapByDeletingMultipleFromMap","ks","Recoil_filterIterable","Recoil_lazyProxy","factories","Proxy","prop","ownKeys","getNode$1","getNodeMaybe$1","recoilValuesForKeys$1","RetentionZone$1","setByAddingToSet$1","emptySet","ReadOnlyRecoilValueError","initializeNodeIfNewToStore","treeState","trigger","retentionCleanup","nodeKey","retainedBy","addToZone","zone","deleteFromZone","initializeRetentionForNode","nodeCleanup","peekNodeLoadable","peek","getDownstreamNodes","visitedNodes","visitingNodes","_graph$nodeToNodeSubs","subscribedNodes","downstreamNode","Recoil_FunctionalCore","getNodeLoadable","setNodeValue","initializeNode","cleanUpNode","_state$nodeCleanupFun","setUnvalidatedAtomValue_DEPRECATED","_node$invalidate","peekNodeInfo","loadable","isSet","isModified","_graph$nodeDeps$get","subscribers","_storeState$nodeToCom","_storeState$nodeToCom2","components","_invalidateMemoizedSnapshot","Recoil_SnapshotCache","setInvalidateMemoizedSnapshot","invalidateMemoizedSnapshot","_invalidateMemoizedSn","getDownstreamNodes$1","getNodeLoadable$1","setNodeValue$1","getNextComponentID$1","getNode$2","getNodeMaybe$2","DefaultValue$1","reactMode$1","AbstractRecoilValue$1","RecoilState$1","RecoilValueReadOnly$1","isRecoilValue$1","invalidateMemoizedSnapshot$1","applyAction","valueOrUpdater","msg","valueFromValueOrUpdater","writes","writeLoadableToTreeState","unvalidatedValue","applyActionsToStore","actions","replaceState","newState","copyTreeState","invalidateDownstreams","queueOrPerformStateUpdate","batchStack","actionsByStore","downstreams","_getNodeMaybe","_getNodeMaybe$invalid","setRecoilValue","Recoil_RecoilValueInterface","getRecoilValueAsLoadable","setRecoilValueLoadable","markRecoilValueModified","setUnvalidatedRecoilValue","subscribeToRecoilValue","componentDebugName","subID","release","releaseStoreState","subs","applyAtomValueWrites","batchStart","refreshRecoilValue","_node$clearCache","clearCache","Recoil_someSet","cleanUpNode$1","deleteNodeConfigIfPossible$1","getNode$3","RetentionZone$2","emptySet$1","releaseRetainablesNowOnCurrentTree","retainables","releasableNodes","searchFromNodes","nonReleasableNodes","findReleasableNodesInner","releasableNodesFoundThisIteration","doNotDescendInto1","doNotDescendInto2","answer","visited","getDownstreamNodesInTopologicalOrder","_storeState$retention","zonesThatCouldRetainNode","nodeChildren","parents","findReleasableNodes","releaseNode","zones","_storeState$retention2","_storeState$retention3","updateRetainCountToZero","retainable","scheduleOrPerformPossibleReleaseOfRetainable","Recoil_Retention","SUSPENSE_TIMEOUT_MS","updateRetainCount","delta","_map$get","newCount","releaseScheduledRetainablesNow","retainedByOptionWithDefault","unstable_batchedUpdates","ReactBatchedUpdates","unstable_batchedUpdates$1","Recoil_ReactBatchedUpdates","batchStart$1","unstable_batchedUpdates$2","batcher","Recoil_Batching","getBatcher","setBatcher","newBatcher","batchUpdates","batchEnd","Recoil_concatIterables","iters","iter","isSSR","Window","isReactNative","product","Recoil_Environment","isWindow","Recoil_Memoize","memoizeWithArgsHash","hashFunction","memoizeOneWithArgsHash","lastKey","lastResult","memoizeOneWithArgsHashAndInvalidation","batchUpdates$1","initializeNode$1","peekNodeInfo$1","graph$1","getNextStoreID$1","DEFAULT_VALUE$1","recoilValues$1","recoilValuesForKeys$2","AbstractRecoilValue$2","getRecoilValueAsLoadable$1","setRecoilValue$1","setUnvalidatedRecoilValue$1","updateRetainCount$1","setInvalidateMemoizedSnapshot$1","getNextTreeStateVersion$2","makeEmptyStoreState$1","isSSR$1","memoizeOneWithArgsHashAndInvalidation$1","Snapshot","parentStoreID","checkRefCount_INTERNAL","_store","getLoadable","isInitialized","mapper","mutableSnapshot","MutableSnapshot","retain","autoRelease_INTERNAL","storeID","graphs","newGraph","subscribeToTransactions","addTransactionMetadata","_refCount","released","_release","cleanup","isRetained","getStore_INTERNAL","getID","getStoreID","cloneStoreState","bumpVersion","memoizedCloneSnapshot","invalidateMemoizedSnapshot$2","_store$getState$nextT","_store$getState$previ","snapshot","recoilState","newValueOrUpdater","_batch","Recoil_Snapshot","freshSnapshot","initializeState","cloneSnapshot","Recoil_Snapshot_1","Recoil_Snapshot_2","Recoil_Snapshot_3","Recoil_Snapshot_4","Recoil_Snapshot$1","Recoil_unionSets","sets","useRef","Recoil_useRefInitOnce","initialValue","ref","getNextTreeStateVersion$3","makeEmptyStoreState$2","cleanUpNode$2","getDownstreamNodes$2","initializeNode$2","setNodeValue$2","setUnvalidatedAtomValue_DEPRECATED$1","graph$2","cloneGraph$1","getNextStoreID$2","createMutableSource$1","reactMode$2","applyAtomValueWrites$1","releaseScheduledRetainablesNow$1","freshSnapshot$1","useCallback","useContext","useEffect","useMemo","useRef$1","useState","notInAContext","defaultStore","stateReplacerIsBeingExecuted","startNextTreeIfNeeded","AppContext","createContext","useStoreRef","MutableSourceContext","notifyComponents","dependentNodes","comps","_subID","_debugName","sendEndOfBatchNotifications","Batcher","setNotifyBatcherOfChange","storeRef","endBatch","nextID","RecoilRoot_INTERNAL","initializeState_DEPRECATED","store_INTERNAL","storeProp","storeStateRef","replaced","notifyBatcherOfChange","initial","atom","writtenNodes","setUnvalidatedAtomValues","initialStoreState_DEPRECATED","initialStoreState","mutableSource","atomKey","Recoil_RecoilRoot","RecoilRoot","override","propsExceptOverride","ancestorStoreRef","useRecoilMutableSource","useRecoilStoreID","notifyComponents_FOR_TESTING","sendEndOfBatchNotifications_FOR_TESTING","Recoil_shallowArrayEqual","useEffect$1","useRef$2","Recoil_usePrevious","useStoreRef$1","SUSPENSE_TIMEOUT_MS$1","updateRetainCount$2","RetentionZone$3","useEffect$2","useRef$3","isSSR$2","Recoil_useRetain","toRetain","timeoutID","previousRetainables","useRetain_ACTUAL","Recoil_useComponentName","batchUpdates$2","DEFAULT_VALUE$2","currentRendererSupportsUseSyncExternalStore$1","reactMode$3","useMutableSource$1","useSyncExternalStore$1","useRecoilMutableSource$1","useStoreRef$2","isRecoilValue$2","AbstractRecoilValue$3","getRecoilValueAsLoadable$2","setRecoilValue$2","setUnvalidatedRecoilValue$2","subscribeToRecoilValue$1","useCallback$1","useEffect$3","useMemo$1","useRef$4","useState$1","setByAddingToSet$2","handleLoadable","useRecoilValueLoadable_SYNC_EXTERNAL_STORE","componentName","getSnapshot","memoizePreviousSnapshot","prevState","_prevState","_prevState2","nextState","getMemoizedSnapshot","useRecoilValueLoadable_MUTABLE_SOURCE","_storeState$nextTree3","getLoadableWithTesting","_storeState","newLoadable","prevLoadableRef","useRecoilValueLoadable_TRANSITION_SUPPORT","_storeState$nextTree4","updateState","_state","useRecoilValueLoadable_LEGACY","forceUpdate","_storeState$nextTree5","_prevLoadableRef$curr","_prevLoadableRef$curr2","useRecoilValueLoadable","TRANSITION_SUPPORT","SYNC_EXTERNAL_STORE","MUTABLE_SOURCE","LEGACY","useRecoilValue","useSetRecoilState","useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE","useRecoilValue_TRANSITION_SUPPORT_UNSTABLE","Recoil_Hooks","recoilComponentGetRecoilValueCount_FOR_TESTING","useRecoilInterface","recoilValuesUsed","previousSubscriptions","unsubscribeFrom","sub","currentSubscriptions","getRecoilValue","getRecoilValueLoadable","getRecoilState","getRecoilStateLoadable","getSetRecoilState","getResetRecoilState","useRecoilState","useRecoilStateLoadable","useResetRecoilState","useSetUnvalidatedAtomValues","useRecoilState_TRANSITION_SUPPORT_UNSTABLE","Recoil_filterMap","Recoil_filterSet","Recoil_mergeMaps","maps","nextKey","batchUpdates$3","DEFAULT_VALUE$3","getNode$4","nodes$1","useStoreRef$3","AbstractRecoilValue$4","setRecoilValueLoadable$1","SUSPENSE_TIMEOUT_MS$2","cloneSnapshot$1","useCallback$2","useEffect$4","useRef$5","useState$2","isSSR$3","useTransactionSubscription","externallyVisibleAtomValuesInState","persistedAtomContentsValues","persistence","persistence_UNSTABLE","gotoSnapshot","prev","keysToUpdate","_prev$atomValues$get","_next$atomValues$get","shouldRestoreFromSnapshots","Recoil_SnapshotHooks","useRecoilSnapshot","setSnapshot","previousSnapshot","releaseRef","_releaseRef$current","_releaseRef$current2","_releaseRef$current3","useGotoRecoilSnapshot","useRecoilTransactionObserver","useTransactionObservation_DEPRECATED","previousAtomValues","atomInfo","_node$persistence_UNS","_node$persistence_UNS2","_node$persistence_UNS3","_node$persistence_UNS4","backButton","modifiedAtoms","useTransactionSubscription_DEPRECATED","peekNodeInfo$2","useStoreRef$4","Recoil_useGetRecoilValueInfo","reactMode$4","RecoilRoot$1","useStoreRef$5","useMemo$2","Recoil_useRecoilBridgeAcrossReactRoots","loadableWithValue$1","initializeNode$3","DEFAULT_VALUE$4","getNode$5","copyTreeState$1","getRecoilValueAsLoadable$3","invalidateDownstreams$1","writeLoadableToTreeState$1","isAtom","TransactionInterfaceImpl","_changes","_treeState","newTreeState_INTERNAL","Recoil_AtomicUpdates","changeset","Recoil_AtomicUpdates_1","Recoil_AtomicUpdates$1","atomicUpdater","Recoil_invariant","condition","atomicUpdater$1","batchUpdates$4","DEFAULT_VALUE$5","useStoreRef$6","refreshRecoilValue$1","setRecoilValue$3","cloneSnapshot$2","gotoSnapshot$1","useCallback$3","Sentinel","SENTINEL","recoilCallback","extraInterface","releaseSnapshot","_releaseSnapshot2","errMsg","callbackInterface","refresh","transact_UNSTABLE","transaction","finally","_releaseSnapshot","Recoil_useRecoilCallback","useRecoilCallback","useStoreRef$7","refreshRecoilValue$2","useCallback$4","Recoil_useRecoilRefresher","atomicUpdater$2","useStoreRef$8","useMemo$3","Recoil_useRecoilTransaction","atomicUpdate","transactionInterface","Recoil_Wrapper_1","Recoil_Wrapper$1","WrappedValue","isFastRefreshEnabled$2","ChangedPathError","Recoil_TreeCache_1","_options$onHit","_options$onSet","_options$mapNodeValue","_name","_numLeafs","_onHit","onHit","_onSet","onSet","_mapNodeValue","mapNodeValue","getNodeValue","handlers","_this$getLeafNode","getLeafNode","onNodeVisit","nodeValue","branches","route","addLeaf","_node2","_node3","_this$_root2","_handlers$onNodeVisit2","branchKey","_node","_handlers$onNodeVisit","_this$_root","invalidCacheError","oldLeaf","leafNode","leaf","_node4","CHANGED_PATH_ERROR_MESSAGE","Recoil_TreeCache$1","TreeCache","Recoil_LRUCache","_options$mapKey","_maxSize","maxSize","_head","_tail","_keyMapper","mapKey","tail","mappedKey","right","_maybeDeleteLRU","deleteLru","Recoil_LRUCache_1","Recoil_LRUCache$1","LRUCache","LRUCache$1","TreeCache$1","Recoil_treeCacheLRU","lruCache","lruNode","allowFunctions","_JSON$stringify","localeCompare","Recoil_stableStringify","TreeCache$2","defaultPolicy","equality","eviction","Recoil_treeCacheFromPolicy","valueMapper","getValueMapper","getTreeCache","isReactNative$1","isWindow$1","Recoil_PerformanceTimings","startPerfBlock","_id","isLoadable$1","loadableWithError$1","loadableWithPromise$1","loadableWithValue$2","WrappedValue$1","getNodeLoadable$2","peekNodeLoadable$1","setNodeValue$3","saveDepsToStore$1","DEFAULT_VALUE$6","getConfigDeletionHandler$1","getNode$6","registerNode$1","isRecoilValue$3","markRecoilValueModified$1","retainedByOptionWithDefault$1","recoilCallback$1","startPerfBlock$1","Canceled","CANCELED","dependencyStack","waitingStores","getNewExecutionID","executionID","cachePolicy_UNSTABLE","cachePolicy","discoveredDependencyNodeKeys","retainedBy_UNSTABLE","executionInfoMap","liveStoresCount","selectorIsLive","selectorInit","selectorShouldDeleteConfigOnRelease","resolveAsync","depValues","setCache","notifyStoresOfResolvedAsync","isLatestExecution","clearExecutionInfo","notifyWaitingStores","clearWaitlist","stores","waitingStore","markStoreWaitingForResolvedAsync","wrapPendingDependencyPromise","existingDeps","loadingDepsState","resolvedDep","loadingDepKey","loadingDepPromise","cachedLoadable","getLoadableFromCacheAndUpdateDeps","getExecutionInfo","executionInfo","getInProgressExecutionInfo","loadingLoadable","evaluateSelectorGetter","updateDeps","_store$getState","_store$getState$curre","_store$getState2","_store$getState2$next","_store$getState3","_store$getState3$next","endPerfBlock","duringSynchronousExecution","duringAsynchronousExecution","finishEvaluation","resultIsError","depKey","depLoadable","stateVersions","notifyStoresOfNewAsyncDep","getCallback","errorOrPromise","wrapResultPromise","errorOrDepPromise","depValuesDiscoveredSoFarDuringAsyncWork","updateExecutionInfoDepValues","depsAfterCacheLookup","_getExecutionInfo","getSelectorLoadableAndUpdateDeps","cachedVal","inProgressExecutionInfo","_inProgressExecutionI","newExecutionID","newDepValues","setExecutionInfo","pendingExecutions","execInfo","anyDepChanged","execDepValues","execLoadable","_getExecutionInfo2","valLoadable","depValuesToDepRoute","selectorPeek","_peekNodeLoadable","selectorGet","detectCircularDependencies","invalidateSelector","clearSelectorCache","selectorSet","syncSelectorSetFinished","setRecoilState","setValue","dangerouslyAllowMutability","Recoil_selector","isLoadable$2","loadableWithError$2","loadableWithPromise$2","loadableWithValue$3","WrappedValue$2","peekNodeInfo$3","DEFAULT_VALUE$7","DefaultValue$2","getConfigDeletionHandler$2","registerNode$2","setConfigDeletionHandler$1","isRecoilValue$4","getRecoilValueAsLoadable$4","markRecoilValueModified$2","setRecoilValue$4","setRecoilValueLoadable$2","retainedByOptionWithDefault$2","unwrap","baseAtom","unwrapPromise","defaultLoadable","cachedAnswerForUnvalidatedValue","default","maybeFreezeValueOrPromise","cleanupEffectsByStore","valueOrPromise","peekAtom","_ref","_state$atomValues$get3","nonvalidatedValue","validatorResult","validator","validatedValueLoadable","initState","_options$effects","notifyDefaultSubscribers","_store$getState$nextT3","effects","effects_UNSTABLE","initValue","isDuringInit","isInitError","pendingSetSelf","retValue","getPromise","getInfo_UNSTABLE","_store$getState$nextT4","setSelf","effect","currentLoadable","currentValue","resetSelf","handler","_cleanupEffectsByStor2","currentStore","_currentTree$atomValu","_previousTree$atomVal","_pendingSetSelf","_pendingSetSelf2","_pendingSetSelf3","oldLoadable","parentStoreID_UNSTABLE","_cleanupEffectsByStor3","_store$getState$nextT5","initLoadable","wrappedPromise","_state$atomValues$get","_store$getState$nextT2","_state$atomValues$get2","wrapPendingPromise","_cleanupEffectsByStor","restOptions","optionsDefault","storedValue","sel","baseValue","atomWithFallback","Recoil_atom","Recoil_MapCache_1","Recoil_MapCache$1","MapCache","LRUCache$2","MapCache$1","defaultPolicy$1","Recoil_cacheFromPolicy","getValueMapper$1","getCache","setConfigDeletionHandler$2","Recoil_atomFamily","_options$cachePolicyF","_options$cachePolicyF2","atomCache","cachePolicyForParams_UNSTABLE","_stableStringify","cachedAtom","atomOptions","newAtom","setConfigDeletionHandler$3","nextIndex","Recoil_selectorFamily","selectorCache","cachedSelector","myKey","myGet","myCachePolicy","newSelector","constantSelector","Recoil_constSelector","throwingSelector","Recoil_errorSelector","Recoil_readOnlySelector","loadableWithError$3","loadableWithPromise$3","loadableWithValue$4","concurrentRequests","results","fill","exceptions","isError","exp","unwrapDependencies","dependencies","wrapResults","wrapLoadables","exception","waitForNone","waitForAny","waitForAll","exceptionResults","syncResults","waitForAllSettled","noWait","dependency","Recoil_WaitFor","DefaultValue$3","RecoilRoot$2","useRecoilStoreID$1","isRecoilValue$5","retentionZone$1","freshSnapshot$2","useRecoilState$1","useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1","useRecoilStateLoadable$1","useRecoilValue$1","useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1","useRecoilValueLoadable$1","useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1","useResetRecoilState$1","useSetRecoilState$1","useGotoRecoilSnapshot$1","useRecoilSnapshot$1","useRecoilTransactionObserver$1","useRecoilCallback$1","noWait$1","waitForAll$1","waitForAllSettled$1","waitForAny$1","waitForNone$1","Recoil_index","RecoilEnv","useRecoilBridgeAcrossReactRoots_UNSTABLE","atomFamily","selectorFamily","constSelector","errorSelector","readOnlySelector","useGetRecoilValueInfo_UNSTABLE","useRecoilRefresher_UNSTABLE","useRecoilTransaction_UNSTABLE","useRecoilTransactionObserver_UNSTABLE","snapshot_UNSTABLE","useRetain","Recoil_index_5","nextDatadogRumInit","queryClient","queryCache","queryDefaults","mutationDefaults","mountCount","mount","unsubscribeFocus","focusManager","unsubscribeOnline","onlineManager","unmount","_this$unsubscribeFocu","_this$unsubscribeOnli","isFetching","isMutating","fetching","getQueryData","_this$queryCache$find","ensureQueryData","arg3","parsedOptions","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","setQueryData","prevData","defaultedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","cancelOptions","promises","invalidateQueries","_filters$refetchType","refetchType","_options$cancelRefetc","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","firstMatchingDefaults","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","suspense","refetchOnWindowFocus","App","Component","pageProps","handleRouteChangeComplete","gtag","page_path","Router","Head","Suspense","fallback","QueryClientProvider","initialIsOpen","dynamic","ssr","dynamicOptions","loadableFn","_loadable","loadableOptions","isLoading","pastDelay","loader","_extends","loadableGenerated","noSSR","require","_interop_require_default","LoadableInitializer","webpack","modules","__esModule","assign","LoadableContext","_react","_loadableContext","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","loaded","LoadableSubscription","loadFn","_loadFn","_opts","_callbacks","_delay","_timeout","_res","_clearTimeouts","timedOut","res","_update","_err","partial","getCurrentValue","Loadable","useLoadableModule","moduleName","lazy","moduleIds","ids","moduleId","LoadableComponent","useImperativeHandle","preload","displayName","forwardRef","createLoadableComponent","flushInitializers","initializers","preloadAll","resolveInitializers","preloadReady","resolvePreload","__NEXT_PRELOADREADY","_default","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","browser","argv","versions","on","addListener","off","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","readCookie","cleanValue","cleanupCookieValue","doNotParse","isParsingCookie","__assign","changeListeners","HAS_DOCUMENT_COOKIE","parseCookies","_updateBrowserValues","parseOptions","_emitChange","finalOptions","addChangeListener","removeChangeListener","FocusManager","setup","removeEventListener","onSubscribe","setEventListener","onUnsubscribe","_this$cleanup","hasListeners","_this$cleanup2","focused","setFocused","isFocused","transactions","notifyFn","batchNotifyFn","schedule","originalQueue","batchCalls","setNotifyFunction","setBatchNotifyFunction","createNotifyManager","onlineEvents","OnlineManager","online","setOnline","isOnline","defaultRetryDelay","canFetch","CancelledError","isCancelledError","createRetryer","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","pause","continueResolve","canContinue","promiseOrValue","_config$retry","_config$retryDelay","shouldRetry","Subscribable","identity","isServer","functionalUpdate","isValidTimeout","timeUntilStale","parseQueryArgs","isQueryKey","parseFilterArgs","matchQuery","stale","hashQueryKeyByOptions","partialMatchKey","matchMutation","hashQueryKey","queryKeyHashFn","isPlainObject","partialDeepEqual","replaceEqualDeep","isPlainArray","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","hasObjectPrototype","ctor","prot","sleep","scheduleMicrotask","getAbortController","AbortController","replaceData","isDataEqual","structuralSharing","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","Context","_objectSpread","sym","_objectSpreadProps","getOwnPropertyDescriptors","defineProperties","enumerableOnly","symbols"],"sourceRoot":""}