{"version":3,"file":"static/chunks/973-ba904ac059dc8f0b.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Box/styles.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Box/index.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/hooks/useLayoutEffectBrowser.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/hooks/useScrollPosition.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Header/styles.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Header/index.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Heading/styles.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Heading/index.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/IconFa/styles.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/IconFa/index.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Spacing/index.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Text/styles.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/components/Text/index.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/themes/cruk.js","webpack://_N_E/./node_modules/@cruk/cruk-react-components/lib/es/src/themes/su2c.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/display.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/customerDataTracker.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/trackingConsent.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/storeContextManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/encoder.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/computeStackTrace.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/boot/displayAlreadyInitializedError.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/arrayUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/configuration.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/boot/preStartRum.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/connectivity/connectivity.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciTestContext.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestTiming.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/vital/vitalCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/constants.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/privacy.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/moveObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/scrollObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mouseInteractionObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/inputObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/styleSheetObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mutationObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/observers.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/viewEndObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/recordIds.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/viewportResizeObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mediaInteractionObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/focusObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/frustrationObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/startFullSnapshots.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/entries/main.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/boot/init.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewContexts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-datafile-manager/lib/backoffController.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-datafile-manager/lib/browserDatafileManager.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-datafile-manager/lib/browserRequest.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-datafile-manager/lib/config.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-datafile-manager/lib/eventEmitter.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-datafile-manager/lib/httpPollingDatafileManager.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-datafile-manager/lib/index.browser.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/eventDispatcher.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/eventProcessor.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/eventQueue.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/events.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/index.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/managed.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/pendingEventsDispatcher.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/pendingEventsStore.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/requestTracker.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/v1/buildEventV1.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-event-processor/lib/v1/v1EventProcessor.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-logging/lib/errorHandler.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-logging/lib/index.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-logging/lib/logger.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-logging/lib/models.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-utils/lib/index.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-utils/node_modules/uuid/index.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-utils/node_modules/uuid/lib/bytesToUuid.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-utils/node_modules/uuid/lib/rng-browser.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-utils/node_modules/uuid/v1.js","webpack://_N_E/./node_modules/@optimizely/js-sdk-utils/node_modules/uuid/v4.js","webpack://_N_E/./node_modules/@optimizely/optimizely-sdk/dist/optimizely.browser.min.js","webpack://_N_E/./node_modules/@optimizely/optimizely-sdk/node_modules/uuid/index.js","webpack://_N_E/./node_modules/@optimizely/optimizely-sdk/node_modules/uuid/lib/bytesToUuid.js","webpack://_N_E/./node_modules/@optimizely/optimizely-sdk/node_modules/uuid/lib/rng-browser.js","webpack://_N_E/./node_modules/@optimizely/optimizely-sdk/node_modules/uuid/v1.js","webpack://_N_E/./node_modules/@optimizely/optimizely-sdk/node_modules/uuid/v4.js","webpack://_N_E/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://_N_E/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://_N_E/./node_modules/murmurhash/murmurhash.js","webpack://_N_E/./node_modules/next/dist/shared/lib/amp-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/amp.js","webpack://_N_E/./node_modules/next/dist/shared/lib/head.js","webpack://_N_E/./node_modules/next/dist/shared/lib/side-effect.js","webpack://_N_E/./node_modules/next/dist/build/polyfills/process.js","webpack://_N_E/./node_modules/next/dist/compiled/process/browser.js","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/next/script.js","webpack://_N_E/./node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/react-is/index.js","webpack://_N_E/./node_modules/shallowequal/index.js","webpack://_N_E/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://_N_E/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://_N_E/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://_N_E/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://_N_E/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/rng.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/regex.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/validate.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/v4.js","webpack://_N_E/./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://_N_E/./node_modules/next/dist/compiled/@babel/runtime/helpers/esm/defineProperty.js"],"sourcesContent":["/*!\n * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2022 Fonticons, Inc.\n */\nvar c={prefix:\"fas\",iconName:\"check\",icon:[448,512,[10004,10003],\"f00c\",\"M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z\"]},e={prefix:\"fas\",iconName:\"chevron-down\",icon:[448,512,[],\"f078\",\"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z\"]},i={prefix:\"fas\",iconName:\"chevron-right\",icon:[320,512,[9002],\"f054\",\"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z\"]},o={prefix:\"fas\",iconName:\"xmark\",icon:[320,512,[128473,10005,10006,10060,215,\"close\",\"multiply\",\"remove\",\"times\"],\"f00d\",\"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z\"]},f=o;export{c as faCheck,e as faChevronDown,i as faChevronRight,f as faClose,o as faXmark};\n//# sourceMappingURL=index.es.js.map\n","var r=function(){return r=Object.assign||function(r){for(var e,t=1,n=arguments.length;t66;l!==x&&A(l)}),[x],null,!0,100),t.createElement(i,{theme:T},t.createElement(m,null,t.createElement(s,null,t.createElement(a,{\"data-cy\":\"header-sticky-container\",isSmall:x,isSticky:p},t.createElement(c,{className:\"skip-main\",href:\"#main\"},\"Skip to main content\"),t.createElement(u,{fullWidth:C},t.createElement(f,{href:null!=v?v:T.siteConfig.logoUrl,title:null!=j?j:\"Home\"},t.createElement(d,{isSmall:x,isSticky:p},t.createElement(g,{src:null!=h?h:T.siteConfig.logoSrc,alt:null!=E?E:T.siteConfig.logoAlt}))),y?t.createElement(S,{isSmall:x,isSticky:p},y):null,b)))))};export{k as Header,k as default};\n//# sourceMappingURL=index.js.map\n","import{__makeTemplateObject as n,__rest as t}from\"../../../node_modules/tslib/tslib.es6.js\";import e,{css as i}from\"styled-components\";import{Spacing as r}from\"../Spacing/index.js\";var o,f,u,m,a,s,l,x=function(e){return i(o||(o=n([\"\\n font-family: \",\";\\n word-break: \",\";\\n overflow-wrap: \",\";\\n font-weight: \",\";\\n color: \",\";\\n line-height: \",\";\\n text-transform: \",\";\\n margin-top: \",\";\\n margin-bottom: \",\";\\n max-width: 100%;\\n text-align: \",\";\\n\\n &:first-child {\\n margin-top: 0;\\n }\\n\\n \",\"\\n\"],[\"\\n font-family: \",\";\\n word-break: \",\";\\n overflow-wrap: \",\";\\n font-weight: \",\";\\n color: \",\";\\n line-height: \",\";\\n text-transform: \",\";\\n margin-top: \",\";\\n margin-bottom: \",\";\\n max-width: 100%;\\n text-align: \",\";\\n\\n &:first-child {\\n margin-top: 0;\\n }\\n\\n \",\"\\n\"])),(function(n){return n.theme.typography.fontFamilyHeadings}),(function(){return e.wordBreak||\"normal\"}),(function(){return e.overflowWrap||\"break-word\"}),(function(n){return n.theme.typography.fontWeightMedium}),(function(n){var t=n.theme.colors,e=n.textColor;return e&&void 0!==t[e]?t[e]:e||t.textDark}),(function(n){return n.theme.typography.headerLineHeight}),(function(n){return n.theme.typography.headerTextTransform}),(function(n){return n.theme.spacing.m}),(function(n){return n.theme.spacing.s}),(function(n){return n.textAlign||\"left\"}),(function(){e.theme;var n=t(e,[\"theme\"]);return r(n,e.theme)}))},h=function(n,t,e){switch(n){case\"m\":return e.fontSizes.m;case\"l\":return e.fontSizes.l;case\"xl\":return e.fontSizes.xl;case\"xxl\":return e.fontSizes.xxl;case\"xxxl\":return e.fontSizes.xxxl;case\"xxxxl\":return e.fontSizes.xxxxl;default:return t}},z=function(n,t,e){switch(n){case\"m\":return e.fontSizes.m;case\"l\":case\"xl\":return e.fontSizes.l;case\"xxl\":return e.fontSizes.xl;case\"xxxl\":return e.fontSizes.xxl;case\"xxxxl\":return e.fontSizes.xxxl;default:return t}},c=function(n,t,e){switch(n){case\"m\":return e.fontSizes.m;case\"l\":case\"xl\":case\"xxl\":return e.fontSizes.l;case\"xxxl\":return e.fontSizes.xl;case\"xxxxl\":return e.fontSizes.xxl;default:return t}},d=e.h1(f||(f=n([\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n } ;\\n\"],[\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n } ;\\n\"])),(function(n){return x(n)}),(function(n){var t=n.theme,e=n.textSize;return c(e||null,t.fontSizes.xxl,t)}),(function(n){return n.theme.breakpoint.tablet}),(function(n){var t=n.theme,e=n.textSize;return z(e||null,t.fontSizes.xxxl,t)}),(function(n){return n.theme.breakpoint.desktop}),(function(n){var t=n.theme,e=n.textSize;return h(e||null,t.fontSizes.xxxxl,t)})),S=e.h2(u||(u=n([\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"],[\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"])),(function(n){return x(n)}),(function(n){var t=n.theme,e=n.textSize;return c(e||null,t.fontSizes.xl,t)}),(function(n){return n.theme.breakpoint.tablet}),(function(n){var t=n.theme,e=n.textSize;return z(e||null,t.fontSizes.xxl,t)}),(function(n){return n.theme.breakpoint.desktop}),(function(n){var t=n.theme,e=n.textSize;return h(e||null,t.fontSizes.xxxl,t)})),p=e.h3(m||(m=n([\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"],[\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"])),(function(n){return x(n)}),(function(n){var t=n.theme,e=n.textSize;return c(e||null,t.fontSizes.l,t)}),(function(n){return n.theme.breakpoint.tablet}),(function(n){var t=n.theme,e=n.textSize;return z(e||null,t.fontSizes.xl,t)}),(function(n){return n.theme.breakpoint.desktop}),(function(n){var t=n.theme,e=n.textSize;return h(e||null,t.fontSizes.xxl,t)})),w=e.h4(a||(a=n([\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"],[\"\\n \",\"\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"])),(function(n){return x(n)}),(function(n){var t=n.theme,e=n.textSize;return c(e||null,t.fontSizes.l,t)}),(function(n){return n.theme.breakpoint.tablet}),(function(n){var t=n.theme,e=n.textSize;return z(e||null,t.fontSizes.l,t)}),(function(n){return n.theme.breakpoint.desktop}),(function(n){var t=n.theme,e=n.textSize;return h(e||null,t.fontSizes.xl,t)})),b=e.h5(s||(s=n([\"\\n \",\"\\n\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"],[\"\\n \",\"\\n\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"])),(function(n){return x(n)}),(function(n){var t=n.theme,e=n.textSize;return c(e||null,t.fontSizes.l,t)}),(function(n){return n.theme.breakpoint.tablet}),(function(n){var t=n.theme,e=n.textSize;return z(e||null,t.fontSizes.l,t)}),(function(n){return n.theme.breakpoint.desktop}),(function(n){var t=n.theme,e=n.textSize;return h(e||null,t.fontSizes.l,t)})),v=e.h6(l||(l=n([\"\\n \",\"\\n\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"],[\"\\n \",\"\\n\\n font-size: \",\";\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n @media (min-width: \",\") {\\n font-size: \",\";\\n }\\n\"])),(function(n){return x(n)}),(function(n){var t=n.theme,e=n.textSize;return c(e||null,t.fontSizes.m,t)}),(function(n){return n.theme.breakpoint.tablet}),(function(n){var t=n.theme,e=n.textSize;return z(e||null,t.fontSizes.m,t)}),(function(n){return n.theme.breakpoint.desktop}),(function(n){var t=n.theme,e=n.textSize;return h(e||null,t.fontSizes.m,t)}));export{d as H1,S as H2,p as H3,w as H4,b as H5,v as H6};\n//# sourceMappingURL=styles.js.map\n","import{__rest as e,__assign as t}from\"../../../node_modules/tslib/tslib.es6.js\";import r from\"react\";import{useTheme as m}from\"styled-components\";import o from\"../../themes/cruk.js\";import{H1 as h,H2 as l,H3 as n,H4 as s,H5 as a,H6 as c}from\"./styles.js\";var i=function(i){var f=i.h1,p=i.h2,E=i.h3,u=i.h4,d=i.h5,j=i.h6,b=e(i,[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"]),v=m(),y=t(t({},o),v),k=t(t({},b),{theme:y});return f?r.createElement(h,t({},k)):p?r.createElement(l,t({},k)):E?r.createElement(n,t({},k)):u?r.createElement(s,t({},k)):d?r.createElement(a,t({},k)):j?r.createElement(c,t({},k)):r.createElement(l,t({},k))};export{i as default};\n//# sourceMappingURL=index.js.map\n","import{__makeTemplateObject as n}from\"../../../node_modules/tslib/tslib.es6.js\";import i from\"styled-components\";var t,e=i.svg(t||(t=n([\"\\n display: inline-block;\\n height: \",\";\\n margin-top: -0.2em;\\n vertical-align: middle;\\n width: \",\";\\n path {\\n fill: \",\";\\n }\\n\"],[\"\\n display: inline-block;\\n height: \",\";\\n margin-top: -0.2em;\\n vertical-align: middle;\\n width: \",\";\\n path {\\n fill: \",\";\\n }\\n\"])),(function(n){return n.size}),(function(n){return n.size}),(function(n){var i=n.theme.colors,t=n.color;return t&&void 0!==i[t]?i[t]:t||\"currentColor\"}));export{e as StyledIcon,e as default};\n//# sourceMappingURL=styles.js.map\n","import{__rest as e,__assign as o}from\"../../../node_modules/tslib/tslib.es6.js\";import t from\"react\";import{useTheme as r}from\"styled-components\";import m from\"../../themes/cruk.js\";import{StyledIcon as s}from\"./styles.js\";var c=function(c){var i=c.faIcon,n=c.color,a=c.size,l=void 0===a?\"1.1rem\":a,f=e(c,[\"faIcon\",\"color\",\"size\"]),p=r(),d=o(o({},m),p),u=i.icon,v=u[0],h=u[1],j=u[4];return t.createElement(s,o({theme:d,\"alt-text\":\"\",role:\"presentation\",viewBox:\"0 0 \".concat(v,\" \").concat(h),size:l||\"1.1rem\",color:n},f),j&&t.createElement(\"path\",{d:j}))};export{c as default};\n//# sourceMappingURL=index.js.map\n","var n=function(n,a){var t=n.margin,i=n.marginHorizontal,c=n.marginVertical,o=n.marginTop,p=n.marginRight,g=n.marginBottom,r=n.marginLeft,m=n.padding,l=n.paddingHorizontal,d=n.paddingVertical,u=n.paddingTop,s=n.paddingRight,e=n.paddingBottom,f=n.paddingLeft,h=t?a.spacing[t]:null,b=c?a.spacing[c]:null,v=i?a.spacing[i]:null,z=o?a.spacing[o]:null,B=p?a.spacing[p]:null,H=g?a.spacing[g]:null,L=r?a.spacing[r]:null,R=h?\"margin: \".concat(h,\" !important;\"):\"\",T=z?\"margin-top: \".concat(z,\" !important;\"):b?\"margin-top: \".concat(b,\" !important;\"):\"\",V=B?\"margin-right: \".concat(B,\" !important;\"):v?\"margin-right: \".concat(v,\" !important;\"):\"\",x=H?\"margin-bottom: \".concat(H,\" !important;\"):b?\"margin-bottom: \".concat(b,\" !important;\"):\"\",j=L?\"margin-left: \".concat(L,\" !important;\"):v?\"margin-left: \".concat(v,\" !important;\"):\"\",k=m?a.spacing[m]:null,q=d?a.spacing[d]:null,w=l?a.spacing[l]:null,y=u?a.spacing[u]:null,A=s?a.spacing[s]:null,C=e?a.spacing[e]:null,D=f?a.spacing[f]:null,E=k?\"padding: \".concat(k,\" !important;\"):\"\",F=y?\"padding-top: \".concat(y,\" !important;\"):q?\"padding-top: \".concat(q,\" !important;\"):\"\",G=A?\"padding-right: \".concat(A,\" !important;\"):w?\"padding-right: \".concat(w,\" !important;\"):\"\",I=C?\"padding-bottom: \".concat(C,\" !important;\"):q?\"padding-bottom: \".concat(q,\" !important;\"):\"\",J=D?\"padding-left: \".concat(D,\" !important;\"):w?\"padding-left: \".concat(w,\" !important;\"):\"\";return\"\\n \".concat(R,\"\\n \").concat(T,\"\\n \").concat(V,\"\\n \").concat(x,\"\\n \").concat(j,\"\\n \").concat(E,\"\\n \").concat(F,\"\\n \").concat(G,\"\\n \").concat(I,\"\\n \").concat(J,\"\\n \")};export{n as Spacing,n as default};\n//# sourceMappingURL=index.js.map\n","import{__makeTemplateObject as n}from\"../../../node_modules/tslib/tslib.es6.js\";import t from\"styled-components\";import{Spacing as o}from\"../Spacing/index.js\";var e,r=t.p(e||(e=n([\"\\n font-family: \",\";\\n word-break: \",\";\\n overflow-wrap: \",\";\\n color: \",\";\\n text-align: \",\";\\n font-size: \",\";\\n line-height: \",\";\\n font-weight: \",\";\\n padding: 0;\\n margin: 0;\\n margin-bottom: \",\";\\n\\n &:last-child {\\n margin-bottom: 0;\\n }\\n\\n \",\"\\n\"],[\"\\n font-family: \",\";\\n word-break: \",\";\\n overflow-wrap: \",\";\\n color: \",\";\\n text-align: \",\";\\n font-size: \",\";\\n line-height: \",\";\\n font-weight: \",\";\\n padding: 0;\\n margin: 0;\\n margin-bottom: \",\";\\n\\n &:last-child {\\n margin-bottom: 0;\\n }\\n\\n \",\"\\n\"])),(function(n){return n.theme.typography.fontFamilyBase}),(function(n){return n.wordBreak||\"normal\"}),(function(n){return n.overflowWrap||\"break-word\"}),(function(n){var t=n.theme.colors,o=n.textColor;return o&&void 0!==t[o]?t[o]:o||t.textDark}),(function(n){return n.textAlign||\"left\"}),(function(n){var t=n.theme,o=t.fontSizes,e=t.fontSizes.m,r=n.textSize;return r?o[r]:e}),(function(n){return n.theme.typography.lineHeight}),(function(n){var t=n.textWeight,o=n.theme;return t||o.typography.fontWeightNormal}),(function(n){var t=n.as,o=n.theme.spacing.xs;return void 0===t||\"p\"===t?\"\".concat(o):0}),(function(n){return o(n,n.theme)}));export{r as TextStyled};\n//# sourceMappingURL=styles.js.map\n","import{__assign as e}from\"../../../node_modules/tslib/tslib.es6.js\";import r,{forwardRef as t}from\"react\";import{useTheme as o}from\"styled-components\";import m from\"../../themes/cruk.js\";import{TextStyled as s}from\"./styles.js\";var f=t((function(t,f){var i=o(),l=e(e({},m),i);return r.createElement(s,e({},t,{ref:f,theme:l}))}));export{f as Text,f as default};\n//# sourceMappingURL=index.js.map\n","var e={contentMaxWidth:\"1020px\",useDefaultFocusRect:!0,useDefaultFromControls:!1,useBackgroundStyleLinks:!1,inputBorderWidth:\"1px\"},r={assetPath:\"https://ccp-s3.int.cruk.org/\",logoUrl:\"/\",logoAlt:\"Cancer Research UK Giving Page\",logoSrc:\"https://ccp-s3.int.cruk.org/images/logos/cruk-160.png\",footerCopyText:\"Cancer Research UK is a registered charity in England and Wales (1089464), Scotland (SC041666), the Isle of Man (1103) and Jersey (247). A company limited by guarantee. Registered company in England and Wales(4325234) and the Isle of Man (5713F).\",footerLogoAlt:\"Registered with Fundraising Regulator\",footerLogoSrc:\"https://ccp-s3.int.cruk.org/images/logos/fundreg.png\"},a={s:\"35px\",m:\"50px\",l:\"60px\",xl:\"90px\",path:\"\".concat(r.assetPath,\"images/avatar/cruk/\")},t={borderRadius:\"4px\",borderRadiusLarge:\"4px\",buttonBorderThickness:\"2px\",textDecoration:\"none\",textTransform:\"none\"},o={mobile:\"576px\",tablet:\"768px\",desktop:\"992px\",desktopLarge:\"1200px\"},n={darkBlue_100:\"#edeaf5\",darkBlue_200:\"#dad2ea\",darkBlue_300:\"#a896cf\",darkBlue_500:\"#2e008b\",magenta_100:\"#fdeaf5\",magenta_500:\"#e40087\",magenta_800:\"#BB0071\",magenta_900:\"#710044\",cyan_500:\"#00b6ed\",cyan_900:\"#005870\",grey_100:\"#f5f5f5\",grey_200:\"#ededed\",grey_300:\"#c6c6c6\",grey_500:\"#9A9A9A\",grey_800:\"#575757\",grey_900:\"#2e2d2c\",white:\"#fff\",black:\"#000\",red:\"#D51311\",yellow:\"#fdc02f\",green:\"#3d854d\"},i={primary:n.darkBlue_500,secondary:n.magenta_500,tertiary:n.cyan_500,textOnPrimary:n.white,textOnSecondary:n.white,textOnTertiary:n.white,disabled:n.grey_300,danger:n.red,warning:n.yellow,success:n.green,info:n.cyan_500,textError:n.red,linkColor:n.darkBlue_500,linkColorHover:n.magenta_800,textDark:n.grey_900,textLight:n.white,progressBar:n.darkBlue_500,progressBarSecondary:n.magenta_500,progressBarBackground:n.grey_200,circularProgress:n.cyan_500,circularProgressSecondary:n.magenta_500,circularProgressBackground:n.grey_300,buttonPrimaryBackground:n.magenta_500,buttonPrimaryText:n.white,buttonPrimaryBorder:n.magenta_500,buttonPrimaryBackgroundHover:n.magenta_800,buttonPrimaryTextHover:n.white,buttonPrimaryBorderHover:n.magenta_800,buttonPrimaryDisabledBackground:n.grey_100,buttonPrimaryDisabledText:n.grey_500,buttonPrimaryDisabledBorder:n.grey_100,buttonSecondaryBackground:n.white,buttonSecondaryText:n.magenta_500,buttonSecondaryBorder:n.magenta_500,buttonSecondaryBackgroundHover:n.magenta_100,buttonSecondaryTextHover:n.magenta_800,buttonSecondaryBorderHover:n.magenta_800,buttonSecondaryDisabledBackground:n.grey_100,buttonSecondaryDisabledText:n.grey_500,buttonSecondaryDisabledBorder:n.grey_100,buttonTertiaryText:n.magenta_500,buttonTertiaryTextHover:n.magenta_800,buttonTertiaryDisabledText:n.grey_500,selectionBorder:n.grey_500,textInputBorder:n.grey_900,inputBorder:n.grey_900,headerBackground:n.white,backgroundLight:n.white,backgroundLightColor:n.darkBlue_200,backgroundMid:n.grey_100,loaderColor1:n.darkBlue_500,loaderColor2:n.magenta_500,loaderColor3:n.cyan_500,paginationText:n.darkBlue_500,paginationActive:n.grey_300,paginationBackground:n.darkBlue_500,footerBackground:n.grey_200,headerBorder:n.grey_300,stepBorder:n.grey_300,stepBackground:n.white,popoverBackground:n.white,textInputExtraInfo:n.grey_200,totaliserBubbleColor:n.grey_200,totaliserBubbleTextColor:n.grey_900,totaliserBubbleTotalColor:n.darkBlue_500,selectBackground:n.grey_900,modalBackdrop:n.grey_900,userBlockExtraText:n.grey_800},g={none:\"0\",auto:\"auto\",xxs:\"0.5rem\",xs:\"1rem\",s:\"1.5rem\",m:\"2rem\",l:\"2.5rem\",xl:\"3rem\",xxl:\"3.5rem\"},d={xs:\"0.75rem\",s:\"0.875rem\",m:\"1rem\",l:\"1.25rem\",xl:\"1.5625rem\",xxl:\"2rem\",xxxl:\"2.5rem\",xxxxl:\"3.125rem\"},s={customFonts:[{family:\"MuseoSans-500\",url:\"\".concat(r.assetPath,\"fonts/MuseoSansRounded-500\")}],fontFamilyBase:\"Arial, Calibri, nimbussansl, liberationsans, freesans, clean, sans-serif\",fontFamilyHeadings:\"MuseoSans-500,Calibri,Arial,sans-serif\",fontSizeBase:\"16px\",fontWeightHeavy:\"700\",fontWeightMedium:\"500\",fontWeightNormal:\"400\",fontWeightLight:\"300\",fontWeightVLight:\"100\",linkTextDecoration:\"underline\",lineHeight:\"1.5em\",headerLineHeight:\"1.25em\",headerTextTransform:\"none\"},l={name:\"cruk\",avatar:a,breakpoint:o,button:t,tokenColors:n,colors:i,spacing:g,fontSizes:d,siteConfig:r,typography:s,utilities:e};export{a as AVATAR,o as BREAKPOINT,t as BUTTON,i as COLORS,d as FONT_SIZES,r as SITE_CONFIG,g as SPACING,n as TOKEN_COLORS,s as TYPOGRAPHY,e as UTILITIES,l as default};\n//# sourceMappingURL=cruk.js.map\n","import{__assign as r}from\"../../node_modules/tslib/tslib.es6.js\";import e from\"./cruk.js\";var a=r(r({},e.utilities),{useBackgroundStyleLinks:!0}),o=r(r({},e.siteConfig),{logoSrc:\"https://ccp-s3.int.cruk.org/images/logos/su2c-160.png\",footerCopyText:\"Stand Up To Cancer and Stand Up To Cancer Brand Marks are registered trademarks of the Entertainment Industry Foundation. Cancer Research UK is a registered charity in England and Wales (1089464), Scotland(SC041666), the Isle of Man (1103) and Jersey (247). A company limited by guarantee. Registered company in England and Wales (4325234) and the Isle of Man (5713F). Registered address: 2 Redman Place, London, E20 1JQ. Donations will be made to Cancer Research UK in support of the Stand Up To Cancer campaign.\"}),t=r(r({},e.avatar),{path:\"\".concat(o.assetPath,\"images/avatar/su2c/\")}),n=r(r({},e.button),{borderRadius:\"1.5rem\",borderRadiusLarge:\"2rem\",textTransform:\"uppercase\"}),s=r({},e.breakpoint),c=r(r({},e.tokenColors),{su2cOrange5:\"#FF8E00\",su2cOrange3:\"#FFB04D\",su2cOrange2:\"#FFDAAD\",su2cOrange1:\"#FFF6EB\",su2cBlack:\"#231F20\",su2cGrey1:\"#555759\",su2cGrey2:\"#A5A5A9\",su2cRed:\"#EF4135\",su2cYellow:\"#FFC325\"}),u=r(r({},e.colors),{primary:c.su2cOrange5,secondary:c.su2cOrange5,tertiary:c.su2cBlack,textOnPrimary:c.su2cBlack,progressBar:c.su2cOrange5,progressBarSecondary:c.su2cRed,circularProgress:c.su2cOrange3,circularProgressSecondary:c.su2cRed,linkColor:c.su2cOrange5,linkColorHover:c.su2cRed,backgroundLightColor:c.su2cOrange2,loaderColor1:c.su2cOrange5,loaderColor2:c.su2cRed,loaderColor3:c.su2cBlack,paginationText:c.su2cBlack,paginationBackground:c.su2cBlack,totaliserBubbleColor:c.su2cBlack,totaliserBubbleTextColor:c.white,totaliserBubbleTotalColor:c.white,buttonPrimaryBackground:c.su2cOrange5,buttonPrimaryText:c.su2cBlack,buttonPrimaryBorder:c.su2cOrange5,buttonPrimaryBackgroundHover:c.su2cOrange3,buttonPrimaryTextHover:c.su2cBlack,buttonPrimaryBorderHover:c.su2cOrange3,buttonPrimaryDisabledBackground:c.grey_300,buttonPrimaryDisabledText:c.white,buttonPrimaryDisabledBorder:c.grey_300,buttonSecondaryBackground:c.white,buttonSecondaryText:c.su2cOrange5,buttonSecondaryBorder:c.su2cOrange5,buttonSecondaryBackgroundHover:c.su2cOrange1,buttonSecondaryTextHover:c.su2cOrange5,buttonSecondaryBorderHover:c.su2cOrange5,buttonSecondaryDisabledBackground:c.white,buttonSecondaryDisabledText:c.grey_300,buttonSecondaryDisabledBorder:c.grey_300,buttonTertiaryText:c.su2cOrange5,buttonTertiaryTextHover:c.su2cOrange5,buttonTertiaryDisabledText:c.grey_300}),i=r({},e.spacing),d=r({},e.fontSizes),l=r(r({},e.typography),{customFonts:[{family:\"itc_avant_garde_pro_mdbold\",url:\"https://crukorg.github.io/SU2C-drupal/assets/fonts/su2c/itc_-_itcavantgardepro-bold-webfont\"}],fontFamilyHeadings:\"itc_avant_garde_pro_mdbold,Arial,sans-serif\",linkTextDecoration:\"none\",headerLineHeight:\"1.5em\",headerTextTransform:\"uppercase\"}),g={name:\"su2c\",avatar:t,breakpoint:s,button:n,tokenColors:c,colors:u,spacing:i,fontSizes:d,siteConfig:o,typography:l,utilities:a};export{t as AVATAR,s as BREAKPOINT,n as BUTTON,u as COLORS,d as FONT_SIZES,o as SITE_CONFIG,i as SPACING,c as TOKEN_COLORS,l as TYPOGRAPHY,a as UTILITIES,g as default};\n//# sourceMappingURL=su2c.js.map\n","/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport var ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport var globalConsole = console;\nexport var originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach(function (name) {\n originalConsoleMethods[name] = globalConsole[name];\n});\nvar PREFIX = 'Datadog Browser SDK:';\nexport var display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { display } from './display';\nvar onMonitorErrorCollected;\nvar debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (debugMode) {\n display.error.apply(display, __spreadArray(['[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n var browserWindow = getGlobalObject();\n var original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","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 { 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_KIBI_BYTE, computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { display } from '../../tools/display';\nimport { isEmptyObject } from '../../tools/utils/objectUtils';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\n// We observed that the compression ratio is around 8 in general, but we also want to keep a margin\n// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB\n// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this\n// is a bit arbitrary.\nexport var CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * ONE_KIBI_BYTE;\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createCustomerDataTrackerManager(compressionStatus) {\n if (compressionStatus === void 0) { compressionStatus = 2 /* CustomerDataCompressionStatus.Disabled */; }\n var customerDataTrackers = new Map();\n var alreadyWarned = false;\n function checkCustomerDataLimit(initialBytesCount) {\n if (initialBytesCount === void 0) { initialBytesCount = 0; }\n if (alreadyWarned || compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n return;\n }\n var bytesCountLimit = compressionStatus === 2 /* CustomerDataCompressionStatus.Disabled */\n ? CUSTOMER_DATA_BYTES_LIMIT\n : CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT;\n var bytesCount = initialBytesCount;\n customerDataTrackers.forEach(function (tracker) {\n bytesCount += tracker.getBytesCount();\n });\n if (bytesCount > bytesCountLimit) {\n displayCustomerDataLimitReachedWarning(bytesCountLimit);\n alreadyWarned = true;\n }\n }\n return {\n /**\n * Creates a detached tracker. The manager will not store a reference to that tracker, and the\n * bytes count will be counted independently from other detached trackers.\n *\n * This is particularly useful when we don't know when the tracker will be unused, so we don't\n * leak memory (ex: when used in Logger instances).\n */\n createDetachedTracker: function () {\n var tracker = createCustomerDataTracker(function () { return checkCustomerDataLimit(tracker.getBytesCount()); });\n return tracker;\n },\n /**\n * Creates a tracker if it doesn't exist, and returns it.\n */\n getOrCreateTracker: function (type) {\n if (!customerDataTrackers.has(type)) {\n customerDataTrackers.set(type, createCustomerDataTracker(checkCustomerDataLimit));\n }\n return customerDataTrackers.get(type);\n },\n setCompressionStatus: function (newCompressionStatus) {\n if (compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n compressionStatus = newCompressionStatus;\n checkCustomerDataLimit();\n }\n },\n getCompressionStatus: function () { return compressionStatus; },\n stop: function () {\n customerDataTrackers.forEach(function (tracker) { return tracker.stop(); });\n customerDataTrackers.clear();\n },\n };\n}\nexport function createCustomerDataTracker(checkCustomerDataLimit) {\n var bytesCountCache = 0;\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var _a = throttle(function (context) {\n bytesCountCache = computeBytesCount(jsonStringify(context));\n checkCustomerDataLimit();\n }, BYTES_COMPUTATION_THROTTLING_DELAY), computeBytesCountThrottled = _a.throttled, cancelComputeBytesCount = _a.cancel;\n var resetBytesCount = function () {\n cancelComputeBytesCount();\n bytesCountCache = 0;\n };\n return {\n updateCustomerData: function (context) {\n if (isEmptyObject(context)) {\n resetBytesCount();\n }\n else {\n computeBytesCountThrottled(context);\n }\n },\n resetCustomerData: resetBytesCount,\n getBytesCount: function () { return bytesCountCache; },\n stop: function () {\n cancelComputeBytesCount();\n },\n };\n}\nfunction displayCustomerDataLimitReachedWarning(bytesCountLimit) {\n display.warn(\"Customer data exceeds the recommended \".concat(bytesCountLimit / ONE_KIBI_BYTE, \"KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-threshold-warning\"));\n}\n//# sourceMappingURL=customerDataTracker.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 { 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(this) || 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 return new Observable(function (globalObservable) {\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}\n//# sourceMappingURL=observable.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[\"COLLECT_FLUSH_REASON\"] = \"collect_flush_reason\";\n ExperimentalFeature[\"ZERO_LCP_TELEMETRY\"] = \"zero_lcp_telemetry\";\n ExperimentalFeature[\"DISABLE_REPLAY_INLINE_CSS\"] = \"disable_replay_inline_css\";\n ExperimentalFeature[\"WRITABLE_RESOURCE_GRAPHQL\"] = \"writable_resource_graphql\";\n ExperimentalFeature[\"TRACKING_CONSENT\"] = \"tracking_consent\";\n ExperimentalFeature[\"CUSTOM_VITALS\"] = \"custom_vitals\";\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 { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nexport function createContextManager(customerDataTracker) {\n var context = {};\n var changeObservable = new Observable();\n var contextManager = {\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n customerDataTracker.updateCustomerData(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n removeContextProperty: function (key) {\n delete context[key];\n customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n clearContext: function () {\n context = {};\n customerDataTracker.resetCustomerData();\n changeObservable.notify();\n },\n changeObservable: changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","import { ExperimentalFeature, isExperimentalFeatureEnabled } from '../tools/experimentalFeatures';\nimport { Observable } from '../tools/observable';\nexport var TrackingConsent = {\n GRANTED: 'granted',\n NOT_GRANTED: 'not-granted',\n};\nexport function createTrackingConsentState(currentConsent) {\n var observable = new Observable();\n return {\n tryToInit: function (trackingConsent) {\n if (!currentConsent) {\n currentConsent = trackingConsent;\n }\n },\n update: function (trackingConsent) {\n currentConsent = trackingConsent;\n observable.notify();\n },\n isGranted: function () {\n return (!isExperimentalFeatureEnabled(ExperimentalFeature.TRACKING_CONSENT) ||\n currentConsent === TrackingConsent.GRANTED);\n },\n observable: observable,\n };\n}\n//# sourceMappingURL=trackingConsent.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}\nexport function timeStampToClocks(timeStamp) {\n return { relative: getRelativeTime(timeStamp), timeStamp: timeStamp };\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 { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n// We want to use a real enum (i.e. not a const enum) here, to be able to iterate over it to automatically add _ddIsTrusted in e2e tests\n// eslint-disable-next-line no-restricted-syntax\nexport var DOM_EVENT;\n(function (DOM_EVENT) {\n DOM_EVENT[\"BEFORE_UNLOAD\"] = \"beforeunload\";\n DOM_EVENT[\"CLICK\"] = \"click\";\n DOM_EVENT[\"DBL_CLICK\"] = \"dblclick\";\n DOM_EVENT[\"KEY_DOWN\"] = \"keydown\";\n DOM_EVENT[\"LOAD\"] = \"load\";\n DOM_EVENT[\"POP_STATE\"] = \"popstate\";\n DOM_EVENT[\"SCROLL\"] = \"scroll\";\n DOM_EVENT[\"TOUCH_START\"] = \"touchstart\";\n DOM_EVENT[\"TOUCH_END\"] = \"touchend\";\n DOM_EVENT[\"TOUCH_MOVE\"] = \"touchmove\";\n DOM_EVENT[\"VISIBILITY_CHANGE\"] = \"visibilitychange\";\n DOM_EVENT[\"PAGE_SHOW\"] = \"pageshow\";\n DOM_EVENT[\"FREEZE\"] = \"freeze\";\n DOM_EVENT[\"RESUME\"] = \"resume\";\n DOM_EVENT[\"DOM_CONTENT_LOADED\"] = \"DOMContentLoaded\";\n DOM_EVENT[\"POINTER_DOWN\"] = \"pointerdown\";\n DOM_EVENT[\"POINTER_UP\"] = \"pointerup\";\n DOM_EVENT[\"POINTER_CANCEL\"] = \"pointercancel\";\n DOM_EVENT[\"HASH_CHANGE\"] = \"hashchange\";\n DOM_EVENT[\"PAGE_HIDE\"] = \"pagehide\";\n DOM_EVENT[\"MOUSE_DOWN\"] = \"mousedown\";\n DOM_EVENT[\"MOUSE_UP\"] = \"mouseup\";\n DOM_EVENT[\"MOUSE_MOVE\"] = \"mousemove\";\n DOM_EVENT[\"FOCUS\"] = \"focus\";\n DOM_EVENT[\"BLUR\"] = \"blur\";\n DOM_EVENT[\"CONTEXT_MENU\"] = \"contextmenu\";\n DOM_EVENT[\"RESIZE\"] = \"resize\";\n DOM_EVENT[\"CHANGE\"] = \"change\";\n DOM_EVENT[\"INPUT\"] = \"input\";\n DOM_EVENT[\"PLAY\"] = \"play\";\n DOM_EVENT[\"PAUSE\"] = \"pause\";\n DOM_EVENT[\"SECURITY_POLICY_VIOLATION\"] = \"securitypolicyviolation\";\n DOM_EVENT[\"SELECTION_CHANGE\"] = \"selectionchange\";\n DOM_EVENT[\"STORAGE\"] = \"storage\";\n})(DOM_EVENT || (DOM_EVENT = {}));\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(configuration, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var listenerWithMonitor = monitor(function (event) {\n if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {\n return;\n }\n if (once) {\n stop();\n }\n listener(event);\n });\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 { addEventListener, DOM_EVENT } from '../../browser/addEventListener';\nimport { combine } from '../../tools/mergeInto';\nvar CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nvar storageListeners = [];\nexport function storeContextManager(configuration, contextManager, productKey, customerDataType) {\n var storageKey = buildStorageKey(productKey, customerDataType);\n storageListeners.push(addEventListener(configuration, window, DOM_EVENT.STORAGE, function (_a) {\n var key = _a.key;\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n contextManager.setContext(combine(getFromStorage(), contextManager.getContext()));\n function synchronizeWithStorage() {\n contextManager.setContext(getFromStorage());\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n function getFromStorage() {\n var rawContext = localStorage.getItem(storageKey);\n return rawContext !== null ? JSON.parse(rawContext) : {};\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=storeContextManager.js.map","import { computeBytesCount } from './utils/byteUtils';\nexport function createIdentityEncoder() {\n var output = '';\n var outputBytesCount = 0;\n return {\n isAsync: false,\n get isEmpty() {\n return !output;\n },\n write: function (data, callback) {\n var additionalEncodedBytesCount = computeBytesCount(data);\n outputBytesCount += additionalEncodedBytesCount;\n output += data;\n if (callback) {\n callback(additionalEncodedBytesCount);\n }\n },\n finish: function (callback) {\n callback(this.finishSync());\n },\n finishSync: function () {\n var result = {\n output: output,\n outputBytesCount: outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: '',\n };\n output = '';\n outputBytesCount = 0;\n return result;\n },\n estimateEncodedBytesCount: function (data) {\n return data.length;\n },\n };\n}\n//# sourceMappingURL=encoder.js.map","/**\n * Cross-browser stack trace computation.\n *\n * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js\n */\nimport { startsWith } from '../../tools/utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\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}\nexport function computeStackTraceFromOnErrorMessage(messageObj, url, line, column) {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name = _a.name, message = _a.message;\n return {\n name: name,\n message: message,\n stack: stack,\n };\n}\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]*)$/;\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//# sourceMappingURL=computeStackTrace.js.map","import { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { noop } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { computeStackTrace } from './computeStackTrace';\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","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 { display } from '../tools/display';\nexport function displayAlreadyInitializedError(sdkName, initConfiguration) {\n if (!initConfiguration.silentMultipleInit) {\n display.error(\"\".concat(sdkName, \" is already initialized.\"));\n }\n}\n//# sourceMappingURL=displayAlreadyInitializedError.js.map","import { arrayFrom } from './polyfills';\nexport function removeDuplicates(array) {\n var set = new Set();\n array.forEach(function (item) { return set.add(item); });\n return arrayFrom(set);\n}\nexport function removeItem(array, item) {\n var index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrayUtils.js.map","import { removeItem } from './utils/arrayUtils';\nvar 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.remove = function (callback) {\n removeItem(this.buffer, callback);\n };\n BoundedBuffer.prototype.drain = function (arg) {\n this.buffer.forEach(function (callback) { return callback(arg); });\n this.buffer.length = 0;\n };\n return BoundedBuffer;\n}());\nexport { BoundedBuffer };\n//# sourceMappingURL=boundedBuffer.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","/**\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}\nvar COMMA_SEPARATED_KEY_VALUE = /([\\w-]+)\\s*=\\s*([^;]+)/g;\nexport function findCommaSeparatedValue(rawString, name) {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n if (match[1] === name) {\n return match[2];\n }\n }\n else {\n break;\n }\n }\n}\nexport function findCommaSeparatedValues(rawString) {\n var result = new Map();\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n result.set(match[1], match[2]);\n }\n else {\n break;\n }\n }\n return result;\n}\nexport function safeTruncate(candidate, length, suffix) {\n 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 { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, 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 var partitioned = options && options.partitioned ? ';partitioned' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure).concat(partitioned);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nvar initCookieParsed;\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie);\n }\n return initCookieParsed.get(name);\n}\nexport function resetInitCookies() {\n initCookieParsed = undefined;\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n 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","import { getInitCookie } 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 || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","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 function isIE() {\n return detectBrowserCached() === 0 /* Browser.IE */;\n}\nexport function isChromium() {\n return detectBrowserCached() === 1 /* Browser.CHROMIUM */;\n}\nexport function isSafari() {\n return detectBrowserCached() === 2 /* Browser.SAFARI */;\n}\nvar browserCache;\nfunction detectBrowserCached() {\n return browserCache !== null && browserCache !== void 0 ? browserCache : (browserCache = detectBrowser());\n}\n// Exported only for tests\nexport function detectBrowser(browserWindow) {\n var _a;\n if (browserWindow === void 0) { browserWindow = window; }\n var userAgent = browserWindow.navigator.userAgent;\n if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {\n return 1 /* Browser.CHROMIUM */;\n }\n if (\n // navigator.vendor is deprecated, but it is the most resilient way we found to detect\n // \"Apple maintained browsers\" (AKA Safari). If one day it gets removed, we still have the\n // useragent test as a semi-working fallback.\n ((_a = browserWindow.navigator.vendor) === null || _a === void 0 ? void 0 : _a.indexOf('Apple')) === 0 ||\n (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))) {\n return 2 /* Browser.SAFARI */;\n }\n if (browserWindow.document.documentMode) {\n return 0 /* Browser.IE */;\n }\n return 3 /* Browser.OTHER */;\n}\n//# sourceMappingURL=browserDetection.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport function isSessionInExpiredState(session) {\n return isEmptyObject(session);\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n clearSession: deleteSessionCookie(cookieOptions),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction deleteSessionCookie(options) {\n return function () {\n deleteCookie(SESSION_STORE_KEY, options);\n };\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure =\n !!initConfiguration.useSecureSessionCookie ||\n !!initConfiguration.usePartitionedCrossSiteSessionCookie ||\n !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite =\n !!initConfiguration.usePartitionedCrossSiteSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { getInitCookie } 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 = getInitCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME);\n var session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (!isSessionInExpiredState(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY);\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var isLockEnabled = sessionStoreStrategy.isLockEnabled, retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentSession = retrieveSession();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n currentSession.lock = currentLock;\n persistSession(currentSession);\n // if lock is not acquired, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentSession);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession();\n }\n else {\n expandSessionState(processedSession);\n persistSession(processedSession);\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n delete currentSession.lock;\n persistSession(currentSession);\n processedSession = currentSession;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentSession);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var clearSession = sessionStoreStrategy.clearSession, retrieveSession = sessionStoreStrategy.retrieveSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache = retrieveActiveSession();\n function expandOrRenewSession() {\n var isTracked;\n processSessionStoreOperations({\n process: function (sessionState) {\n var synchronizedSession = synchronizeSession(sessionState);\n isTracked = expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (hasSessionInCache() ? synchronizeSession(sessionState) : undefined); },\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (!isActiveSession(sessionState) ? {} : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {};\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function expandOrRenewSessionState(sessionState) {\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n return isTracked;\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = {};\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function retrieveActiveSession() {\n var session = retrieveSession();\n if (isActiveSession(session)) {\n return session;\n }\n return {};\n }\n function isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n }\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n clearSession();\n synchronizeSession({});\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, location.href).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\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}\n//# sourceMappingURL=urlPolyfill.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_FED_STAGING = 'dd0g-gov.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\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_US1, INTAKE_SITE_FED_STAGING } from './intakeSites';\nexport function createEndpointBuilder(initConfiguration, trackType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);\n return {\n build: function (api, payload) {\n var parameters = buildEndpointParameters(initConfiguration, trackType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n trackType: trackType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {\n var path = \"/api/v2/\".concat(trackType);\n var proxy = initConfiguration.proxy;\n if (typeof proxy === 'string') {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n if (typeof proxy === 'function') {\n return function (parameters) { return proxy({ path: path, parameters: parameters }); };\n }\n var host = buildEndpointHost(initConfiguration);\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(initConfiguration) {\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 if (site === INTAKE_SITE_FED_STAGING) {\n return \"http-intake.logs.\".concat(site);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n return \"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, trackType, configurationTags, api, _b) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;\n var tags = [\"sdk_version:\".concat(\"5.10.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(\"5.10.0\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (encoding) {\n parameters.push(\"dd-evp-encoding=\".concat(encoding));\n }\n if (trackType === '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, 'replay', 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 { TrackingConsent } from '../trackingConsent';\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, _d;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n if (initConfiguration.sessionSampleRate !== undefined && !isPercentage(initConfiguration.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 if (initConfiguration.trackingConsent !== undefined &&\n !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)) {\n display.error('Tracking Consent should be either \"granted\" or \"not-granted\"');\n return;\n }\n // 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: (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,\n trackingConsent: (_d = initConfiguration.trackingConsent) !== null && _d !== void 0 ? _d : TrackingConsent.GRANTED,\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 return {\n session_sample_rate: initConfiguration.sessionSampleRate,\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_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: !!initConfiguration.proxy,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,\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, isMatchOption, serializeConfiguration, assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core';\nimport { isTracingOption } from './tracing/tracer';\nexport var DEFAULT_PROPAGATOR_TYPES = ['tracecontext', 'datadog'];\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b;\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 if (initConfiguration.traceSampleRate !== undefined && !isPercentage(initConfiguration.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 return assign({\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: (_a = initConfiguration.sessionReplaySampleRate) !== null && _a !== void 0 ? _a : 0,\n startSessionReplayRecordingManually: !!initConfiguration.startSessionReplayRecordingManually,\n traceSampleRate: initConfiguration.traceSampleRate,\n allowedTracingUrls: allowedTracingUrls,\n excludedActivityUrls: (_b = initConfiguration.excludedActivityUrls) !== null && _b !== void 0 ? _b : [],\n workerUrl: initConfiguration.workerUrl,\n compressIntakeRequests: !!initConfiguration.compressIntakeRequests,\n trackUserInteractions: !!initConfiguration.trackUserInteractions,\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,\n customerDataTelemetrySampleRate: 1,\n }, baseConfiguration);\n}\n/**\n * Validates allowedTracingUrls and converts match options to tracing options\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\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: DEFAULT_PROPAGATOR_TYPES });\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 return [];\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls\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 DEFAULT_PROPAGATOR_TYPES.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\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 return arrayFrom(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var baseSerializedConfiguration = serializeConfiguration(configuration);\n return assign({\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n trace_sample_rate: configuration.traceSampleRate,\n action_name_attribute: configuration.actionNameAttribute,\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 compress_intake_requests: configuration.compressIntakeRequests,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: configuration.trackUserInteractions,\n track_resources: configuration.trackResources,\n track_long_task: configuration.trackLongTasks,\n }, baseSerializedConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","import { BoundedBuffer, display, canUseEventBridge, displayAlreadyInitializedError, willSyntheticsInjectRum, noop, timeStampNow, clocksNow, assign, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration, } from '../domain/configuration';\nexport function createPreStartStrategy(_a, getCommonContext, trackingConsentState, doStartRum) {\n var ignoreInitIfSyntheticsWillInjectRum = _a.ignoreInitIfSyntheticsWillInjectRum, startDeflateWorker = _a.startDeflateWorker;\n var bufferApiCalls = new BoundedBuffer();\n var firstStartViewCall;\n var deflateWorker;\n var cachedInitConfiguration;\n var cachedConfiguration;\n var trackingConsentStateSubscription = trackingConsentState.observable.subscribe(tryStartRum);\n function tryStartRum() {\n if (!cachedInitConfiguration || !cachedConfiguration || !trackingConsentState.isGranted()) {\n return;\n }\n trackingConsentStateSubscription.unsubscribe();\n var initialViewOptions;\n if (cachedConfiguration.trackViewsManually) {\n if (!firstStartViewCall) {\n return;\n }\n // An initial view is always created when starting RUM.\n // When tracking views automatically, any startView call before RUM start creates an extra\n // view.\n // When tracking views manually, we use the ViewOptions from the first startView call as the\n // initial view options, and we remove the actual startView call so we don't create an extra\n // view.\n bufferApiCalls.remove(firstStartViewCall.callback);\n initialViewOptions = firstStartViewCall.options;\n }\n var startRumResult = doStartRum(cachedInitConfiguration, cachedConfiguration, deflateWorker, initialViewOptions);\n bufferApiCalls.drain(startRumResult);\n }\n return {\n init: function (initConfiguration) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n var eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n // Expose the initial configuration regardless of initialization success.\n cachedInitConfiguration = initConfiguration;\n if (cachedConfiguration) {\n displayAlreadyInitializedError('DD_RUM', initConfiguration);\n return;\n }\n // If we are in a Synthetics test configured to automatically inject a RUM instance, we want\n // to completely discard the customer application RUM instance by ignoring their init() call.\n // But, 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 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.compressIntakeRequests && !eventBridgeAvailable && startDeflateWorker) {\n deflateWorker = startDeflateWorker(configuration, 'Datadog RUM', \n // Worker initialization can fail asynchronously, especially in Firefox where even CSP\n // issues are reported asynchronously. For now, the SDK will continue its execution even if\n // data won't be sent to Datadog. We could improve this behavior in the future.\n noop);\n if (!deflateWorker) {\n // `startDeflateWorker` should have logged an error message explaining the issue\n return;\n }\n }\n cachedConfiguration = configuration;\n trackingConsentState.tryToInit(configuration.trackingConsent);\n tryStartRum();\n },\n get initConfiguration() {\n return cachedInitConfiguration;\n },\n getInternalContext: noop,\n stopSession: noop,\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addTiming(name, time); });\n },\n startView: function (options, startClocks) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n var callback = function (startRumResult) {\n startRumResult.startView(options, startClocks);\n };\n bufferApiCalls.add(callback);\n if (!firstStartViewCall) {\n firstStartViewCall = { options: options, callback: callback };\n tryStartRum();\n }\n },\n addAction: function (action, commonContext) {\n if (commonContext === void 0) { commonContext = getCommonContext(); }\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addAction(action, commonContext); });\n },\n addError: function (providedError, commonContext) {\n if (commonContext === void 0) { commonContext = getCommonContext(); }\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addError(providedError, commonContext); });\n },\n addFeatureFlagEvaluation: function (key, value) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addFeatureFlagEvaluation(key, value); });\n },\n startDurationVital: function (vitalStart) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.startDurationVital(vitalStart); });\n },\n stopDurationVital: function (vitalStart) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.stopDurationVital(vitalStart); });\n },\n };\n}\nfunction overrideInitConfigurationForBridge(initConfiguration) {\n return assign({}, initConfiguration, {\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n });\n}\n//# sourceMappingURL=preStartRum.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 function getConnectivity() {\n var _a;\n var navigator = window.navigator;\n return {\n status: navigator.onLine ? 'connected' : 'not_connected',\n interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : undefined,\n effective_type: (_a = navigator.connection) === null || _a === void 0 ? void 0 : _a.effectiveType,\n };\n}\n//# sourceMappingURL=connectivity.js.map","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 { 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 { computeStackTrace } from '../error/computeStackTrace';\nimport { getConnectivity } from '../connectivity';\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: \"5.10.0\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n connectivity: getConnectivity(),\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, DOM_EVENT } 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 return new Observable(function (observable) {\n var pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE);\n var stopListeners = addEventListeners(configuration, window, [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE, DOM_EVENT.PAGE_HIDE], function (event) {\n if (event.type === 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 === 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 === 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, DOM_EVENT.BEFORE_UNLOAD, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n }\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\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 return new Observable(function (observable) {\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}\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 { DOM_EVENT, 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' ? DOM_EVENT.LOAD : DOM_EVENT.DOM_CONTENT_LOADED;\n addEventListener(configuration, window, eventName, callback, { once: true });\n }\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { assign, addTelemetryDebug, elapsed, getPathName, includes, isValidUrl, toServerDuration, } from '@datadog/browser-core';\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document';\nvar RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, function (initiatorType) { return FAKE_INITIAL_DOCUMENT === initiatorType; }],\n [\"xhr\" /* ResourceType.XHR */, function (initiatorType) { return 'xmlhttprequest' === initiatorType; }],\n [\"fetch\" /* ResourceType.FETCH */, function (initiatorType) { return 'fetch' === initiatorType; }],\n [\"beacon\" /* ResourceType.BEACON */, function (initiatorType) { return 'beacon' === initiatorType; }],\n [\"css\" /* ResourceType.CSS */, function (_, path) { return /\\.css$/i.test(path); }],\n [\"js\" /* ResourceType.JS */, function (_, path) { return /\\.js$/i.test(path); }],\n [\n \"image\" /* ResourceType.IMAGE */,\n function (initiatorType, path) {\n return includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null;\n },\n ],\n [\"font\" /* ResourceType.FONT */, function (_, path) { return /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null; }],\n [\n \"media\" /* ResourceType.MEDIA */,\n function (initiatorType, path) {\n return includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null;\n },\n ],\n];\nexport function computeResourceKind(timing) {\n var url = timing.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(\"Failed to construct URL for \\\"\".concat(timing.name, \"\\\"\"));\n return \"other\" /* ResourceType.OTHER */;\n }\n var path = getPathName(url);\n for (var _i = 0, RESOURCE_TYPES_1 = RESOURCE_TYPES; _i < RESOURCE_TYPES_1.length; _i++) {\n var _a = RESOURCE_TYPES_1[_i], type = _a[0], isType = _a[1];\n if (isType(timing.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder() {\n var numbers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n numbers[_i] = arguments[_i];\n }\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isRequestKind(timing) {\n return timing.initiatorType === 'xmlhttprequest' || timing.initiatorType === 'fetch';\n}\nexport function computePerformanceResourceDuration(entry) {\n var duration = entry.duration, startTime = entry.startTime, responseEnd = entry.responseEnd;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd));\n }\n return toServerDuration(duration);\n}\nexport function computePerformanceResourceDetails(entry) {\n var validEntry = toValidEntry(entry);\n if (!validEntry) {\n return undefined;\n }\n var startTime = validEntry.startTime, fetchStart = validEntry.fetchStart, redirectStart = validEntry.redirectStart, redirectEnd = validEntry.redirectEnd, domainLookupStart = validEntry.domainLookupStart, domainLookupEnd = validEntry.domainLookupEnd, connectStart = validEntry.connectStart, secureConnectionStart = validEntry.secureConnectionStart, connectEnd = validEntry.connectEnd, requestStart = validEntry.requestStart, responseStart = validEntry.responseStart, responseEnd = validEntry.responseEnd;\n var details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n if (hasRedirection(entry)) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\nexport function toValidEntry(entry) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n if (!areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd)) {\n return undefined;\n }\n if (!hasRedirection(entry)) {\n return entry;\n }\n var redirectStart = entry.redirectStart, redirectEnd = entry.redirectEnd;\n // Firefox doesn't provide redirect timings on cross origin requests.\n // Provide a default for those.\n if (redirectStart < entry.startTime) {\n redirectStart = entry.startTime;\n }\n if (redirectEnd < entry.startTime) {\n redirectEnd = entry.fetchStart;\n }\n // Make sure redirect timings are in order\n if (!areInOrder(entry.startTime, redirectStart, redirectEnd, entry.fetchStart)) {\n return undefined;\n }\n return assign({}, entry, {\n redirectEnd: redirectEnd,\n redirectStart: redirectStart,\n });\n}\nfunction hasRedirection(entry) {\n // The only time fetchStart is different than startTime is if a redirection occurred.\n return entry.fetchStart !== entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n}\nexport function computeSize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return entry.decodedBodySize;\n }\n return undefined;\n}\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !configuration.isIntakeUrl(url);\n}\n//# sourceMappingURL=resourceUtils.js.map","export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot);\n}\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function hasChildNodes(node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node);\n}\nexport function forEachChildNodes(node, callback) {\n node.childNodes.forEach(callback);\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot);\n }\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode;\n}\n//# sourceMappingURL=htmlDomUtils.js.map","import { dateNow, findCommaSeparatedValue, ONE_MINUTE } from '@datadog/browser-core';\nimport { isCommentNode, isTextNode } from '../../browser/htmlDomUtils';\nexport var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE;\nexport function getDocumentTraceId(document) {\n var data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document);\n if (!data || data.traceTime <= dateNow() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {\n return undefined;\n }\n return data.traceId;\n}\nexport function getDocumentTraceDataFromMeta(document) {\n var traceIdMeta = document.querySelector('meta[name=dd-trace-id]');\n var traceTimeMeta = document.querySelector('meta[name=dd-trace-time]');\n return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content);\n}\nexport function getDocumentTraceDataFromComment(document) {\n var comment = findTraceComment(document);\n if (!comment) {\n return undefined;\n }\n return createDocumentTraceData(findCommaSeparatedValue(comment, 'trace-id'), findCommaSeparatedValue(comment, 'trace-time'));\n}\nexport function createDocumentTraceData(traceId, rawTraceTime) {\n var traceTime = rawTraceTime && Number(rawTraceTime);\n if (!traceId || !traceTime) {\n return undefined;\n }\n return {\n traceId: traceId,\n traceTime: traceTime,\n };\n}\nexport function findTraceComment(document) {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n for (var i = 0; i < document.childNodes.length; i += 1) {\n var comment = getTraceCommentFromNode(document.childNodes[i]);\n if (comment) {\n return comment;\n }\n }\n // 2. If the comment is placed after the tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the tag.\n // Try to look for the comment at the end of the by by iterating over its child nodes in\n // reverse order, stopping if we come across a non-text node.\n if (document.body) {\n for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n var node = document.body.childNodes[i];\n var comment = getTraceCommentFromNode(node);\n if (comment) {\n return comment;\n }\n if (!isTextNode(node)) {\n break;\n }\n }\n }\n}\nfunction getTraceCommentFromNode(node) {\n if (node && isCommentNode(node)) {\n var match = /^\\s*DATADOG;(.*?)\\s*$/.exec(node.data);\n if (match) {\n return match[1];\n }\n }\n}\n//# sourceMappingURL=getDocumentTraceId.js.map","import { dateNow, assign, addEventListeners, DOM_EVENT, getRelativeTime, isNumber, monitor, setTimeout, relativeNow, runOnReadyState, addEventListener, objectHasValue, } from '@datadog/browser-core';\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId';\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected performance entry\n// eslint-disable-next-line no-restricted-syntax\nexport var RumPerformanceEntryType;\n(function (RumPerformanceEntryType) {\n RumPerformanceEntryType[\"EVENT\"] = \"event\";\n RumPerformanceEntryType[\"FIRST_INPUT\"] = \"first-input\";\n RumPerformanceEntryType[\"LARGEST_CONTENTFUL_PAINT\"] = \"largest-contentful-paint\";\n RumPerformanceEntryType[\"LAYOUT_SHIFT\"] = \"layout-shift\";\n RumPerformanceEntryType[\"LONG_TASK\"] = \"longtask\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function supportPerformanceTimingEvent(entryType) {\n return (window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType));\n}\nexport function startPerformanceCollection(lifeCycle, configuration) {\n var cleanupTasks = [];\n retrieveInitialDocumentResourceTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n if (supportPerformanceObject()) {\n var performanceEntries_1 = performance.getEntries();\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(function () { return handleRumPerformanceEntries(lifeCycle, configuration, performanceEntries_1); });\n }\n if (window.PerformanceObserver) {\n var handlePerformanceEntryList_1 = monitor(function (entries) {\n return handleRumPerformanceEntries(lifeCycle, configuration, entries.getEntries());\n });\n var mainEntries = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n var experimentalEntries = [\n RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT,\n RumPerformanceEntryType.FIRST_INPUT,\n RumPerformanceEntryType.LAYOUT_SHIFT,\n RumPerformanceEntryType.EVENT,\n ];\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach(function (type) {\n var observer = new window.PerformanceObserver(handlePerformanceEntryList_1);\n observer.observe({\n type: type,\n buffered: true,\n // durationThreshold only impact PerformanceEventTiming entries used for INP computation which requires a threshold at 40 (default is 104ms)\n // cf: https://github.com/GoogleChrome/web-vitals/blob/3806160ffbc93c3c4abf210a167b81228172b31c/src/onINP.ts#L209\n durationThreshold: 40,\n });\n cleanupTasks.push(function () { return observer.disconnect(); });\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_1 = new PerformanceObserver(handlePerformanceEntryList_1);\n mainObserver_1.observe({ entryTypes: mainEntries });\n cleanupTasks.push(function () { return mainObserver_1.disconnect(); });\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n var removePerformanceListener = addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n }).stop;\n cleanupTasks.push(removePerformanceListener);\n }\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION)) {\n retrieveNavigationTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT)) {\n var stopFirstInputTiming = retrieveFirstInputTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n }).stop;\n cleanupTasks.push(stopFirstInputTiming);\n }\n return {\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\nexport function retrieveInitialDocumentResourceTiming(configuration, callback) {\n runOnReadyState(configuration, 'interactive', function () {\n var timing;\n var forcedAttributes = {\n entryType: RumPerformanceEntryType.RESOURCE,\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n toJSON: function () { return assign({}, timing, { toJSON: undefined }); },\n };\n if (supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION) &&\n performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION).length > 0) {\n var navigationEntry = performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION)[0];\n timing = assign(navigationEntry.toJSON(), forcedAttributes);\n }\n else {\n var relativePerformanceTiming = computeRelativePerformanceTiming();\n timing = assign(relativePerformanceTiming, {\n decodedBodySize: 0,\n duration: relativePerformanceTiming.responseEnd,\n name: window.location.href,\n startTime: 0,\n }, forcedAttributes);\n }\n callback(timing);\n });\n}\nfunction retrieveNavigationTiming(configuration, callback) {\n function sendFakeTiming() {\n callback(assign(computeRelativePerformanceTiming(), {\n entryType: RumPerformanceEntryType.NAVIGATION,\n }));\n }\n runOnReadyState(configuration, 'complete', function () {\n // Send it a bit after the actual load event, so the \"loadEventEnd\" timing is accurate\n setTimeout(sendFakeTiming);\n });\n}\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration, callback) {\n var startTimeStamp = dateNow();\n var timingSent = false;\n var removeEventListeners = addEventListeners(configuration, window, [DOM_EVENT.CLICK, DOM_EVENT.MOUSE_DOWN, DOM_EVENT.KEY_DOWN, DOM_EVENT.TOUCH_START, DOM_EVENT.POINTER_DOWN], function (evt) {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return;\n }\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n var timing = {\n entryType: RumPerformanceEntryType.FIRST_INPUT,\n processingStart: relativeNow(),\n processingEnd: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0, // arbitrary value to avoid nullable duration and simplify INP logic\n name: '',\n };\n if (evt.type === DOM_EVENT.POINTER_DOWN) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true }).stop;\n return { stop: removeEventListeners };\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, [DOM_EVENT.POINTER_UP, DOM_EVENT.POINTER_CANCEL], function (event) {\n if (event.type === DOM_EVENT.POINTER_UP) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n var delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\nfunction computeRelativePerformanceTiming() {\n var result = {};\n var timing = performance.timing;\n for (var key in timing) {\n if (isNumber(timing[key])) {\n var numberKey = key;\n var timingElement = timing[numberKey];\n result[numberKey] = timingElement === 0 ? 0 : getRelativeTime(timingElement);\n }\n }\n return result;\n}\nfunction handleRumPerformanceEntries(lifeCycle, configuration, entries) {\n var rumPerformanceEntries = entries.filter(function (entry) {\n return objectHasValue(RumPerformanceEntryType, entry.entryType);\n });\n var rumAllowedPerformanceEntries = rumPerformanceEntries.filter(function (entry) { return !isIncompleteNavigation(entry) && !isForbiddenResource(configuration, entry); });\n if (rumAllowedPerformanceEntries.length) {\n lifeCycle.notify(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, rumAllowedPerformanceEntries);\n }\n}\nfunction isIncompleteNavigation(entry) {\n return entry.entryType === RumPerformanceEntryType.NAVIGATION && entry.loadEventEnd <= 0;\n}\nfunction isForbiddenResource(configuration, entry) {\n return entry.entryType === RumPerformanceEntryType.RESOURCE && !isAllowedRequestUrl(configuration, entry.name);\n}\n//# sourceMappingURL=performanceCollection.js.map","export var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: \"Reached max number of \".concat(eventType, \"s by minute: \").concat(limit),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core';\nexport function getSyntheticsContext() {\n var testId = getSyntheticsTestId();\n var resultId = getSyntheticsResultId();\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n };\n }\n}\n//# sourceMappingURL=syntheticsContext.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n var clone = deepClone(object);\n var result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(function (_a) {\n var fieldPath = _a[0], fieldType = _a[1];\n var newValue = get(clone, fieldPath);\n var newType = getType(newValue);\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue));\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {});\n }\n });\n return result;\n}\nfunction get(object, path) {\n var current = object;\n for (var _i = 0, _a = path.split('.'); _i < _a.length; _i++) {\n var field = _a[_i];\n if (!isValidObjectContaining(current, field)) {\n return;\n }\n current = current[field];\n }\n return current;\n}\nfunction set(object, path, value) {\n var current = object;\n var fields = path.split('.');\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n if (!isValidObject(current)) {\n return;\n }\n if (i !== fields.length - 1) {\n current = current[field];\n }\n else {\n current[field] = value;\n }\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\nfunction isValidObjectContaining(object, field) {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field);\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, assign, round, isExperimentalFeatureEnabled, ExperimentalFeature, getConnectivity, } 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, getCommonContext, 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 }, isExperimentalFeatureEnabled(ExperimentalFeature.WRITABLE_RESOURCE_GRAPHQL) && {\n 'resource.graphql': 'object',\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[\"vital\" /* RumEventType.VITAL */] = 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[\"vital\" /* RumEventType.VITAL */] = createEventRateLimiter(\"vital\" /* RumEventType.VITAL */, configuration.eventRateLimiterThreshold, reportError),\n _b);\n var syntheticsContext = getSyntheticsContext();\n var ciTestContext = getCiTestContext();\n lifeCycle.subscribe(12 /* 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 || getCommonContext();\n var actionId = actionContexts.findActionId(startTime);\n var rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\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() ? \"5.10.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 connectivity: getConnectivity(),\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 (serverRumEvent.type === 'view') {\n ;\n serverRumEvent.session.sampled_for_replay = session.sessionReplayAllowed;\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(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n var result = limitModification(event, modifiableFieldPathsByEvent[event.type], function (event) {\n return beforeSend(event, domainContext);\n });\n if (result === false && event.type !== \"view\" /* RumEventType.VIEW */) {\n return false;\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\");\n }\n }\n var rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\nfunction needToAssembleWithAction(event) {\n return [\"error\" /* RumEventType.ERROR */, \"resource\" /* RumEventType.RESOURCE */, \"long_task\" /* RumEventType.LONG_TASK */].indexOf(event.type) !== -1;\n}\n//# sourceMappingURL=assembly.js.map","export function getCiTestContext() {\n var _a;\n var testExecutionId = (_a = window.Cypress) === null || _a === void 0 ? void 0 : _a.env('traceId');\n if (typeof testExecutionId === 'string') {\n return {\n test_execution_id: testExecutionId,\n };\n }\n}\n//# sourceMappingURL=ciTestContext.js.map","var AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\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 return new Observable(function (observable) {\n var stopInstrumentingStart = instrumentMethod(XMLHttpRequest.prototype, 'open', openXhr).stop;\n var stopInstrumentingSend = instrumentMethod(XMLHttpRequest.prototype, 'send', function (call) {\n sendXhr(call, configuration, observable);\n }).stop;\n var stopInstrumentingAbort = instrumentMethod(XMLHttpRequest.prototype, 'abort', abortXhr).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n}\nfunction openXhr(_a) {\n var xhr = _a.target, _b = _a.parameters, method = _b[0], url = _b[1];\n xhrContexts.set(xhr, {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(_a, configuration, observable) {\n var xhr = _a.target;\n var context = xhrContexts.get(xhr);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = xhr;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethod(xhr, 'onreadystatechange', function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n }).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 = xhr.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, xhr, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr(_a) {\n var xhr = _a.target;\n var context = xhrContexts.get(xhr);\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 { removeItem } from './utils/arrayUtils';\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 removeItem(_this.entries, entry);\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop();\n }\n this.entries.unshift(entry);\n return entry;\n };\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n */\n ValueHistory.prototype.find = function (startTime) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n for (var _i = 0, _a = this.entries; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.startTime <= startTime) {\n if (startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n };\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n ValueHistory.prototype.closeActive = function (endTime) {\n var latestEntry = this.entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n };\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n ValueHistory.prototype.findAll = function (startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return this.entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n };\n /**\n * Remove all entries from this collection.\n */\n ValueHistory.prototype.reset = function () {\n this.entries = [];\n };\n /**\n * Stop internal garbage collection of past entries.\n */\n ValueHistory.prototype.stop = function () {\n clearInterval(this.clearOldValuesInterval);\n };\n ValueHistory.prototype.clearOldValues = function () {\n var oldTimeThreshold = relativeNow() - this.expireDelay;\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop();\n }\n };\n return ValueHistory;\n}());\nexport { ValueHistory };\n//# sourceMappingURL=valueHistory.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Instruments a method on a object, calling the given callback before the original method is\n * invoked. The callback receives an object with information about the method call.\n *\n * Note: it is generally better to instrument methods that are \"owned\" by the object instead of ones\n * that are inherited from the prototype chain. Example:\n * * do: `instrumentMethod(Array.prototype, 'push', ...)`\n * * don't: `instrumentMethod([], 'push', ...)`\n *\n * @example\n *\n * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {\n * console.log('Before calling fetch on', target, 'with parameters', parameters)\n *\n * onPostCall((result) => {\n * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)\n * })\n * })\n */\nexport function instrumentMethod(targetPrototype, method, onPreCall) {\n var original = targetPrototype[method];\n var instrumentation = createInstrumentedMethod(original, onPreCall);\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return instrumentation.apply(this, arguments);\n };\n targetPrototype[method] = instrumentationWrapper;\n return {\n stop: function () {\n if (targetPrototype[method] === instrumentationWrapper) {\n targetPrototype[method] = original;\n }\n else {\n instrumentation = original;\n }\n },\n };\n}\nfunction createInstrumentedMethod(original, onPreCall) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return function () {\n var parameters = arguments;\n var result;\n var postCallCallback;\n callMonitored(onPreCall, null, [\n {\n target: this,\n parameters: parameters,\n onPostCall: function (callback) {\n postCallCallback = callback;\n },\n },\n ]);\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, parameters);\n }\n if (postCallCallback) {\n callMonitored(postCallCallback, null, [result]);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n}\nexport function instrumentSetter(targetPrototype, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var stoppedInstrumentation = noop;\n var instrumentation = function (target, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n if (instrumentation !== stoppedInstrumentation) {\n after(target, value);\n }\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(targetPrototype, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(targetPrototype, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(targetPrototype, property, originalDescriptor);\n }\n instrumentation = stoppedInstrumentation;\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nfunction createFetchObservable() {\n return new Observable(function (observable) {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (call) { return beforeSend(call, observable); }).stop;\n return stop;\n });\n}\nfunction beforeSend(_a, observable) {\n var parameters = _a.parameters, onPostCall = _a.onPostCall;\n var input = parameters[0], init = parameters[1];\n var methodFromParams = init && init.method;\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method;\n }\n var method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : '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 // Those properties can be changed by observable subscribers\n parameters[0] = context.input;\n parameters[1] = context.init;\n onPostCall(function (responsePromise) { return afterSend(observable, responsePromise, context); });\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext;\n context.state = 'resolve';\n if ('stack' in response || response instanceof Error) {\n context.status = 0;\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;\n context.error = response;\n }\n else if ('status' in response) {\n context.response = response;\n context.responseType = response.type;\n context.status = response.status;\n context.isAborted = false;\n }\n observable.notify(context);\n };\n responsePromise.then(monitor(reportFetch), monitor(reportFetch));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nvar nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n var tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, configuration, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n var subscription = initXhrObservable(configuration).subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(7 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(8 /* 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(7 /* 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(8 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"fetch\" /* RequestType.FETCH */,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n });\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nfunction getNextRequestIndex() {\n var result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n var clonedResponse = context.response && tryToClone(context.response);\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }\n else {\n readBytesFromStream(clonedResponse.body, function () {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (result) {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor(function (error) { return callback(error); }));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts(_a) {\n var lifeCycle = _a.lifeCycle, isChildEvent = _a.isChildEvent, _b = _a.onChange, callback = _b === void 0 ? noop : _b;\n var eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n var subscription = lifeCycle.subscribe(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n var _a;\n if (event.type === 'view' || event.type === 'vital' || !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 { instrumentMethod, matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../browser/performanceCollection';\n// Delay to wait for a page activity to validate the tracking process\nexport var PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport var PAGE_ACTIVITY_END_DELAY = 100;\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, pageActivityEndCallback, maxDuration) {\n var pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n var pageActivityEndTimeoutId;\n var hasCompleted = false;\n var validationTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: false }); }), PAGE_ACTIVITY_VALIDATION_DELAY);\n var maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(function () { return complete({ hadActivity: true, end: timeStampNow() }); }), maxDuration)\n : undefined;\n var pageActivitySubscription = pageActivityObservable.subscribe(function (_a) {\n var isBusy = _a.isBusy;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n var lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: true, end: lastChangeTime }); }), PAGE_ACTIVITY_END_DELAY);\n }\n });\n var stop = function () {\n hasCompleted = true;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n clearTimeout(maxDurationTimeoutId);\n pageActivitySubscription.unsubscribe();\n };\n function complete(event) {\n if (hasCompleted) {\n return;\n }\n stop();\n pageActivityEndCallback(event);\n }\n return { stop: stop };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, configuration) {\n return new Observable(function (observable) {\n var subscriptions = [];\n var firstRequestIndex;\n var pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n if (entries.some(function (entry) { return entry.entryType === RumPerformanceEntryType.RESOURCE && !isExcludedUrl(configuration, entry.name); })) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(7 /* 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(8 /* 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}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\nfunction trackWindowOpen(callback) {\n return instrumentMethod(window, 'open', callback);\n}\n//# sourceMappingURL=waitPageActivityEnd.js.map","import { safeTruncate, isIE, find } from '@datadog/browser-core';\n/**\n * Get the action name from the attribute 'data-dd-action-name' on the element or any of its parent.\n * It can also be retrieved from a user defined attribute.\n */\nexport var DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = 'data-dd-action-name';\nexport function getActionNameFromElement(element, userProgrammaticAttribute) {\n // Proceed to get the action name in two steps:\n // * first, get the name programmatically, explicitly defined by the user.\n // * then, use strategies that are known to return good results. Those strategies will be used on\n // the element and a few parents, but it's likely that they won't succeed at all.\n // * if no name is found this way, use strategies returning less accurate names as a fallback.\n // Those are much likely to succeed.\n return (getActionNameFromElementProgrammatically(element, DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE) ||\n (userProgrammaticAttribute && getActionNameFromElementProgrammatically(element, userProgrammaticAttribute)) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, priorityStrategies) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, fallbackStrategies) ||\n '');\n}\nfunction getActionNameFromElementProgrammatically(targetElement, programmaticAttribute) {\n var elementWithAttribute;\n // We don't use getActionNameFromElementForStrategies here, because we want to consider all parents,\n // without limit. It is up to the user to declare a relevant naming strategy.\n // If available, use element.closest() to match get the attribute from the element or any of its\n // parent. Else fallback to a more traditional implementation.\n if (supportsElementClosest()) {\n elementWithAttribute = targetElement.closest(\"[\".concat(programmaticAttribute, \"]\"));\n }\n else {\n var element = targetElement;\n while (element) {\n if (element.hasAttribute(programmaticAttribute)) {\n elementWithAttribute = element;\n break;\n }\n element = element.parentElement;\n }\n }\n if (!elementWithAttribute) {\n return;\n }\n var name = elementWithAttribute.getAttribute(programmaticAttribute);\n return truncate(normalizeWhitespace(name.trim()));\n}\nvar priorityStrategies = [\n // associated LABEL text\n function (element, userProgrammaticAttribute) {\n // IE does not support element.labels, so we fallback to a CSS selector based on the element id\n // instead\n if (supportsLabelProperty()) {\n if ('labels' in element && element.labels && element.labels.length > 0) {\n return getTextualContent(element.labels[0], userProgrammaticAttribute);\n }\n }\n else if (element.id) {\n var label = element.ownerDocument &&\n find(element.ownerDocument.querySelectorAll('label'), function (label) { return label.htmlFor === element.id; });\n return label && getTextualContent(label, userProgrammaticAttribute);\n }\n },\n // INPUT button (and associated) value\n function (element) {\n if (element.nodeName === 'INPUT') {\n var input = element;\n var type = input.getAttribute('type');\n if (type === 'button' || type === 'submit' || type === 'reset') {\n return input.value;\n }\n }\n },\n // BUTTON, LABEL or button-like element text\n function (element, userProgrammaticAttribute) {\n if (element.nodeName === 'BUTTON' || element.nodeName === 'LABEL' || element.getAttribute('role') === 'button') {\n return getTextualContent(element, userProgrammaticAttribute);\n }\n },\n function (element) { return element.getAttribute('aria-label'); },\n // associated element text designated by the aria-labelledby attribute\n function (element, userProgrammaticAttribute) {\n var labelledByAttribute = element.getAttribute('aria-labelledby');\n if (labelledByAttribute) {\n return labelledByAttribute\n .split(/\\s+/)\n .map(function (id) { return getElementById(element, id); })\n .filter(function (label) { return Boolean(label); })\n .map(function (element) { return getTextualContent(element, userProgrammaticAttribute); })\n .join(' ');\n }\n },\n function (element) { return element.getAttribute('alt'); },\n function (element) { return element.getAttribute('name'); },\n function (element) { return element.getAttribute('title'); },\n function (element) { return element.getAttribute('placeholder'); },\n // SELECT first OPTION text\n function (element, userProgrammaticAttribute) {\n if ('options' in element && element.options.length > 0) {\n return getTextualContent(element.options[0], userProgrammaticAttribute);\n }\n },\n];\nvar fallbackStrategies = [\n function (element, userProgrammaticAttribute) { return getTextualContent(element, userProgrammaticAttribute); },\n];\n/**\n * Iterates over the target element and its parent, using the strategies list to get an action name.\n * Each strategies are applied on each element, stopping as soon as a non-empty value is returned.\n */\nvar MAX_PARENTS_TO_CONSIDER = 10;\nfunction getActionNameFromElementForStrategies(targetElement, userProgrammaticAttribute, strategies) {\n var element = targetElement;\n var recursionCounter = 0;\n while (recursionCounter <= MAX_PARENTS_TO_CONSIDER &&\n element &&\n element.nodeName !== 'BODY' &&\n element.nodeName !== 'HTML' &&\n element.nodeName !== 'HEAD') {\n for (var _i = 0, strategies_1 = strategies; _i < strategies_1.length; _i++) {\n var strategy = strategies_1[_i];\n var name_1 = strategy(element, userProgrammaticAttribute);\n if (typeof name_1 === 'string') {\n var trimmedName = name_1.trim();\n if (trimmedName) {\n return truncate(normalizeWhitespace(trimmedName));\n }\n }\n }\n // Consider a FORM as a contextual limit to get the action name. This is experimental and may\n // be reconsidered in the future.\n if (element.nodeName === 'FORM') {\n break;\n }\n element = element.parentElement;\n recursionCounter += 1;\n }\n}\nfunction normalizeWhitespace(s) {\n return s.replace(/\\s+/g, ' ');\n}\nfunction truncate(s) {\n return s.length > 100 ? \"\".concat(safeTruncate(s, 100), \" [...]\") : s;\n}\nfunction getElementById(refElement, id) {\n // Use the element ownerDocument here, because tests are executed in an iframe, so\n // document.getElementById won't work.\n return refElement.ownerDocument ? refElement.ownerDocument.getElementById(id) : null;\n}\nfunction getTextualContent(element, userProgrammaticAttribute) {\n if (element.isContentEditable) {\n return;\n }\n if ('innerText' in element) {\n var text_1 = element.innerText;\n var removeTextFromElements = function (query) {\n var list = element.querySelectorAll(query);\n for (var index = 0; index < list.length; index += 1) {\n var element_1 = list[index];\n if ('innerText' in element_1) {\n var textToReplace = element_1.innerText;\n if (textToReplace && textToReplace.trim().length > 0) {\n text_1 = text_1.replace(textToReplace, '');\n }\n }\n }\n };\n if (!supportsInnerTextScriptAndStyleRemoval()) {\n // remove the inner text of SCRIPT and STYLES from the result. This is a bit dirty, but should\n // be relatively fast and work in most cases.\n removeTextFromElements('script, style');\n }\n // remove the text of elements with programmatic attribute value\n removeTextFromElements(\"[\".concat(DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE, \"]\"));\n if (userProgrammaticAttribute) {\n removeTextFromElements(\"[\".concat(userProgrammaticAttribute, \"]\"));\n }\n return text_1;\n }\n return element.textContent;\n}\n/**\n * Returns true if element.innerText excludes the text from inline SCRIPT and STYLE element. This\n * should be the case everywhere except on Internet Explorer 10 and 11 (see [1])\n *\n * The innerText property relies on what is actually rendered to compute its output, so to check if\n * it actually excludes SCRIPT and STYLE content, a solution would be to create a style element, set\n * its content to '*', inject it in the document body, and check if the style element innerText\n * property returns '*'. Using a new `document` instance won't work as it is not rendered.\n *\n * This solution requires specific CSP rules (see [2]) to be set by the customer. We want to avoid\n * this, so instead we rely on browser detection. In case of false negative, the impact should be\n * low, since we rely on this result to remove the SCRIPT and STYLE innerText (which will be empty)\n * from a parent element innerText.\n *\n * [1]: https://web.archive.org/web/20210602165716/http://perfectionkills.com/the-poor-misunderstood-innerText/#diff-with-textContent\n * [2]: https://github.com/DataDog/browser-sdk/issues/1084\n */\nfunction supportsInnerTextScriptAndStyleRemoval() {\n return !isIE();\n}\n/**\n * Returns true if the browser supports the element.labels property. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsLabelPropertyResult;\nfunction supportsLabelProperty() {\n if (supportsLabelPropertyResult === undefined) {\n supportsLabelPropertyResult = 'labels' in HTMLInputElement.prototype;\n }\n return supportsLabelPropertyResult;\n}\n/**\n * Returns true if the browser supports the element.closest method. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsElementClosestResult;\nfunction supportsElementClosest() {\n if (supportsElementClosestResult === undefined) {\n supportsElementClosestResult = 'closest' in HTMLElement.prototype;\n }\n return supportsElementClosestResult;\n}\n//# sourceMappingURL=getActionNameFromElement.js.map","import { cssEscape } from '@datadog/browser-core';\nimport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './action/getActionNameFromElement';\n/**\n * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:\n * component). Those attribute values should not be generated randomly (hardcoded most of the time)\n * and stay the same across deploys. They are not necessarily unique across the document.\n */\nexport var STABLE_ATTRIBUTES = [\n DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,\n // Common test attributes (list provided by google recorder)\n 'data-testid',\n 'data-test',\n 'data-qa',\n 'data-cy',\n 'data-test-id',\n 'data-qa-id',\n 'data-testing',\n // FullStory decorator attributes:\n 'data-component',\n 'data-element',\n 'data-source-file',\n];\n// Selectors to use if they target a single element on the whole document. Those selectors are\n// considered as \"stable\" and uniquely identify an element regardless of the page state. If we find\n// one, we should consider the selector \"complete\" and stop iterating over ancestors.\nvar GLOBALLY_UNIQUE_SELECTOR_GETTERS = [getStableAttributeSelector, getIDSelector];\n// Selectors to use if they target a single element among an element descendants. Those selectors\n// are more brittle than \"globally unique\" selectors and should be combined with ancestor selectors\n// to improve specificity.\nvar UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS = [\n getStableAttributeSelector,\n getClassSelector,\n getTagNameSelector,\n];\nexport function getSelectorFromElement(targetElement, actionNameAttribute) {\n var targetElementSelector = '';\n var element = targetElement;\n while (element && element.nodeName !== 'HTML') {\n var globallyUniqueSelector = findSelector(element, GLOBALLY_UNIQUE_SELECTOR_GETTERS, isSelectorUniqueGlobally, actionNameAttribute, targetElementSelector);\n if (globallyUniqueSelector) {\n return globallyUniqueSelector;\n }\n var uniqueSelectorAmongChildren = findSelector(element, UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS, isSelectorUniqueAmongSiblings, actionNameAttribute, targetElementSelector);\n targetElementSelector =\n uniqueSelectorAmongChildren || combineSelector(getPositionSelector(element), targetElementSelector);\n element = element.parentElement;\n }\n return targetElementSelector;\n}\nfunction isGeneratedValue(value) {\n // To compute the \"URL path group\", the backend replaces every URL path parts as a question mark\n // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is\n // present.\n //\n // Here, we use the same strategy: if a the value contains a digit, we consider it generated. This\n // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate\n // CSS selectors so it should be fine most of the time. We might want to allow customers to\n // provide their own `isGeneratedValue` at some point.\n return /[0-9]/.test(value);\n}\nfunction getIDSelector(element) {\n if (element.id && !isGeneratedValue(element.id)) {\n return \"#\".concat(cssEscape(element.id));\n }\n}\nfunction getClassSelector(element) {\n if (element.tagName === 'BODY') {\n return;\n }\n if (element.classList.length > 0) {\n for (var i = 0; i < element.classList.length; i += 1) {\n var className = element.classList[i];\n if (isGeneratedValue(className)) {\n continue;\n }\n return \"\".concat(cssEscape(element.tagName), \".\").concat(cssEscape(className));\n }\n }\n}\nfunction getTagNameSelector(element) {\n return cssEscape(element.tagName);\n}\nfunction getStableAttributeSelector(element, actionNameAttribute) {\n if (actionNameAttribute) {\n var selector = getAttributeSelector(actionNameAttribute);\n if (selector) {\n return selector;\n }\n }\n for (var _i = 0, STABLE_ATTRIBUTES_1 = STABLE_ATTRIBUTES; _i < STABLE_ATTRIBUTES_1.length; _i++) {\n var attributeName = STABLE_ATTRIBUTES_1[_i];\n var selector = getAttributeSelector(attributeName);\n if (selector) {\n return selector;\n }\n }\n function getAttributeSelector(attributeName) {\n if (element.hasAttribute(attributeName)) {\n return \"\".concat(cssEscape(element.tagName), \"[\").concat(attributeName, \"=\\\"\").concat(cssEscape(element.getAttribute(attributeName)), \"\\\"]\");\n }\n }\n}\nfunction getPositionSelector(element) {\n var sibling = element.parentElement.firstElementChild;\n var elementIndex = 1;\n while (sibling && sibling !== element) {\n if (sibling.tagName === element.tagName) {\n elementIndex += 1;\n }\n sibling = sibling.nextElementSibling;\n }\n return \"\".concat(cssEscape(element.tagName), \":nth-of-type(\").concat(elementIndex, \")\");\n}\nfunction findSelector(element, selectorGetters, predicate, actionNameAttribute, childSelector) {\n for (var _i = 0, selectorGetters_1 = selectorGetters; _i < selectorGetters_1.length; _i++) {\n var selectorGetter = selectorGetters_1[_i];\n var elementSelector = selectorGetter(element, actionNameAttribute);\n if (!elementSelector) {\n continue;\n }\n var fullSelector = combineSelector(elementSelector, childSelector);\n if (predicate(element, fullSelector)) {\n return fullSelector;\n }\n }\n}\n/**\n * Check whether the selector is unique among the whole document.\n */\nfunction isSelectorUniqueGlobally(element, selector) {\n return element.ownerDocument.querySelectorAll(selector).length === 1;\n}\n/**\n * Check whether the selector is unique among the element siblings. In other words, it returns true\n * if \"ELEMENT_PARENT > SELECTOR\" returns a single element.\n *\n * The result will be less accurate on browsers that don't support :scope (i. e. IE): it will check\n * for any element matching the selector contained in the parent (in other words,\n * \"ELEMENT_PARENT SELECTOR\" returns a single element), regardless of whether the selector is a\n * direct descendent of the element parent. This should not impact results too much: if it\n * inaccurately returns false, we'll just fall back to another strategy.\n */\nfunction isSelectorUniqueAmongSiblings(element, selector) {\n return (element.parentElement.querySelectorAll(supportScopeSelector() ? combineSelector(':scope', selector) : selector)\n .length === 1);\n}\nfunction combineSelector(parent, child) {\n return child ? \"\".concat(parent, \">\").concat(child) : parent;\n}\nvar supportScopeSelectorCache;\nexport function supportScopeSelector() {\n if (supportScopeSelectorCache === undefined) {\n try {\n document.querySelector(':scope');\n supportScopeSelectorCache = true;\n }\n catch (_a) {\n supportScopeSelectorCache = false;\n }\n }\n return supportScopeSelectorCache;\n}\n//# sourceMappingURL=getSelectorFromElement.js.map","import { ONE_SECOND, clearTimeout, setTimeout } from '@datadog/browser-core';\nexport var MAX_DURATION_BETWEEN_CLICKS = ONE_SECOND;\nexport var MAX_DISTANCE_BETWEEN_CLICKS = 100;\nexport function createClickChain(firstClick, onFinalize) {\n var bufferedClicks = [];\n var status = 0 /* ClickChainStatus.WaitingForMoreClicks */;\n var maxDurationBetweenClicksTimeoutId;\n appendClick(firstClick);\n function appendClick(click) {\n click.stopObservable.subscribe(tryFinalize);\n bufferedClicks.push(click);\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n maxDurationBetweenClicksTimeoutId = setTimeout(dontAcceptMoreClick, MAX_DURATION_BETWEEN_CLICKS);\n }\n function tryFinalize() {\n if (status === 1 /* ClickChainStatus.WaitingForClicksToStop */ && bufferedClicks.every(function (click) { return click.isStopped(); })) {\n status = 2 /* ClickChainStatus.Finalized */;\n onFinalize(bufferedClicks);\n }\n }\n function dontAcceptMoreClick() {\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n if (status === 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n status = 1 /* ClickChainStatus.WaitingForClicksToStop */;\n tryFinalize();\n }\n }\n return {\n tryAppend: function (click) {\n if (status !== 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n return false;\n }\n if (bufferedClicks.length > 0 &&\n !areEventsSimilar(bufferedClicks[bufferedClicks.length - 1].event, click.event)) {\n dontAcceptMoreClick();\n return false;\n }\n appendClick(click);\n return true;\n },\n stop: function () {\n dontAcceptMoreClick();\n },\n };\n}\n/**\n * Checks whether two events are similar by comparing their target, position and timestamp\n */\nfunction areEventsSimilar(first, second) {\n return (first.target === second.target &&\n mouseEventDistance(first, second) <= MAX_DISTANCE_BETWEEN_CLICKS &&\n first.timeStamp - second.timeStamp <= MAX_DURATION_BETWEEN_CLICKS);\n}\nfunction mouseEventDistance(origin, other) {\n return Math.sqrt(Math.pow(origin.clientX - other.clientX, 2) + Math.pow(origin.clientY - other.clientY, 2));\n}\n//# sourceMappingURL=clickChain.js.map","import { addEventListener, DOM_EVENT } 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, 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, DOM_EVENT.SELECTION_CHANGE, function () {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true;\n }\n }, { capture: true }),\n addEventListener(configuration, window, 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, DOM_EVENT.INPUT, function () {\n userActivity.input = true;\n }, { capture: true }),\n ];\n return {\n stop: function () {\n listeners.forEach(function (listener) { return listener.stop(); });\n },\n };\n}\nfunction isSelectionEmpty() {\n var selection = window.getSelection();\n return !selection || selection.isCollapsed;\n}\nfunction isValidPointerEvent(event) {\n return (event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false);\n}\n//# sourceMappingURL=listenActionEvents.js.map","import { elementMatches, ONE_SECOND } from '@datadog/browser-core';\nvar MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE = 3;\nexport function computeFrustration(clicks, rageClick) {\n if (isRage(clicks)) {\n rageClick.addFrustration(\"rage_click\" /* FrustrationType.RAGE_CLICK */);\n if (clicks.some(isDead)) {\n rageClick.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n if (rageClick.hasError) {\n rageClick.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n return { isRage: true };\n }\n var hasSelectionChanged = clicks.some(function (click) { return click.getUserActivity().selection; });\n clicks.forEach(function (click) {\n if (click.hasError) {\n click.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n if (isDead(click) &&\n // Avoid considering clicks part of a double-click or triple-click selections as dead clicks\n !hasSelectionChanged) {\n click.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n });\n return { isRage: false };\n}\nexport function isRage(clicks) {\n if (clicks.some(function (click) { return click.getUserActivity().selection; })) {\n return false;\n }\n for (var i = 0; i < clicks.length - (MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1); i += 1) {\n if (clicks[i + MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1].event.timeStamp - clicks[i].event.timeStamp <=\n ONE_SECOND) {\n return true;\n }\n }\n return false;\n}\nvar DEAD_CLICK_EXCLUDE_SELECTOR = \n// inputs that don't trigger a meaningful event like \"input\" when clicked, including textual\n// inputs (using a negative selector is shorter here)\n'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]):not([type=\"range\"]),' +\n 'textarea,' +\n 'select,' +\n // contenteditable and their descendants don't always trigger meaningful changes when manipulated\n '[contenteditable],' +\n '[contenteditable] *,' +\n // canvas, as there is no good way to detect activity occurring on them\n 'canvas,' +\n // links that are interactive (have an href attribute) or any of their descendants, as they can\n // open a new tab or navigate to a hash without triggering a meaningful event\n 'a[href],' +\n 'a[href] *';\nexport function isDead(click) {\n if (click.hasPageActivity || click.getUserActivity().input) {\n return false;\n }\n return !elementMatches(click.event.target, DEAD_CLICK_EXCLUDE_SELECTOR);\n}\n//# sourceMappingURL=computeFrustration.js.map","import { includes, timeStampNow, Observable, assign, getRelativeTime, ONE_MINUTE, ValueHistory, generateUUID, clocksNow, ONE_SECOND, elapsed, } from '@datadog/browser-core';\nimport { trackEventCounts } from '../trackEventCounts';\nimport { PAGE_ACTIVITY_VALIDATION_DELAY, waitPageActivityEnd } from '../waitPageActivityEnd';\nimport { getSelectorFromElement } from '../getSelectorFromElement';\nimport { createClickChain } from './clickChain';\nimport { getActionNameFromElement } from './getActionNameFromElement';\nimport { listenActionEvents } from './listenActionEvents';\nimport { computeFrustration } from './computeFrustration';\n// Maximum duration for click actions\nexport var CLICK_ACTION_MAX_DURATION = 10 * ONE_SECOND;\nexport var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE; // arbitrary\nexport function trackClickActions(lifeCycle, domMutationObservable, configuration) {\n var history = new ValueHistory(ACTION_CONTEXT_TIME_OUT_DELAY);\n var stopObservable = new Observable();\n var currentClickChain;\n lifeCycle.subscribe(10 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n history.reset();\n });\n lifeCycle.subscribe(5 /* LifeCycleEventType.VIEW_ENDED */, stopClickChain);\n var stopActionEventsListener = listenActionEvents(configuration, {\n onPointerDown: function (pointerDownEvent) {\n return processPointerDown(configuration, lifeCycle, domMutationObservable, 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) { return history.findAll(startTime); },\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, pointerDownEvent) {\n var clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute);\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 appendClickToClickChain(click);\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 }\n }, CLICK_ACTION_MAX_DURATION).stop;\n var viewEndedSubscription = lifeCycle.subscribe(5 /* 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(12 /* 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(12 /* 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) ? { events: action.events } : {},\n };\n}\nfunction isAutoAction(action) {\n return action.type !== \"custom\" /* ActionType.CUSTOM */;\n}\n//# sourceMappingURL=actionCollection.js.map","import { instrumentMethod } from '../../tools/instrumentMethod';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nimport { computeStackTrace, computeStackTraceFromOnErrorMessage } from './computeStackTrace';\nimport { computeRawError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n var handleRuntimeError = function (stackTrace, originalError) {\n var rawError = 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 errorObservable.notify(rawError);\n };\n var stopInstrumentingOnError = instrumentOnError(handleRuntimeError).stop;\n var stopInstrumentingOnUnhandledRejection = instrumentUnhandledRejection(handleRuntimeError).stop;\n return {\n stop: function () {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\nexport function instrumentOnError(callback) {\n return instrumentMethod(window, 'onerror', function (_a) {\n var _b = _a.parameters, messageObj = _b[0], url = _b[1], line = _b[2], column = _b[3], errorObj = _b[4];\n var stackTrace;\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n stackTrace = computeStackTraceFromOnErrorMessage(messageObj, url, line, column);\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n });\n}\nexport function instrumentUnhandledRejection(callback) {\n return instrumentMethod(window, 'onunhandledrejection', function (_a) {\n var e = _a.parameters[0];\n var reason = e.reason || 'Empty reason';\n var stack = computeStackTrace(reason);\n callback(stack, reason);\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { createHandlingStack, flattenErrorCauses, 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';\nimport { computeStackTrace } from '../error/computeStackTrace';\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 return new Observable(function (observable) {\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}\nfunction buildConsoleLog(params, api, handlingStack) {\n var message = params.map(function (param) { return formatConsoleParameters(param); }).join(' ');\n var stack;\n var fingerprint;\n var causes;\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 causes = firstErrorParam ? flattenErrorCauses(firstErrorParam, 'console') : undefined;\n }\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n fingerprint: fingerprint,\n causes: causes,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { toStackTraceString } from '../error/error';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener, DOM_EVENT } 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 return new Observable(function (observable) {\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}\nfunction createCspViolationReportObservable(configuration) {\n return new Observable(function (observable) {\n var stop = addEventListener(configuration, document, DOM_EVENT.SECURITY_POLICY_VIOLATION, function (event) {\n observable.notify(buildRawReportFromCspViolation(event));\n }).stop;\n return stop;\n });\n}\nfunction buildRawReportFromReport(report) {\n var type = report.type, body = report.body;\n return {\n type: type,\n subtype: body.id,\n message: \"\".concat(type, \": \").concat(body.message),\n originalReport: report,\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 originalReport: event,\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","import { isEmptyObject, assign, ErrorSource, generateUUID, computeRawError, computeStackTrace, Observable, trackRuntimeError, } from '@datadog/browser-core';\nimport { trackConsoleError } from './trackConsoleError';\nimport { trackReportError } from './trackReportError';\nexport function startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts) {\n var errorObservable = new Observable();\n trackConsoleError(errorObservable);\n trackRuntimeError(errorObservable);\n trackReportError(configuration, errorObservable);\n errorObservable.subscribe(function (error) { return lifeCycle.notify(14 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error }); });\n return doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts);\n}\nexport function doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts) {\n lifeCycle.subscribe(14 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, function (_a) {\n var error = _a.error, customerContext = _a.customerContext, savedCommonContext = _a.savedCommonContext;\n lifeCycle.notify(12 /* 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(14 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, {\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n error: rawError,\n });\n },\n };\n}\nfunction processError(error, pageStateHistory, featureFlagContexts) {\n var rawRumEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: generateUUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser',\n fingerprint: error.fingerprint,\n },\n type: \"error\" /* RumEventType.ERROR */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(error.startClocks.relative) },\n };\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(error.startClocks.relative);\n if (featureFlagContext && !isEmptyObject(featureFlagContext)) {\n rawRumEvent.feature_flags = featureFlagContext;\n }\n return {\n rawRumEvent: rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError,\n },\n };\n}\n//# sourceMappingURL=errorCollection.js.map","import { clocksNow, initConsoleObservable, ErrorSource, ConsoleApiName } from '@datadog/browser-core';\nexport function trackConsoleError(errorObservable) {\n var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(function (consoleError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: consoleError.message,\n stack: consoleError.stack,\n fingerprint: consoleError.fingerprint,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack: consoleError.handlingStack,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackConsoleError.js.map","import { clocksNow, 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 originalError: reportError.originalReport,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackReportError.js.map","import { addDuration } from '@datadog/browser-core';\nimport { toValidEntry } from './resourceUtils';\n/**\n * Look for corresponding timing in resource timing buffer\n *\n * Observations:\n * - Timing (start, end) are nested inside the request (start, end)\n * - Some timing can be not exactly nested, being off by < 1 ms\n *\n * Strategy:\n * - from valid nested entries (with 1 ms error margin)\n * - if a single timing match, return the timing\n * - otherwise we can't decide, return undefined\n */\nexport function matchRequestTiming(request) {\n if (!performance || !('getEntriesByName' in performance)) {\n return;\n }\n var sameNameEntries = performance.getEntriesByName(request.url, 'resource');\n if (!sameNameEntries.length || !('toJSON' in sameNameEntries[0])) {\n return;\n }\n var candidates = sameNameEntries\n .map(function (entry) { return entry.toJSON(); })\n .filter(toValidEntry)\n .filter(function (entry) {\n return isBetween(entry, request.startClocks.relative, endTime({ startTime: request.startClocks.relative, duration: request.duration }));\n });\n if (candidates.length === 1) {\n return candidates[0];\n }\n return;\n}\nfunction endTime(timing) {\n return addDuration(timing.startTime, timing.duration);\n}\nfunction isBetween(timing, start, end) {\n var errorMargin = 1;\n return timing.startTime >= start - errorMargin && endTime(timing) <= addDuration(end, errorMargin);\n}\n//# sourceMappingURL=matchRequestTiming.js.map","import { combine, generateUUID, toServerDuration, relativeToClocks, assign, isNumber, isExperimentalFeatureEnabled, ExperimentalFeature, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nimport { matchRequestTiming } from './matchRequestTiming';\nimport { computePerformanceResourceDetails, computePerformanceResourceDuration, computeResourceKind, computeSize, isRequestKind, } from './resourceUtils';\nexport function startResourceCollection(lifeCycle, configuration, sessionManager, pageStateHistory) {\n lifeCycle.subscribe(8 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n var rawEvent = processRequest(request, configuration, sessionManager, pageStateHistory);\n if (rawEvent) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, rawEvent);\n }\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.RESOURCE && !isRequestKind(entry)) {\n var rawEvent = processResourceEntry(entry, configuration, sessionManager, pageStateHistory);\n if (rawEvent) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, rawEvent);\n }\n }\n }\n });\n}\nfunction processRequest(request, configuration, sessionManager, pageStateHistory) {\n var _a;\n var matchingTiming = matchRequestTiming(request);\n var startClocks = matchingTiming ? relativeToClocks(matchingTiming.startTime) : request.startClocks;\n var shouldIndex = shouldIndexResource(configuration, sessionManager, startClocks);\n var tracingInfo = computeRequestTracingInfo(request, configuration);\n if (!shouldIndex && !tracingInfo) {\n return;\n }\n var type = request.type === \"xhr\" /* RequestType.XHR */ ? \"xhr\" /* ResourceType.XHR */ : \"fetch\" /* ResourceType.FETCH */;\n var correspondingTimingOverrides = matchingTiming ? computePerformanceEntryMetrics(matchingTiming) : undefined;\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 _dd: {\n discarded: !shouldIndex,\n },\n }, tracingInfo, correspondingTimingOverrides, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: 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 startClocks = relativeToClocks(entry.startTime);\n var shouldIndex = shouldIndexResource(configuration, sessionManager, startClocks);\n var tracingInfo = computeEntryTracingInfo(entry, configuration);\n if (!shouldIndex && !tracingInfo) {\n return;\n }\n var type = computeResourceKind(entry);\n var entryMetrics = computePerformanceEntryMetrics(entry);\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 status_code: discardZeroStatus(entry.responseStatus),\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n _dd: {\n discarded: !shouldIndex,\n },\n }, tracingInfo, entryMetrics, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: entry,\n },\n };\n}\nfunction shouldIndexResource(configuration, sessionManager, resourceStart) {\n return configuration.trackResources && sessionManager.findTrackedSession(resourceStart.relative);\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/**\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 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 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/**\n * The status is 0 for cross origin resources without CORS headers, so the status is meaningless and we shouldn't report it\n * https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/responseStatus#cross-origin_response_status_codes\n */\nfunction discardZeroStatus(statusCode) {\n return statusCode === 0 ? undefined : statusCode;\n}\n//# sourceMappingURL=resourceCollection.js.map","import { DOM_EVENT, ExperimentalFeature, ONE_MINUTE, addEventListeners, addTelemetryDebug, findLast, isExperimentalFeatureEnabled, relativeNow, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n// Discard LCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var LCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\nvar wrongLcpReported = false;\nvar previousLcp;\n/**\n * Track the largest contentful paint (LCP) occurring during the initial View. This can yield\n * multiple values, only the most recent one should be used.\n * Documentation: https://web.dev/lcp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/onLCP.ts\n */\nexport function trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, eventTarget, callback) {\n // Ignore entries that come after the first user interaction. According to the documentation, the\n // browser should not send largest-contentful-paint entries after a user interact with the page,\n // but the web-vitals reference implementation uses this as a safeguard.\n var firstInteractionTimestamp = Infinity;\n var stopEventListener = addEventListeners(configuration, eventTarget, [DOM_EVENT.POINTER_DOWN, DOM_EVENT.KEY_DOWN], function (event) {\n firstInteractionTimestamp = event.timeStamp;\n }, { capture: true, once: true }).stop;\n var biggestLcpSize = 0;\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var lcpEntry = findLast(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < LCP_MAXIMUM_DELAY &&\n // Ensure to get the LCP entry with the biggest size, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1516655\n entry.size > biggestLcpSize;\n });\n if (lcpEntry) {\n var lcpTargetSelector = void 0;\n if (lcpEntry.element) {\n lcpTargetSelector = getSelectorFromElement(lcpEntry.element, configuration.actionNameAttribute);\n }\n if (isExperimentalFeatureEnabled(ExperimentalFeature.ZERO_LCP_TELEMETRY)) {\n monitorLcpEntries(lcpEntry, entries.filter(function (entry) {\n return entry.entryType === RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT;\n }));\n }\n callback({\n value: lcpEntry.startTime,\n targetSelector: lcpTargetSelector,\n });\n biggestLcpSize = lcpEntry.size;\n }\n }).unsubscribe;\n return {\n stop: function () {\n stopEventListener();\n unsubscribeLifeCycle();\n },\n };\n}\nfunction monitorLcpEntries(lcpEntry, lcpEntries) {\n if (wrongLcpReported) {\n return;\n }\n var wrongLcpDetected = lcpEntry.startTime === 0\n ? 'LCP with startTime = 0'\n : previousLcp !== undefined && lcpEntry.startTime < previousLcp.startTime\n ? 'LCP with startTime < previous LCP'\n : previousLcp !== undefined && lcpEntry.size < previousLcp.size\n ? 'LCP with size < previous LCP'\n : undefined;\n if (wrongLcpDetected) {\n wrongLcpReported = true;\n addTelemetryDebug(wrongLcpDetected, {\n debug: {\n entry: toSerializableLCP(lcpEntry),\n previousLcp: previousLcp,\n timeOrigin: performance.timeOrigin,\n now: relativeNow(),\n lcpEntries: lcpEntries.map(toSerializableLCP),\n },\n });\n }\n previousLcp = toSerializableLCP(lcpEntry);\n}\nfunction toSerializableLCP(entry) {\n var jsonEntry = entry.toJSON();\n delete jsonEntry.element;\n return jsonEntry;\n}\n//# sourceMappingURL=trackLargestContentfulPaint.js.map","/**\n * performance.interactionCount polyfill\n *\n * The interactionCount is an integer which counts the total number of distinct user interactions,\n * for which there was a unique interactionId.\n *\n * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213\n * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.\n * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.\n *\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts\n */\nimport { monitor } from '@datadog/browser-core';\nvar observer;\nvar interactionCountEstimate = 0;\nvar minKnownInteractionId = Infinity;\nvar maxKnownInteractionId = 0;\nexport function initInteractionCountPolyfill() {\n if ('interactionCount' in performance || observer) {\n return;\n }\n observer = new window.PerformanceObserver(monitor(function (entries) {\n entries.getEntries().forEach(function (e) {\n var entry = e;\n if (entry.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, entry.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, entry.interactionId);\n interactionCountEstimate = (maxKnownInteractionId - minKnownInteractionId) / 7 + 1;\n }\n });\n }));\n observer.observe({ type: 'event', buffered: true, durationThreshold: 0 });\n}\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport var getInteractionCount = function () {\n return observer ? interactionCountEstimate : window.performance.interactionCount || 0;\n};\n//# sourceMappingURL=interactionCountPolyfill.js.map","import { trackFirstContentfulPaint } from './trackFirstContentfulPaint';\nimport { trackFirstInput } from './trackFirstInput';\nimport { trackNavigationTimings } from './trackNavigationTimings';\nimport { trackLargestContentfulPaint } from './trackLargestContentfulPaint';\nimport { trackFirstHidden } from './trackFirstHidden';\nexport function trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate) {\n var initialViewMetrics = {};\n var stopNavigationTracking = trackNavigationTimings(lifeCycle, function (navigationTimings) {\n setLoadEvent(navigationTimings.loadEvent);\n initialViewMetrics.navigationTimings = navigationTimings;\n scheduleViewUpdate();\n }).stop;\n var firstHidden = trackFirstHidden(configuration);\n var stopFCPTracking = trackFirstContentfulPaint(lifeCycle, firstHidden, function (firstContentfulPaint) {\n initialViewMetrics.firstContentfulPaint = firstContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopLCPTracking = trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, window, function (largestContentfulPaint) {\n initialViewMetrics.largestContentfulPaint = largestContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopFIDTracking = trackFirstInput(lifeCycle, configuration, firstHidden, function (firstInput) {\n initialViewMetrics.firstInput = firstInput;\n scheduleViewUpdate();\n }).stop;\n function stop() {\n stopNavigationTracking();\n stopFCPTracking();\n stopLCPTracking();\n stopFIDTracking();\n firstHidden.stop();\n }\n return {\n stop: stop,\n initialViewMetrics: initialViewMetrics,\n };\n}\n//# sourceMappingURL=trackInitialViewMetrics.js.map","import { relativeNow } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nexport function trackNavigationTimings(lifeCycle, callback) {\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.NAVIGATION) {\n callback({\n domComplete: entry.domComplete,\n domContentLoaded: entry.domContentLoadedEventEnd,\n domInteractive: entry.domInteractive,\n loadEvent: entry.loadEventEnd,\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n firstByte: entry.responseStart >= 0 && entry.responseStart <= relativeNow() ? entry.responseStart : undefined,\n });\n }\n }\n }).unsubscribe;\n return { stop: stop };\n}\n//# sourceMappingURL=trackNavigationTimings.js.map","import { addEventListeners, DOM_EVENT } 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, [DOM_EVENT.PAGE_HIDE, DOM_EVENT.VISIBILITY_CHANGE], function (event) {\n if (event.type === DOM_EVENT.PAGE_HIDE || document.visibilityState === 'hidden') {\n timeStamp = event.timeStamp;\n stopListeners();\n }\n }, { capture: true }).stop);\n }\n return {\n get timeStamp() {\n return timeStamp;\n },\n stop: function () {\n stopListeners === null || stopListeners === void 0 ? void 0 : stopListeners();\n },\n };\n}\n//# sourceMappingURL=trackFirstHidden.js.map","import { ONE_MINUTE, find } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\n// Discard FCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var FCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\nexport function trackFirstContentfulPaint(lifeCycle, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var fcpEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.PAINT &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < FCP_MAXIMUM_DELAY;\n });\n if (fcpEntry) {\n callback(fcpEntry.startTime);\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstContentfulPaint.js.map","import { elapsed, find } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the first input occurring during the initial View to return:\n * - First Input Delay\n * - First Input Time\n * Callback is called at most one time.\n * Documentation: https://web.dev/fid/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getFID.ts\n */\nexport function trackFirstInput(lifeCycle, configuration, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var firstInputEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.FIRST_INPUT && entry.startTime < firstHidden.timeStamp;\n });\n if (firstInputEntry) {\n var firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart);\n var firstInputTargetSelector = void 0;\n if (firstInputEntry.target && isElementNode(firstInputEntry.target)) {\n firstInputTargetSelector = getSelectorFromElement(firstInputEntry.target, configuration.actionNameAttribute);\n }\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n delay: firstInputDelay >= 0 ? firstInputDelay : 0,\n time: firstInputEntry.startTime,\n targetSelector: firstInputTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstInput.js.map","import { round, find, ONE_SECOND, noop } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { supportPerformanceTimingEvent, RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nexport function trackCumulativeLayoutShift(configuration, lifeCycle, callback) {\n if (!isLayoutShiftSupported()) {\n return {\n stop: noop,\n };\n }\n var maxClsValue = 0;\n // if no layout shift happen the value should be reported as 0\n callback({\n value: 0,\n });\n var window = slidingSessionWindow();\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.LAYOUT_SHIFT && !entry.hadRecentInput) {\n window.update(entry);\n if (window.value() > maxClsValue) {\n maxClsValue = window.value();\n var cls = round(maxClsValue, 4);\n var clsTarget = window.largestLayoutShiftTarget();\n var cslTargetSelector = void 0;\n if (clsTarget &&\n // Check if the CLS target have been removed from the DOM between the time we collect the target reference and when we compute the selector\n clsTarget.isConnected) {\n cslTargetSelector = getSelectorFromElement(clsTarget, configuration.actionNameAttribute);\n }\n callback({\n value: cls,\n targetSelector: cslTargetSelector,\n });\n }\n }\n }\n }).unsubscribe;\n return {\n stop: stop,\n };\n}\nfunction slidingSessionWindow() {\n var value = 0;\n var startTime;\n var endTime;\n var largestLayoutShift = 0;\n var largestLayoutShiftTarget;\n var largestLayoutShiftTime;\n return {\n update: function (entry) {\n var _a, _b;\n var shouldCreateNewWindow = startTime === undefined ||\n entry.startTime - endTime >= ONE_SECOND ||\n entry.startTime - startTime >= 5 * ONE_SECOND;\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime;\n value = entry.value;\n largestLayoutShift = 0;\n largestLayoutShiftTarget = undefined;\n }\n else {\n value += entry.value;\n endTime = entry.startTime;\n }\n if (entry.value > largestLayoutShift) {\n largestLayoutShift = entry.value;\n largestLayoutShiftTime = entry.startTime;\n if ((_a = entry.sources) === null || _a === void 0 ? void 0 : _a.length) {\n largestLayoutShiftTarget = (_b = find(entry.sources, function (s) { return !!s.node && isElementNode(s.node); })) === null || _b === void 0 ? void 0 : _b.node;\n }\n else {\n largestLayoutShiftTarget = undefined;\n }\n }\n },\n value: function () { return value; },\n largestLayoutShiftTarget: function () { return largestLayoutShiftTarget; },\n largestLayoutShiftTime: function () { return largestLayoutShiftTime; },\n };\n}\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nexport function isLayoutShiftSupported() {\n return supportPerformanceTimingEvent(RumPerformanceEntryType.LAYOUT_SHIFT);\n}\n//# sourceMappingURL=trackCumulativeLayoutShift.js.map","import { Observable, throttle, addEventListener, DOM_EVENT } 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 return new Observable(function (observable) {\n var updateDimension = throttle(function () {\n observable.notify(getViewportDimension());\n }, 200).throttled;\n return addEventListener(configuration, window, DOM_EVENT.RESIZE, updateDimension, { capture: true, passive: true })\n .stop;\n });\n}\n// excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport\nexport function getViewportDimension() {\n var visual = window.visualViewport;\n if (visual) {\n return {\n width: Number(visual.width * visual.scale),\n height: Number(visual.height * visual.scale),\n };\n }\n return {\n width: Number(window.innerWidth || 0),\n height: Number(window.innerHeight || 0),\n };\n}\n//# sourceMappingURL=viewportObservable.js.map","import { noop, ONE_MINUTE } from '@datadog/browser-core';\nimport { RumPerformanceEntryType, supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { getInteractionCount, initInteractionCountPolyfill } from './interactionCountPolyfill';\n// Arbitrary value to prevent unnecessary memory usage on views with lots of interactions.\nvar MAX_INTERACTION_ENTRIES = 10;\n// Arbitrary value to cap INP outliers\nexport var MAX_INP_VALUE = (1 * ONE_MINUTE);\n/**\n * Track the interaction to next paint (INP).\n * To avoid outliers, return the p98 worst interaction of the view.\n * Documentation: https://web.dev/inp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/onINP.ts\n */\nexport function trackInteractionToNextPaint(configuration, viewStart, viewLoadingType, lifeCycle) {\n if (!isInteractionToNextPaintSupported()) {\n return {\n getInteractionToNextPaint: function () { return undefined; },\n setViewEnd: noop,\n stop: noop,\n };\n }\n var _a = trackViewInteractionCount(viewLoadingType), getViewInteractionCount = _a.getViewInteractionCount, stopViewInteractionCount = _a.stopViewInteractionCount;\n var viewEnd = Infinity;\n var longestInteractions = trackLongestInteractions(getViewInteractionCount);\n var interactionToNextPaint = -1;\n var interactionToNextPaintTargetSelector;\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if ((entry.entryType === RumPerformanceEntryType.EVENT ||\n entry.entryType === RumPerformanceEntryType.FIRST_INPUT) &&\n entry.interactionId &&\n // Check the entry start time is inside the view bounds because some view interactions can be reported after the view end (if long duration).\n entry.startTime >= viewStart &&\n entry.startTime <= viewEnd) {\n longestInteractions.process(entry);\n }\n }\n var newInteraction = longestInteractions.estimateP98Interaction();\n if (newInteraction) {\n interactionToNextPaint = newInteraction.duration;\n if (newInteraction.target && isElementNode(newInteraction.target)) {\n interactionToNextPaintTargetSelector = getSelectorFromElement(newInteraction.target, configuration.actionNameAttribute);\n }\n else {\n interactionToNextPaintTargetSelector = undefined;\n }\n }\n }).unsubscribe;\n return {\n getInteractionToNextPaint: function () {\n // If no INP duration where captured because of the performanceObserver 40ms threshold\n // but the view interaction count > 0 then report 0\n if (interactionToNextPaint >= 0) {\n return {\n value: Math.min(interactionToNextPaint, MAX_INP_VALUE),\n targetSelector: interactionToNextPaintTargetSelector,\n };\n }\n else if (getViewInteractionCount()) {\n return {\n value: 0,\n };\n }\n },\n setViewEnd: function (viewEndTime) {\n viewEnd = viewEndTime;\n stopViewInteractionCount();\n },\n stop: stop,\n };\n}\nfunction trackLongestInteractions(getViewInteractionCount) {\n var longestInteractions = [];\n function sortAndTrimLongestInteractions() {\n longestInteractions.sort(function (a, b) { return b.duration - a.duration; }).splice(MAX_INTERACTION_ENTRIES);\n }\n return {\n /**\n * Process the performance entry:\n * - if its duration is long enough, add the performance entry to the list of worst interactions\n * - if an entry with the same interaction id exists and its duration is lower than the new one, then replace it in the list of worst interactions\n */\n process: function (entry) {\n var interactionIndex = longestInteractions.findIndex(function (interaction) { return entry.interactionId === interaction.interactionId; });\n var minLongestInteraction = longestInteractions[longestInteractions.length - 1];\n if (interactionIndex !== -1) {\n if (entry.duration > longestInteractions[interactionIndex].duration) {\n longestInteractions[interactionIndex] = entry;\n sortAndTrimLongestInteractions();\n }\n }\n else if (longestInteractions.length < MAX_INTERACTION_ENTRIES ||\n entry.duration > minLongestInteraction.duration) {\n longestInteractions.push(entry);\n sortAndTrimLongestInteractions();\n }\n },\n /**\n * Compute the p98 longest interaction.\n * For better performance the computation is based on 10 longest interactions and the interaction count of the current view.\n */\n estimateP98Interaction: function () {\n var interactionIndex = Math.min(longestInteractions.length - 1, Math.floor(getViewInteractionCount() / 50));\n return longestInteractions[interactionIndex];\n },\n };\n}\nexport function trackViewInteractionCount(viewLoadingType) {\n initInteractionCountPolyfill();\n var previousInteractionCount = viewLoadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */ ? 0 : getInteractionCount();\n var state = { stopped: false };\n function computeViewInteractionCount() {\n return getInteractionCount() - previousInteractionCount;\n }\n return {\n getViewInteractionCount: function () {\n if (state.stopped) {\n return state.interactionCount;\n }\n return computeViewInteractionCount();\n },\n stopViewInteractionCount: function () {\n state = { stopped: true, interactionCount: computeViewInteractionCount() };\n },\n };\n}\nexport function isInteractionToNextPaintSupported() {\n return (supportPerformanceTimingEvent(RumPerformanceEntryType.EVENT) &&\n window.PerformanceEventTiming &&\n 'interactionId' in PerformanceEventTiming.prototype);\n}\n//# sourceMappingURL=trackInteractionToNextPaint.js.map","export function getScrollX() {\n var scrollX;\n var visual = window.visualViewport;\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft;\n }\n else if (window.scrollX !== undefined) {\n scrollX = window.scrollX;\n }\n else {\n scrollX = window.pageXOffset || 0;\n }\n return Math.round(scrollX);\n}\nexport function getScrollY() {\n var scrollY;\n var visual = window.visualViewport;\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop;\n }\n else if (window.scrollY !== undefined) {\n scrollY = window.scrollY;\n }\n else {\n scrollY = window.pageYOffset || 0;\n }\n return Math.round(scrollY);\n}\n//# sourceMappingURL=scroll.js.map","import { Observable, ONE_SECOND, elapsed, relativeNow, throttle, addEventListener, DOM_EVENT, monitor, } from '@datadog/browser-core';\nimport { getScrollY } from '../../../browser/scroll';\nimport { getViewportDimension } from '../../../browser/viewportObservable';\n/** Arbitrary scroll throttle duration */\nexport var THROTTLE_SCROLL_DURATION = ONE_SECOND;\nexport function trackScrollMetrics(configuration, viewStart, callback, scrollValues) {\n if (scrollValues === void 0) { scrollValues = createScrollValuesObservable(configuration); }\n var maxScrollDepth = 0;\n var maxScrollHeight = 0;\n var maxScrollHeightTime = 0;\n var subscription = scrollValues.subscribe(function (_a) {\n var scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight;\n var shouldUpdate = false;\n if (scrollDepth > maxScrollDepth) {\n maxScrollDepth = scrollDepth;\n shouldUpdate = true;\n }\n if (scrollHeight > maxScrollHeight) {\n maxScrollHeight = scrollHeight;\n var now = relativeNow();\n maxScrollHeightTime = elapsed(viewStart.relative, now);\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n callback({\n maxDepth: Math.min(maxScrollDepth, maxScrollHeight),\n maxDepthScrollTop: scrollTop,\n maxScrollHeight: maxScrollHeight,\n maxScrollHeightTime: maxScrollHeightTime,\n });\n }\n });\n return {\n stop: function () { return subscription.unsubscribe(); },\n };\n}\nexport function computeScrollValues() {\n var scrollTop = getScrollY();\n var height = getViewportDimension().height;\n var scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight);\n var scrollDepth = Math.round(height + scrollTop);\n return {\n scrollHeight: scrollHeight,\n scrollDepth: scrollDepth,\n scrollTop: scrollTop,\n };\n}\nexport function createScrollValuesObservable(configuration, throttleDuration) {\n if (throttleDuration === void 0) { throttleDuration = THROTTLE_SCROLL_DURATION; }\n return new Observable(function (observable) {\n function notify() {\n observable.notify(computeScrollValues());\n }\n if (window.ResizeObserver) {\n var throttledNotify_1 = throttle(notify, throttleDuration, {\n leading: false,\n trailing: true,\n });\n var observerTarget_1 = document.scrollingElement || document.documentElement;\n var resizeObserver_1 = new ResizeObserver(monitor(throttledNotify_1.throttled));\n resizeObserver_1.observe(observerTarget_1);\n var eventListener_1 = addEventListener(configuration, window, DOM_EVENT.SCROLL, throttledNotify_1.throttled, {\n passive: true,\n });\n return function () {\n throttledNotify_1.cancel();\n resizeObserver_1.unobserve(observerTarget_1);\n eventListener_1.stop();\n };\n }\n });\n}\n//# sourceMappingURL=trackScrollMetrics.js.map","import { trackCumulativeLayoutShift } from './trackCumulativeLayoutShift';\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint';\nimport { trackLoadingTime } from './trackLoadingTime';\nimport { trackScrollMetrics } from './trackScrollMetrics';\nexport function trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart) {\n var commonViewMetrics = {};\n var _a = trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {\n commonViewMetrics.loadingTime = newLoadingTime;\n scheduleViewUpdate();\n }), stopLoadingTimeTracking = _a.stop, setLoadEvent = _a.setLoadEvent;\n var stopScrollMetricsTracking = trackScrollMetrics(configuration, viewStart, function (newScrollMetrics) {\n commonViewMetrics.scroll = newScrollMetrics;\n }).stop;\n var stopCLSTracking = trackCumulativeLayoutShift(configuration, lifeCycle, function (cumulativeLayoutShift) {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;\n scheduleViewUpdate();\n }).stop;\n var _b = trackInteractionToNextPaint(configuration, viewStart.relative, loadingType, lifeCycle), stopINPTracking = _b.stop, getInteractionToNextPaint = _b.getInteractionToNextPaint, setViewEnd = _b.setViewEnd;\n return {\n stop: function () {\n stopLoadingTimeTracking();\n stopCLSTracking();\n stopScrollMetricsTracking();\n },\n stopINPTracking: stopINPTracking,\n setLoadEvent: setLoadEvent,\n setViewEnd: setViewEnd,\n getCommonViewMetrics: function () {\n commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint();\n return commonViewMetrics;\n },\n };\n}\n//# sourceMappingURL=trackCommonViewMetrics.js.map","import { elapsed } from '@datadog/browser-core';\nimport { waitPageActivityEnd } from '../../waitPageActivityEnd';\nexport function trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadType, viewStart, callback) {\n var isWaitingForLoadEvent = loadType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */;\n var isWaitingForActivityLoadingTime = true;\n var loadingTimeCandidates = [];\n function invokeCallbackIfAllCandidatesAreReceived() {\n if (!isWaitingForActivityLoadingTime && !isWaitingForLoadEvent && loadingTimeCandidates.length > 0) {\n callback(Math.max.apply(Math, loadingTimeCandidates));\n }\n }\n var stop = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (event) {\n if (isWaitingForActivityLoadingTime) {\n isWaitingForActivityLoadingTime = false;\n if (event.hadActivity) {\n loadingTimeCandidates.push(elapsed(viewStart.timeStamp, event.end));\n }\n invokeCallbackIfAllCandidatesAreReceived();\n }\n }).stop;\n return {\n stop: stop,\n setLoadEvent: function (loadEvent) {\n if (isWaitingForLoadEvent) {\n isWaitingForLoadEvent = false;\n loadingTimeCandidates.push(loadEvent);\n invokeCallbackIfAllCandidatesAreReceived();\n }\n },\n };\n}\n//# sourceMappingURL=trackLoadingTime.js.map","import { noop, PageExitReason, shallowClone, elapsed, generateUUID, ONE_MINUTE, throttle, clocksNow, clocksOrigin, timeStampNow, display, looksLikeRelativeTime, setInterval, clearInterval, setTimeout, Observable, } from '@datadog/browser-core';\nimport { trackViewEventCounts } from './trackViewEventCounts';\nimport { trackInitialViewMetrics } from './viewMetrics/trackInitialViewMetrics';\nimport { trackCommonViewMetrics } from './viewMetrics/trackCommonViewMetrics';\nexport var THROTTLE_VIEW_UPDATE_PERIOD = 3000;\nexport var SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE;\n// Some events or metrics can be captured after the end of the view. To avoid missing those;\n// an arbitrary delay is added for stopping their tracking after the view ends.\n//\n// Ideally, we would not stop and keep tracking events or metrics until the end of the session.\n// But this might have a small performance impact if there are many many views.\n// So let's have a fairly short delay improving the situation in most cases and avoid impacting performances too much.\nexport var KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * ONE_MINUTE;\nexport function trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, areViewsTrackedAutomatically, initialViewOptions) {\n var activeViews = new Set();\n var currentView = startNewView(\"initial_load\" /* ViewLoadingType.INITIAL_LOAD */, clocksOrigin(), initialViewOptions);\n startViewLifeCycle();\n var locationChangeSubscription;\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable);\n }\n function startNewView(loadingType, startClocks, viewOptions) {\n var newlyCreatedView = newView(lifeCycle, domMutationObservable, configuration, location, loadingType, startClocks, viewOptions);\n activeViews.add(newlyCreatedView);\n newlyCreatedView.stopObservable.subscribe(function () {\n activeViews.delete(newlyCreatedView);\n });\n return newlyCreatedView;\n }\n function startViewLifeCycle() {\n lifeCycle.subscribe(10 /* 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(9 /* LifeCycleEventType.SESSION_EXPIRED */, function () {\n currentView.end({ sessionIsActive: false });\n });\n // End the current view on page unload\n lifeCycle.subscribe(11 /* LifeCycleEventType.PAGE_EXITED */, function (pageExitEvent) {\n if (pageExitEvent.reason === PageExitReason.UNLOADING || pageExitEvent.reason === PageExitReason.PAGEHIDE) {\n currentView.end();\n }\n });\n }\n function renewViewOnLocationChange(locationChangeObservable) {\n return locationChangeObservable.subscribe(function (_a) {\n var oldLocation = _a.oldLocation, newLocation = _a.newLocation;\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end();\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */);\n }\n });\n }\n return {\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n currentView.addTiming(name, time);\n },\n startView: function (options, startClocks) {\n currentView.end({ endClocks: startClocks });\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, startClocks, options);\n },\n stop: function () {\n locationChangeSubscription === null || locationChangeSubscription === void 0 ? void 0 : locationChangeSubscription.unsubscribe();\n currentView.end();\n activeViews.forEach(function (view) { return view.stop(); });\n },\n };\n}\nfunction newView(lifeCycle, domMutationObservable, configuration, initialLocation, loadingType, startClocks, viewOptions) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n // Setup initial values\n var id = generateUUID();\n var stopObservable = new Observable();\n var customTimings = {};\n var documentVersion = 0;\n var endClocks;\n var location = shallowClone(initialLocation);\n var sessionIsActive = true;\n var name;\n var service;\n var version;\n if (viewOptions) {\n name = viewOptions.name;\n service = viewOptions.service;\n version = viewOptions.version;\n }\n var viewCreatedEvent = {\n id: id,\n name: name,\n startClocks: startClocks,\n service: service,\n version: version,\n };\n lifeCycle.notify(2 /* LifeCycleEventType.BEFORE_VIEW_CREATED */, viewCreatedEvent);\n lifeCycle.notify(3 /* LifeCycleEventType.VIEW_CREATED */, viewCreatedEvent);\n // Update the view every time the measures are changing\n var _a = throttle(triggerViewUpdate, THROTTLE_VIEW_UPDATE_PERIOD, {\n leading: false,\n }), scheduleViewUpdate = _a.throttled, cancelScheduleViewUpdate = _a.cancel;\n var _b = trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, startClocks), setLoadEvent = _b.setLoadEvent, setViewEnd = _b.setViewEnd, stopCommonViewMetricsTracking = _b.stop, stopINPTracking = _b.stopINPTracking, getCommonViewMetrics = _b.getCommonViewMetrics;\n var _c = loadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */\n ? trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate)\n : { stop: noop, initialViewMetrics: {} }, stopInitialViewMetricsTracking = _c.stop, initialViewMetrics = _c.initialViewMetrics;\n var _d = trackViewEventCounts(lifeCycle, id, scheduleViewUpdate), stopEventCountsTracking = _d.stop, eventCounts = _d.eventCounts;\n // Session keep alive\n var keepAliveIntervalId = setInterval(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL);\n // Initial view update\n triggerViewUpdate();\n function triggerViewUpdate() {\n cancelScheduleViewUpdate();\n documentVersion += 1;\n var currentEnd = endClocks === undefined ? timeStampNow() : endClocks.timeStamp;\n lifeCycle.notify(4 /* 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(5 /* LifeCycleEventType.VIEW_ENDED */, { endClocks: endClocks });\n lifeCycle.notify(6 /* LifeCycleEventType.AFTER_VIEW_ENDED */, { endClocks: endClocks });\n clearInterval(keepAliveIntervalId);\n setViewEnd(endClocks.relative);\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 stopINPTracking();\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.substring(1);\n // check if the correspondingId is empty because on Firefox an empty string passed to getElementById() prints a consol warning\n return correspondingId !== '' && !!document.getElementById(correspondingId);\n}\nfunction getPathFromHash(hash) {\n var index = hash.indexOf('?');\n return index < 0 ? hash : hash.slice(0, index);\n}\n//# sourceMappingURL=trackViews.js.map","import { trackEventCounts } from '../trackEventCounts';\nexport function trackViewEventCounts(lifeCycle, viewId, onChange) {\n var _a = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) { return event.view.id === viewId; },\n onChange: onChange,\n }), stop = _a.stop, eventCounts = _a.eventCounts;\n return {\n stop: stop,\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackViewEventCounts.js.map","import { isEmptyObject, mapValues, toServerDuration, isNumber } from '@datadog/browser-core';\nimport { trackViews } from './trackViews';\nexport function startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions) {\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_UPDATED */, function (view) {\n return lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory));\n });\n return trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, !configuration.trackViewsManually, initialViewOptions);\n}\nfunction processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var replayStats = recorderApi.getReplayStats(view.id);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(view.startClocks.relative);\n var 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: pageStates,\n configuration: {\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n },\n },\n date: view.startClocks.timeStamp,\n type: \"view\" /* RumEventType.VIEW */,\n view: {\n action: {\n count: view.eventCounts.actionCount,\n },\n frustration: {\n count: view.eventCounts.frustrationCount,\n },\n cumulative_layout_shift: (_a = view.commonViewMetrics.cumulativeLayoutShift) === null || _a === void 0 ? void 0 : _a.value,\n cumulative_layout_shift_target_selector: (_b = view.commonViewMetrics.cumulativeLayoutShift) === null || _b === void 0 ? void 0 : _b.targetSelector,\n first_byte: toServerDuration((_c = view.initialViewMetrics.navigationTimings) === null || _c === void 0 ? void 0 : _c.firstByte),\n dom_complete: toServerDuration((_d = view.initialViewMetrics.navigationTimings) === null || _d === void 0 ? void 0 : _d.domComplete),\n dom_content_loaded: toServerDuration((_e = view.initialViewMetrics.navigationTimings) === null || _e === void 0 ? void 0 : _e.domContentLoaded),\n dom_interactive: toServerDuration((_f = view.initialViewMetrics.navigationTimings) === null || _f === void 0 ? void 0 : _f.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.initialViewMetrics.firstContentfulPaint),\n first_input_delay: toServerDuration((_g = view.initialViewMetrics.firstInput) === null || _g === void 0 ? void 0 : _g.delay),\n first_input_time: toServerDuration((_h = view.initialViewMetrics.firstInput) === null || _h === void 0 ? void 0 : _h.time),\n first_input_target_selector: (_j = view.initialViewMetrics.firstInput) === null || _j === void 0 ? void 0 : _j.targetSelector,\n interaction_to_next_paint: toServerDuration((_k = view.commonViewMetrics.interactionToNextPaint) === null || _k === void 0 ? void 0 : _k.value),\n interaction_to_next_paint_target_selector: (_l = view.commonViewMetrics.interactionToNextPaint) === null || _l === void 0 ? void 0 : _l.targetSelector,\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration((_m = view.initialViewMetrics.largestContentfulPaint) === null || _m === void 0 ? void 0 : _m.value),\n largest_contentful_paint_target_selector: (_o = view.initialViewMetrics.largestContentfulPaint) === null || _o === void 0 ? void 0 : _o.targetSelector,\n load_event: toServerDuration((_p = view.initialViewMetrics.navigationTimings) === null || _p === void 0 ? void 0 : _p.loadEvent),\n loading_time: discardNegativeDuration(toServerDuration(view.commonViewMetrics.loadingTime)),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount,\n },\n resource: {\n count: view.eventCounts.resourceCount,\n },\n time_spent: toServerDuration(view.duration),\n },\n feature_flags: featureFlagContext && !isEmptyObject(featureFlagContext) ? featureFlagContext : undefined,\n display: view.commonViewMetrics.scroll\n ? {\n scroll: {\n max_depth: view.commonViewMetrics.scroll.maxDepth,\n max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,\n max_scroll_height_time: toServerDuration(view.commonViewMetrics.scroll.maxScrollHeightTime),\n },\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false,\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel,\n },\n };\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(view.customTimings, toServerDuration);\n }\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location,\n },\n };\n}\nfunction discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=viewCollection.js.map","import { Observable } from '../../tools/observable';\nimport { ValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { DOM_EVENT, 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, trackingConsentState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\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 renewObservable.notify();\n });\n sessionStore.expireObservable.subscribe(function () {\n expireObservable.notify();\n sessionContextHistory.closeActive(relativeNow());\n });\n // We expand/renew session unconditionally as tracking consent is always granted when the session\n // manager is started.\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackingConsentState.observable.subscribe(function () {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n else {\n sessionStore.expire();\n }\n });\n trackActivity(configuration, function () {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n });\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: renewObservable,\n expireObservable: 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, [DOM_EVENT.CLICK, DOM_EVENT.TOUCH_START, DOM_EVENT.KEY_DOWN, 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, 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, trackingConsentState) {\n var sessionManager = startSessionManager(configuration, RUM_SESSION_KEY, function (rawTrackingType) { return computeSessionState(configuration, rawTrackingType); }, trackingConsentState);\n sessionManager.expireObservable.subscribe(function () {\n lifeCycle.notify(9 /* LifeCycleEventType.SESSION_EXPIRED */);\n });\n sessionManager.renewObservable.subscribe(function () {\n lifeCycle.notify(10 /* 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 return {\n id: session.id,\n sessionReplayAllowed: session.trackingType === \"1\" /* RumTrackingType.TRACKED_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 sessionReplayAllowed: false,\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 { jsonStringify } from '../tools/serialisation/jsonStringify';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nvar Batch = /** @class */ (function () {\n function Batch(encoder, request, flushController, messageBytesLimit) {\n var _this = this;\n this.encoder = encoder;\n this.request = request;\n this.flushController = flushController;\n this.messageBytesLimit = messageBytesLimit;\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 upsertMessages = objectValues(this.upsertBuffer).join('\\n');\n this.upsertBuffer = {};\n var isPageExit = isPageExitReason(event.reason);\n var send = isPageExit ? this.request.sendOnExit : this.request.send;\n if (isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n this.encoder.isAsync) {\n var encoderResult = this.encoder.finishSync();\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult, event));\n }\n // Send messages that are not yet encoded at this point\n var pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n');\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n flushReason: event.reason,\n });\n }\n }\n else {\n if (upsertMessages) {\n this.encoder.write(this.encoder.isEmpty ? upsertMessages : \"\\n\".concat(upsertMessages));\n }\n this.encoder.finish(function (encoderResult) {\n send(formatPayloadFromEncoder(encoderResult, event));\n });\n }\n };\n Batch.prototype.addOrUpdate = function (message, key) {\n var serializedMessage = jsonStringify(message);\n var estimatedMessageBytesCount = this.encoder.estimateEncodedBytesCount(serializedMessage);\n if (estimatedMessageBytesCount >= 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(serializedMessage, estimatedMessageBytesCount, key);\n };\n Batch.prototype.push = function (serializedMessage, estimatedMessageBytesCount, key) {\n var _this = this;\n this.flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);\n if (key !== undefined) {\n this.upsertBuffer[key] = serializedMessage;\n this.flushController.notifyAfterAddMessage();\n }\n else {\n this.encoder.write(this.encoder.isEmpty ? serializedMessage : \"\\n\".concat(serializedMessage), function (realMessageBytesCount) {\n _this.flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount);\n });\n }\n };\n Batch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key];\n delete this.upsertBuffer[key];\n var messageBytesCount = this.encoder.estimateEncodedBytesCount(removedMessage);\n this.flushController.notifyAfterRemoveMessage(messageBytesCount);\n };\n Batch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined;\n };\n return Batch;\n}());\nexport { Batch };\nfunction formatPayloadFromEncoder(encoderResult, flushEvent) {\n var data;\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output;\n }\n else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n });\n }\n return {\n data: data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n flushReason: flushEvent.reason,\n };\n}\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, trackType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: function () { return retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, trackType, reportError); },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, trackType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(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, trackType, reportError);\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, _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, trackType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: \"Reached max \".concat(trackType, \" 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, trackType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n 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.trackType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload) {\n var canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', payload);\n var isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data);\n}\nvar hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse) {\n var canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor(function (response) { return onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type }); }), monitor(function () {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(configuration, url, data, onResponse) {\n var request = new XMLHttpRequest();\n request.open('POST', url, true);\n if (data instanceof Blob) {\n // When using a Blob instance, IE does not use its 'type' to define the 'Content-Type' header\n // automatically, so the intake request ends up being rejected with an HTTP status 415\n // Defining the header manually fixes this issue.\n request.setRequestHeader('Content-Type', data.type);\n }\n addEventListener(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 * @param estimatedMessageBytesCount: an estimation of the message bytes count once it is\n * actually added.\n */\n notifyBeforeAddMessage: function (estimatedMessageBytesCount) {\n if (currentBytesCount + estimatedMessageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += estimatedMessageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n *\n * @param messageBytesCountDiff: the difference between the estimated message bytes count and\n * its actual bytes count once added to the pool.\n */\n notifyAfterAddMessage: function (messageBytesCountDiff) {\n if (messageBytesCountDiff === void 0) { messageBytesCountDiff = 0; }\n currentBytesCount += messageBytesCountDiff;\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n *\n * @param messageBytesCount: the message bytes count that was added to the pool. Should\n * correspond to the sum of bytes counts passed to `notifyBeforeAddMessage` and\n * `notifyAfterAddMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { combine, isTelemetryReplicationAllowed, startBatchWithReplica, } from '@datadog/browser-core';\nexport function startRumBatch(configuration, lifeCycle, telemetryEventObservable, reportError, pageExitObservable, sessionExpireObservable, createEncoder) {\n var replica = configuration.replica;\n var batch = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n encoder: createEncoder(2 /* DeflateEncoderStreamId.RUM */),\n }, replica && {\n endpoint: replica.rumEndpointBuilder,\n transformMessage: function (message) { return combine(message, { application: { id: replica.applicationId } }); },\n encoder: createEncoder(3 /* DeflateEncoderStreamId.RUM_REPLICA */),\n }, reportError, pageExitObservable, sessionExpireObservable);\n lifeCycle.subscribe(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n if (serverRumEvent.type === \"view\" /* RumEventType.VIEW */) {\n batch.upsert(serverRumEvent, serverRumEvent.view.id);\n }\n else {\n batch.add(serverRumEvent);\n }\n });\n telemetryEventObservable.subscribe(function (event) { return batch.add(event, isTelemetryReplicationAllowed(configuration)); });\n return batch;\n}\n//# sourceMappingURL=startRumBatch.js.map","import { Batch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable) {\n var primaryBatch = createBatch(configuration, primary);\n var replicaBatch = replica && createBatch(configuration, replica);\n function createBatch(configuration, _a) {\n var endpoint = _a.endpoint, encoder = _a.encoder;\n return new Batch(encoder, createHttpRequest(configuration, endpoint, configuration.batchBytesLimit, reportError), createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable,\n }), configuration.messageBytesLimit);\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add: function (message, replicated) {\n if (replicated === void 0) { replicated = true; }\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: function (message, key) {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: function () {\n primaryBatch.stop();\n replicaBatch === null || replicaBatch === void 0 ? void 0 : replicaBatch.stop();\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","import { addEventListener, DOM_EVENT, instrumentMethod, Observable, shallowClone } from '@datadog/browser-core';\nexport function createLocationChangeObservable(configuration, location) {\n var currentLocation = shallowClone(location);\n return new Observable(function (observable) {\n var stopHistoryTracking = trackHistory(configuration, onLocationChange).stop;\n var stopHashTracking = trackHash(configuration, onLocationChange).stop;\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 function () {\n stopHistoryTracking();\n stopHashTracking();\n };\n });\n}\nfunction trackHistory(configuration, onHistoryChange) {\n var stopInstrumentingPushState = instrumentMethod(history, 'pushState', function (_a) {\n var onPostCall = _a.onPostCall;\n onPostCall(onHistoryChange);\n }).stop;\n var stopInstrumentingReplaceState = instrumentMethod(history, 'replaceState', function (_a) {\n var onPostCall = _a.onPostCall;\n onPostCall(onHistoryChange);\n }).stop;\n var removeListener = addEventListener(configuration, window, 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, DOM_EVENT.HASH_CHANGE, onHashChange);\n}\n//# sourceMappingURL=locationChangeObservable.js.map","import { 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, customerDataTrackerManager, 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(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n batchHasRumEvent = true;\n updateMeasure(currentBatchMeasures.globalContextBytes, customerDataTrackerManager.getOrCreateTracker(2 /* CustomerDataType.GlobalContext */).getBytesCount());\n updateMeasure(currentBatchMeasures.userContextBytes, customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */).getBytesCount());\n updateMeasure(currentBatchMeasures.featureFlagBytes, includes([\"view\" /* RumEventType.VIEW */, \"error\" /* RumEventType.ERROR */], event.type)\n ? customerDataTrackerManager.getOrCreateTracker(0 /* CustomerDataType.FeatureFlag */).getBytesCount()\n : 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, DOM_EVENT, } 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 DOM_EVENT.PAGE_SHOW,\n DOM_EVENT.FOCUS,\n DOM_EVENT.BLUR,\n DOM_EVENT.VISIBILITY_CHANGE,\n DOM_EVENT.RESUME,\n DOM_EVENT.FREEZE,\n DOM_EVENT.PAGE_HIDE,\n ], function (event) {\n addPageState(computePageState(event), event.timeStamp);\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 === DOM_EVENT.FREEZE) {\n return \"frozen\" /* PageState.FROZEN */;\n }\n else if (event.type === 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 { combine, elapsed, generateUUID } from '@datadog/browser-core';\nexport function startVitalCollection(lifeCycle) {\n var vitalStartsByName = new Map();\n return {\n startDurationVital: function (vitalStart) {\n vitalStartsByName.set(vitalStart.name, vitalStart);\n },\n stopDurationVital: function (vitalStop) {\n var vitalStart = vitalStartsByName.get(vitalStop.name);\n if (!vitalStart) {\n return;\n }\n var vital = {\n name: vitalStart.name,\n type: \"duration\" /* VitalType.DURATION */,\n startClocks: vitalStart.startClocks,\n value: elapsed(vitalStart.startClocks.timeStamp, vitalStop.stopClocks.timeStamp),\n context: combine(vitalStart.context, vitalStop.context),\n };\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processVital(vital));\n vitalStartsByName.delete(vitalStop.name);\n },\n };\n}\nfunction processVital(vital) {\n var _a;\n return {\n rawRumEvent: {\n date: vital.startClocks.timeStamp,\n vital: {\n id: generateUUID(),\n type: vital.type,\n name: vital.name,\n custom: (_a = {},\n _a[vital.name] = vital.value,\n _a),\n },\n type: \"vital\" /* RumEventType.VITAL */,\n },\n startTime: vital.startClocks.relative,\n customerContext: vital.context,\n domainContext: {},\n };\n}\n//# sourceMappingURL=vitalCollection.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","export var MAX_STATS_HISTORY = 10;\nvar statsPerView;\nexport function getSegmentsCount(viewId) {\n return getOrCreateReplayStats(viewId).segments_count;\n}\nexport function addSegment(viewId) {\n getOrCreateReplayStats(viewId).segments_count += 1;\n}\nexport function addRecord(viewId) {\n getOrCreateReplayStats(viewId).records_count += 1;\n}\nexport function addWroteData(viewId, additionalBytesCount) {\n getOrCreateReplayStats(viewId).segments_total_raw_size += additionalBytesCount;\n}\nexport function getReplayStats(viewId) {\n return statsPerView === null || statsPerView === void 0 ? void 0 : statsPerView.get(viewId);\n}\nexport function resetReplayStats() {\n statsPerView = undefined;\n}\nfunction getOrCreateReplayStats(viewId) {\n if (!statsPerView) {\n statsPerView = new Map();\n }\n var replayStats;\n if (statsPerView.has(viewId)) {\n replayStats = statsPerView.get(viewId);\n }\n else {\n replayStats = {\n records_count: 0,\n segments_count: 0,\n segments_total_raw_size: 0,\n };\n statsPerView.set(viewId, replayStats);\n if (statsPerView.size > MAX_STATS_HISTORY) {\n deleteOldestStats();\n }\n }\n return replayStats;\n}\nfunction deleteOldestStats() {\n if (!statsPerView) {\n return;\n }\n if (statsPerView.keys) {\n statsPerView.delete(statsPerView.keys().next().value);\n }\n else {\n // IE11 doesn't support map.keys\n var isFirst_1 = true;\n statsPerView.forEach(function (_value, key) {\n if (isFirst_1) {\n statsPerView.delete(key);\n isFirst_1 = false;\n }\n });\n }\n}\n//# sourceMappingURL=replayStats.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, cache) {\n if (cache && cache.has(node)) {\n return cache.get(node);\n }\n var parentNode = getParentNode(node);\n var parentNodePrivacyLevel = parentNode\n ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel, cache)\n : defaultPrivacyLevel;\n var selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n var nodePrivacyLevel = reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n if (cache) {\n cache.set(node, nodePrivacyLevel);\n }\n return nodePrivacyLevel;\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 // instances\n */ function reduceComponents(headElements, props) {\n return headElements.reduce((list, headElement)=>{\n const headElementChildren = _react.default.Children.toArray(headElement.props.children);\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (process.env.NODE_ENV !== 'development' && process.env.__NEXT_OPTIMIZE_FONTS && !props.inAmpMode) {\n if (c.type === 'link' && c.props['href'] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.\n [\n 'https://fonts.googleapis.com/css',\n 'https://use.typekit.net/'\n ].some((url)=>c.props['href'].startsWith(url)\n )) {\n const newProps = {\n ...c.props || {\n }\n };\n newProps['data-href'] = newProps['href'];\n newProps['href'] = undefined;\n // Add this attribute to make it easy to identify optimized tags\n newProps['data-optimized-fonts'] = true;\n return(/*#__PURE__*/ _react.default.cloneElement(c, newProps));\n }\n }\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? `