{"version":3,"sources":["webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/display.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack:///./node_modules/@datadog/browser-core/esm/boot/init.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/timer.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/observable.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/context/heavyCustomerDataWarning.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack:///./node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack:///./node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/context/storedContextManager.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/tracekit/computeStackTrace.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/configuration.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack:///./node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack:///./node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciTestContext.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack:///./node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewContexts.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack:///./node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack:///./node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/action/getSelectorFromElement.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/tracekit/tracekit.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestTiming.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/foregroundContexts.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInputTimings.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","webpack:///./node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack:///./node_modules/@datadog/browser-core/esm/transport/batch.js","webpack:///./node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack:///./node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack:///./node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack:///./node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/view/startWebVitalTelemetryDebug.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack:///./node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack:///./node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack:///./node_modules/@datadog/browser-rum/esm/constants.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/privacy.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/moveObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/scrollObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/mouseInteractionObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/inputObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/styleSheetObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/mediaInteractionObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/frustrationObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/viewportResizeObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/mutationObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/focusObserver.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/recordIds.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/observers/observers.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack:///./node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack:///./node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","webpack:///./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","webpack:///./node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack:///./node_modules/@datadog/browser-rum/esm/entries/main.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/buffer/node_modules/isarray/index.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/vue-multilanguage/dist/install.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/ILogger.js","webpack:///./node_modules/vue-multilanguage/dist/index.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/vue-the-mask/dist/vue-the-mask.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/v-clipboard/dist/index.min.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/NodeHttpClient.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/vee-validate/dist/vee-validate.esm.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/Utils.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/vue-multilanguage/dist/directive.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/_string-repeat.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/vue-multilanguage/dist/mixin.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/Loggers.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/vue-multilanguage/dist/enums/getting-strategy.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/Subject.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/ITransport.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/AbortController.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/Errors.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_string-ws.js"],"names":["LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","this","module","exports","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","key","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","prototype","$native","$default","$entries","undefined","$anyNative","entries","call","Object","name","values","P","F","toInteger","defined","TO_STRING","that","pos","a","b","s","String","i","l","length","charCodeAt","charAt","slice","at","S","index","unicode","core","global","speciesConstructor","promiseResolve","R","onFinally","C","Promise","isFunction","then","x","e","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","defaults","interceptors","request","response","config","arguments","url","method","toLowerCase","chain","promise","resolve","forEach","interceptor","unshift","fulfilled","rejected","push","shift","getUri","params","paramsSerializer","replace","merge","data","ctx","IObject","toObject","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","$this","callbackfn","val","res","O","self","f","result","anObject","ignoreCase","multiline","sticky","ConsoleApiName","log","debug","info","warn","error","display","api","args","_i","hasOwnProperty","apply","globalConsole","console","catchUserErrors","fn","errorMsg","err","bind","onMonitorErrorCollected","__spreadArray","to","from","pack","ar","Array","concat","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","monitor","callMonitored","context","displayIfDebugEnabled","includes","candidate","search","indexOf","arrayFrom","arrayLike","array","Set","item","find","predicate","findLast","list","callback","objectValues","object","map","objectEntries","startsWith","endsWith","elementMatches","element","selector","matches","msMatchesSelector","cssEscape","str","window","CSS","escape","ch","asCodePoint","toString","target","toAssign","source","makePublicApi","stub","publicApi","version","onReady","defineProperty","get","enumerable","defineGlobal","existingGlobalVariable","q","getGlobalObject","globalThis","configurable","globalObject","_dd_temp_","ONE_KIBI_BYTE","ONE_MEBI_BYTE","HAS_MULTI_BYTES_CHARACTERS","computeBytesCount","test","TextEncoder","encode","Blob","size","concatBuffers","buffers","reduce","total","buffer","Uint8Array","offset","buffers_1","set","getZoneJsOriginalValue","original","browserWindow","Zone","__symbol__","delay","timeoutId","throttle","wait","options","pendingExecutionWithParameters","pendingTimeoutId","needLeadingExecution","leading","needTrailingExecution","trailing","inWaitPeriod","throttled","parameters","cancel","noop","getType","value","isArray","mergeInto","destination","circularReferenceChecker","createCircularReferenceChecker","Date","getTime","RegExp","flags","join","hasAlreadyBeenSeen","merged_1","merged","deepClone","combine","sources","_a","sources_1","WeakSet","set_1","has","add","jsonStringify","replacer","space","JSON","stringify","restoreObjectPrototypeToJson","detachToJsonMethod","restoreArrayPrototypeToJson","restoreValuePrototypeToJson","restoreValueToJson","objectToJson","toJSON","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","JSON_PATH_ROOT_ELEMENT","KEY_DECORATION_LENGTH","sanitize","maxCharacterCount","containerQueue","visitedObjectsWithPath","WeakMap","sanitizedData","sanitizeProcessor","accumulatedCharacterCount","containerToProcess","separatorLength","targetData","path","warnOverCharacterLimit","parentPath","queue","sourceToSanitize","tryToApplyToJSON","sanitizePrimitivesAndFunctions","sanitizedSource","sanitizeObjects","sourceAsObject","currentPath","description","Event","isTrusted","match","changeType","Observable","onFirstSubscribe","observers","subscribe","_this","onLastUnsubscribe","unsubscribe","filter","other","notify","observer","mergeObservables","observables","globalObservable","subscriptions","observable","subscription","CUSTOMER_DATA_BYTES_LIMIT","CustomerDataLabel","warnIfCustomerDataLimitReached","bytesCount","customerDataType","BYTES_COMPUTATION_THROTTLING_DELAY","createContextManager","computeBytesCountImpl","bytesCountCache","alreadyWarned","changeObservable","computeBytesCountThrottled","contextManager","getBytesCount","remove","newContext","getContext","setContext","clearContext","setContextProperty","property","removeContextProperty","BUFFER_LIMIT","BoundedBuffer","splice","drain","performDraw","threshold","Math","random","round","num","decimals","toFixed","isPercentage","isNumber","navigationStart","getCurrentSiteCache","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","relativeToClocks","relative","timeStamp","getCorrectedTimeStamp","relativeTime","correctedOrigin","dateNow","performance","now","getNavigationStart","addDuration","getTimeStamp","currentDrift","toServerDuration","duration","timeStampNow","relativeNow","clocksNow","clocksOrigin","elapsed","start","end","getRelativeTime","timestamp","looksLikeRelativeTime","time","timing","generateUUID","placeholder","parseInt","findCommaSeparatedValue","rawString","regex","exec","safeTruncate","suffix","lastChar","isLastCharSurrogatePair","correctedLength","setCookie","expireDelay","date","setTime","expires","toUTCString","sameSite","crossSite","domain","secure","document","cookie","getCookie","deleteCookie","areCookiesAuthorized","testCookieName","testCookieValue","isCookieCorrectlySet","getCurrentSite","domainLevels","location","hostname","split","candidateDomain","pop","SYNTHETICS_TEST_ID_COOKIE_NAME","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","Boolean","_DATADOG_SYNTHETICS_INJECTS_RUM","getSyntheticsTestId","_DATADOG_SYNTHETICS_PUBLIC_ID","getSyntheticsResultId","_DATADOG_SYNTHETICS_RESULT_ID","getEventBridge","eventBridgeGlobal","getEventBridgeGlobal","getAllowedWebViewHosts","parse","send","eventType","event","canUseEventBridge","currentHost","bridge","some","allowedHost","DatadogEventBridge","addEventListener","configuration","eventTarget","eventName","listener","addEventListeners","_","eventNames","_b","once","capture","passive","listenerWithMonitor","stop","CONTEXT_STORE_KEY_PREFIX","storageListeners","createStoredContextManager","productKey","storageKey","buildStorageKey","synchronizeWithStorage","dumpToStorage","rawContext","localStorage","getItem","setItem","UNKNOWN_FUNCTION","computeStackTrace","ex","stack","stackProperty","tryToGetString","exString","line","stackFrame","parseChromeLine","parseChromeAnonymousLine","parseWinLine","parseGeckoLine","func","message","fileUrl","filePosition","CHROME_LINE_RE","CHROME_EVAL_RE","parts","isNative","isEval","submatch","column","CHROME_ANONYMOUS_FUNCTION_RE","WINJS_LINE_RE","GECKO_LINE_RE","GECKO_EVAL_RE","ExperimentalFeature","NO_ERROR_STACK_PRESENT_MESSAGE","computeRawError","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","handling","isErrorInstance","Error","computeMessage","hasUsableStack","toStackTraceString","causes","flattenErrorCauses","type","fingerprint","tryToGetFingerprint","dd_fingerprint","formatErrorMessage","frame","createHandlingStack","formattedStack","internalFramesToSkip","parentSource","currentError","cause","sanitizeUser","newUser","user","checkUser","isValid","enabledExperimentalFeatures","addExperimentalFeatures","enabledFeatures","flag","isExperimentalFeatureEnabled","featureName","getExperimentalFeatures","shallowClone","objectHasValue","isEmptyObject","mapValues","newObject","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","OLD_SESSION_COOKIE_NAME","OLD_RUM_COOKIE_NAME","OLD_LOGS_COOKIE_NAME","RUM_SESSION_KEY","LOGS_SESSION_KEY","tryOldCookiesMigration","cookieStoreStrategy","oldSessionId","oldRumType","oldLogsType","id","persistSession","selectCookieStrategy","initConfiguration","cookieOptions","buildCookieOptions","initCookieStrategy","cookieStore","persistSessionCookie","retrieveSession","retrieveSessionCookie","clearSession","deleteSessionCookie","useSecureSessionCookie","useCrossSiteSessionCookie","trackSessionAcrossSubdomains","LOCAL_STORAGE_TEST_KEY","selectLocalStorageStrategy","testKey","retrievedId","removeItem","initLocalStorageStrategy","persistInLocalStorage","retrieveSessionFromLocalStorage","clearSessionFromLocalStorage","sessionState","isIE","documentMode","isChromium","chrome","navigator","userAgent","ongoingOperations","LOCK_RETRY_DELAY","LOCK_MAX_TRIES","bufferedOperations","processSessionStoreOperations","operations","sessionStoreStrategy","numberOfRetries","lockEnabled","isLockEnabled","currentLock","currentSession","lock","retryLater","processedSession","process","after","sessionStore","currentNumberOfRetries","nextOperations","STORAGE_POLL_DELAY","selectSessionStoreStrategyType","sessionStoreStrategyType","allowFallbackToLocalStorage","startSessionStore","computeSessionState","renewObservable","expireObservable","watchSessionTimeoutId","watchSession","sessionCache","retrieveActiveSession","expandOrRenewSession","isTracked","synchronizedSession","synchronizeSession","expandOrRenewSessionState","hasSessionInCache","renewSessionInCache","expandSession","isActiveSession","isSessionInCacheOutdated","expireSessionInCache","trackingType","created","Number","getSession","normalizeUrl","buildUrl","getLocationOrigin","href","isValidUrl","getOrigin","getLinkElementOrigin","getPathName","pathname","base","supportedURL","getSupportedUrl","doc","anchorElement","createElement","implementation","createHTMLDocument","baseElement","head","appendChild","body","isURLSupported","originalURL","URL","origin","sanitizedHost","host","protocol","INTAKE_SITE_STAGING","INTAKE_SITE_US1","INTAKE_SITE_EU1","INTAKE_SITE_AP1","INTAKE_SITE_US1_FED","ENDPOINTS","logs","rum","sessionReplay","INTAKE_TRACKS","createEndpointBuilder","endpointType","configurationTags","buildUrlWithParameters","createEndpointUrlWithParametersBuilder","build","flushReason","retry","buildEndpointParameters","urlPrefix","proxy","proxyUrl","normalizedProxyUrl_1","encodeURIComponent","buildEndpointHost","normalizedProxyUrl_2","site","internalAnalyticsSubdomain","domainParts","extension","subdomain","clientToken","tags","COLLECT_FLUSH_REASON","count","lastFailureStatus","reverse","TAG_SIZE_LIMIT","buildTags","env","service","datacenter","buildTag","FORBIDDEN_CHARACTERS","rawValue","valueSizeLimit","sanitizedValue","computeTransportConfiguration","endpointBuilders","computeEndpointBuilders","intakeUrlPrefixes","builder","replicaConfiguration","computeReplicaConfiguration","isIntakeUrl","intakeEndpoint","replica","logsEndpointBuilder","rumEndpointBuilder","sessionReplayEndpointBuilder","replicaEndpointBuilders","applicationId","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","_c","sessionSampleRate","sampleRate","telemetrySampleRate","telemetryConfigurationSampleRate","enableExperimentalFeatures","beforeSend","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","serializeConfiguration","session_sample_rate","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","trackResources","track_long_task","trackLongTasks","allow_fallback_to_local_storage","store_contexts_across_pages","storeContextsAcrossPages","isMatchOption","itemType","matchList","useStartsWith","isTracingOption","expectedItem","propagatorTypes","clearTracingIfNeeded","status","isAborted","traceId","spanId","traceSampled","startTracer","sessionManager","traceFetch","injectHeadersIfTracingAllowed","tracingHeaders","input","Request","init","headers","append","headers_1","Headers","header","traceXhr","xhr","setRequestHeader","inject","isTracingSupported","findTrackedSession","tracingOption","allowedTracingUrls","TraceIdentifier","traceSampleRate","makeTracingHeaders","getCrypto","crypto","msCrypto","propagatorType","toDecimalString","traceparent","toPaddedHexadecimalString","b3","getRandomValues","radix","high","readInt32","low","mod","floor","validateAndBuildRumConfiguration","_d","_e","_f","sessionReplaySampleRate","premiumSampleRate","replaySampleRate","tracingSampleRate","excludedActivityUrls","validateAndBuildTracingOptions","baseConfiguration","trackUserInteractions","trackInteractions","trackFrustrations","actionNameAttribute","oldPlansBehavior","workerUrl","trackViewsManually","defaultPrivacyLevel","customerDataTelemetrySampleRate","allowedTracingOrigins","tracingOptions_1","option","tracingOptions_2","legacyMatchOption","convertLegacyMatchOptionToTracingOption","getSelectedTracingPropagators","usedTracingPropagators","serializeRumConfiguration","baseSerializedConfiguration","premium_sample_rate","replay_sample_rate","session_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","globalContextManager","userContextManager","recorderApi","hasReplay","isRecording","RUM_STORAGE_KEY","makeRumPublicApi","startRumImpl","ignoreInitIfSyntheticsWillInjectRum","isAlreadyInitialized","getInternalContextStrategy","getInitConfigurationStrategy","stopSessionStrategy","getSessionReplayLinkStrategy","bufferApiCalls","addTimingStrategy","startViewStrategy","addActionStrategy","action","commonContext","addErrorStrategy","providedError","addFeatureFlagEvaluationStrategy","initRum","eventBridgeAvailable","overrideInitConfigurationForBridge","canInitRum","beforeInitCalls","doStartRum","initialViewOptions","beforeInitGlobalContext","beforeInitUserContext","startRumResults","getSessionReplayLink","viewContexts","startView","addAction","addError","addTiming","addFeatureFlagEvaluation","getInternalContext","stopSession","onRumStart","lifeCycle","sanitizedOptions","rumPublicApi","addRumGlobalContext","setGlobalContextProperty","removeRumGlobalContext","removeGlobalContextProperty","getRumGlobalContext","getGlobalContext","setRumGlobalContext","setGlobalContext","clearGlobalContext","startTime","getInitConfiguration","setUser","getUser","setUserProperty","sanitizedProperty","removeUserProperty","removeUser","clearUser","startSessionReplayRecording","stopSessionReplayRecording","sendToExtension","payload","__ddBrowserSdkExtensionCallback","onRawTelemetryEventCollected","TelemetryType","ALLOWED_FRAME_URLS","TELEMETRY_EXCLUDED_SITES","telemetryConfiguration","maxEventsPerPage","sentEventCount","telemetryEnabled","telemetryConfigurationEnabled","startTelemetry","telemetryService","contextProvider","runtimeEnvInfo","getRuntimeEnvInfo","toTelemetryEvent","_dd","format_version","telemetry","runtime_env","experimental_features","rawEvent","event_1","addTelemetryError","setContextProvider","provider","enabled","is_local_file","is_worker","isTelemetryReplicationAllowed","addTelemetryDebug","addTelemetry","formatError","addTelemetryConfiguration","scrubCustomerFrames","allowedFrameUrl","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","createPageExitObservable","pagehideEnabled","stopListeners","reason","visibilityState","stopBeforeUnloadListener","isPageExitReason","createDOMMutationObservable","MutationObserver","getMutationObserverConstructor","observe","attributes","characterData","childList","subtree","disconnect","constructor","patchedInstance","originalInstance","runOnReadyState","expectedReadyState","readyState","FAKE_INITIAL_DOCUMENT","RESOURCE_TYPES","initiatorType","computeResourceKind","RESOURCE_TYPES_1","isType","areInOrder","numbers","isRequestKind","computePerformanceResourceDuration","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","isCommentNode","COMMENT_NODE","isElementNode","ELEMENT_NODE","isNodeShadowHost","shadowRoot","isNodeShadowRoot","DOCUMENT_FRAGMENT_NODE","getChildNodes","childNodes","getParentNode","parentNode","INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD","getDocumentTraceId","getDocumentTraceDataFromMeta","getDocumentTraceDataFromComment","traceTime","traceIdMeta","querySelector","traceTimeMeta","createDocumentTraceData","content","comment","findTraceComment","rawTraceTime","getTraceCommentFromNode","supportPerformanceObject","supportPerformanceTimingEvent","entryType","PerformanceObserver","supportedEntryTypes","startPerformanceCollection","retrieveInitialDocumentResourceTiming","handleRumPerformanceEntries","performanceEntries_1","getEntries","handlePerformanceEntryList_1","mainEntries","experimentalEntries","buffered","durationThreshold","mainObserver","entryTypes","clearResourceTimings","retrieveNavigationTiming","retrieveFirstInputTiming","forcedAttributes","getEntriesByType","navigationEntry","relativePerformanceTiming","computeRelativePerformanceTiming","sendFakeTiming","startTimeStamp","timingSent","removeEventListeners","evt","cancelable","processingStart","sendTimingIfPointerIsNotCancelled","sendTiming","numberKey","timingElement","rumPerformanceEntries","rumAllowedPerformanceEntries","isIncompleteNavigation","isForbiddenResource","loadEventEnd","ErrorSource","AGENT","CONSOLE","CUSTOM","LOGGER","NETWORK","SOURCE","REPORT","createEventRateLimiter","limit","onLimitReached","eventCount","allowNextEvent","isLimitReached","getSyntheticsContext","testId","resultId","test_id","result_id","injected","getCiTestContext","testExecutionId","Cypress","test_execution_id","limitModification","modifiableFieldPaths","modifier","clone","fieldPath","fieldType","newValue","newType","current","field","isValidObjectContaining","fields","isValidObject","modifiableFieldPathsByEvent","VIEW_MODIFIABLE_FIELD_PATHS","USER_CUSTOMIZABLE_FIELD_PATHS","startRumAssembly","urlContexts","actionContexts","displayContext","buildCommonContext","reportError","eventRateLimiters","syntheticsContext","ciTestContext","rawRumEvent","domainContext","savedCommonContext","customerContext","viewContext","findView","urlContext","findUrl","actionId","findActionId","rumContext","drift","plan","browser_sdk_version","application","view","referrer","needToAssembleWithAction","synthetics","ci_test","serverRumEvent","has_replay","usr","shouldSend","rateLimitReached","startInternalContext","application_id","session_id","user_action","xhrObservable","AbstractLifeCycle","callbacks","eventCallbacks","LifeCycle","END_OF_TIMES","Infinity","CLEAR_OLD_VALUES_INTERVAL","ValueHistory","maxEntries","clearOldValuesInterval","clearOldValues","endTime","close","closeActive","latestEntry","findAll","reset","oldTimeThreshold","VIEW_CONTEXT_TIME_OUT_DELAY","startViewContexts","viewContextHistory","buildViewContext","endClocks","instrumentMethod","instrumentationFactory","instrumentation","instrumentationWrapper","instrumentMethodAndCallOriginal","before","instrumentSetter","originalDescriptor","getOwnPropertyDescriptor","thisObject","fetchObservable","xhrContexts","initXhrObservable","createXhrObservable","stopInstrumentingStart","XMLHttpRequest","openXhr","stopInstrumentingSend","sendXhr","stopInstrumentingAbort","abortXhr","state","startContext","hasBeenReported","stopInstrumentingOnReadyStateChange","DONE","onEnd","unsubscribeLoadEndListener","completeContext","initFetchObservable","createFetchObservable","fetch","originalFetch","responsePromise","afterSend","reportFetch","DOMException","code","ABORT_ERR","responseType","isServerError","tryToClone","readBytesFromStream","stream","reader","getReader","chunks","readBytesCount","readMore","read","done","onDone","collectStreamBody","bytesLimit","bytes","limitExceeded","catch","completeBuffer_1","offset_1","chunk","nextRequestIndex","startRequestCollection","tracer","trackXhr","trackFetch","requestIndex","getNextRequestIndex","waitForResponseToComplete","clonedResponse","POSITIVE_INFINITY","trackEventCounts","isChildEvent","onChange","eventCounts","errorCount","longTaskCount","resourceCount","actionCount","frustrationCount","frustration","discarded","PAGE_ACTIVITY_VALIDATION_DELAY","PAGE_ACTIVITY_END_DELAY","waitPageActivityEnd","domMutationObservable","pageActivityEndCallback","maxDuration","pageActivityObservable","createPageActivityObservable","doWaitPageActivityEnd","pageActivityEndTimeoutId","hasCompleted","validationTimeoutId","complete","hadActivity","maxDurationTimeoutId","pageActivitySubscription","isBusy","lastChangeTime","firstRequestIndex","pendingRequestsCount","notifyPageActivity","isExcludedUrl","startEvent","stopTrackingWindowOpen","trackWindowOpen","requestUrl","MAX_DURATION_BETWEEN_CLICKS","MAX_DISTANCE_BETWEEN_CLICKS","createClickChain","firstClick","onFinalize","maxDurationBetweenClicksTimeoutId","bufferedClicks","appendClick","click","stopObservable","tryFinalize","dontAcceptMoreClick","every","isStopped","tryAppend","areEventsSimilar","first","second","mouseEventDistance","sqrt","pow","clientX","clientY","DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE","getActionNameFromElement","userProgrammaticAttribute","getActionNameFromElementProgrammatically","getActionNameFromElementForStrategies","priorityStrategies","fallbackStrategies","targetElement","programmaticAttribute","elementWithAttribute","supportsElementClosest","closest","hasAttribute","parentElement","getAttribute","truncate","normalizeWhitespace","trim","supportsLabelPropertyResult","supportsElementClosestResult","supportsLabelProperty","labels","getTextualContent","label","ownerDocument","querySelectorAll","htmlFor","nodeName","labelledByAttribute","getElementById","MAX_PARENTS_TO_CONSIDER","strategies","recursionCounter","strategies_1","strategy","name_1","trimmedName","refElement","isContentEditable","text_1","innerText","removeTextFromElements","query","element_1","textToReplace","supportsInnerTextScriptAndStyleRemoval","textContent","HTMLInputElement","HTMLElement","supportScopeSelectorCache","STABLE_ATTRIBUTES","GLOBALLY_UNIQUE_SELECTOR_GETTERS","getStableAttributeSelector","getIDSelector","UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS","getClassSelector","getTagNameSelector","getSelectorFromElement","targetElementSelector","globallyUniqueSelector","findSelector","isSelectorUniqueGlobally","uniqueSelectorAmongChildren","isSelectorUniqueAmongSiblings","combineSelector","getPositionSelector","isGeneratedValue","tagName","classList","className","getAttributeSelector","STABLE_ATTRIBUTES_1","attributeName","sibling","firstElementChild","elementIndex","nextElementSibling","selectorGetters","childSelector","selectorGetters_1","selectorGetter","elementSelector","fullSelector","supportScopeSelector","parent","child","listenActionEvents","selectionEmptyAtPointerDown","clickContext","onPointerDown","onPointerUp","userActivity","selection","listeners","isValidPointerEvent","isSelectionEmpty","localUserActivity_1","getSelection","isCollapsed","Element","isPrimary","MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE","computeFrustration","clicks","rageClick","addFrustration","isDead","hasError","isRage","hasSelectionChanged","getUserActivity","DEAD_CLICK_EXCLUDE_SELECTOR","hasPageActivity","CLICK_ACTION_MAX_DURATION","ACTION_CONTEXT_TIME_OUT_DELAY","trackClickActions","currentClickChain","history","stopClickChain","stopActionEventsListener","pointerDownEvent","processPointerDown","clickActionBase","hadActivityOnPointerDown","startClickAction","appendClickToClickChain","rageClick_1","finalizeClicks","computeClickActionBase","pageActivityEndEvent","newClick","stopWaitPageActivityEnd","discard","validate","viewEndedSubscription","stopSubscription","rect","getBoundingClientRect","width","height","position","left","y","top","activityEndTime","historyEntry","eventCountsSubscription","frustrationTypes","newActivityEndTime","frustrationType","domEvents","clickAction","counts","events","startActionCollection","pageStateHistory","processAction","autoActionProperties","isAutoAction","loading_time","long_task","resource","actionEvent","in_foreground","isInActivePageStateAt","ERROR_TYPES_RE","startUnhandledErrorCollection","stopInstrumentingOnError","instrumentOnError","stopInstrumentingOnUnhandledRejection","instrumentUnhandledRejection","messageObj","errorObj","tryToParseMessage","trackRuntimeError","errorObservable","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","createConsoleObservable","originalConsoleApi","buildConsoleLog","param","formatConsoleParameters","firstErrorParam","trackConsoleError","consoleError","RawReportType","intervention","deprecation","cspViolation","initReportObservable","createCspViolationReportObservable","reportTypes","createReportObservable","ReportingObserver","handleReports","reports","report","buildRawReportFromReport","types","buildRawReportFromCspViolation","subtype","buildStack","sourceFile","lineNumber","columnNumber","blockedURI","effectiveDirective","originalPolicy","trackReportError","startErrorCollection","featureFlagContexts","doStartErrorCollection","processError","rawError","handling_stack","source_type","featureFlagContext","findFeatureFlagEvaluations","feature_flags","startLongTaskCollection","entries_1","longTaskAllowed","performanceEntry","matchRequestTiming","sameNameEntries","getEntriesByName","candidates","isBetween","errorMargin","startResourceCollection","processRequest","processResourceEntry","matchingTiming","correspondingTimingOverrides","computePerformanceEntryMetrics","tracingInfo","computeRequestTracingInfo","indexingInfo","computeIndexingInfo","computeRequestDuration","pageStateInfo","computePageStateInfo","resourceEvent","status_code","toPerformanceEntryRepresentation","requestInput","requestInit","entryMetrics","computeEntryTracingInfo","hasBeenTraced","span_id","trace_id","rule_psr","getRulePsr","resourceStart","resourceAllowed","RESOURCE_PAGE_STATES","page_states","page_was_discarded","wasDiscarded","NO_RESOURCE_DURATION_FROZEN_STATE","requestCrossedFrozenState","pageState","mapToForegroundPeriods","pageStateServerEntries","foregroundPeriods","trackViewEventCounts","viewId","FCP_MAXIMUM_DELAY","trackFirstContentfulPaint","firstHidden","unsubscribeLifeCycle","fcpEntry","trackFirstInputTimings","firstInputEntry","firstInputDelay","firstInputTime","firstInputTarget","trackNavigationTimings","domComplete","domContentLoaded","domContentLoadedEventEnd","domInteractive","loadEvent","firstByte","viewportObservable","LCP_MAXIMUM_DELAY","trackLargestContentfulPaint","firstInteractionTimestamp","stopEventListener","lcpEntry","trackFirstHidden","trackInitialViewMetrics","webVitalTelemetryDebug","setLoadEvent","scheduleViewUpdate","initialViewMetrics","setMetrics","newMetrics","stopNavigationTracking","navigationTimings","stopFCPTracking","firstContentfulPaint","stopLCPTracking","largestContentfulPaint","lcpElement","addWebVitalTelemetryDebug","stopFIDTracking","getScrollX","scrollX","visual","visualViewport","pageLeft","offsetLeft","pageXOffset","getScrollY","scrollY","pageTop","offsetTop","pageYOffset","initViewportObservable","createViewportObservable","updateDimension","getViewportDimension","scale","innerWidth","innerHeight","THROTTLE_SCROLL_DURATION","trackScrollMetrics","viewStart","getScrollValues","computeScrollValues","maxDepth","handleScrollEvent","scrollHeight","scrollDepth","scrollTop","maxDepthTime","maxDepthScrollHeight","maxDepthScrollTop","scrollingElement","documentElement","trackLoadingTime","loadType","isWaitingForLoadEvent","isWaitingForActivityLoadingTime","loadingTimeCandidates","invokeCallbackIfAllCandidatesAreReceived","max","trackCumulativeLayoutShift","maxClsValue","slidingSessionWindow","hadRecentInput","update","largestLayoutShiftNode","largestLayoutShiftTime","largestLayoutShift","shouldCreateNewWindow","largestLayoutShiftSource","isLayoutShiftSupported","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","initInteractionCountPolyfill","interactionId","min","getInteractionCount","interactionCount","MAX_INTERACTION_ENTRIES","trackInteractionToNextPaint","viewLoadingType","isInteractionToNextPaintSupported","INTERACTION_TO_NEXT_PAINT","getInteractionToNextPaint","getViewInteractionCount","trackViewInteractionCount","longestInteractions","trackLongestInteractions","inpDuration","newInpDuration","estimateP98Duration","sortAndTrimLongestInteractions","sort","interactionIndex","findIndex","interaction","minLongestInteraction","previousInteractionCount","PerformanceEventTiming","trackCommonViewMetrics","loadingType","stopCLSTracking","commonViewMetrics","newLoadingTime","loadingTime","scroll","stopLoadingTimeTracking","stopScrollMetricsTracking","newScrollMetrics","clsAttributionCollected","cumulativeLayoutShift","stopINPTracking","getCommonViewMetrics","interactionToNextPaint","THROTTLE_VIEW_UPDATE_PERIOD","SESSION_KEEP_ALIVE_INTERVAL","KEEP_TRACKING_AFTER_VIEW_DELAY","trackViews","locationChangeObservable","areViewsTrackedAutomatically","locationChangeSubscription","activeViews","currentView","startNewView","viewOptions","newlyCreatedView","newView","delete","startViewLifeCycle","sessionIsActive","pageExitEvent","renewViewOnLocationChange","oldLocation","newLocation","areDifferentLocation","initialLocation","customTimings","documentVersion","triggerViewUpdate","cancelScheduleViewUpdate","stopCommonViewMetricsTracking","stopInitialViewMetricsTracking","stopEventCountsTracking","keepAliveIntervalId","currentEnd","isActive","sanitizeTiming","sanitized","currentLocation","otherLocation","isHashAnAnchor","hash","getPathFromHash","correspondingId","substr","startViewCollection","processViewUpdate","replayStats","getReplayStats","pageStatesEnabled","PAGE_STATES","pageStates","viewEvent","document_version","replay_stats","cumulative_layout_shift","dom_complete","dom_content_loaded","dom_interactive","first_contentful_paint","first_input_delay","first_input_time","interaction_to_next_paint","is_active","largest_contentful_paint","load_event","discardNegativeDuration","loading_type","time_spent","in_foreground_periods","max_depth","max_depth_scroll_height","max_depth_scroll_top","max_depth_time","privacy","replay_level","custom_timings","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","sessionContextHistory","buildSessionContext","trackActivity","trackVisibility","findActiveSession","expandSessionWhenVisible","visibilityCheckInterval","startRumSessionManager","rawTrackingType","isTypeTracked","sessionReplayAllowed","startRumSessionManagerStub","hasValidRumSession","rumSessionType","Batch","flushController","pushOnlyBuffer","upsertBuffer","flushSubscription","flushObservable","flush","addOrUpdate","upsert","messages","sendOnExit","processedMessage","messageBytesCount","hasMessageFor","separatorBytesCount","messagesCount","notifyBeforeAddMessage","notifyAfterAddMessage","removedMessage","notifyAfterRemoveMessage","MAX_ONGOING_BYTES_COUNT","MAX_ONGOING_REQUESTS","MAX_QUEUE_BYTES_COUNT","MAX_BACKOFF_TIME","INITIAL_BACKOFF_TIME","sendWithRetryStrategy","sendStrategy","transportStatus","queuedPayloads","bandwidthMonitor","canHandle","onSuccess","retryQueuedPayloads","onFailure","enqueue","scheduleRetry","dequeue","currentBackoffTime","shouldRetryRequest","ongoingRequestCount","isFull","queueFullReported","previousQueue","newPayloadQueue","onLine","newRetryState","newBandwidthMonitor","ongoingByteCount","createHttpRequest","endpointBuilder","retryState","sendStrategyForRetry","onResponse","fetchKeepAliveStrategy","sendBeaconStrategy","canUseBeacon","sendBeacon","beaconUrl","isQueued","reportBeaconError","xhrUrl","sendXHR","hasReportedBeaconError","canUseKeepAlive","isKeepAliveSupported","fetchUrl","keepalive","mode","open","createFlushController","durationLimitTimeoutId","messagesLimit","durationLimit","pageExitObservable","sessionExpireObservable","pageExitSubscription","sessionExpireSubscription","currentBytesCount","currentMessagesCount","cancelDurationLimitTimeout","scheduleDurationLimitTimeout","startBatchWithReplica","primary","primaryBatch","createBatch","endpoint","replicaBatch","replicated","transformMessage","startRumBatch","telemetryEventObservable","batch","startRumEventBridge","URL_CONTEXT_TIME_OUT_DELAY","startUrlContexts","previousViewUrl","urlContextHistory","viewUrl","buildUrlContext","changeTime","createLocationChangeObservable","stopHistoryTracking","trackHistory","onLocationChange","stopHashTracking","trackHash","onHistoryChange","stopInstrumentingPushState","stopInstrumentingReplaceState","removeListener","onHashChange","FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY","startFeatureFlagContexts","FEATURE_FLAGS","getFeatureFlagBytesCount","cancelPendingComputation","currentContext","currentPeriodMeasures","currentBatchMeasures","batchHasRumEvent","MEASURES_PERIOD_DURATION","startCustomerDataTelemetry","batchFlushObservable","customerDataTelemetryEnabled","initCurrentPeriodMeasures","initCurrentBatchMeasures","updateMeasure","globalContextBytes","userContextBytes","hasFeatureFlagContext","featureFlagBytes","batchCount","batchBytesCount","batchMessagesCount","mergeMeasure","sendCurrentPeriodMeasures","createMeasure","sum","measure","MAX_PAGE_STATE_ENTRIES","MAX_PAGE_STATE_ENTRIES_SELECTABLE","PAGE_STATE_CONTEXT_TIME_OUT_DELAY","startPageStateHistory","maxPageStateEntriesSelectable","currentPageState","addPageState","getPageState","stopEventListeners","computePageState","nextPageState","eventStartTime","pageStateEntries","relativeStartTime","pageStateEntry","persisted","hasFocus","startWebVitalTelemetryDebug","webVitalTelemetryEnabled","webVitalName","webVitalNode","webVitalTime","computationTime","recorderStartObservable","recordingStartTime","computationDelay","recordingDelay","hasNode","serializedDomNode","getSerializedNodeId","replayRecording","replaySampled","startDisplayContext","viewport","unsubscribeViewport","viewportDimension","startRum","cleanupTasks","startRumTelemetry","batch_1","startRumEventCollection","stopRumEventCollection","stopViewCollection","internalContext","task","bridge_1","getSessionReplayUrl","errorType","sessionId","getDatadogSiteUrl","rumConfiguration","getSiteDefaultSubdomain","RecordType","FullSnapshot","IncrementalSnapshot","Meta","Focus","ViewEnd","VisualViewport","FrustrationRecord","NodeType","Document","DocumentType","Text","CDATA","DocumentFragment","IncrementalSource","Mutation","MouseMove","MouseInteraction","Scroll","ViewportResize","Input","TouchMove","MediaInteraction","StyleSheetRule","MouseInteractionType","MouseUp","MouseDown","Click","ContextMenu","DblClick","Blur","TouchStart","TouchEnd","MediaInteractionType","Play","Pause","assembleIncrementalSnapshot","NodePrivacyLevel","IGNORE","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","CENSORED_STRING_MARK","CENSORED_IMG_MARK","FORM_PRIVATE_TAG_NAMES","INPUT","OUTPUT","TEXTAREA","SELECT","OPTION","DATALIST","OPTGROUP","MAX_ATTRIBUTE_VALUE_CHAR_LENGTH","TEXT_MASKING_CHAR","getNodePrivacyLevel","parentNodePrivacyLevel","selfNodePrivacyLevel","getNodeSelfPrivacyLevel","reducePrivacyLevel","childPrivacyLevel","privAttr","inputElement","autocomplete","contains","shouldIgnoreElement","shouldMaskNode","privacyLevel","isFormElement","censorText","text","getTextContent","textNode","ignoreWhiteSpace","parentTagName","nodePrivacyLevel","isScript","relAttribute","getLowerCaseAttribute","nameAttribute","propertyAttribute","hasSerializedNode","nodeAndAncestorsHaveSerializedNode","setSerializedNodeId","serializeNodeId","getElementInputValue","URL_IN_CSS_REF","ABSOLUTE_URL","DATA_URI","switchToAbsoluteUrl","cssText","cssHref","matchingSubstring","singleQuote","urlWrappedInSingleQuotes","doubleQuote","urlWrappedInDoubleQuotes","urlNotWrappedInQuotes","quote","makeUrlAbsolute","baseUrl","TAG_NAME_REGEX","getValidTagName","processedTagName","serializeStyleSheets","cssStyleSheets","cssStyleSheet","rules","cssRules","cssRule","styleSheet","disabled","media","serializeAttribute","attributeValue","serializeAttributes","safeAttrs","attribute","formValue","optionElement","selected","stylesheet","styleSheets","getCssRulesString","DISABLE_REPLAY_INLINE_CSS","_cssText","sheet","scrollLeft","checked","mediaElement","rr_mediaState","paused","serializationContext","elementsScrollPositions","rr_scrollLeft","rr_scrollTop","styleSheetCssText","getCssRuleString","rule","isCSSImportRule","serializeNodeWithId","serializedNode","serializeNode","generateNextId","serializedNodeWithId","serializedNodeIds","_nextId","serializeChildNodes","childNode","serializedChildNode","DOCUMENT_NODE","serializeDocumentNode","serializeDocumentFragmentNode","DOCUMENT_TYPE_NODE","serializeDocumentTypeNode","serializeElementNode","serializeTextNode","CDATA_SECTION_NODE","serializeCDataNode","adoptedStyleSheets","isShadowRoot","shadowRootsController","addShadowRoot","documentType","publicId","systemId","isSVG","isSVGElement","rr_width","rr_height","childNodesSerializationOptions","el","SVGElement","serializeDocument","isTouchEvent","changedTouches","getEventTarget","composed","composedPath","TOLERANCE","isVisualViewportFactoredIn","abs","convertMouseEventToLayoutCoordinates","normalized","layoutViewportX","layoutViewportY","visualViewportX","visualViewportY","getVisualViewport","MOUSE_MOVE_OBSERVER_THRESHOLD","initMoveObserver","cb","updatePosition","coordinates","tryToComputeCoordinates","timeOffset","isFinite","SCROLL_OBSERVER_THRESHOLD","initScrollObserver","scrollPositions","eventTypeToMouseInteraction","initMouseInteractionObserver","recordIds","handler","record","getIdForEvent","initInputObserver","stopPropertySetterInstrumentation","lastInputStateMap","HTMLTextAreaElement","HTMLSelectElement","onElementChange","instrumentationStoppers_1","stopper","inputState","isChecked","cbWithDedup","lastInputState","initStyleSheetObserver","checkStyleSheetAndCallback","ownerNode","instrumentationStoppers","CSSStyleSheet","adds","removes","instrumentGroupingCSSRuleClass","cls","parentStyleSheet","getPathToNestedCSSRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","currentRule","parentRule","rules_1","index_1","initMediaInteractionObserver","mediaInteractionCb","initFrustrationObserver","frustrationCb","VISUAL_VIEWPORT_OBSERVER_THRESHOLD","initViewportResizeObserver","initVisualViewportResizeObserver","cancelThrottle","MUTATION_PROCESS_MAX_DELAY","createMutationBatch","processMutationBatch","cancelScheduledFlush","pendingMutations","addMutations","mutations","requestIdleCallback","timeout","opts","cancelIdleCallback","id_1","requestAnimationFrame","cancelAnimationFrame","initMutationObserver","mutationCallback","mutationBatch","processMutations","takeRecords","attributeOldValue","characterDataOldValue","mutation","removedNodes","removedNode","traverseRemovedShadowDom","removeShadowRoot","filteredMutations","processChildListMutations","hasBeenSerialized","texts","processCharacterDataMutations","processAttributesMutations","addedAndMovedNodes","Map","_loop_1","addedNodes","mutations_1","sortedAddedAndMovedNodes","sortAddedAndMovedNodes","addedNodeMutations","sortedAddedAndMovedNodes_1","nextId","getNextSibling","parentId","removedNodeMutations","nextSibling","textMutations","handledNodes","filteredMutations_1","oldValue","attributeMutations","handledElements","handledAttributes","emittedMutations","filteredMutations_2","uncensoredValue","transformedValue","inputValue","emittedMutation","nodes","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","shadowDomRemovedCallback","initFocusObserver","focusCb","has_focus","initRecordIds","initObservers","o","mutationHandler","mutationCb","mousemoveHandler","mousemoveCb","mouseInteractionHandler","mouseInteractionCb","scrollHandler","scrollCb","viewportResizeHandler","viewportResizeCb","inputHandler","inputCb","mediaInteractionHandler","styleSheetObserver","styleSheetCb","focusHandler","visualViewportResizeHandler","visualViewportResizeCb","frustrationHandler","createElementsScrollPositions","scrollPositionsByElement","initShadowRootsController","controllerByShadowRoot","stopMutationObserver","stopInputObserver","emit","takeFullSnapshot","initialOffset","p","mouseInteractionRecord","positions","r","d","frustrationRecord","stopObservers","flushMutationsFromObservers","flushMutations","takeSubsequentFullSnapshot","buildReplayPayload","metadata","rawSegmentBytesCount","formData","FormData","metadataAndSegmentSizes","raw_segment_size","compressed_segment_size","byteLength","serializedMetadataAndSegmentSizes","statsPerView","MAX_STATS_HISTORY","getSegmentsCount","getOrCreateReplayStats","segments_count","addSegment","records_count","addWroteData","additionalBytesCount","segments_total_raw_size","deleteOldestStats","isFirst_1","_value","Segment","encoder","creationReason","creation_reason","has_full_snapshot","index_in_view","addRecord","segment","prefix","write","rawBytesCount","SEGMENT_DURATION_LIMIT","SEGMENT_BYTES_LIMIT","startSegmentCollection","httpRequest","doStartSegmentCollection","computeSegmentContext","getSegmentContext","nextSegmentCreationReason","unsubscribeViewCreated","flushSegment","unsubscribePageExited","encodedBytes","expirationTimeoutId","encodedBytesCount","startRecording","replayRequest","stopSegmentCollection","stopRecording","unsubscribeViewEnded","isBrowserSupported","createObjectURL","NodeList","isRecordingStarted","getErrorType","createDeflateEncoder","worker","streamId","compressedDataTrailer","compressedData","nextWriteActionId","pendingWriteActions","removeMessageListener","nextPendingAction","trailer","postMessage","INITIALIZATION_TIME_OUT_DELAY","createDeflateWorker","Worker","startDeflateWorker","onInitializationFailure","createDeflateWorkerImpl","doStartDeflateWorker","initializationFailureCallbacks","getDeflateWorkerStatus","removeErrorListener_1","onError","removeMessageListener_1","onInitialized","onTimeout","stop_1","isMessageCspRelated","baseMessage","worker_version","stream_id","makeRecorderApi","startRecordingImpl","startStrategy","stopStrategy","datadogRum","$keys","enumBugKeys","arr","cof","arg","pIE","createDesc","toIObject","toPrimitive","IE8_DOM_DEFINE","gOPD","dP","getKeys","defineProperties","Properties","defer","channel","port","invoke","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","ONREADYSTATECHANGE","run","Function","nextTick","port2","port1","onmessage","importScripts","removeChild","setTimeout","clear","thisArg","asyncGeneratorStep","gen","reject","_next","_throw","_asyncToGenerator","iterator","ret","toByteArray","fromByteArray","lookup","revLookup","Arr","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","encodeChunk","uint8","output","extraBytes","maxChunkLength","len2","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","string","isObject","is","it","ARG","tryGet","T","B","callee","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","getDefaultAdapter","adapter","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","common","getOwnPropertySymbols","classof","getIteratorMethod","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","_injectStyles","originalRender","h","existing","beforeCreate","isRegExp","advanceStringIndex","callRegExpExec","$min","$push","$SPLIT","LENGTH","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","separator","lastIndex","lastLength","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","A","z","_install","_mixin","_gettingStrategy","_directive","_directive2","_interopRequireDefault","obj","__esModule","default","_Vue","initial","languages","save","middleware","gettingStrategy","mixin","register","GettingStrategy","SRC","$toString","TPL","inspectSource","safe","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","style","src","contentWindow","emptyObject","freeze","isUndef","v","isDef","isTrue","isFalse","isPrimitive","_toString","isPlainObject","isValidArrayIndex","n","parseFloat","isPromise","toNumber","isNaN","makeMap","expectsLowerCase","isReservedAttribute","remove$2","hasOwn","cached","cache","hit","camelizeRE","camelize","c","toUpperCase","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","toArray","extend","_from","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","looseIndexOf","called","hasChanged","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","writable","bailRE","parsePath","segments","hasProto","inBrowser","UA","isIE9","isEdge","isIOS","_isServer","isFF","nativeWatch","watch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","Ctor","_Set","hasSymbol","Symbol","Reflect","ownKeys","currentInstance","getCurrentInstance","setCurrentInstance","vm","_scope","off","on","VNode","tag","children","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","uid$2","pendingCleanupDeps","cleanupDeps","dep","subs","_pending","Dep","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","arrayProto","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","arrayKeys","getOwnPropertyNames","NO_INIITIAL_VALUE","shouldObserve","toggleObserving","mockDep","Observer","shallow","mock","vmCount","__proto__","defineReactive","ssrMockReactivity","isExtensible","__v_skip","isRef","customSetter","getter","setter","childOb","dependArray","newVal","isReadonly","_isVue","del","reactive","makeReactive","shallowReactive","isReactive","isShallow","__v_isShallow","__v_isReadonly","isProxy","toRaw","observed","markRaw","RefFlag","__v_isRef","ref$1","createRef","shallowRef","ref","triggerRef","unref","proxyRefs","objectWithRefs","proxyWithRefUnwrap","customRef","factory","toRefs","toRef","defaultValue","rawToReadonlyFlag","rawToShallowReadonlyFlag","readonly","createReadonly","existingFlag","existingProxy","defineReadonlyProperty","shallowReadonly","computed","getterOrOptions","debugOptions","onlyGetter","watcher","Watcher","lazy","effect","dirty","evaluate","WATCHER","WATCHER_CB","WATCHER_GETTER","WATCHER_CLEANUP","watchEffect","doWatch","watchPostEffect","watchSyncEffect","activeEffectScope","INITIAL_WATCHER_VALUE","immediate","deep","onTrack","onTrigger","cleanup","instance","invokeWithErrorHandling","forceTrigger","isMultiSource","traverse","_isDestroyed","onCleanup","baseGetter_1","onStop","noRecurse","active","post","queueWatcher","_isMounted","_preWatchers","$once","teardown","EffectScope","detached","effects","cleanups","scopes","currentEffectScope","fromParent","last","effectScope","recordEffectScope","scope","getCurrentScope","onScopeDispose","provide","resolveProvided","_provided","parentProvides","$parent","treatDefaultAsFactory","provides","normalizeEvent","createFnInvoker","invoker","updateListeners","oldOn","createOnceHandler","cur","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","extractPropsFromVNodeData","propOptions","props","attrs","altKey","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","nestedIndex","_isVList","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","$scopedSlots","$slots","slot","$createElement","resolveFilter","resolveAsset","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","$key","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_m","_k","_v","_u","_g","_p","resolveSlots","slots","name_2","isWhitespace","normalizeScopedSlots","ownerVm","scopedSlots","normalSlots","prevScopedSlots","hasNormalSlots","isStable","_normalized","$hasNormal","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","initSetup","setup","_setupContext","createSetupContext","setupResult","_props","_setupState","__sfc","_setupProxy","_attrsProxy","syncSetupProxy","$attrs","_listenersProxy","$listeners","initSlotsProxy","$emit","expose","exposed","prev","changed","defineProxyAttr","_slotsProxy","syncSetupSlots","useSlots","useAttrs","useListeners","mergeDefaults","opt","initRender","_vnode","parentVnode","_parentVnode","renderContext","_renderChildren","createElement$1","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","$nextTick","_render","handleError","ensureCtor","comp","toStringTag","createAsyncPlaceholder","resolveAsyncComponent","baseCtor","errorComp","resolved","owner","owners","loading","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","$on","forceRender_1","renderCompleted","$forceUpdate","clearTimeout","reject_1","res_1","component","getFirstComponentChild","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","createComponent","applyNS","registerDeepBindings","force","class","hooks","errorCaptured","globalHandleError","_handled","logError","timerFunc","isUsingMicroTask","pending","flushCallbacks","copies","p_1","counter_1","textNode_1","createTextNode","_resolve","useCssModule","useCssVars","$el","vars","setProperty","defineAsyncComponent","loader","loadingComponent","errorComponent","userOnError","suspensible","pendingRequest","retries","load","thisRequest","userRetry","userFail","createLifeCycle","hookName","injectHook","mergeLifecycleHook","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","injectErrorCapturedHook","onErrorCaptured","defineComponent","seenObjects","_traverse","seen","isA","isFrozen","depId","target$1","uid$1","expOrFn","isRenderWatcher","_vm","_watcher","sync","deps","newDeps","depIds","newDepIds","expression","_isBeingDestroyed","initEvents","_events","_hasHookEvent","updateComponentListeners","add$1","remove$1","$off","createOnceHandler$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","i_1","cbs","activeInstance","setActiveInstance","prevActiveInstance","initLifecycle","abstract","$children","$refs","_inactive","_directInactive","lifecycleMixin","_update","hydrating","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","wrapper","$destroy","callHook$1","_data","mountComponent","updateComponent","watcherOptions","preWatchers","updateChildComponent","propsData","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","prevVNode","prevListeners","propKeys","_propKeys","validateProp","isInInactiveTree","activateChildComponent","direct","deactivateChildComponent","handlers","j","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","performance_1","createEvent","sortCompareFn","flushSchedulerQueue","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueActivatedComponent","initProvide","provideOption","provided","initInjections","resolveInject","provideKey","provideDefault","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","createFunctionalComponent","mergeProps","cloneAndMarkFunctionalResult","vnodes","getComponentName","__name","_componentTag","componentVNodeHooks","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","$mount","oldVnode","insert","destroy","hooksToMerge","_base","cid","resolveConstructorOptions","model","transformModel","nativeOn","installComponentHooks","_isComponent","inlineTemplate","toMerge","_merged","mergeHook","f1","f2","prop","strats","mergeData","recursive","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","defaultStrat","normalizeProps","normalizeInject","normalizeDirectives$1","dirs","directives","mergeOptions","extends","mixins","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","functionTypeCheckRE","isSameType","expectedTypes","sharedPropertyDefinition","sourceKey","initState","initProps$1","initMethods","initData","initComputed$1","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","uid","initMixin$1","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","modified","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","install","initMixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps","initComputed","Comp","initAssetRegisters","definition","_getComponentName","pattern","pruneCache","keepAliveInstance","pruneCacheEntry","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","destroyed","mounted","updated","builtInComponents","initGlobalAPI","configDef","util","acceptValue","attr","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","unknownElementCache","HTMLUnknownElement","isTextInputType","multiple","setAttribute","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","refs","setSetupRef","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","i_3","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","i_5","hydrate","postpatch","invokeInsertHook","i_6","isRenderedModule","inVPre","hasChildNodes","innerHTML","childrenMatch","firstChild","i_7","fullInvoke","isInitialPatch","isRealElement","removeAttribute","oldElm","_leaveCb","patchable","i_8","i_9","insert_1","i_10","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","setupDef","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","removeAttributeNS","isInPre","baseSetAttr","setAttributeNS","__ieph","blocker_1","stopImmediatePropagation","removeEventListener","updateClass","oldData","transitionClass","_transitionClasses","_prevClass","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","useMicrotaskFix","attachedTimestamp_1","original_1","_wrapper","currentTarget","updateDOMListeners","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","number","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","selectedIndex","initEvent","dispatchEvent","locateNode","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave_1","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","offsetHeight","moved","el_1","transform","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","dy","platformComponents","store","USE_SYMBOL","$exports","enhanceError","repeat","maxLength","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","__CANCEL__","applyMixin","vuexInit","$store","devtoolHook","devtoolPlugin","_devtoolHook","targetState","replaceState","prepend","subscribeAction","deepCopy","copy","forEachValue","partial","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors","namespaced","addChild","getChild","hasChild","actions","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","targetModule","newModule","root","getNamespace","this$1","rawChildModule","unregister","isRegistered","Store","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","commit","installModule","resetStoreVM","useDevtools","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","registerGetter","noNamespace","_type","_payload","_options","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","rawGetter","all","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","createLogger","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","startMessage","endMessage","formattedAction","groupCollapsed","group","groupEnd","pad","getHours","getMinutes","getSeconds","getMilliseconds","times","INCLUDES","searchString","serializedParams","isDate","toISOString","hashmarkIndex","un","ArrayProto","LogLevel","MLBuilder","MLanguage","MLCreate","MLInstaller","_createClass","descriptor","protoProps","staticProps","_install2","_classCallCheck","TypeError","database","_with","isAxiosError","fileName","ObjectProto","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","requestURL","parsed","isString","t","m","X","toLocaleUpperCase","toLocaleLowerCase","mask","tokens","u","getElementsByTagName","oninput","selectionEnd","setSelectionRange","required","masked","lastValue","refresh","onInput","esModule","inheritIfRequired","gOPN","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","TextMessageFormat","RecordSeparator","RecordSeparatorCode","fromCharCode","bitmap","__assign","assign","HttpResponse","statusCode","statusText","HttpClient","getCookieString","createError","regExpExec","MATCH","$match","fullUnicode","matchStr","isArrayIter","getIterFn","BREAK","RETURN","iterable","step","iterFn","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","deepMerge","axiosKeys","otherKeys","contentEditable","readOnly","createRange","selectNodeContents","removeAllRanges","addRange","select","execCommand","$clipboard","dataset","clipboardErrorHandler","clipboardSuccessHandler","clipboardClickHandler","requestModule","__extends","extendStatics","setPrototypeOf","__","requireFunc","NodeHttpClient","_super","cookieJar","jar","abortSignal","aborted","requestBody","Buffer","currentRequest","encoding","onabort","Warning","statusMessage","abort","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","PATCH","reCopy","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","propertyIsEnumerable","_typeof","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","aFunction","anInstance","forOf","microtask","newPromiseCapabilityModule","perform","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","ok","reaction","exited","fail","_h","onHandleUnhandled","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","G","W","capability","$$reject","iter","remaining","$index","alreadyCalled","race","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","SAFE_CLOSING","riter","skipClosing","builtinExec","shared","$includes","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","parseHandshakeResponse","responseMessage","messageData","remainingData","binaryData","separatorIndex","responseLength","textData","substring","valueOf","DESCRIPTORS","define","gOPS","$assign","K","k","aLen","getSymbols","isEnum","$find","forced","__g","Cancel","toGMTString","decodeURIComponent","isTextInput","isCheckboxOrRadioInput","isDateInput","getDataAttribute","isNaN$1","isNullOrUndefined","createFlags","untouched","touched","pristine","valid","invalid","validated","isEqual","lhs","rhs","getScope","form","getForm","getPath","hasPath","previousPath","isValidPath","reducer","parseRule","debounce","token","later","appendRule","normalizeRules","curr","parsedRule","isCallable","hasClass","reg","toggleClass","ensureArray","isEmptyArray","others","idTemplate","uniqId","newId","idx","isBuiltInComponent","makeDelayObject","delayConfig","deepParseInt","obj$1","fillRulesFromElement","minLength","timeFormat","parseSelector","collection","defineNonReactive","LOCALE","Dictionary","dictionary","container","locale","hasLocale","setDateFormat","format","dateFormat","getDateFormat","getMessage","hasMessage","_getDefaultMessage","getFieldMessage","dict","custom","_default","en","fallback","setMessage","drivers","currentDriver","DictionaryResolver","_checkDriverName","driver","setDriver","getDriver","ErrorBag","errorBag","vmId","items","_normalizeError","regenerate","msg","filterFn","matchesScope","matchesVM","any","collect","isSingleField","groupErrors","errors","_makeCandidateFilters","isAlt","collected","alt","firstById","_match","firstRule","firstByRule","firstNot","removeById","condition","shouldRemove","matchesRule","matchesName","isLast","DEFAULT_CONFIG","errorBagName","fieldsBagName","classes","classNames","fastExit","aria","validity","useConstraintAttrs","i18n","i18nRootKey","currentConfig","resolveConfig","selfConfig","getConfig","setConfig","newConf","findModel","extractChildren","extractVNodes","findModelConfig","mergeVNodeListeners","prevHandler","addNativeNodeListener","addComponentNodeListener","addVNodeListener","getInputEventName","normalizeSlots","createRenderless","Resolver","generate","resolveModel","resolveName","listen","disable","bails","continues","resolveScope","resolveGetter","resolveEvents","resolveDelay","resolveRules","persist","initialValue","resolveInitialValue","getCtorConfig","globalDelay","watchable","boundGetter","els","checkbox","files","RULES","RuleContainer","staticAccessors","paramNames","isImmediate","isRequireRule","computesRequired","isTargetRule","hasTarget","ruleName","getParamNames","getOptions","getValidatorMethod","isEvent","srcElement","evts","detectPassiveSupport","DEFAULT_OPTIONS","targetOf","Field","forceRequired","_cacheId","_delay","ctorConfig","validator","isRequired","isDisabled","alias","rejectsFalse","$validator","_alias","_bails","matchesComponentId","_veeValidateId","waitFor","pendingPromise","_waitingFor","isWaitingFor","updateDependencies","addActionListeners","resetFlag","addValueListeners","updateClasses","updateAriaAttrs","_cancellationToken","updateCustomValidity","setFlags","negated","dependencies","unwatch","w","isReset","applyClasses","onBlur","inputEvent","blurEvent","checkValueChanged","_determineInputEvent","_determineEventList","defaultInputEvent","_resolveField","watchCtxVm","debouncedFn","_addComponentEventListener","_addHTMLEventListener","addListener","applyAriaAttrs","setCustomValidity","FieldBag","itemsById","prototypeAccessors$2","matcher","findById","mapper","ScopedValidator","_paused","prototypeAccessors$3","acc","localize","attach","attachOpts","pause","resume","detach","verify","validateAll","validateScopes","VALIDATOR","getValidator","setValidator","requestsValidator","$__veeInject","$_veeValidate","requested","beforeDestroy","findField","fieldOptions","Validator","validations","pluginContainer","_createFields","$vee","prototypeAccessors$4","staticAccessors$1","_guardExtend","mergedOpts","_merge","lang","fieldOpts","oldFieldMatcher","oldField","_validate","fieldDescriptor","matched","_handleFieldNotFound","validationPromise","_handleValidationResults","providedValues","results","targetRules","targetKey","ruleMap","failedRules","_getDateFormat","date_format","_formatErrorMessage","targetName","_getFieldDisplayName","_getLocalizedParams","_convertParamObjectToArray","paramName","localizedName","_convertParamArrayToObj","hasKeys","_test","allValid","_createFieldError","fieldScope","fieldName","fullName","matchers","allErrors","_shouldSkip","_shouldBail","requireRules","ruleOptions","promises","isExitEarly","normalizeValue","normalizeFormat","I18nDictionary","rootKey","prototypeAccessors$5","getDateTimeFormat","setDateTimeFormat","dataOptions","te","fallbackLocale","localeKey","mergeLocaleMessage","pendingPlugins","pluginInstance","aggressive","eager","modes","VeeValidate$1","configure","_validator","_initVM","_initI18n","prototypeAccessors$6","i18nDriver","staticAccessors$2","setI18nDriver","cfg","setMode","Rules","onLocaleChanged","formatFileSize","units","isDefinedGlobally","VeeValidate","inclusion","alpha","alpha_dash","alpha_num","alpha_spaces","between","confirmed","credit_card","date_between","decimal","digits","dimensions","email","excluded","ext","image","included","integer","ip","ip_or_fqdn","max_value","mimes","min_value","numeric","required_if","dirtyNumber","NaN","MILLISECONDS_IN_MINUTE","getTimezoneOffsetInMilliseconds","dirtyDate","baseTimezoneOffset","getTimezoneOffset","setSeconds","millisecondsPartOfTimezoneOffset","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE$1","DEFAULT_ADDITIONAL_DIGITS","patterns","dateTimeDelimeter","plainTime","timeZoneDelimeter","YY","YYY","YYYY","YYYYY","MM","DDD","MMDD","Www","WwwD","HH","HHMM","HHMMSS","timezone","timezoneZ","timezoneHH","timezoneHHMM","toDate","argument","dirtyOptions","additionalDigits","RangeError","dateStrings","splitDateString","parseYearResult","parseYear","year","restDateString","parseDate","parseTime","parseTimezone","dateString","timeString","patternYYY","patternYYYYY","yearString","centuryString","month","week","setUTCFullYear","validateDate","dayOfYear","validateDayOfYearDate","day","validateWeekDate","dayOfISOWeekYear","dayOfWeek","hours","minutes","validateTime","seconds","timezoneString","absoluteOffset","validateTimezone","isoWeekYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","getUTCDate","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","isLeapYear","addMilliseconds","dirtyAmount","amount","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","baseDate","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","rem100","era","quarter","dayPeriod","defaulFormattingWidth","buildMatchPatternFn","dirtyString","matchResult","matchPattern","matchedString","parseResult","parsePattern","valueCallback","rest","buildMatchFn","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","findKey","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","locale$1","weekStartsOn","firstWeekContainsDate","MILLISECONDS_IN_DAY","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","getUTCISOWeekYear","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","MILLISECONDS_IN_WEEK$1","getUTCWeek","dayPeriodEnum","formatters","signedYear","twoDigitYear","addLeadingZeros","unit","Y","signedWeekYear","weekYear","Q","getUTCMonth","M","L","I","isoWeek","dayOfMonth","D","E","localDayOfWeek","isoDayOfWeek","getUTCHours","dayPeriodEnumValue","H","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","originalDate","_originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","targetLength","sign","dirtyDelimeter","delimeter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","longFormatters","subMilliseconds","protectedTokens","isProtectedToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","dirtyFormatStr","formatStr","utcDate","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","formatter","awareOfUnicodeTokens","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isEqual$1","dirtyLeftDate","dirtyRightDate","dateLeft","dateRight","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","setUTCWeek","dirtyWeek","setUTCISODay","setUTCISOWeek","dirtyISOWeek","MILLISECONDS_IN_HOUR$1","MILLISECONDS_IN_MINUTE$2","MILLISECONDS_IN_SECOND","numericPatterns","hour23h","hour24h","hour11h","hour12h","minute","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","DAYS_IN_MONTH$1","DAYS_IN_MONTH_LEAP_YEAR$1","isLeapYearIndex$1","parsers","priority","isTwoDigitYear","normalizedTwoDigitYear","firstWeekOfYear","wholeWeekDays","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","TIMEZONE_UNIT_PRIORITY","formattingTokensRegExp$1","escapedStringRegExp$1","doubleQuoteRegExp$1","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyBaseDate","formatString","subFnOptions","setters","dateToSystemTimezone","parser","cleanEscapedString$1","uniquePrioritySetters","setterArray","convertedDate","setFullYear","setHours","parseDate$1","format$1","afterValidator","targetValue","cs","da","de","es","fa","fr","nl","hu","pl","pt","ru","sk","sr","sv","tr","uk","az","alphaSpaces","alphanumeric","alphaDash","loc","paramNames$1","alpha$1","validate$1","paramNames$2","validate$2","paramNames$3","validate$3","paramNames$4","validate$4","options$1","paramNames$5","validate$5","paramNames$6","validate$6","options$2","paramNames$7","unwrapExports","createCommonjsModule","assertString_1","assertString","invalidType","isCreditCard_1","isCreditCard","_assertString","creditCard","digit","tmpNum","shouldDouble","validate$7","validate$8","inclusivity","minDate","maxDate","dateVal","options$3","paramNames$8","validate$9","options$4","paramNames$9","validate$a","regexPart","parsedValue","paramNames$a","validate$b","strVal","imageRegex","validateImage","file","webkitURL","Image","onerror","onload","validate$c","images","merge_1","isByteLength_1","isByteLength","encodeURI","isFQDN_1","isFQDN","default_fqdn_options","require_tld","allow_underscores","allow_trailing_dot","tld","part","isIP_1","isIP","ipv4Maybe","ipv6Block","blocks","foundOmissionBlock","foundIPv4TransitionBlock","expectedNumberOfBlocks","isEmail_1","isEmail","_isByteLength","_isFQDN","_isIP","default_email_options","allow_display_name","require_display_name","allow_utf8_local_part","displayName","emailUserPart","gmailUserPart","quotedEmailUser","emailUserUtf8Part","quotedEmailUserUtf8","display_email","lower_domain","domain_specific_validation","username","_user_parts","allow_ip_domain","noBracketdomain","user_parts","objectWithoutProperties","validate$d","emailStr","validatorOptions","validate$e","validate$f","validate$g","extensions","validate$h","validate$i","validate$j","paramNames$b","validate$k","validate$l","validate$m","is_not","compare","validate$n","validate$o","validate$p","validate$q","validate$r","validate$s","validate$t","testValue","strValue","validate$u","paramNames$c","validate$v","invalidateFalse","validate$w","otherFieldVal","possibleVals","options$5","validate$x","nSize","isURL_1","isURL","default_url_options","protocols","require_protocol","require_host","require_valid_protocol","allow_protocol_relative_urls","wrapped_ipv6","checkHost","auth","port_str","ipv6","disallow_auth","ipv6_match","host_whitelist","host_blacklist","validate$y","mapScope","isScope","mapFields","PROVIDER_COUNTER","ValidationProvider","$_veeObserver","createObserver","vid","slim","oldVal","_needsValidation","initialized","isDeactivated","fieldDeps","depName","watchCrossFieldDep","normalizedEvents","computeModeSetting","_inputEventName","names","registerField","createValidationCtx","addListeners","activated","deactivated","syncValue","normalizeValue$1","_pendingValidation","validateSilent","applyResult","createValuesLookup","updateRenderingContextRefs","shouldValidate","_ignoreImmediate","compute","onRenderUpdate","validateNow","createCommonHandlers","onValidate","$veeHandler","$veeDebounce","providers","withHooks","_veeWatchers","flagMergingStrategy","mergeFlags","stratName","OBSERVER_COUNTER","ValidationObserver","persistedStore","thenable","success","errs","obsErrors","subscriber","restoreProviderState","removeProvider","obs","withValidation","ctxToProps","hoc","vctx","__awaiter","_arguments","generator","__generator","g","sent","trys","ops","verb","op","Arg","isIn","Platform","isBrowser","isWebWorker","getDataDetail","includeContent","detail","formatArrayBuffer","ArrayBuffer","sendMessage","transportName","httpClient","accessTokenFactory","logMessageContent","Trace","ConsoleLogger","Information","SubjectSubscription","subject","dispose","cancelCallback","minimumLogLevel","outputConsole","logLevel","Critical","stat","FProto","nameRE","macrotask","WebKitMutationObserver","standalone","toggle","__e","isAbsoluteURL","combineURLs","baseURL","requestedURL","_objectDestructuringEmpty","Attributes","changeTextBinding","variables","variable","croped","actionToChange","$ml","isInitial","with","bus","check","buggy","encodeReserveRE","encodeReserveReplacer","commaRE","decode","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","stringifyQuery","val2","trailingSlashRE","createRoute","redirectedFrom","router","route","meta","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","enteredCbs","i$1","View","routerView","$route","_routerViewCache","depth","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","firstChar","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","pretty","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","Link","exact","exactPath","exactActiveClass","ariaCurrentValue","this$1$1","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","metaKey","ctrlKey","shiftKey","defaultPrevented","button","preventDefault","installed","registerInstance","callVal","_router","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","scrollTo","supportsPushState","ua","pushState","NavigationFailureType","redirected","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","extractGuards","records","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","handleInitialScroll","routeOrError","beforeEach","registerHook","beforeResolve","afterEach","back","forward","getMatchedComponents","createHref","normalizedTo","VueRouter$1","START_LOCATION","CancelToken","resolvePromise","createProperty","getOwnPropertyDescriptors","desc","getDesc","hiddenKeys","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","skipTempReset","rootEntry","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","UNSCOPABLES","_toPrimitive","hint","prim","_toPropertyKey","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","PromiseCapability","$$resolve","_vue","_vue2","EventBus","nameEQ","ca","currentGlobal","_with2","_lang","initialPath","db","splitedPath","ph","RETURN_PATH_BY_DEFAULT_WITHOUT_ERROR","RETURN_PATH_BY_DEFAULT","newLanguage","spaces","non","ltrim","rtrim","exporter","ALIAS","FORCE","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","_defineProperty","settle","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","password","Authorization","btoa","onreadystatechange","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseText","ontimeout","timeoutErrorMessage","cookies","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromString","fromObject","assertSize","alloc","fill","isEncoding","fromArrayLike","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","hi","lo","dst","promiseCapability","NullLogger","_logLevel","_message","ignoreDuplicateOf","toAbsoluteIndex","IS_INCLUDES","fromIndex","pipe","URLSearchParams","product","assignValue","$trim","NUMBER","$Number","BROKEN_COF","TRIM","third","maxCode","px","addToUnscopables","iterated","Arguments","createInstance","defaultConfig","axios","spread","relativeURL","MessageType","XhrHttpClient","DefaultHttpClient","HubConnectionState","Subject","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","HttpTransportType","TransferFormat","HubConnection","connection","reconnectPolicy","nextKeepAlive","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","onreceive","processIncomingData","onclose","connectionClosed","closedCallbacks","reconnectingCallbacks","reconnectedCallbacks","invocationId","receivedHandshakeResponse","connectionState","Disconnected","connectionStarted","cachedPingMessage","writeMessage","Ping","connectionId","Reconnecting","startPromise","startWithStateTransitions","e_1","Connecting","Debug","startInternal","Connected","handshakePromise","e_2","stopDuringStartError","handshakeResolver","handshakeRejecter","transferFormat","cleanupTimeout","resetTimeoutPeriod","resetKeepAliveInterval","cleanupPingTimer","stopPromise","stopInternal","Disconnecting","reconnectDelayHandle","completeClose","promiseQueue","replaceStreamingParams","streams","streamIds","invocationDescriptor","createStreamInvocation","cancelInvocation","createCancelInvocation","sendWithProtocol","invocationEvent","Completion","launchStreams","sendPromise","createInvocation","newMethod","removeIdx","onreconnecting","onreconnected","processHandshakeResponse","parseMessages","messages_1","Invocation","invokeClientMethod","StreamItem","Close","allowReconnect","features","inherentKeepAlive","timeoutHandle","serverTimeout","pingServerHandle","nextPing","invocationMessage","cancelCallbacksWithError","reconnect","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","e_4","getNextRetryDelay","previousRetryCount","elapsedMilliseconds","retryReason","nextRetryDelayInMilliseconds","nonblocking","createCompletionMessage","createStreamItemMessage","isObservable","StreamInvocation","CancelInvocation","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","retryContext","AbortController","LongPollingTransport","pollAbort","running","pollOptions","pollUrl","Binary","signal","getAccessToken","updateHeaderToken","closeError","receiving","poll","pollAborted","raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","eventSourceConstructor","opened","eventSource","Cookie","onopen","WebSocketTransport","webSocketConstructor","webSocket","binaryType","_event","ErrorEvent","OPEN","wasClean","MAX_REDIRECTS","WebSocketModule","EventSourceModule","HttpConnection","stopPromiseResolver","negotiateVersion","resolveUrl","WebSocket","EventSource","startInternalPromise","sendQueue","TransportSendQueue","transport","stopError","stopConnection","negotiateResponse","redirects","this_1","e_3","skipNegotiation","WebSockets","constructTransport","startTransport","accessToken_1","getNegotiationResponse","ProtocolVersion","accessToken","createTransport","negotiateUrl","resolveNegotiateUrl","connectionToken","createConnectUrl","requestedTransport","requestedTransferFormat","connectUrl","transportExceptions","transports","negotiate","transports_1","transportOrError","ex_1","ex_2","isITransport","availableTransports","resolveTransportOrError","ServerSentEvents","LongPolling","transportMatches","transferFormats","aTag","actualTransport","executing","sendBufferedData","PromiseSource","transportResult","sendLoopPromise","sendLoop","bufferData","error_1","arrayBuffers","totalLength","arrayBuffers_1","resolver","rejecter","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","isInvocationMessage","isStreamItemMessage","isCompletionMessage","assertNotEmptyString","errorMessage","LogLevelNameMapping","trace","information","warning","critical","none","None","parseLogLevel","mapping","HubConnectionBuilder","configureLogging","logging","isLogger","withUrl","transportTypeOrOptions","httpConnectionOptions","withHubProtocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","$defineProperty","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","title","browser","argv","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","HttpError","_newTarget","trueProto","TimeoutError","AbortError","STARTS_WITH","$startsWith","$pad","WEBKIT_BUG","padStart","forbiddenField","eject"],"mappings":"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","file":"js/chunk-vendors.js","sourcesContent":["'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\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};\nexport var display = function (api) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!Object.prototype.hasOwnProperty.call(ConsoleApiName, api)) {\n api = ConsoleApiName.log;\n }\n display[api].apply(display, args);\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;\ndisplay.debug = globalConsole.debug.bind(globalConsole);\ndisplay.log = globalConsole.log.bind(globalConsole);\ndisplay.info = globalConsole.info.bind(globalConsole);\ndisplay.warn = globalConsole.warn.bind(globalConsole);\ndisplay.error = globalConsole.error.bind(globalConsole);\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 { ConsoleApiName, 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(ConsoleApiName.error, e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(ConsoleApiName.error, e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled(api) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (debugMode) {\n display.apply(void 0, __spreadArray([api, '[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","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { assign } from '../tools/utils/polyfills';\nexport function makePublicApi(stub) {\n var publicApi = assign({\n version: \"4.49.0\",\n // This API method is intentionally not monitored, since the only thing executed is the\n // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and\n // we don't want to interfere with the user uncaught exceptions.\n onReady: function (callback) {\n callback();\n },\n }, stub);\n // Add a \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get: function () {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n var existingGlobalVariable = global[name];\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach(function (fn) { return catchUserErrors(fn, 'onReady callback threw an error:')(); });\n }\n}\n//# sourceMappingURL=init.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[\"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","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 { 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 { 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 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 { 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 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","export function isIE() {\n return Boolean(document.documentMode);\n}\nexport function isChromium() {\n return !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent);\n}\n//# sourceMappingURL=browserDetection.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { isChromium } from '../../tools/utils/browserDetection';\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 retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\n var lockEnabled = isLockEnabled();\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (lockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentSession = retrieveSession();\n if (lockEnabled) {\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 (lockEnabled) {\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 (lockEnabled) {\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}\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 */\nexport var isLockEnabled = function () { return isChromium(); };\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, flushReason, retry) {\n var parameters = buildEndpointParameters(initConfiguration, endpointType, configurationTags, api, flushReason, retry);\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, flushReason, retry) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var tags = [\"sdk_version:\".concat(\"4.49.0\"), \"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.49.0\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\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","import { noop, willSyntheticsInjectRum, assign, BoundedBuffer, createContextManager, deepClone, makePublicApi, monitor, clocksNow, timeStampNow, display, callMonitored, createHandlingStack, canUseEventBridge, checkUser, sanitizeUser, sanitize, createStoredContextManager, combine, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration } from '../domain/configuration';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nvar RUM_STORAGE_KEY = 'rum';\nexport function makeRumPublicApi(startRumImpl, recorderApi, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.ignoreInitIfSyntheticsWillInjectRum, ignoreInitIfSyntheticsWillInjectRum = _c === void 0 ? true : _c;\n var isAlreadyInitialized = false;\n var globalContextManager = createContextManager(2 /* CustomerDataType.GlobalContext */);\n var userContextManager = createContextManager(1 /* CustomerDataType.User */);\n var getInternalContextStrategy = function () { return undefined; };\n var getInitConfigurationStrategy = function () { return undefined; };\n var stopSessionStrategy = noop;\n var getSessionReplayLinkStrategy = function () { return undefined; };\n var bufferApiCalls = new BoundedBuffer();\n var addTimingStrategy = function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n bufferApiCalls.add(function () { return addTimingStrategy(name, time); });\n };\n var startViewStrategy = function (options, startClocks) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n bufferApiCalls.add(function () { return startViewStrategy(options, startClocks); });\n };\n var addActionStrategy = function (action, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addActionStrategy(action, commonContext); });\n };\n var addErrorStrategy = function (providedError, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addErrorStrategy(providedError, commonContext); });\n };\n var addFeatureFlagEvaluationStrategy = function (key, value) {\n bufferApiCalls.add(function () { return addFeatureFlagEvaluationStrategy(key, value); });\n };\n function initRum(initConfiguration) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // This function should be available, regardless of initialization success.\n getInitConfigurationStrategy = function () { return deepClone(initConfiguration); };\n // If we are in a Synthetics test configured to automatically inject a RUM instance, we want to\n // completely discard the customer application RUM instance by ignoring their init() call. But,\n // we should not ignore the init() call from the Synthetics-injected RUM instance, so the\n // internal `ignoreInitIfSyntheticsWillInjectRum` option is here to bypass this condition.\n if (ignoreInitIfSyntheticsWillInjectRum && willSyntheticsInjectRum()) {\n return;\n }\n var eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n if (!canInitRum(initConfiguration)) {\n return;\n }\n var configuration = validateAndBuildRumConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n if (!eventBridgeAvailable && !configuration.sessionStoreStrategyType) {\n display.warn('No storage available for session. We will not send any data.');\n return;\n }\n if (!configuration.trackViewsManually) {\n doStartRum(initConfiguration, configuration);\n }\n else {\n // drain beforeInitCalls by buffering them until we start RUM\n // if we get a startView, drain re-buffered calls before continuing to drain beforeInitCalls\n // in order to ensure that calls are processed in order\n var beforeInitCalls = bufferApiCalls;\n bufferApiCalls = new BoundedBuffer();\n startViewStrategy = function (options) {\n doStartRum(initConfiguration, configuration, options);\n };\n beforeInitCalls.drain();\n }\n isAlreadyInitialized = true;\n }\n function doStartRum(initConfiguration, configuration, initialViewOptions) {\n if (initConfiguration.storeContextsAcrossPages) {\n var beforeInitGlobalContext = globalContextManager.getContext();\n globalContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n globalContextManager.setContext(combine(globalContextManager.getContext(), beforeInitGlobalContext));\n var beforeInitUserContext = userContextManager.getContext();\n userContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 1 /* CustomerDataType.User */);\n userContextManager.setContext(combine(userContextManager.getContext(), beforeInitUserContext));\n }\n var startRumResults = startRumImpl(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions);\n getSessionReplayLinkStrategy = function () {\n return recorderApi.getSessionReplayLink(configuration, startRumResults.session, startRumResults.viewContexts);\n };\n (startViewStrategy = startRumResults.startView, addActionStrategy = startRumResults.addAction, addErrorStrategy = startRumResults.addError, addTimingStrategy = startRumResults.addTiming, addFeatureFlagEvaluationStrategy = startRumResults.addFeatureFlagEvaluation, getInternalContextStrategy = startRumResults.getInternalContext, stopSessionStrategy = startRumResults.stopSession);\n bufferApiCalls.drain();\n recorderApi.onRumStart(startRumResults.lifeCycle, configuration, startRumResults.session, startRumResults.viewContexts);\n }\n var startView = monitor(function (options) {\n var sanitizedOptions = typeof options === 'object' ? options : { name: options };\n startViewStrategy(sanitizedOptions);\n });\n var rumPublicApi = makePublicApi({\n init: monitor(initRum),\n /** @deprecated: use setGlobalContextProperty instead */\n addRumGlobalContext: monitor(function (key, value) { return globalContextManager.add(key, value); }),\n setGlobalContextProperty: monitor(function (key, value) { return globalContextManager.setContextProperty(key, value); }),\n /** @deprecated: use removeGlobalContextProperty instead */\n removeRumGlobalContext: monitor(function (key) { return globalContextManager.remove(key); }),\n removeGlobalContextProperty: monitor(function (key) { return globalContextManager.removeContextProperty(key); }),\n /** @deprecated: use getGlobalContext instead */\n getRumGlobalContext: monitor(function () { return globalContextManager.get(); }),\n getGlobalContext: monitor(function () { return globalContextManager.getContext(); }),\n /** @deprecated: use setGlobalContext instead */\n setRumGlobalContext: monitor(function (context) { return globalContextManager.set(context); }),\n setGlobalContext: monitor(function (context) { return globalContextManager.setContext(context); }),\n clearGlobalContext: monitor(function () { return globalContextManager.clearContext(); }),\n getInternalContext: monitor(function (startTime) { return getInternalContextStrategy(startTime); }),\n getInitConfiguration: monitor(function () { return getInitConfigurationStrategy(); }),\n addAction: monitor(function (name, context) {\n addActionStrategy({\n name: sanitize(name),\n context: sanitize(context),\n startClocks: clocksNow(),\n type: \"custom\" /* ActionType.CUSTOM */,\n });\n }),\n addError: function (error, context) {\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n addErrorStrategy({\n error: error,\n handlingStack: handlingStack,\n context: sanitize(context),\n startClocks: clocksNow(),\n });\n });\n },\n addTiming: monitor(function (name, time) {\n addTimingStrategy(sanitize(name), time);\n }),\n setUser: monitor(function (newUser) {\n if (checkUser(newUser)) {\n userContextManager.setContext(sanitizeUser(newUser));\n }\n }),\n getUser: monitor(function () { return userContextManager.getContext(); }),\n setUserProperty: monitor(function (key, property) {\n var _a;\n var sanitizedProperty = sanitizeUser((_a = {}, _a[key] = property, _a))[key];\n userContextManager.setContextProperty(key, sanitizedProperty);\n }),\n removeUserProperty: monitor(function (key) { return userContextManager.removeContextProperty(key); }),\n /** @deprecated: renamed to clearUser */\n removeUser: monitor(function () { return userContextManager.clearContext(); }),\n clearUser: monitor(function () { return userContextManager.clearContext(); }),\n startView: startView,\n stopSession: monitor(function () {\n stopSessionStrategy();\n }),\n startSessionReplayRecording: monitor(recorderApi.start),\n stopSessionReplayRecording: monitor(recorderApi.stop),\n /**\n * This feature is currently in beta. For more information see the full [feature flag tracking guide](https://docs.datadoghq.com/real_user_monitoring/feature_flag_tracking/).\n */\n addFeatureFlagEvaluation: monitor(function (key, value) {\n addFeatureFlagEvaluationStrategy(sanitize(key), sanitize(value));\n }),\n getSessionReplayLink: monitor(function () { return getSessionReplayLinkStrategy(); }),\n });\n return rumPublicApi;\n function canInitRum(initConfiguration) {\n if (isAlreadyInitialized) {\n if (!initConfiguration.silentMultipleInit) {\n display.error('DD_RUM is already initialized.');\n }\n return false;\n }\n return true;\n }\n function overrideInitConfigurationForBridge(initConfiguration) {\n return assign({}, initConfiguration, {\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n });\n }\n}\n//# sourceMappingURL=rumPublicApi.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.49.0\",\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 getChildNodes(node) {\n return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes;\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, } from '@datadog/browser-core';\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId';\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 = ['resource', 'navigation', 'longtask', 'paint'];\n var experimentalEntries = ['largest-contentful-paint', 'first-input', 'layout-shift', 'event'];\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('navigation')) {\n retrieveNavigationTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n if (!supportPerformanceTimingEvent('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: 'resource',\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n };\n if (supportPerformanceTimingEvent('navigation') && performance.getEntriesByType('navigation').length > 0) {\n var navigationEntry = performance.getEntriesByType('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: '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: 'first-input',\n processingStart: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0, // arbitrary value to avoid nullable duration and simplify INP logic\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 entry.entryType === 'resource' ||\n entry.entryType === 'navigation' ||\n entry.entryType === 'paint' ||\n entry.entryType === 'longtask' ||\n entry.entryType === 'largest-contentful-paint' ||\n entry.entryType === 'first-input' ||\n entry.entryType === 'layout-shift' ||\n entry.entryType === 'event';\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 === 'navigation' && entry.loadEventEnd <= 0;\n}\nfunction isForbiddenResource(configuration, entry) {\n return entry.entryType === '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","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","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.49.0\" : 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","/**\n * Internal context keep returning v1 format\n * to not break compatibility with logs data format\n */\nexport function startInternalContext(applicationId, sessionManager, viewContexts, actionContexts, urlContexts) {\n return {\n get: function (startTime) {\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 actionId = actionContexts.findActionId(startTime);\n return {\n application_id: applicationId,\n session_id: session.id,\n user_action: actionId ? { id: actionId } : undefined,\n view: { id: viewContext.id, name: viewContext.name, referrer: urlContext.referrer, url: urlContext.url },\n };\n }\n },\n };\n}\n//# sourceMappingURL=internalContext.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 { SESSION_TIME_OUT_DELAY, ValueHistory } from '@datadog/browser-core';\nexport var VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewContexts(lifeCycle) {\n var viewContextHistory = new ValueHistory(VIEW_CONTEXT_TIME_OUT_DELAY);\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (view) {\n viewContextHistory.add(buildViewContext(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n viewContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n viewContextHistory.reset();\n });\n function buildViewContext(view) {\n return {\n service: view.service,\n version: view.version,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: function (startTime) { return viewContextHistory.find(startTime); },\n stop: function () {\n viewContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewContexts.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","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 { 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","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';\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 === '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 { 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 { 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 './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 { 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 { createClickChain } from './clickChain';\nimport { getActionNameFromElement } from './getActionNameFromElement';\nimport { getSelectorFromElement } from './getSelectorFromElement';\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 { 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 { 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 { 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 { 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 { 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 { 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 { toServerDuration, relativeToClocks, generateUUID } from '@datadog/browser-core';\nexport function startLongTaskCollection(lifeCycle, sessionManager) {\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 !== 'longtask') {\n break;\n }\n var session = sessionManager.findTrackedSession(entry.startTime);\n if (!session || !session.longTaskAllowed) {\n break;\n }\n var startClocks = relativeToClocks(entry.startTime);\n var rawRumEvent = {\n date: startClocks.timeStamp,\n long_task: {\n id: generateUUID(),\n duration: toServerDuration(entry.duration),\n },\n type: \"long_task\" /* RumEventType.LONG_TASK */,\n _dd: {\n discarded: false,\n },\n };\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, {\n rawRumEvent: rawRumEvent,\n startTime: startClocks.relative,\n domainContext: { performanceEntry: entry.toJSON() },\n });\n }\n });\n}\n//# sourceMappingURL=longTaskCollection.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 { 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 === '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 { 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 { ONE_MINUTE, find } from '@datadog/browser-core';\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 === '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 } from '@datadog/browser-core';\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 trackFirstInputTimings(lifeCycle, 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 === 'first-input' && entry.startTime < firstHidden.timeStamp;\n });\n if (firstInputEntry) {\n var firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart);\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n firstInputDelay: firstInputDelay >= 0 ? firstInputDelay : 0,\n firstInputTime: firstInputEntry.startTime,\n firstInputTarget: firstInputEntry.target,\n });\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstInputTimings.js.map","import { relativeNow } from '@datadog/browser-core';\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 === '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 { ONE_MINUTE, addEventListeners, findLast } from '@datadog/browser-core';\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/getLCP.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 === 'largest-contentful-paint' &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < LCP_MAXIMUM_DELAY;\n });\n if (lcpEntry) {\n callback(lcpEntry.startTime, lcpEntry.element);\n }\n }).unsubscribe;\n return {\n stop: function () {\n stopEventListener();\n unsubscribeLifeCycle();\n },\n };\n}\n//# sourceMappingURL=trackLargestContentfulPaint.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 { 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 { assign } from '@datadog/browser-core';\nimport { trackFirstContentfulPaint } from './trackFirstContentfulPaint';\nimport { trackFirstInputTimings } from './trackFirstInputTimings';\nimport { trackNavigationTimings } from './trackNavigationTimings';\nimport { trackLargestContentfulPaint } from './trackLargestContentfulPaint';\nimport { trackFirstHidden } from './trackFirstHidden';\nexport function trackInitialViewMetrics(lifeCycle, configuration, webVitalTelemetryDebug, setLoadEvent, scheduleViewUpdate) {\n var initialViewMetrics = {};\n function setMetrics(newMetrics) {\n assign(initialViewMetrics, newMetrics);\n scheduleViewUpdate();\n }\n var stopNavigationTracking = trackNavigationTimings(lifeCycle, function (navigationTimings) {\n setLoadEvent(navigationTimings.loadEvent);\n setMetrics(navigationTimings);\n }).stop;\n var firstHidden = trackFirstHidden(configuration);\n var stopFCPTracking = trackFirstContentfulPaint(lifeCycle, firstHidden, function (firstContentfulPaint) {\n return setMetrics({ firstContentfulPaint: firstContentfulPaint });\n }).stop;\n var stopLCPTracking = trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, window, function (largestContentfulPaint, lcpElement) {\n webVitalTelemetryDebug.addWebVitalTelemetryDebug('LCP', lcpElement, largestContentfulPaint);\n setMetrics({\n largestContentfulPaint: largestContentfulPaint,\n });\n }).stop;\n var stopFIDTracking = trackFirstInputTimings(lifeCycle, firstHidden, function (_a) {\n var firstInputDelay = _a.firstInputDelay, firstInputTime = _a.firstInputTime, firstInputTarget = _a.firstInputTarget;\n webVitalTelemetryDebug.addWebVitalTelemetryDebug('FID', firstInputTarget, firstInputTime);\n setMetrics({\n firstInputDelay: firstInputDelay,\n firstInputTime: firstInputTime,\n });\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","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 { ONE_SECOND, elapsed, relativeNow, throttle, addEventListener } 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, getScrollValues) {\n if (getScrollValues === void 0) { getScrollValues = computeScrollValues; }\n var maxDepth = 0;\n var handleScrollEvent = throttle(function () {\n var _a = getScrollValues(), scrollHeight = _a.scrollHeight, scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop;\n if (scrollDepth > maxDepth) {\n var now = relativeNow();\n var maxDepthTime = elapsed(viewStart.relative, now);\n maxDepth = scrollDepth;\n callback({\n maxDepth: maxDepth,\n maxDepthScrollHeight: scrollHeight,\n maxDepthTime: maxDepthTime,\n maxDepthScrollTop: scrollTop,\n });\n }\n }, THROTTLE_SCROLL_DURATION, { leading: false, trailing: true });\n var stop = addEventListener(configuration, window, \"scroll\" /* DOM_EVENT.SCROLL */, handleScrollEvent.throttled, {\n passive: true,\n }).stop;\n return {\n stop: function () {\n handleScrollEvent.cancel();\n stop();\n },\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}\n//# sourceMappingURL=trackScrollMetrics.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 { 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 { round, find, ONE_SECOND } from '@datadog/browser-core';\nimport { supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\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(lifeCycle, callback) {\n var maxClsValue = 0;\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 === 'layout-shift' && !entry.hadRecentInput) {\n window.update(entry);\n if (window.value() > maxClsValue) {\n maxClsValue = window.value();\n callback(round(maxClsValue, 4), window.largestLayoutShiftNode(), window.largestLayoutShiftTime());\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 largestLayoutShiftNode;\n var largestLayoutShiftTime;\n return {\n update: function (entry) {\n var _a;\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 largestLayoutShiftNode = 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 var largestLayoutShiftSource = find(entry.sources, function (s) { var _a; return ((_a = s.node) === null || _a === void 0 ? void 0 : _a.nodeType) === 1; }) || entry.sources[0];\n largestLayoutShiftNode = largestLayoutShiftSource.node;\n }\n else {\n largestLayoutShiftNode = undefined;\n }\n }\n },\n value: function () { return value; },\n largestLayoutShiftNode: function () { return largestLayoutShiftNode; },\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('layout-shift');\n}\n//# sourceMappingURL=trackCumulativeLayoutShift.js.map","import { noop, isExperimentalFeatureEnabled, ExperimentalFeature } from '@datadog/browser-core';\nimport { supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\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(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 inpDuration = -1;\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 === 'event' || entry.entryType === 'first-input') && entry.interactionId) {\n longestInteractions.process(entry);\n }\n }\n var newInpDuration = longestInteractions.estimateP98Duration();\n if (newInpDuration) {\n inpDuration = newInpDuration;\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 (inpDuration >= 0) {\n return inpDuration;\n }\n else if (getViewInteractionCount()) {\n return 0;\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 estimateP98Duration: function () {\n var _a;\n var interactionIndex = Math.min(longestInteractions.length - 1, Math.floor(getViewInteractionCount() / 50));\n return (_a = longestInteractions[interactionIndex]) === null || _a === void 0 ? void 0 : _a.duration;\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('event') &&\n window.PerformanceEventTiming &&\n 'interactionId' in PerformanceEventTiming.prototype);\n}\n//# sourceMappingURL=trackInteractionToNextPaint.js.map","import { noop } from '@datadog/browser-core';\nimport { computeScrollValues, trackScrollMetrics } from './trackScrollMetrics';\nimport { trackLoadingTime } from './trackLoadingTime';\nimport { isLayoutShiftSupported, trackCumulativeLayoutShift } from './trackCumulativeLayoutShift';\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint';\nexport function trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart, webVitalTelemetryDebug) {\n var commonViewMetrics = {};\n var _a = trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {\n commonViewMetrics.loadingTime = newLoadingTime;\n // We compute scroll metrics at loading time to ensure we have scroll data when loading the view initially\n // This is to ensure that we have the depth data even if the user didn't scroll or if the view is not scrollable.\n var _a = computeScrollValues(), scrollHeight = _a.scrollHeight, scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop;\n commonViewMetrics.scroll = {\n maxDepth: scrollDepth,\n maxDepthScrollHeight: scrollHeight,\n maxDepthTime: newLoadingTime,\n maxDepthScrollTop: scrollTop,\n };\n scheduleViewUpdate();\n }), stopLoadingTimeTracking = _a.stop, setLoadEvent = _a.setLoadEvent;\n var stopScrollMetricsTracking = trackScrollMetrics(configuration, viewStart, function (newScrollMetrics) {\n commonViewMetrics.scroll = newScrollMetrics;\n }, computeScrollValues).stop;\n var stopCLSTracking;\n var clsAttributionCollected = false;\n if (isLayoutShiftSupported()) {\n commonViewMetrics.cumulativeLayoutShift = 0;\n (stopCLSTracking = trackCumulativeLayoutShift(lifeCycle, function (cumulativeLayoutShift, largestLayoutShiftNode, largestLayoutShiftTime) {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;\n if (!clsAttributionCollected) {\n clsAttributionCollected = true;\n webVitalTelemetryDebug.addWebVitalTelemetryDebug('CLS', largestLayoutShiftNode, largestLayoutShiftTime);\n }\n scheduleViewUpdate();\n }).stop);\n }\n else {\n stopCLSTracking = noop;\n }\n var _b = trackInteractionToNextPaint(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 { 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, webVitalTelemetryDebug, 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, webVitalTelemetryDebug, 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, webVitalTelemetryDebug, 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, webVitalTelemetryDebug), setLoadEvent = _b.setLoadEvent, stopCommonViewMetricsTracking = _b.stop, getCommonViewMetrics = _b.getCommonViewMetrics;\n var _c = loadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */\n ? trackInitialViewMetrics(lifeCycle, configuration, webVitalTelemetryDebug, 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 { 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, webVitalTelemetryDebug, 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, webVitalTelemetryDebug, initialViewOptions);\n}\nfunction processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory) {\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: view.commonViewMetrics.cumulativeLayoutShift,\n first_byte: toServerDuration(view.initialViewMetrics.firstByte),\n dom_complete: toServerDuration(view.initialViewMetrics.domComplete),\n dom_content_loaded: toServerDuration(view.initialViewMetrics.domContentLoaded),\n dom_interactive: toServerDuration(view.initialViewMetrics.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.initialViewMetrics.firstContentfulPaint),\n first_input_delay: toServerDuration(view.initialViewMetrics.firstInputDelay),\n first_input_time: toServerDuration(view.initialViewMetrics.firstInputTime),\n interaction_to_next_paint: toServerDuration(view.commonViewMetrics.interactionToNextPaint),\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration(view.initialViewMetrics.largestContentfulPaint),\n load_event: toServerDuration(view.initialViewMetrics.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_height: view.commonViewMetrics.scroll.maxDepthScrollHeight,\n max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_depth_time: toServerDuration(view.commonViewMetrics.scroll.maxDepthTime),\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, _a) {\n var data = _a.data, bytesCount = _a.bytesCount, flushReason = _a.flushReason;\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', flushReason);\n var isQueued = navigator.sendBeacon(beaconUrl, data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', flushReason);\n sendXHR(configuration, xhrUrl, 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, _a, onResponse) {\n var data = _a.data, bytesCount = _a.bytesCount, flushReason = _a.flushReason, retry = _a.retry;\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', flushReason, retry);\n fetch(fetchUrl, { method: 'POST', body: 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', flushReason, retry);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', flushReason, retry);\n sendXHR(configuration, xhrUrl, 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 { 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 { 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 { getEventBridge } from '@datadog/browser-core';\nexport function startRumEventBridge(lifeCycle) {\n var bridge = getEventBridge();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n bridge.send('rum', serverRumEvent);\n });\n}\n//# sourceMappingURL=startRumEventBridge.js.map","import { SESSION_TIME_OUT_DELAY, relativeNow, ValueHistory } from '@datadog/browser-core';\n/**\n * We want to attach to an event:\n * - the url corresponding to its start\n * - the referrer corresponding to the previous view url (or document referrer for initial view)\n */\nexport var URL_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startUrlContexts(lifeCycle, locationChangeObservable, location) {\n var urlContextHistory = new ValueHistory(URL_CONTEXT_TIME_OUT_DELAY);\n var previousViewUrl;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n urlContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n var viewUrl = location.href;\n urlContextHistory.add(buildUrlContext({\n url: viewUrl,\n referrer: !previousViewUrl ? document.referrer : previousViewUrl,\n }), startClocks.relative);\n previousViewUrl = viewUrl;\n });\n var locationChangeSubscription = locationChangeObservable.subscribe(function (_a) {\n var newLocation = _a.newLocation;\n var current = urlContextHistory.find();\n if (current) {\n var changeTime = relativeNow();\n urlContextHistory.closeActive(changeTime);\n urlContextHistory.add(buildUrlContext({\n url: newLocation.href,\n referrer: current.referrer,\n }), changeTime);\n }\n });\n function buildUrlContext(_a) {\n var url = _a.url, referrer = _a.referrer;\n return {\n url: url,\n referrer: referrer,\n };\n }\n return {\n findUrl: function (startTime) { return urlContextHistory.find(startTime); },\n stop: function () {\n locationChangeSubscription.unsubscribe();\n urlContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=urlContexts.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 { warnIfCustomerDataLimitReached, throttle, jsonStringify, computeBytesCount, noop, isExperimentalFeatureEnabled, SESSION_TIME_OUT_DELAY, ValueHistory, ExperimentalFeature, } from '@datadog/browser-core';\nexport var FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\n/**\n * Start feature flag contexts\n *\n * Feature flag contexts follow the life of views.\n * A new context is added when a view is created and ended when the view is ended\n *\n * Note: we choose not to add a new context at each evaluation to save memory\n */\nexport function startFeatureFlagContexts(lifeCycle, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.FEATURE_FLAGS)) {\n return {\n findFeatureFlagEvaluations: function () { return undefined; },\n getFeatureFlagBytesCount: function () { return 0; },\n addFeatureFlagEvaluation: noop,\n stop: noop,\n };\n }\n var featureFlagContexts = new ValueHistory(FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY);\n var bytesCountCache = 0;\n var alreadyWarned = false;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n featureFlagContexts.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n featureFlagContexts.add({}, startClocks.relative);\n bytesCountCache = 0;\n });\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call addFeatureFlagEvaluation API synchronously multiple times in a row\n var _a = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, 0 /* CustomerDataType.FeatureFlag */);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY), computeBytesCountThrottled = _a.throttled, cancelPendingComputation = _a.cancel;\n return {\n findFeatureFlagEvaluations: function (startTime) { return featureFlagContexts.find(startTime); },\n getFeatureFlagBytesCount: function () {\n var currentContext = featureFlagContexts.find();\n if (!currentContext) {\n return 0;\n }\n return bytesCountCache;\n },\n addFeatureFlagEvaluation: function (key, value) {\n var currentContext = featureFlagContexts.find();\n if (currentContext) {\n currentContext[key] = value;\n computeBytesCountThrottled(currentContext);\n }\n },\n stop: cancelPendingComputation,\n };\n}\n//# sourceMappingURL=featureFlagContext.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 { addTelemetryDebug, elapsed, noop, performDraw, relativeNow, toServerDuration } from '@datadog/browser-core';\nexport function startWebVitalTelemetryDebug(configuration, telemetry, recorderApi, session) {\n var webVitalTelemetryEnabled = telemetry.enabled && performDraw(configuration.customerDataTelemetrySampleRate);\n if (!webVitalTelemetryEnabled) {\n return {\n addWebVitalTelemetryDebug: noop,\n };\n }\n return {\n addWebVitalTelemetryDebug: function (webVitalName, webVitalNode, webVitalTime) {\n var _a;\n var computationTime = relativeNow();\n if (!recorderApi.isRecording()) {\n recorderApi.recorderStartObservable.subscribe(function (recordingStartTime) {\n addTelemetryDebug(\"\".concat(webVitalName, \" attribution recording delay\"), {\n computationDelay: toServerDuration(elapsed(webVitalTime, computationTime)),\n recordingDelay: toServerDuration(elapsed(webVitalTime, recordingStartTime)),\n hasNode: !!webVitalNode,\n serializedDomNode: webVitalNode ? recorderApi.getSerializedNodeId(webVitalNode) : undefined,\n });\n });\n }\n addTelemetryDebug(\"\".concat(webVitalName, \" attribution\"), {\n computationDelay: toServerDuration(elapsed(webVitalTime, computationTime)),\n hasNode: !!webVitalNode,\n replayRecording: recorderApi.isRecording(),\n replaySampled: (_a = session.findTrackedSession()) === null || _a === void 0 ? void 0 : _a.sessionReplayAllowed,\n serializedDomNode: webVitalNode ? recorderApi.getSerializedNodeId(webVitalNode) : undefined,\n });\n },\n };\n}\n//# sourceMappingURL=startWebVitalTelemetryDebug.js.map","import { getViewportDimension, initViewportObservable } from '../../browser/viewportObservable';\nexport function startDisplayContext(configuration) {\n var viewport = getViewportDimension();\n var unsubscribeViewport = initViewportObservable(configuration).subscribe(function (viewportDimension) {\n viewport = viewportDimension;\n }).unsubscribe;\n return {\n get: function () { return ({ viewport: viewport }); },\n stop: unsubscribeViewport,\n };\n}\n//# sourceMappingURL=displayContext.js.map","import { sendToExtension, createPageExitObservable, addTelemetryConfiguration, startTelemetry, canUseEventBridge, getEventBridge, addTelemetryDebug, } from '@datadog/browser-core';\nimport { createDOMMutationObservable } from '../browser/domMutationObservable';\nimport { startPerformanceCollection } from '../browser/performanceCollection';\nimport { startRumAssembly } from '../domain/assembly';\nimport { startInternalContext } from '../domain/contexts/internalContext';\nimport { LifeCycle } from '../domain/lifeCycle';\nimport { startViewContexts } from '../domain/contexts/viewContexts';\nimport { startRequestCollection } from '../domain/requestCollection';\nimport { startActionCollection } from '../domain/action/actionCollection';\nimport { startErrorCollection } from '../domain/error/errorCollection';\nimport { startLongTaskCollection } from '../domain/longTask/longTaskCollection';\nimport { startResourceCollection } from '../domain/resource/resourceCollection';\nimport { startViewCollection } from '../domain/view/viewCollection';\nimport { startRumSessionManager, startRumSessionManagerStub } from '../domain/rumSessionManager';\nimport { startRumBatch } from '../transport/startRumBatch';\nimport { startRumEventBridge } from '../transport/startRumEventBridge';\nimport { startUrlContexts } from '../domain/contexts/urlContexts';\nimport { createLocationChangeObservable } from '../browser/locationChangeObservable';\nimport { serializeRumConfiguration } from '../domain/configuration';\nimport { startFeatureFlagContexts } from '../domain/contexts/featureFlagContext';\nimport { startCustomerDataTelemetry } from '../domain/startCustomerDataTelemetry';\nimport { startPageStateHistory } from '../domain/contexts/pageStateHistory';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { startWebVitalTelemetryDebug } from '../domain/view/startWebVitalTelemetryDebug';\nimport { startDisplayContext } from '../domain/contexts/displayContext';\nexport function startRum(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions) {\n var cleanupTasks = [];\n var lifeCycle = new LifeCycle();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) { return sendToExtension('rum', event); });\n var telemetry = startRumTelemetry(configuration);\n telemetry.setContextProvider(function () {\n var _a, _b;\n return ({\n application: {\n id: configuration.applicationId,\n },\n session: {\n id: (_a = session.findTrackedSession()) === null || _a === void 0 ? void 0 : _a.id,\n },\n view: {\n id: (_b = viewContexts.findView()) === null || _b === void 0 ? void 0 : _b.id,\n },\n action: {\n id: actionContexts.findActionId(),\n },\n });\n });\n var reportError = function (error) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error });\n addTelemetryDebug('Error reported to customer', { 'error.message': error.message });\n };\n var featureFlagContexts = startFeatureFlagContexts(lifeCycle);\n var pageExitObservable = createPageExitObservable(configuration);\n var pageExitSubscription = pageExitObservable.subscribe(function (event) {\n lifeCycle.notify(9 /* LifeCycleEventType.PAGE_EXITED */, event);\n });\n cleanupTasks.push(function () { return pageExitSubscription.unsubscribe(); });\n var session = !canUseEventBridge() ? startRumSessionManager(configuration, lifeCycle) : startRumSessionManagerStub();\n if (!canUseEventBridge()) {\n var batch_1 = startRumBatch(configuration, lifeCycle, telemetry.observable, reportError, pageExitObservable, session.expireObservable);\n cleanupTasks.push(function () { return batch_1.stop(); });\n startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batch_1.flushObservable);\n }\n else {\n startRumEventBridge(lifeCycle);\n }\n var domMutationObservable = createDOMMutationObservable();\n var locationChangeObservable = createLocationChangeObservable(configuration, location);\n var _a = startRumEventCollection(lifeCycle, configuration, location, session, locationChangeObservable, domMutationObservable, function () { return buildCommonContext(globalContextManager, userContextManager, recorderApi); }, reportError), viewContexts = _a.viewContexts, pageStateHistory = _a.pageStateHistory, urlContexts = _a.urlContexts, actionContexts = _a.actionContexts, addAction = _a.addAction, stopRumEventCollection = _a.stop;\n cleanupTasks.push(stopRumEventCollection);\n addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));\n startLongTaskCollection(lifeCycle, session);\n startResourceCollection(lifeCycle, configuration, session, pageStateHistory);\n var webVitalTelemetryDebug = startWebVitalTelemetryDebug(configuration, telemetry, recorderApi, session);\n var _b = startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, webVitalTelemetryDebug, initialViewOptions), addTiming = _b.addTiming, startView = _b.startView, stopViewCollection = _b.stop;\n cleanupTasks.push(stopViewCollection);\n var addError = startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts).addError;\n startRequestCollection(lifeCycle, configuration, session);\n startPerformanceCollection(lifeCycle, configuration);\n var internalContext = startInternalContext(configuration.applicationId, session, viewContexts, actionContexts, urlContexts);\n return {\n addAction: addAction,\n addError: addError,\n addTiming: addTiming,\n addFeatureFlagEvaluation: featureFlagContexts.addFeatureFlagEvaluation,\n startView: startView,\n lifeCycle: lifeCycle,\n viewContexts: viewContexts,\n session: session,\n stopSession: function () { return session.expire(); },\n getInternalContext: internalContext.get,\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\nfunction startRumTelemetry(configuration) {\n var telemetry = startTelemetry(\"browser-rum-sdk\" /* TelemetryService.RUM */, configuration);\n if (canUseEventBridge()) {\n var bridge_1 = getEventBridge();\n telemetry.observable.subscribe(function (event) { return bridge_1.send('internal_telemetry', event); });\n }\n return telemetry;\n}\nexport function startRumEventCollection(lifeCycle, configuration, location, sessionManager, locationChangeObservable, domMutationObservable, buildCommonContext, reportError) {\n var viewContexts = startViewContexts(lifeCycle);\n var urlContexts = startUrlContexts(lifeCycle, locationChangeObservable, location);\n var pageStateHistory = startPageStateHistory(configuration);\n var _a = startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory), addAction = _a.addAction, actionContexts = _a.actionContexts;\n var displayContext = startDisplayContext(configuration);\n startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError);\n return {\n viewContexts: viewContexts,\n pageStateHistory: pageStateHistory,\n urlContexts: urlContexts,\n addAction: addAction,\n actionContexts: actionContexts,\n stop: function () {\n displayContext.stop();\n pageStateHistory.stop();\n urlContexts.stop();\n viewContexts.stop();\n pageStateHistory.stop();\n },\n };\n}\n//# sourceMappingURL=startRum.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 //

, or missing . Bailing hydration and performing ' +\n 'full client-side render.');\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n // create new node\n createElm(vnode, insertedVnodeQueue, \n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i_8 = 0; i_8 < cbs.destroy.length; ++i_8) {\n cbs.destroy[i_8](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i_9 = 0; i_9 < cbs.create.length; ++i_9) {\n cbs.create[i_9](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert_1 = ancestor.data.hook.insert;\n if (insert_1.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i_10 = 1; i_10 < insert_1.fns.length; i_10++) {\n insert_1.fns[i_10]();\n }\n }\n }\n else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n }\n else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm;\n };\n}\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives(vnode) {\n // @ts-expect-error emptyNode is not VNodeWithData\n updateDirectives(vnode, emptyNode);\n }\n};\nfunction updateDirectives(oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\nfunction _update(oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives(vnode.data.directives, vnode.context);\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n }\n else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n }\n else {\n callInsert();\n }\n }\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\nvar emptyModifiers = Object.create(null);\nfunction normalizeDirectives(dirs, vm) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res;\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n if (vm._setupState && vm._setupState.__sfc) {\n var setupDef = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);\n if (typeof setupDef === 'function') {\n dir.def = {\n bind: setupDef,\n update: setupDef,\n };\n }\n else {\n dir.def = setupDef;\n }\n }\n dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res;\n}\nfunction getRawDirName(dir) {\n return (dir.rawName || \"\".concat(dir.name, \".\").concat(Object.keys(dir.modifiers || {}).join('.')));\n}\nfunction callHook(dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n }\n catch (e) {\n handleError(e, vnode.context, \"directive \".concat(dir.name, \" \").concat(hook, \" hook\"));\n }\n }\n}\n\nvar baseModules = [ref, directives];\n\nfunction updateAttrs(oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return;\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return;\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur, vnode.data.pre);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n }\n else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\nfunction setAttr(el, key, value, isInPre) {\n if (isInPre || el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n }\n else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. \n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n }\n else {\n // technically allowfullscreen is a boolean attribute for