{"version":3,"mappings":"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","names":["ConsoleApiName","globalConsole","originalConsoleMethods","name","PREFIX","display","DOCS_ORIGIN","DOCS_TROUBLESHOOTING","MORE_DETAILS","catchUserErrors","fn","errorMsg","args","err","performDraw","threshold","round","num","decimals","isPercentage","value","isNumber","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","relativeToClocks","relative","getCorrectedTimeStamp","timeStampToClocks","timeStamp","getRelativeTime","relativeTime","correctedOrigin","dateNow","getNavigationStart","addDuration","getTimeStamp","currentDrift","toServerDuration","duration","timeStampNow","relativeNow","clocksNow","clocksOrigin","elapsed","start","end","a","b","timestamp","looksLikeRelativeTime","time","navigationStart","ONE_KIBI_BYTE","ONE_MEBI_BYTE","HAS_MULTI_BYTES_CHARACTERS","computeBytesCount","candidate","concatBuffers","buffers","length","total","buffer","result","offset","shallowClone","object","objectHasValue","key","isEmptyObject","mapValues","newObject","getGlobalObject","globalObject","getZoneJsOriginalValue","target","browserWindow","original","onMonitorErrorCollected","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","monitor","callMonitored","context","e","monitorError","displayIfDebugEnabled","setTimeout","callback","delay","clearTimeout","timeoutId","setInterval","clearInterval","Observable","onFirstSubscribe","f","other","data","observer","mergeObservables","observables","globalObservable","subscriptions","observable","subscription","throttle","wait","options","needLeadingExecution","needTrailingExecution","inWaitPeriod","pendingExecutionWithParameters","pendingTimeoutId","parameters","noop","generateUUID","placeholder","COMMA_SEPARATED_KEY_VALUE","findCommaSeparatedValue","rawString","match","findCommaSeparatedValues","safeTruncate","suffix","lastChar","correctedLength","isChromium","detectBrowserCached","isSafari","browserCache","detectBrowser","_a","userAgent","setCookie","expireDelay","date","expires","sameSite","domain","secure","partitioned","getCookie","initCookieParsed","getInitCookie","deleteCookie","areCookiesAuthorized","testCookieName","testCookieValue","isCookieCorrectlySet","error","getCurrentSiteCache","getCurrentSite","domainLevels","candidateDomain","SESSION_STORE_KEY","findLast","array","predicate","i","item","objectValues","objectEntries","SESSION_TIME_OUT_DELAY","SESSION_EXPIRATION_DELAY","SESSION_COOKIE_EXPIRATION_DELAY","SessionPersistence","SESSION_ENTRY_REGEXP","SESSION_ENTRY_SEPARATOR","isValidSessionString","sessionString","EXPIRED","getExpiredSessionState","previousSessionState","configuration","expiredSessionState","isSessionInNotStartedState","session","isSessionStarted","isSessionInExpiredState","isActiveSession","sessionState","expandSessionState","toSessionString","toSessionState","entry","matches","OLD_SESSION_COOKIE_NAME","OLD_RUM_COOKIE_NAME","OLD_LOGS_COOKIE_NAME","RUM_SESSION_KEY","LOGS_SESSION_KEY","tryOldCookiesMigration","cookieStoreStrategy","oldSessionId","oldRumType","oldLogsType","selectCookieStrategy","initConfiguration","cookieOptions","buildCookieOptions","initCookieStrategy","cookieStore","persistSessionCookie","retrieveSessionCookie","expireSessionCookie","LOCAL_STORAGE_TEST_KEY","selectLocalStorageStrategy","id","testKey","retrievedId","initLocalStorageStrategy","persistInLocalStorage","retrieveSessionFromLocalStorage","expireSessionFromLocalStorage","LOCK_RETRY_DELAY","LOCK_MAX_TRIES","bufferedOperations","ongoingOperations","processSessionStoreOperations","operations","sessionStoreStrategy","numberOfRetries","isLockEnabled","persistSession","expireSession","persistWithLock","currentLock","retrieveStore","lock","next","currentStore","retryLater","processedSession","sessionStore","currentNumberOfRetries","nextOperations","STORAGE_POLL_DELAY","selectSessionStoreStrategyType","sessionStoreStrategyType","startSessionStore","productKey","computeSessionState","renewObservable","expireObservable","sessionStateUpdateObservable","watchSessionTimeoutId","watchSession","sessionCache","startSession","throttledExpandOrRenewSession","cancelExpandOrRenewSession","synchronizedSession","synchronizeSession","expandOrRenewSessionState","hasSessionInCache","renewSessionInCache","expandSession","isSessionInCacheOutdated","expireSessionInCache","trackingType","isTracked","updateSessionState","partialSessionState","TrackingConsent","createTrackingConsentState","currentConsent","trackingConsent","jsonStringify","replacer","space","restoreObjectPrototypeToJson","detachToJsonMethod","restoreArrayPrototypeToJson","restoreValuePrototypeToJson","restoreValueToJson","objectToJson","normalizeUrl","url","buildUrl","isValidUrl","getPathName","pathname","base","supportedURL","getSupportedUrl","doc","anchorElement","baseElement","originalURL","isURLSupported","INTAKE_SITE_STAGING","INTAKE_SITE_FED_STAGING","INTAKE_SITE_US1","INTAKE_SITE_EU1","INTAKE_SITE_US1_FED","PCI_INTAKE_HOST_US1","INTAKE_URL_PARAMETERS","createEndpointBuilder","trackType","configurationTags","buildUrlWithParameters","createEndpointUrlWithParametersBuilder","api","payload","buildEndpointParameters","path","proxy","normalizedProxyUrl","host","buildEndpointHost","site","internalAnalyticsSubdomain","domainParts","extension","clientToken","retry","encoding","tags","TAG_SIZE_LIMIT","buildTags","env","service","version","datacenter","buildTag","rawValue","valueSizeLimit","hasForbiddenCharacters","sanitizedValue","supportUnicodePropertyEscapes","computeTransportConfiguration","endpointBuilders","computeEndpointBuilders","computeReplicaConfiguration","replicaConfiguration","replicaEndpointBuilders","isIntakeUrl","param","DefaultPrivacyLevel","TraceContextInjection","isString","tag","tagName","isDatadogSite","isSampleRate","sampleRate","validateAndBuildConfiguration","_b","_c","_d","_e","_f","serializeConfiguration","ExperimentalFeature","enabledExperimentalFeatures","initFeatureFlags","enableExperimentalFeatures","addExperimentalFeatures","flag","enabledFeatures","isExperimentalFeatureEnabled","featureName","getExperimentalFeatures","UNKNOWN_FUNCTION","computeStackTrace","ex","stack","stackProperty","tryToGetString","exString","line","stackFrame","parseChromeLine","parseChromeAnonymousLine","parseWinLine","parseGeckoLine","fileUrl","filePosition","CHROME_LINE_RE","CHROME_EVAL_RE","parts","isNative","isEval","submatch","CHROME_ANONYMOUS_FUNCTION_RE","WINJS_LINE_RE","GECKO_LINE_RE","GECKO_EVAL_RE","property","computeStackTraceFromOnErrorMessage","messageObj","column","message","tryToParseMessage","ERROR_TYPES_RE","createHandlingStack","type","formattedStack","stackTrace","toStackTraceString","formatErrorMessage","frame","func","instrumentMethod","targetPrototype","method","onPreCall","computeHandlingStack","stopped","instrumentation","postCallCallback","instrumentSetter","after","originalDescriptor","stoppedInstrumentation","instrumentationWrapper","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","JSON_PATH_ROOT_ELEMENT","KEY_DECORATION_LENGTH","sanitize","source","maxCharacterCount","containerQueue","visitedObjectsWithPath","sanitizedData","sanitizeProcessor","serializedSanitizedData","accumulatedCharacterCount","warnOverCharacterLimit","containerToProcess","separatorLength","targetData","parentPath","queue","sourceToSanitize","tryToApplyToJSON","sanitizePrimitivesAndFunctions","sanitizedSource","sanitizeObjects","sourceAsObject","currentPath","sanitizeEvent","event","changeType","NO_ERROR_STACK_PRESENT_MESSAGE","computeRawError","originalError","handlingStack","componentStack","startClocks","nonErrorPrefix","handling","isErrorInstance","isError","computeMessage","hasUsableStack","causes","flattenErrorCauses","fingerprint","tryToGetFingerprint","tryToGetErrorContext","parentSource","currentError","ErrorSource","trackRuntimeError","errorObservable","handleRuntimeError","rawError","stopInstrumentingOnError","instrumentOnError","stopInstrumentingOnUnhandledRejection","instrumentUnhandledRejection","errorObj","reason","makePublicApi","stub","publicApi","defineGlobal","global","existingGlobalVariable","displayAlreadyInitializedError","sdkName","addEventListener","eventTarget","eventName","listener","addEventListeners","eventNames","once","capture","passive","listenerWithMonitor","stop","listenerTarget","add","remove","RawReportType","initReportObservable","apis","createCspViolationReportObservable","reportTypes","createReportObservable","handleReports","reports","_","report","buildRawReportErrorFromReport","buildRawReportErrorFromCspViolation","body","buildRawReportError","buildStack","partial","sourceFile","lineNumber","columnNumber","sendToExtension","getType","mergeInto","destination","circularReferenceChecker","createCircularReferenceChecker","flags","merged","deepClone","combine","sources","set","has","getConnectivity","navigator","removeItem","index","BUFFER_LIMIT","createBoundedBuffer","arg","TelemetryType","ALLOWED_FRAME_URLS","TELEMETRY_EXCLUDED_SITES","preStartTelemetryBuffer","onRawTelemetryEventCollected","startTelemetry","telemetryService","contextProvider","alreadySentEvents","telemetryEnabled","telemetryEnabledPerType","runtimeEnvInfo","getRuntimeEnvInfo","rawEvent","stringifiedEvent","toTelemetryEvent","addTelemetryError","provider","drainPreStartTelemetry","isTelemetryReplicationAllowed","addTelemetryDebug","formatError","addTelemetryConfiguration","addTelemetryUsage","usage","scrubCustomerFrames","allowedFrameUrl","END_OF_TIMES","CLEAR_OLD_VALUES_INTERVAL","cleanupHistoriesInterval","cleanupTasks","cleanupHistories","task","createValueHistory","maxEntries","entries","deletedEntries","clearExpiredValues","oldTimeThreshold","startTime","endTime","find","closeActive","latestEntry","findAll","getAllEntries","getDeletedEntries","reset","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","startSessionManager","trackingConsentState","sessionContextHistory","buildSessionContext","trackActivity","trackVisibility","trackResume","expandOrRenewSession","expandSessionWhenVisible","cb","isServerError","status","tryToClone","response","MAX_ONGOING_BYTES_COUNT","MAX_ONGOING_REQUESTS","MAX_QUEUE_BYTES_COUNT","MAX_BACKOFF_TIME","INITIAL_BACKOFF_TIME","sendWithRetryStrategy","state","sendStrategy","reportError","send","retryQueuedPayloads","scheduleRetry","onSuccess","onFailure","shouldRetryRequest","previousQueue","newPayloadQueue","newRetryState","newBandwidthMonitor","createHttpRequest","endpointBuilder","bytesLimit","retryState","sendStrategyForRetry","onResponse","fetchKeepAliveStrategy","sendBeaconStrategy","beaconUrl","reportBeaconError","xhrUrl","sendXHR","hasReportedBeaconError","isKeepAliveSupported","fetchUrl","request","getEventBridge","eventBridgeGlobal","getEventBridgeGlobal","eventType","viewId","view","bridgeSupports","capability","bridge","canUseEventBridge","currentHost","allowedHost","PageExitReason","createPageExitObservable","stopListeners","stopBeforeUnloadListener","isPageExitReason","createBatch","encoder","flushController","messageBytesLimit","upsertBuffer","flushSubscription","flush","push","serializedMessage","estimatedMessageBytesCount","realMessageBytesCount","hasMessageFor","removedMessage","messageBytesCount","addOrUpdate","upsertMessages","isPageExit","encoderResult","formatPayloadFromEncoder","pendingMessages","createFlushController","messagesLimit","durationLimit","pageExitObservable","sessionExpireObservable","pageExitSubscription","sessionExpireSubscription","flushObservable","currentBytesCount","currentMessagesCount","flushReason","messagesCount","bytesCount","cancelDurationLimitTimeout","durationLimitTimeoutId","scheduleDurationLimitTimeout","messageBytesCountDiff","startBatchWithReplica","primary","replica","batchFactoryImp","primaryBatch","createBatchFromConfig","replicaBatch","endpoint","replicated","createIdentityEncoder","output","outputBytesCount","additionalEncodedBytesCount","AbstractLifeCycle","eventCallbacks","createEventRateLimiter","limit","onLimitReached","eventCount","allowNextEvent","runOnReadyState","expectedReadyState","asyncRunOnReadyState","resolve","xhrObservable","xhrContexts","initXhrObservable","createXhrObservable","stopInstrumentingStart","openXhr","stopInstrumentingSend","call","sendXhr","stopInstrumentingAbort","abortXhr","xhr","startContext","hasBeenReported","stopInstrumentingOnReadyStateChange","onEnd","unsubscribeLoadEndListener","completeContext","fetchObservable","initFetchObservable","createFetchObservable","beforeSend","onPostCall","input","init","methodFromParams","responsePromise","afterSend","reportFetch","partialContext","requestIdleCallback","opts","requestIdleCallbackShim","MAX_TASK_TIME","IDLE_CALLBACK_TIMEOUT","MAX_EXECUTION_TIME_ON_TIMEOUT","createTaskQueue","pendingTasks","run","deadline","executionTimeRemaining","scheduleNextRun","consoleObservablesByApi","initConsoleObservable","consoleObservables","createConsoleObservable","originalConsoleApi","params","buildConsoleLog","formatConsoleParameters","firstErrorParam","checkContext","maybeContext","isValid","ensureProperties","propertiesConfig","newContext","required","createContextManager","customerDataTracker","changeObservable","contextManager","CONTEXT_STORE_KEY_PREFIX","storageListeners","storeContextManager","customerDataType","storageKey","buildStorageKey","synchronizeWithStorage","dumpToStorage","contextFromStorage","getFromStorage","rawContext","CUSTOMER_DATA_BYTES_LIMIT","CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT","BYTES_COMPUTATION_THROTTLING_DELAY","createCustomerDataTrackerManager","compressionStatus","customerDataTrackers","alreadyWarned","checkCustomerDataLimit","initialBytesCount","bytesCountLimit","tracker","displayCustomerDataLimitReachedWarning","createCustomerDataTracker","newCompressionStatus","bytesCountCache","computeBytesCountThrottled","cancelComputeBytesCount","resetBytesCount","readBytesFromStream","stream","reader","readBytesCount","readMore","onDone","SYNTHETICS_TEST_ID_COOKIE_NAME","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","getSyntheticsTestId","getSyntheticsResultId","isMatchOption","itemType","matchList","list","useStartsWith","buildCommonContext","globalContextManager","userContextManager","accountContextManager","recorderApi","createCustomVitalsState","startVitalCollection","lifeCycle","pageStateHistory","customVitalsState","vital","addDurationVital","processVital","startDurationVital","nameOrRef","stopDurationVital","vitalsByName","vitalsByReference","reference","stopCallback","vitalStart","buildDurationVital","stopOptions","stopClocks","valueComputedBySdk","rawRumEvent","callPluginsMethod","plugins","methodName","parameter","plugin","createTraceIdentifier","createIdentifier","createSpanIdentifier","bits","radix","high","low","str","mod","toPaddedHexadecimalString","sampleDecisionCache","isTraceSampled","sessionId","decision","sampleUsingKnuthFactor","identifier","knuthFactor","twoPow64","hash","isTracingOption","expectedItem","clearTracingIfNeeded","startTracer","sessionManager","injectHeadersIfTracingAllowed","tracingHeaders","headers","header","inject","tracingOption","traceSampled","makeTracingHeaders","traceId","spanId","propagatorTypes","propagatorType","DEFAULT_PROPAGATOR_TYPES","validateAndBuildRumConfiguration","allowedTracingUrls","validateAndBuildTracingOptions","baseConfiguration","sessionReplaySampleRate","tracingOptions","option","getSelectedTracingPropagators","usedTracingPropagators","serializeRumConfiguration","baseSerializedConfiguration","REMOTE_CONFIGURATION_VERSION","fetchAndApplyRemoteConfiguration","fetchRemoteConfiguration","remoteInitConfiguration","applyRemoteConfiguration","remoteConfiguration","displayRemoteConfigurationFetchingError","buildEndpoint","createPreStartStrategy","ignoreInitIfSyntheticsWillInjectRum","startDeflateWorker","getCommonContext","doStartRum","bufferApiCalls","firstStartViewCall","deflateWorker","cachedInitConfiguration","cachedConfiguration","trackingConsentStateSubscription","tryStartRum","emptyContext","initialViewOptions","startRumResult","doInit","eventBridgeAvailable","overrideInitConfigurationForBridge","action","commonContext","providedError","RUM_STORAGE_KEY","makeRumPublicApi","startRumImpl","customerDataTrackerManager","strategy","streamId","createPostStartStrategy","startView","sanitizedOptions","rumPublicApi","newUser","preStartStrategy","createDOMMutationObservable","MutationObserver","getMutationObserverConstructor","constructor","patchedInstance","originalInstance","createWindowOpenObservable","limitModification","modifiableFieldPaths","modifier","clone","fieldPath","fieldType","setValueAtPath","pathSegments","field","restPathSegments","isValidObject","setNestedValue","newType","VIEW_MODIFIABLE_FIELD_PATHS","USER_CUSTOMIZABLE_FIELD_PATHS","ROOT_MODIFIABLE_FIELD_PATHS","modifiableFieldPathsByEvent","startRumAssembly","hooks","viewHistory","urlContexts","displayContext","eventRateLimiters","domainContext","savedCommonContext","customerContext","viewHistoryEntry","urlContext","rumContext","serverRumEvent","shouldSend","startInternalContext","applicationId","actionContexts","viewContext","actionId","LifeCycle","VIEW_CONTEXT_TIME_OUT_DELAY","startViewHistory","viewValueHistory","buildViewHistoryEntry","endClocks","viewUpdate","currentView","FAKE_INITIAL_DOCUMENT","RESOURCE_TYPES","initiatorType","computeResourceEntryType","isType","areInOrder","numbers","isResourceEntryRequestType","computeResourceEntryDuration","responseEnd","computeResourceEntryDetails","hasValidResourceEntryTimings","fetchStart","workerStart","redirectStart","redirectEnd","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","responseStart","details","formatTiming","hasValidResourceEntryDuration","areCommonTimingsInOrder","areRedirectionTimingsInOrder","hasRedirection","origin","computeResourceEntryProtocol","computeResourceEntryDeliveryType","computeResourceEntrySize","encodedBodySize","decodedBodySize","transferSize","isAllowedRequestUrl","DATA_URL_REGEX","MAX_ATTRIBUTE_VALUE_CHAR_LENGTH","isLongDataUrl","sanitizeDataUrl","nextRequestIndex","startRequestCollection","tracer","trackXhr","trackFetch","getNextRequestIndex","waitForResponseToComplete","clonedResponse","discardNegativeDuration","trackEventCounts","isChildEvent","eventCounts","retrieveFirstInputTiming","startTimeStamp","timingSent","removeEventListeners","evt","timing","sendTimingIfPointerIsNotCancelled","sendTiming","RumPerformanceEntryType","createPerformanceObservable","handlePerformanceEntries","rumPerformanceEntries","filterRumPerformanceEntries","isObserverInitializing","manageResourceTimingBufferFull","stopFirstInputTiming","supportPerformanceTimingEvent","resourceTimingBufferFullListener","supportPerformanceObject","entryType","isForbiddenResource","PAGE_ACTIVITY_VALIDATION_DELAY","PAGE_ACTIVITY_END_DELAY","waitPageActivityEnd","domMutationObservable","windowOpenObservable","pageActivityEndCallback","maxDuration","pageActivityObservable","createPageActivityObservable","doWaitPageActivityEnd","pageActivityEndTimeoutId","hasCompleted","validationTimeoutId","complete","maxDurationTimeoutId","pageActivitySubscription","isBusy","lastChangeTime","firstRequestIndex","pendingRequestsCount","notifyPageActivity","isExcludedUrl","startEvent","s","requestUrl","isTextNode","node","isCommentNode","isElementNode","isNodeShadowHost","isNodeShadowRoot","shadowRoot","hasChildNodes","forEachChildNodes","child","getParentNode","NodePrivacyLevel","PRIVACY_ATTR_NAME","PRIVACY_ATTR_VALUE_HIDDEN","PRIVACY_CLASS_PREFIX","CENSORED_STRING_MARK","CENSORED_IMG_MARK","FORM_PRIVATE_TAG_NAMES","TEXT_MASKING_CHAR","getNodePrivacyLevel","defaultPrivacyLevel","cache","parentNode","parentNodePrivacyLevel","selfNodePrivacyLevel","getNodeSelfPrivacyLevel","nodePrivacyLevel","reducePrivacyLevel","childPrivacyLevel","inputElement","autocomplete","getPrivacySelector","shouldIgnoreElement","shouldMaskNode","privacyLevel","isFormElement","element","censorText","text","getTextContent","textNode","ignoreWhiteSpace","parentTagName","textContent","relAttribute","getLowerCaseAttribute","nameAttribute","propertyAttribute","DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE","ACTION_NAME_PLACEHOLDER","getActionNameFromElement","enablePrivacyForActionName","userProgrammaticAttribute","defaultActionName","getActionNameFromElementProgrammatically","getActionNameFromElementForStrategies","priorityStrategies","fallbackStrategies","targetElement","programmaticAttribute","elementWithAttribute","truncate","normalizeWhitespace","getActionNameFromTextualContent","privacyEnabledActionName","getActionNameFromStandardAttribute","labelledByAttribute","getElementById","label","getTextualContent","MAX_PARENTS_TO_CONSIDER","strategies","recursionCounter","actionName","nameSource","trimmedName","refElement","attribute","removeTextFromElements","query","textToReplace","STABLE_ATTRIBUTES","GLOBALLY_UNIQUE_SELECTOR_GETTERS","getStableAttributeSelector","getIDSelector","UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS","getClassSelector","getTagNameSelector","getSelectorFromElement","actionNameAttribute","targetElementSelector","currentElement","globallyUniqueSelector","findSelector","isSelectorUniqueGlobally","isSelectorUniqueAmongSiblings","combineSelector","getPositionSelector","isGeneratedValue","classList","className","selector","getAttributeSelector","attributeName","sibling","elementIndex","selectorGetters","childSelector","selectorGetter","elementSelector","currentElementSelector","isSiblingMatching","scopedSelector","parent","MAX_DURATION_BETWEEN_CLICKS","MAX_DISTANCE_BETWEEN_CLICKS","createClickChain","firstClick","onFinalize","bufferedClicks","maxDurationBetweenClicksTimeoutId","appendClick","click","tryFinalize","dontAcceptMoreClick","areEventsSimilar","first","second","mouseEventDistance","listenActionEvents","onPointerDown","onPointerUp","selectionEmptyAtPointerDown","userActivity","clickContext","listeners","isValidPointerEvent","isSelectionEmpty","localUserActivity","selection","MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE","computeFrustration","clicks","rageClick","isRage","isDead","hasSelectionChanged","DEAD_CLICK_EXCLUDE_SELECTOR","CLICK_ACTION_MAX_DURATION","interactionSelectorCache","getInteractionSelector","relativeTimestamp","updateInteractionSelector","ACTION_CONTEXT_TIME_OUT_DELAY","trackClickActions","history","stopObservable","currentClickChain","stopClickChain","stopActionEventsListener","pointerDownEvent","processPointerDown","clickActionBase","hadActivityOnPointerDown","getUserActivity","startClickAction","appendClickToClickChain","finalizeClicks","computeClickActionBase","pageActivityEndEvent","newClick","stopWaitPageActivityEnd","viewEndedSubscription","stopSubscription","rect","historyEntry","eventCountsSubscription","activityEndTime","frustrationTypes","newActivityEndTime","frustrationType","domEvents","resourceCount","errorCount","longTaskCount","clickAction","startActionCollection","processAction","autoActionProperties","isAutoAction","actionEvent","trackConsoleError","consoleLog","trackReportError","startErrorCollection","doStartErrorCollection","processError","alreadyMatchedEntries","matchRequestResourceEntry","sameNameEntries","candidates","isBetween","INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD","getDocumentTraceId","document","getDocumentTraceDataFromMeta","getDocumentTraceDataFromComment","traceIdMeta","traceTimeMeta","createDocumentTraceData","comment","findTraceComment","rawTraceTime","traceTime","getTraceCommentFromNode","getNavigationEntry","navigationEntry","timings","computeTimingsFromDeprecatedPerformanceTiming","numberKey","timingElement","retrieveInitialDocumentResourceTiming","getNavigationEntryImpl","startResourceCollection","taskQueue","retrieveInitialDocumentResourceTimingImpl","handleResource","processRequest","performanceResourceSubscription","processResourceEntry","computeRawEvent","matchingTiming","tracingInfo","computeRequestTracingInfo","correspondingTimingOverrides","computeResourceEntryMetrics","computeRequestDuration","resourceEvent","computeResourceEntryTracingInfo","entryMetrics","discardZeroStatus","renderBlockingStatus","statusCode","trackViewEventCounts","onChange","FCP_MAXIMUM_DELAY","trackFirstContentfulPaint","firstHidden","fcpEntry","trackFirstInput","performanceFirstInputSubscription","firstInputEntry","firstInputDelay","firstInputTargetSelector","trackNavigationTimings","waitAfterLoadEvent","isIncompleteNavigation","processNavigationEntry","stopOnReadyState","LCP_MAXIMUM_DELAY","trackLargestContentfulPaint","firstInteractionTimestamp","stopEventListener","biggestLcpSize","performanceLcpSubscription","lcpEntry","lcpTargetSelector","computeLcpEntryUrl","trackFirstHidden","trackInitialViewMetrics","setLoadEvent","scheduleViewUpdate","initialViewMetrics","stopNavigationTracking","navigationTimings","stopFCPTracking","firstContentfulPaint","stopLCPTracking","largestContentfulPaint","stopFIDTracking","firstInput","trackCumulativeLayoutShift","viewStart","isLayoutShiftSupported","maxClsValue","biggestShift","slidingWindow","slidingSessionWindow","performanceSubscription","cumulatedValue","isMaxValue","attribution","getFirstElementAttribution","asRumRect","x","y","width","height","MAX_WINDOW_DURATION","MAX_UPDATE_GAP","maxValue","shouldCreateNewWindow","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","initInteractionCountPolyfill","getInteractionCount","MAX_INTERACTION_ENTRIES","MAX_INP_VALUE","trackInteractionToNextPaint","viewLoadingType","isInteractionToNextPaintSupported","getViewInteractionCount","stopViewInteractionCount","trackViewInteractionCount","viewEnd","longestInteractions","trackLongestInteractions","interactionToNextPaint","interactionToNextPaintTargetSelector","interactionToNextPaintStartTime","handleEntries","newInteraction","firstInputSubscription","eventSubscription","viewEndTime","sortAndTrimLongestInteractions","interactionIndex","interaction","minLongestInteraction","previousInteractionCount","computeViewInteractionCount","trackLoadingTime","loadType","isWaitingForLoadEvent","isWaitingForActivityLoadingTime","loadingTimeCandidates","invokeCallbackIfAllCandidatesAreReceived","loadingTime","loadEvent","getScrollX","scrollX","visual","getScrollY","scrollY","viewportObservable","initViewportObservable","createViewportObservable","updateDimension","getViewportDimension","THROTTLE_SCROLL_DURATION","trackScrollMetrics","scrollValues","createScrollValuesObservable","maxScrollDepth","maxScrollHeight","maxScrollHeightTime","scrollDepth","scrollTop","scrollHeight","shouldUpdate","now","computeScrollValues","throttleDuration","notify","throttledNotify","observerTarget","resizeObserver","eventListener","trackCommonViewMetrics","loadingType","commonViewMetrics","stopLoadingTimeTracking","newLoadingTime","stopScrollMetricsTracking","newScrollMetrics","stopCLSTracking","cumulativeLayoutShift","stopINPTracking","getInteractionToNextPaint","setViewEnd","THROTTLE_VIEW_UPDATE_PERIOD","SESSION_KEEP_ALIVE_INTERVAL","KEEP_TRACKING_AFTER_VIEW_DELAY","trackViews","location","locationChangeObservable","areViewsTrackedAutomatically","activeViews","startNewView","startViewLifeCycle","locationChangeSubscription","renewViewOnLocationChange","viewOptions","newlyCreatedView","newView","pageExitEvent","oldLocation","newLocation","areDifferentLocation","initialLocation","customTimings","documentVersion","sessionIsActive","viewCreatedEvent","throttled","cancelScheduleViewUpdate","triggerViewUpdate","stopCommonViewMetricsTracking","getCommonViewMetrics","stopInitialViewMetricsTracking","stopEventCountsTracking","keepAliveIntervalId","triggerBeforeViewUpdate","currentEnd","sanitizeTiming","updatedName","sanitized","currentLocation","otherLocation","isHashAnAnchor","getPathFromHash","correspondingId","startViewCollection","pageOpenObservable","processViewUpdate","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","replayStats","clsDevicePixelRatio","viewEvent","computeViewPerformanceData","startRumSessionManager","rawTrackingType","previousState","newState","sessionEntity","isTypeTracked","startRumSessionManagerStub","hasValidRumSession","rumSessionType","startRumBatch","telemetryEventObservable","createEncoder","batch","startRumEventBridge","URL_CONTEXT_TIME_OUT_DELAY","startUrlContexts","urlContextHistory","previousViewUrl","viewUrl","buildUrlContext","current","changeTime","referrer","createLocationChangeObservable","stopHistoryTracking","trackHistory","onLocationChange","stopHashTracking","trackHash","onHistoryChange","stopInstrumentingPushState","getHistoryInstrumentationTarget","stopInstrumentingReplaceState","removeListener","onHashChange","FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY","startFeatureFlagContexts","featureFlagContexts","featureFlagContext","currentContext","MEASURES_PERIOD_DURATION","currentPeriodMeasures","currentBatchMeasures","batchHasRumEvent","startCustomerDataTelemetry","telemetry","batchFlushObservable","initCurrentPeriodMeasures","initCurrentBatchMeasures","updateMeasure","mergeMeasure","sendCurrentPeriodMeasures","createMeasure","measure","MAX_PAGE_STATE_ENTRIES","MAX_PAGE_STATE_ENTRIES_SELECTABLE","PAGE_STATE_CONTEXT_TIME_OUT_DELAY","startPageStateHistory","maxPageStateEntriesSelectable","pageStateEntryHistory","currentPageState","addPageState","getPageState","stopEventListeners","computePageState","nextPageState","wasInPageStateDuringPeriod","pageState","pageStates","processPageStates","pageStateEntries","eventStartTime","startDisplayContext","viewport","animationFrameId","unsubscribeViewport","viewportDimension","createCookieObservable","cookieName","detectCookieChangeStrategy","listenToCookieStoreChange","watchCookieFallback","changeEvent","WATCH_COOKIE_INTERVAL_DELAY","previousCookieValue","watchCookieIntervalId","cookieValue","CI_VISIBILITY_TEST_ID_COOKIE_NAME","startCiVisibilityContext","cookieObservable","testExecutionId","cookieObservableSubscription","startLongAnimationFrameCollection","script","startLongTaskCollection","performanceLongTaskSubscription","createHooks","callbacks","hookName","results","startSyntheticsContext","testId","resultId","startRum","startRumTelemetry","stopWindowOpen","addAction","stopRumEventCollection","startRumEventCollection","addTiming","setViewName","setViewContext","setViewContextProperty","getViewContext","stopViewCollection","stopResourceCollection","stopLongAnimationFrameCollection","addError","vitalCollection","internalContext","actionCollection","ciVisibilityContext","getSessionReplayUrl","errorType","getDatadogSiteUrl","rumConfiguration","subdomain","getSiteDefaultSubdomain","MAX_STATS_HISTORY","statsPerView","getSegmentsCount","getOrCreateReplayStats","addSegment","addRecord","addWroteData","additionalBytesCount","getReplayStats","deleteOldestStats","toDelete","createDeflateEncoder","worker","rawBytesCount","compressedData","compressedDataTrailer","nextWriteActionId","pendingWriteActions","removeMessageListener","workerResponse","nextPendingAction","consumeResult","sendResetIfNeeded","pendingWriteAction","pendingData","reportScriptLoadingError","configuredUrl","scriptType","isMessageCspRelated","baseMessage","INITIALIZATION_TIME_OUT_DELAY","createDeflateWorker","onInitializationFailure","createDeflateWorkerImpl","doStartDeflateWorker","getDeflateWorkerStatus","removeErrorListener","onError","onInitialized","onTimeout","isBrowserSupported","getSessionReplayLink","isRecordingStarted","getErrorType","loadRecorder","getOrCreateDeflateEncoder","stopRecording","doStart","startRecordingImpl","deflateEncoder","canStartRecording","isRecordingInProgress","shouldForceReplay","makeRecorderApi","shouldStartImmediately","onRumStart","getReplayStatsImpl","cachedDeflateEncoder","lazyLoadRecorder","importRecorderImpl","importRecorder","__vitePreload","datadogRum","compact","resIndex","compact_1","fullName","firstName","lastName","DATADOG_RUM_CONFIG","DD_RUM_CLIENT_TOKEN","DD_RUM_APPLICATION_ID","DD_SITE","DD_SERVICE","DD_ENV","DD_VERSION","DD_RUM_SESSION_SAMPLE_RATE","DD_RUM_SESSION_REPLAY_SAMPLE_RATE","_interopDefault","React","require$$0","React__default","_defineProperty","obj","_inheritsLoose","subClass","superClass","canUseDOM","withSideEffect","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","getDisplayName","WrappedComponent","mountedInstances","emitChange","instance","SideEffect","_PureComponent","recordedState","_proto","lib","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","keys","it","reactFastCompare","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","n","test3","letter","objectAssign","from","to","symbols","ATTRIBUTE_NAMES","TAG_NAMES","TAG_PROPERTIES","REACT_TAG_MAP","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","classCallCheck","Constructor","createClass","defineProperties","props","descriptor","protoProps","staticProps","_extends","inherits","objectWithoutProperties","possibleConstructorReturn","self","encodeSpecialCharacters","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","attributeKey","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","tagUnion","rafPolyfill","clock","currentTime","cafPolyfill","requestAnimationFrame","cancelAnimationFrame","msg","_helmetCallback","handleClientStateChange","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","_i","headElement","tagNodes","indexToDelete","newElement","existingTag","generateElementAttributesAsString","attr","generateTitleAsString","attributeString","flattenedTitle","generateTagsAsString","attributeHtml","string","tagContent","isSelfClosing","convertElementAttributestoReactProps","initProps","convertReactPropstoHtmlAttributes","initAttributes","generateTitleAsReactComponent","_initProps","generateTagsAsReactComponent","_mappedTag","mappedTag","mappedAttribute","content","getMethodsForTag","_ref","_ref$title","Helmet","Component","_class","_temp","_React$Component","HelmetWrapper","nextProps","isEqual","nestedChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","children","_this2","_child$props","childProps","_props","PropTypes","mappedState","NullComponent","HelmetSideEffects","HelmetExport","Content","expiresIn","ContentBlock","i18n","ExpirationWarning","Modal","DoubleBounceSpinner","useInterval","savedCallback","useRef","useEffect","tick","serializePricingWindowVariant","variant","maxAge","priceUsd","priceCad","rest","decamelizeKeys","serializePromotionPeriod","promotionPeriod","serializePricingWindow","fields","startDate","endDate","promotionPeriods","variants","serializeProductTranslations","restrictionResorts","replaceEmptyStringTranslationsWithNull","translations","isNil","isNil_1","FUNC_ERROR_TEXT","negate","negate_1","assignValue","castPath","require$$1","isIndex","require$$2","isObject","require$$3","toKey","require$$4","baseSet","customizer","lastIndex","nested","newValue","objValue","_baseSet","baseGet","basePickBy","paths","_basePickBy","arrayMap","baseIteratee","getAllKeysIn","pickBy","prop","pickBy_1","omitBy","omitBy_1","token","singleMatcher","multiMatcher","decodeComponents","components","split","left","right","decode","tokens","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","includeKeys","splitOnFirst","separator","separatorIndex","isNullOrUndefined","strictUriEncode","encodeFragmentIdentifier","encoderForArrayFormat","keyValueSeparator","parserForArrayFormat","accumulator","isArray","isEncodedArray","arrayValue","validateArrayFormatSeparator","decodeComponent","keysSorter","removeHash","hashStart","getHash","parseValue","extract","queryStart","parse","formatter","returnValue","parameter_","key2","value2","stringify","shouldFilter","objectCopy","parseUrl","url_","stringifyUrl","queryFromUrl","queryString","urlObjectForFragmentEncode","pick","filter","fragmentIdentifier","exclude","exclusionFilter","serializeOnboardingSearch","serializeProfileSearch","getAdminAPIEndpoints","guestId","adminApi","guestPath","cartPath","endpoints","adminId","benefitId","internalId","profileId","creditId","productCreditExpirationId","entitlementTypeId","orderId","queryParams","serialized","productId","pricingWindowId","activeMediaOnly","includeInactive","profileProductId","promotionCodeId","resortId","reservationId","resortAuthorizationCategoryId","resortCapacityId","voucherShareId","ADMIN_LOGIN_PATH","adminAuthedFetch","authedFetch","getAdminAPI","getAPICore","createResort","updateResort","createProduct","createResortAuthorizationCategory","updateResortAuthorizationCategory","createOrUpdateResortAuthorizationCategory","createReservation","serializeCreateReservation","updateReservation","serializeUpdateReservation","productVariant","count","serializeCartItemCount","addonType","serializeCartAddon","serializeChangeCartParticipant","code","serializeCartPromotion","profile","serializeProfile","creditCard","saveCardOnFile","creditCardSerializer","termsAcceptedAt","orderSerializer","profileProductIds","affiliationType","passDeferred","productIds","serializeReservationCart","resortIds","dates","email","locale","entitlementIds","creditTypeId","creditType","notes","creditData","productCodes","expirationDate","orderIds","serializeVoucherShare","note","cvc","adminApiFetch","errors","camelizeKeys","HTTPError","reportGroupedError","useAppDispatch","useDispatch","useAdminAppDispatch","addDays","amount","_date","toDate","constructFrom","isWithinInterval","interval","creditName","kind","adminCreditName","getCreditMaxAmountAndCurrency","credit","allItems","cart","acc","computedCartParticipants","profiles","groupMembers","groupMember","computedProfile","itemCount","getTotalPrice","addonsTotal","getAddons","addon","creditAmount","getSavingsDetail","discount","getCredit","getInsurance","description","allProductsInsured","productsWithEditableInsurance","product","insurance","price","isDiscountRemoveButtonEnabled","organizationType","AFFILIATION_DISCOUNT_CATEGORY_CODE_TO_ORGANIZATION_TYPE","getPricingDetails","pricingDetails","decorateItem","restrictionWarning","displayAgeRange","min","max","cartWithProductNames","items","productCounts","products","types","totals","hasUpgradeProducts","hasOnlyUpgradeProducts","orderedItemsFromProfile","rawA","rawB","productA","productB","waiverSignedForAllParticipants","waiverID","waiverSignedForProfile","accessRestrictions","cartItem","waiverSigned","waiversSigned","createSelector","originalCreateSelector","stateSelector","paramsSelector","createParameterSelector","sortValuesByKey","useMemoizedSelector","memoizedParams","useMemo","memoizedSelector","useSelector","CurrencyLocaleModal","onClose","currencies","PURCHASABLE_CURRENCIES","SelectInput","currency","Button","glyphName","CurrencyLocale","onClick","white","Container","classNames","Icon","skiierIconUrl","defaultURL","defaultOptions","passImageURL","photo","urlOptions","passImageURLBuilder","optionsString","publicId","getUploadImageUrl","optionsArray","Wrapper","styled","border","color","$isSkiierPlaceholder","css","StyledImage","Image","imgURL","ProfilePicture","placeholderURL","photoURL","isSkiierPlaceholder","buildCheckoutData","billingAddress","affirmCheckoutObject","buildAddress","buildItems","buildDiscounts","shippingAddress","address","affirmAddress","serializedItems","matchingSerializedItemIndex","serializedItem","discounts","discountCode","isAffirmEnabled","affirmEnabled","getFeatureFlags","getAffirmAPI","isAddressInUS","isAddressInCanada","globalStrategyBlue","affirmBlueEnabled","AFFIRM_MINIMUM_PAYMENT","AFFIRM_PUBLIC_API_KEY_BLUE","AFFIRM_CDN_HOST","globalStrategyDefault","AFFIRM_PUBLIC_API_KEY_DEFAULT","globalStrategyTremblant","affirmTremblantEnabled","AFFIRM_PUBLIC_API_KEY_TREMBLANT","STRATEGIES","useAffirmConfig","Cookies","strategyArguments","matchingStrategy","affirmZeroPercentInterestEnabled","useFeatureFlags","isUsAddress","eligibleProductInCart","ELIGIBLE_FOR_AFFIRM_ZERO_INTEREST_PRODUCT_CODES","eligibleForZeroPercentInterest","AFFIRM_ZERO_PERCENT_INTEREST_CODE","dateRangesAreEqual","byFromDateAsc","getProfileProducts","transformProfileProducts","transformProfileProduct","getProfileProductsWithBlackoutDetails","profileProduct","today","blackoutDates","nextBlackoutDate","isAfter","parseISO","hasUpcomingBlackout","blackoutInEffect","profileProducts","getProfileProductsWithIds","getProfileProductsWithBlackoutDetailsWithIds","withIds","ids","getProfileProductWithBlackoutDetails","getCartProfileItemCodes","profileProductAndCartItemCodesByProfile","cartProducts","_NotFoundMessage","linkText","linkUrl","NotFoundMessage","useReduxNavigationHandler","navigate","useNavigate","navigationState"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,169,170,171,172,177,178,179,180,181,182,183,184,185,186,192,193],"sources":["../../../node_modules/@datadog/browser-core/esm/tools/display.js","../../../node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","../../../node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","../../../node_modules/@datadog/browser-core/esm/tools/monitor.js","../../../node_modules/@datadog/browser-core/esm/tools/timer.js","../../../node_modules/@datadog/browser-core/esm/tools/observable.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","../../../node_modules/@datadog/browser-core/esm/browser/cookie.js","../../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","../../../node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","../../../node_modules/@datadog/browser-core/esm/domain/session/sessionStateValidation.js","../../../node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","../../../node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","../../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","../../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","../../../node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","../../../node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","../../../node_modules/@datadog/browser-core/esm/domain/trackingConsent.js","../../../node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","../../../node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","../../../node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","../../../node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","../../../node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","../../../node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","../../../node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","../../../node_modules/@datadog/browser-core/esm/tools/stackTrace/computeStackTrace.js","../../../node_modules/@datadog/browser-core/esm/tools/stackTrace/handlingStack.js","../../../node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","../../../node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","../../../node_modules/@datadog/browser-core/esm/domain/error/error.js","../../../node_modules/@datadog/browser-core/esm/domain/error/error.types.js","../../../node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","../../../node_modules/@datadog/browser-core/esm/boot/init.js","../../../node_modules/@datadog/browser-core/esm/boot/displayAlreadyInitializedError.js","../../../node_modules/@datadog/browser-core/esm/browser/addEventListener.js","../../../node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","../../../node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/mergeInto.js","../../../node_modules/@datadog/browser-core/esm/domain/connectivity/connectivity.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/arrayUtils.js","../../../node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","../../../node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","../../../node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","../../../node_modules/@datadog/browser-core/esm/tools/valueHistory.js","../../../node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","../../../node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","../../../node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","../../../node_modules/@datadog/browser-core/esm/transport/httpRequest.js","../../../node_modules/@datadog/browser-core/esm/transport/eventBridge.js","../../../node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","../../../node_modules/@datadog/browser-core/esm/transport/batch.js","../../../node_modules/@datadog/browser-core/esm/transport/flushController.js","../../../node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","../../../node_modules/@datadog/browser-core/esm/tools/encoder.js","../../../node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","../../../node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","../../../node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","../../../node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","../../../node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","../../../node_modules/@datadog/browser-core/esm/tools/requestIdleCallback.js","../../../node_modules/@datadog/browser-core/esm/tools/taskQueue.js","../../../node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","../../../node_modules/@datadog/browser-core/esm/domain/context/contextUtils.js","../../../node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","../../../node_modules/@datadog/browser-core/esm/domain/context/storeContextManager.js","../../../node_modules/@datadog/browser-core/esm/domain/context/customerDataTracker.js","../../../node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","../../../node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","../../../node_modules/@datadog/browser-core/esm/tools/matchOption.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/vital/vitalCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/plugins.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/identifier.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/sampler.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/configuration/configuration.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/configuration/remoteConfiguration.js","../../../node_modules/@datadog/browser-rum-core/esm/boot/preStartRum.js","../../../node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/windowOpenObservable.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewHistory.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/discardNegativeDuration.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/firstInputPolyfill.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/performanceObservable.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/privacy.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/action/interactionSelectorCache.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestResourceEntry.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/performanceUtils.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/resource/retrieveInitialDocumentResourceTiming.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","../../../node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","../../../node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","../../../node_modules/@datadog/browser-rum-core/esm/browser/cookieObservable.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciVisibilityContext.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/longAnimationFrame/longAnimationFrameCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","../../../node_modules/@datadog/browser-rum-core/esm/hooks.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","../../../node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","../../../node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","../../../node_modules/@datadog/browser-rum/esm/domain/replayStats.js","../../../node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","../../../node_modules/@datadog/browser-rum/esm/domain/scriptLoadingError.js","../../../node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","../../../node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","../../../node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","../../../node_modules/@datadog/browser-rum/esm/boot/postStartStrategy.js","../../../node_modules/@datadog/browser-rum/esm/boot/preStartStrategy.js","../../../node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","../../../node_modules/@datadog/browser-rum/esm/boot/lazyLoadRecorder.js","../../../node_modules/@datadog/browser-rum/esm/entries/main.js","../../../node_modules/lodash/compact.js","../../../app/javascript/utils/full-name.ts","../../../app/javascript/components/datadog-rum/config.ts","../../../node_modules/react-side-effect/lib/index.js","../../../node_modules/react-fast-compare/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/react-helmet/es/Helmet.js","../../../app/javascript/components/expiration-warning/expiration-warning.component.tsx","../../../app/javascript/hooks/use-interval.ts","../../../app/javascript/serializers/pricing-window.ts","../../../app/javascript/serializers/product-translations.ts","../../../node_modules/lodash/isNil.js","../../../node_modules/lodash/negate.js","../../../node_modules/lodash/_baseSet.js","../../../node_modules/lodash/_basePickBy.js","../../../node_modules/lodash/pickBy.js","../../../node_modules/lodash/omitBy.js","../../../node_modules/decode-uri-component/index.js","../../../node_modules/filter-obj/index.js","../../../node_modules/split-on-first/index.js","../../../node_modules/query-string/base.js","../../../app/javascript/serializers/onboarding-search.ts","../../../app/javascript/serializers/profile-search.ts","../../../app/javascript/admin/utils/api/get-admin-api-endpoints.ts","../../../app/javascript/admin/utils/api/get-admin-api.ts","../../../app/javascript/hooks/use-app-dispatch.ts","../../../node_modules/date-fns/addDays.js","../../../node_modules/date-fns/isWithinInterval.js","../../../app/javascript/utils/credit.ts","../../../app/javascript/utils/cart.ts","../../../app/javascript/hooks/use-memoized-selector.ts","../../../app/javascript/components/currency-locale-modal/index.tsx","../../../app/javascript/components/currency-locale/index.tsx","../../../app/javascript/graphics/icons/skiier.svg","../../../app/javascript/graphics/smile-icon.svg","../../../app/javascript/utils/pass-image.ts","../../../app/javascript/components/profile-picture/profile-picture.styles.ts","../../../app/javascript/components/profile-picture/profile-picture.component.tsx","../../../app/javascript/utils/affirm.ts","../../../app/javascript/hooks/affirm-config/affirm-config.utils.ts","../../../app/javascript/hooks/affirm-config/global-strategy-blue.ts","../../../app/javascript/hooks/affirm-config/global-strategy-default.ts","../../../app/javascript/hooks/affirm-config/global-strategy-tremblant.ts","../../../app/javascript/hooks/affirm-config/affirm-config.ts","../../../app/javascript/utils/date-range.ts","../../../app/javascript/selectors/profile-products-selector.ts","../../../app/javascript/components/not-found-message/index.tsx","../../../app/javascript/hooks/use-redux-navigation-handler.ts"],"sourcesContent":["/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport const ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport const globalConsole = console;\nexport const originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach((name) => {\n originalConsoleMethods[name] = globalConsole[name];\n});\nconst PREFIX = 'Datadog Browser SDK:';\nexport const display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\nexport const DOCS_ORIGIN = 'https://docs.datadoghq.com';\nexport const DOCS_TROUBLESHOOTING = `${DOCS_ORIGIN}/real_user_monitoring/browser/troubleshooting`;\nexport const MORE_DETAILS = 'More details:';\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return (...args) => {\n try {\n return fn(...args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","/**\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 const ONE_SECOND = 1000;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\nexport const ONE_DAY = 24 * ONE_HOUR;\nexport const ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nexport function timeStampToClocks(timeStamp) {\n return { relative: getRelativeTime(timeStamp), timeStamp };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n const correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n// Get the time since the navigation was started.\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nlet navigationStart;\n/**\n * Notes: this does not use `performance.timeOrigin` because:\n * - It doesn't seem to reflect the actual time on which the navigation has started: it may be much farther in the past,\n * at least in Firefox 71. (see: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926)\n * - It is not supported in Safari <15\n */\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\n//# sourceMappingURL=timeUtils.js.map","export const ONE_KIBI_BYTE = 1024;\nexport const ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nconst HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n const length = buffers.reduce((total, buffer) => total + buffer.length, 0);\n const result = new Uint8Array(length);\n let offset = 0;\n for (const buffer of buffers) {\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","export function shallowClone(object) {\n return { ...object };\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some((key) => object[key] === value);\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n const newObject = {};\n for (const key of Object.keys(object)) {\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get() {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n let globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n const browserWindow = getGlobalObject();\n let original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { display } from './display';\nlet onMonitorErrorCollected;\nlet debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n const originalMethod = descriptor.value;\n descriptor.value = function (...args) {\n const decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n monitorError(e);\n }\n}\nexport function monitorError(e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n}\nexport function displayIfDebugEnabled(...args) {\n if (debugMode) {\n display.error('[MONITOR]', ...args);\n }\n}\n//# sourceMappingURL=monitor.js.map","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","// eslint-disable-next-line no-restricted-syntax\nexport class Observable {\n constructor(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n subscribe(f) {\n this.observers.push(f);\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;\n }\n return {\n unsubscribe: () => {\n this.observers = this.observers.filter((other) => f !== other);\n if (!this.observers.length && this.onLastUnsubscribe) {\n this.onLastUnsubscribe();\n }\n },\n };\n }\n notify(data) {\n this.observers.forEach((observer) => observer(data));\n }\n}\nexport function mergeObservables(...observables) {\n return new Observable((globalObservable) => {\n const subscriptions = observables.map((observable) => observable.subscribe((data) => globalObservable.notify(data)));\n return () => subscriptions.forEach((subscription) => subscription.unsubscribe());\n });\n}\n//# sourceMappingURL=observable.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n const needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n const needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n let inWaitPeriod = false;\n let pendingExecutionWithParameters;\n let pendingTimeoutId;\n return {\n throttled: (...parameters) => {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn(...parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(() => {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn(...pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: () => {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID);\n}\nconst COMMA_SEPARATED_KEY_VALUE = /([\\w-]+)\\s*=\\s*([^;]+)/g;\nexport function findCommaSeparatedValue(rawString, name) {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n if (match[1] === name) {\n return match[2];\n }\n }\n else {\n break;\n }\n }\n}\nexport function findCommaSeparatedValues(rawString) {\n const result = new Map();\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n result.set(match[1], match[2]);\n }\n else {\n break;\n }\n }\n return result;\n}\nexport function safeTruncate(candidate, length, suffix = '') {\n const lastChar = candidate.charCodeAt(length - 1);\n const isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n const correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return `${candidate.slice(0, correctedLength)}${suffix}`;\n}\n//# sourceMappingURL=stringUtils.js.map","export function isChromium() {\n return detectBrowserCached() === 0 /* Browser.CHROMIUM */;\n}\nexport function isSafari() {\n return detectBrowserCached() === 1 /* Browser.SAFARI */;\n}\nlet browserCache;\nfunction detectBrowserCached() {\n return browserCache !== null && browserCache !== void 0 ? browserCache : (browserCache = detectBrowser());\n}\n// Exported only for tests\nexport function detectBrowser(browserWindow = window) {\n var _a;\n const userAgent = browserWindow.navigator.userAgent;\n if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {\n return 0 /* Browser.CHROMIUM */;\n }\n if (\n // navigator.vendor is deprecated, but it is the most resilient way we found to detect\n // \"Apple maintained browsers\" (AKA Safari). If one day it gets removed, we still have the\n // useragent test as a semi-working fallback.\n ((_a = browserWindow.navigator.vendor) === null || _a === void 0 ? void 0 : _a.indexOf('Apple')) === 0 ||\n (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))) {\n return 1 /* Browser.SAFARI */;\n }\n return 2 /* Browser.OTHER */;\n}\n//# sourceMappingURL=browserDetection.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay = 0, options) {\n const date = new Date();\n date.setTime(date.getTime() + expireDelay);\n const expires = `expires=${date.toUTCString()}`;\n const sameSite = options && options.crossSite ? 'none' : 'strict';\n const domain = options && options.domain ? `;domain=${options.domain}` : '';\n const secure = options && options.secure ? ';secure' : '';\n const partitioned = options && options.partitioned ? ';partitioned' : '';\n document.cookie = `${name}=${value};${expires};path=/;samesite=${sameSite}${domain}${secure}${partitioned}`;\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nlet initCookieParsed;\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie);\n }\n return initCookieParsed.get(name);\n}\nexport function resetInitCookies() {\n initCookieParsed = undefined;\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `dd_cookie_test_${generateUUID()}`;\n const testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n const isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nlet getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `dd_site_test_${generateUUID()}`;\n const testCookieValue = 'test';\n const domainLevels = window.location.hostname.split('.');\n let candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = `${domainLevels.pop()}.${candidateDomain}`;\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","export const SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","export function findLast(array, predicate) {\n for (let i = array.length - 1; i >= 0; i -= 1) {\n const item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\n// Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using\n// the native Object.values and Object.entries directly\nexport function objectValues(object) {\n return Object.values(object);\n}\nexport function objectEntries(object) {\n return Object.entries(object);\n}\n//# sourceMappingURL=polyfills.js.map","import { ONE_HOUR, ONE_MINUTE, ONE_YEAR } from '../../tools/utils/timeUtils';\nexport const SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport const SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\nexport const SESSION_COOKIE_EXPIRATION_DELAY = ONE_YEAR;\nexport const SessionPersistence = {\n COOKIE: 'cookie',\n LOCAL_STORAGE: 'local-storage',\n};\n//# sourceMappingURL=sessionConstants.js.map","export const SESSION_ENTRY_REGEXP = /^([a-zA-Z]+)=([a-z0-9-]+)$/;\nexport const SESSION_ENTRY_SEPARATOR = '&';\nexport function isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionStateValidation.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { isValidSessionString, SESSION_ENTRY_REGEXP, SESSION_ENTRY_SEPARATOR } from './sessionStateValidation';\nexport const EXPIRED = '1';\nexport function getExpiredSessionState(previousSessionState, configuration) {\n const expiredSessionState = {\n isExpired: EXPIRED,\n };\n if (configuration.trackAnonymousUser) {\n if (previousSessionState === null || previousSessionState === void 0 ? void 0 : previousSessionState.anonymousId) {\n expiredSessionState.anonymousId = previousSessionState === null || previousSessionState === void 0 ? void 0 : previousSessionState.anonymousId;\n }\n else {\n expiredSessionState.anonymousId = generateUUID();\n }\n }\n return expiredSessionState;\n}\nexport function isSessionInNotStartedState(session) {\n return isEmptyObject(session);\n}\nexport function isSessionStarted(session) {\n return !isSessionInNotStartedState(session);\n}\nexport function isSessionInExpiredState(session) {\n return session.isExpired !== undefined || !isActiveSession(session);\n}\n// An active session is a session in either `Tracked` or `NotTracked` state\nfunction isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return (objectEntries(session)\n // we use `aid` as a key for anonymousId\n .map(([key, value]) => (key === 'anonymousId' ? `aid=${value}` : `${key}=${value}`))\n .join(SESSION_ENTRY_SEPARATOR));\n}\nexport function toSessionState(sessionString) {\n const session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach((entry) => {\n const matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n const [, key, value] = matches;\n if (key === 'aid') {\n // we use `aid` as a key for anonymousId\n session.anonymousId = value;\n }\n else {\n session[key] = value;\n }\n }\n });\n }\n return session;\n}\n//# sourceMappingURL=sessionState.js.map","import { getInitCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionStarted } from './sessionState';\nexport const OLD_SESSION_COOKIE_NAME = '_dd';\nexport const OLD_RUM_COOKIE_NAME = '_dd_r';\nexport const OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport const RUM_SESSION_KEY = 'rum';\nexport const LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n const sessionString = getInitCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n const oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME);\n const oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME);\n const oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME);\n const session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (isSessionStarted(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_COOKIE_EXPIRATION_DELAY, SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY, SessionPersistence, } from '../sessionConstants';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n const cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: SessionPersistence.COOKIE, cookieOptions } : undefined;\n}\nexport function initCookieStrategy(configuration, cookieOptions) {\n const cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n expireSession: (sessionState) => expireSessionCookie(cookieOptions, sessionState, configuration),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return (session) => {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction expireSessionCookie(options, sessionState, configuration) {\n const expiredSessionState = getExpiredSessionState(sessionState, configuration);\n // we do not extend cookie expiration date\n setCookie(SESSION_STORE_KEY, toSessionString(expiredSessionState), configuration.trackAnonymousUser ? SESSION_COOKIE_EXPIRATION_DELAY : SESSION_TIME_OUT_DELAY, options);\n}\nfunction retrieveSessionCookie() {\n const sessionString = getCookie(SESSION_STORE_KEY);\n const sessionState = toSessionState(sessionString);\n return sessionState;\n}\nexport function buildCookieOptions(initConfiguration) {\n const cookieOptions = {};\n cookieOptions.secure =\n !!initConfiguration.useSecureSessionCookie || !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { SessionPersistence } from '../sessionConstants';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nconst LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n const id = generateUUID();\n const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`;\n localStorage.setItem(testKey, id);\n const retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: SessionPersistence.LOCAL_STORAGE } : undefined;\n }\n catch (_a) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy(configuration) {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n expireSession: (sessionState) => expireSessionFromLocalStorage(sessionState, configuration),\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n const sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction expireSessionFromLocalStorage(previousSessionState, configuration) {\n persistInLocalStorage(getExpiredSessionState(previousSessionState, configuration));\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport const LOCK_RETRY_DELAY = 10;\nexport const LOCK_MAX_TRIES = 100;\nconst bufferedOperations = [];\nlet ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries = 0) {\n var _a;\n const { isLockEnabled, persistSession, expireSession } = sessionStoreStrategy;\n const persistWithLock = (session) => persistSession({ ...session, lock: currentLock });\n const retrieveStore = () => {\n const session = sessionStoreStrategy.retrieveSession();\n const lock = session.lock;\n if (session.lock) {\n delete session.lock;\n }\n return {\n session,\n lock,\n };\n };\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n let currentLock;\n let currentStore = retrieveStore();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentStore.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n persistWithLock(currentStore.session);\n // if lock is not acquired, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n let processedSession = operations.process(currentStore.session);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n expireSession(processedSession);\n }\n else {\n expandSessionState(processedSession);\n if (isLockEnabled) {\n persistWithLock(processedSession);\n }\n else {\n persistSession(processedSession);\n }\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n persistSession(currentStore.session);\n processedSession = currentStore.session;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentStore.session);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(() => {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n const nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { display } from '../../tools/display';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { getExpiredSessionState, isSessionInExpiredState, isSessionInNotStartedState, isSessionStarted, } from './sessionState';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\nimport { SessionPersistence } from './sessionConstants';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport const STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Selects the correct session store strategy type based on the configuration and storage\n * availability.\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n switch (initConfiguration.sessionPersistence) {\n case SessionPersistence.COOKIE:\n return selectCookieStrategy(initConfiguration);\n case SessionPersistence.LOCAL_STORAGE:\n return selectLocalStorageStrategy();\n case undefined: {\n let sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n }\n default:\n display.error(`Invalid session persistence '${String(initConfiguration.sessionPersistence)}'`);\n }\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, configuration, productKey, computeSessionState) {\n const renewObservable = new Observable();\n const expireObservable = new Observable();\n const sessionStateUpdateObservable = new Observable();\n const sessionStoreStrategy = sessionStoreStrategyType.type === SessionPersistence.COOKIE\n ? initCookieStrategy(configuration, sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy(configuration);\n const { expireSession } = sessionStoreStrategy;\n const watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n let sessionCache;\n startSession();\n const { throttled: throttledExpandOrRenewSession, cancel: cancelExpandOrRenewSession } = throttle(() => {\n processSessionStoreOperations({\n process: (sessionState) => {\n if (isSessionInNotStartedState(sessionState)) {\n return;\n }\n const synchronizedSession = synchronizeSession(sessionState);\n expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: (sessionState) => {\n if (isSessionStarted(sessionState) && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }, STORAGE_POLL_DELAY);\n function expandSession() {\n processSessionStoreOperations({\n process: (sessionState) => (hasSessionInCache() ? synchronizeSession(sessionState) : undefined),\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: (sessionState) => isSessionInExpiredState(sessionState) ? getExpiredSessionState(sessionState, configuration) : undefined,\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (isSessionInExpiredState(sessionState)) {\n sessionState = getExpiredSessionState(sessionState, configuration);\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionStateUpdateObservable.notify({ previousState: sessionCache, newState: sessionState });\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function startSession() {\n processSessionStoreOperations({\n process: (sessionState) => {\n if (isSessionInNotStartedState(sessionState)) {\n return getExpiredSessionState(sessionState, configuration);\n }\n },\n after: (sessionState) => {\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandOrRenewSessionState(sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return false;\n }\n const { trackingType, isTracked } = computeSessionState(sessionState[productKey]);\n sessionState[productKey] = trackingType;\n delete sessionState.isExpired;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = getExpiredSessionState(sessionCache, configuration);\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function updateSessionState(partialSessionState) {\n processSessionStoreOperations({\n process: (sessionState) => ({ ...sessionState, ...partialSessionState }),\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n return {\n expandOrRenewSession: throttledExpandOrRenewSession,\n expandSession,\n getSession: () => sessionCache,\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable,\n restartSession: startSession,\n expire: () => {\n cancelExpandOrRenewSession();\n expireSession(sessionCache);\n synchronizeSession(getExpiredSessionState(sessionCache, configuration));\n },\n stop: () => {\n clearInterval(watchSessionTimeoutId);\n },\n updateSessionState,\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { Observable } from '../tools/observable';\nexport const TrackingConsent = {\n GRANTED: 'granted',\n NOT_GRANTED: 'not-granted',\n};\nexport function createTrackingConsentState(currentConsent) {\n const observable = new Observable();\n return {\n tryToInit(trackingConsent) {\n if (!currentConsent) {\n currentConsent = trackingConsent;\n }\n },\n update(trackingConsent) {\n currentConsent = trackingConsent;\n observable.notify();\n },\n isGranted() {\n return currentConsent === TrackingConsent.GRANTED;\n },\n observable,\n };\n}\n//# sourceMappingURL=trackingConsent.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n const restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n const restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n const object = value;\n const objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return () => {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, location.href).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getPathName(url) {\n const pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : `/${pathname}`;\n}\nexport function buildUrl(url, base) {\n const supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(`Failed to construct URL: ${String(error)} ${jsonStringify({ url, base })}`);\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(`Invalid URL: '${url}'`);\n }\n let doc = document;\n const anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n const baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nconst originalURL = URL;\nlet isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n const url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\n//# sourceMappingURL=urlPolyfill.js.map","export const INTAKE_SITE_STAGING = 'datad0g.com';\nexport const INTAKE_SITE_FED_STAGING = 'dd0g-gov.com';\nexport const INTAKE_SITE_US1 = 'datadoghq.com';\nexport const INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport const INTAKE_SITE_US1_FED = 'ddog-gov.com';\nexport const PCI_INTAKE_HOST_US1 = 'pci.browser-intake-datadoghq.com';\nexport const INTAKE_URL_PARAMETERS = ['ddsource', 'ddtags'];\n//# sourceMappingURL=intakeSites.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_US1, INTAKE_SITE_FED_STAGING, PCI_INTAKE_HOST_US1 } from './intakeSites';\nexport function createEndpointBuilder(initConfiguration, trackType, configurationTags) {\n const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);\n return {\n build(api, payload) {\n const parameters = buildEndpointParameters(initConfiguration, trackType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n trackType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {\n const path = `/api/v2/${trackType}`;\n const proxy = initConfiguration.proxy;\n if (typeof proxy === 'string') {\n const normalizedProxyUrl = normalizeUrl(proxy);\n return (parameters) => `${normalizedProxyUrl}?ddforward=${encodeURIComponent(`${path}?${parameters}`)}`;\n }\n if (typeof proxy === 'function') {\n return (parameters) => proxy({ path, parameters });\n }\n const host = buildEndpointHost(trackType, initConfiguration);\n return (parameters) => `https://${host}${path}?${parameters}`;\n}\nexport function buildEndpointHost(trackType, initConfiguration) {\n const { site = INTAKE_SITE_US1, internalAnalyticsSubdomain } = initConfiguration;\n if (trackType === 'logs' && initConfiguration.usePciIntake && site === INTAKE_SITE_US1) {\n return PCI_INTAKE_HOST_US1;\n }\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return `${internalAnalyticsSubdomain}.${INTAKE_SITE_US1}`;\n }\n if (site === INTAKE_SITE_FED_STAGING) {\n return `http-intake.logs.${site}`;\n }\n const domainParts = site.split('.');\n const extension = domainParts.pop();\n return `browser-intake-${domainParts.join('-')}.${extension}`;\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters({ clientToken, internalAnalyticsSubdomain }, trackType, configurationTags, api, { retry, encoding }) {\n const tags = [`sdk_version:${\"6.5.1\"}`, `api:${api}`].concat(configurationTags);\n if (retry) {\n tags.push(`retry_count:${retry.count}`, `retry_after:${retry.lastFailureStatus}`);\n }\n const parameters = [\n 'ddsource=browser',\n `ddtags=${encodeURIComponent(tags.join(','))}`,\n `dd-api-key=${clientToken}`,\n `dd-evp-origin-version=${encodeURIComponent(\"6.5.1\")}`,\n 'dd-evp-origin=browser',\n `dd-request-id=${generateUUID()}`,\n ];\n if (encoding) {\n parameters.push(`dd-evp-encoding=${encoding}`);\n }\n if (trackType === 'rum') {\n parameters.push(`batch_time=${timeStampNow()}`);\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\nexport const TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n const { env, service, version, datacenter } = configuration;\n const tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n const valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || hasForbiddenCharacters(rawValue)) {\n display.warn(`${key} value doesn't meet tag requirements and will be sanitized. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/tagging/#defining-tags`);\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n const sanitizedValue = rawValue.replace(/,/g, '_');\n return `${key}:${sanitizedValue}`;\n}\nfunction hasForbiddenCharacters(rawValue) {\n // Unicode property escapes is not supported in all browsers, so we use a try/catch.\n // Todo: Remove the try/catch when dropping support for Chrome 63 and Firefox 67\n // see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#browser_compatibility\n if (!supportUnicodePropertyEscapes()) {\n return false;\n }\n // We use the Unicode property escapes to match any character that is a letter including other languages like Chinese, Japanese, etc.\n // p{Ll} matches a lowercase letter.\n // p{Lo} matches a letter that is neither uppercase nor lowercase (ex: Japanese characters).\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#unicode_property_escapes_vs._character_classes\n return new RegExp('[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]', 'u').test(rawValue);\n}\nexport function supportUnicodePropertyEscapes() {\n try {\n new RegExp('[\\\\p{Ll}]', 'u');\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n//# sourceMappingURL=tags.js.map","import { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1, INTAKE_URL_PARAMETERS } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n const site = initConfiguration.site || INTAKE_SITE_US1;\n const tags = buildTags(initConfiguration);\n const endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n const replicaConfiguration = computeReplicaConfiguration(initConfiguration, tags);\n return {\n replica: replicaConfiguration,\n site,\n ...endpointBuilders,\n };\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n const replicaConfiguration = {\n ...initConfiguration,\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n };\n const replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n return { applicationId: initConfiguration.replica.applicationId, ...replicaEndpointBuilders };\n}\nexport function isIntakeUrl(url) {\n // check if tags is present in the query string\n return INTAKE_URL_PARAMETERS.every((param) => url.includes(param));\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { TrackingConsent } from '../trackingConsent';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport const DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport const TraceContextInjection = {\n ALL: 'all',\n SAMPLED: 'sampled',\n};\nfunction isString(tag, tagName) {\n if (tag !== undefined && tag !== null && typeof tag !== 'string') {\n display.error(`${tagName} must be defined as a string`);\n return false;\n }\n return true;\n}\nfunction isDatadogSite(site) {\n if (site && typeof site === 'string' && !/(datadog|ddog|datad0g|dd0g)/.test(site)) {\n display.error(`Site should be a valid Datadog site. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/site/.`);\n return false;\n }\n return true;\n}\nexport function isSampleRate(sampleRate, name) {\n if (sampleRate !== undefined && !isPercentage(sampleRate)) {\n display.error(`${name} Sample Rate should be a number between 0 and 100`);\n return false;\n }\n return true;\n}\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n if (!isDatadogSite(initConfiguration.site) ||\n !isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||\n !isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||\n !isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||\n !isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||\n !isString(initConfiguration.version, 'Version') ||\n !isString(initConfiguration.env, 'Env') ||\n !isString(initConfiguration.service, 'Service')) {\n return;\n }\n if (initConfiguration.trackingConsent !== undefined &&\n !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)) {\n display.error('Tracking Consent should be either \"granted\" or \"not-granted\"');\n return;\n }\n return {\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n telemetryUsageSampleRate: (_d = initConfiguration.telemetryUsageSampleRate) !== null && _d !== void 0 ? _d : 5,\n service: initConfiguration.service || undefined,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,\n trackingConsent: (_e = initConfiguration.trackingConsent) !== null && _e !== void 0 ? _e : TrackingConsent.GRANTED,\n trackAnonymousUser: (_f = initConfiguration.trackAnonymousUser) !== null && _f !== void 0 ? _f : true,\n storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n ...computeTransportConfiguration(initConfiguration),\n };\n}\nexport function serializeConfiguration(initConfiguration) {\n return {\n session_sample_rate: initConfiguration.sessionSampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: !!initConfiguration.proxy,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_anonymous_user: initConfiguration.trackAnonymousUser,\n session_persistence: initConfiguration.sessionPersistence,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,\n tracking_consent: initConfiguration.trackingConsent,\n };\n}\n//# sourceMappingURL=configuration.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\nimport { objectHasValue } from './utils/objectUtils';\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"WRITABLE_RESOURCE_GRAPHQL\"] = \"writable_resource_graphql\";\n ExperimentalFeature[\"MISSING_URL_CONTEXT_TELEMETRY\"] = \"missing_url_context_telemetry\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nconst enabledExperimentalFeatures = new Set();\nexport function initFeatureFlags(enableExperimentalFeatures) {\n if (Array.isArray(enableExperimentalFeatures)) {\n addExperimentalFeatures(enableExperimentalFeatures.filter((flag) => objectHasValue(ExperimentalFeature, flag)));\n }\n}\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach((flag) => {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","/**\n * Cross-browser stack trace computation.\n *\n * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js\n */\nconst UNKNOWN_FUNCTION = '?';\nexport function computeStackTrace(ex) {\n const stack = [];\n let stackProperty = tryToGetString(ex, 'stack');\n const exString = String(ex);\n if (stackProperty && stackProperty.startsWith(exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach((line) => {\n const stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack,\n };\n}\nconst fileUrl = '((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nconst filePosition = '(?::(\\\\d+))';\nconst CHROME_LINE_RE = new RegExp(`^\\\\s*at (.*?) ?\\\\(${fileUrl}${filePosition}?${filePosition}?\\\\)?\\\\s*$`, 'i');\nconst CHROME_EVAL_RE = new RegExp(`\\\\((\\\\S*)${filePosition}${filePosition}\\\\)`);\nfunction parseChromeLine(line) {\n const parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n const isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n const submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nconst CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(`^\\\\s*at ?${fileUrl}${filePosition}?${filePosition}??\\\\s*$`, 'i');\nfunction parseChromeAnonymousLine(line) {\n const parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nconst WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n const parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nconst GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n const parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n const submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n const value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\nexport function computeStackTraceFromOnErrorMessage(messageObj, url, line, column) {\n const stack = [{ url, column, line }];\n const { name, message } = tryToParseMessage(messageObj);\n return {\n name,\n message,\n stack,\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nconst ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\nfunction tryToParseMessage(messageObj) {\n let name;\n let message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n [, name, message] = ERROR_TYPES_RE.exec(messageObj);\n }\n return { name, message };\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { callMonitored } from '../monitor';\nimport { computeStackTrace } from './computeStackTrace';\n/**\n * Creates a stacktrace without SDK internal frames.\n * Constraints:\n * - Has to be called at the utmost position of the call stack.\n * - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack(type) {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n const internalFramesToSkip = 2;\n const error = new Error(type);\n error.name = 'HandlingStack';\n let formattedStack;\n callMonitored(() => {\n const stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function toStackTraceString(stack) {\n let result = formatErrorMessage(stack);\n stack.stack.forEach((frame) => {\n const func = frame.func === '?' ? '' : frame.func;\n const args = frame.args && frame.args.length > 0 ? `(${frame.args.join(', ')})` : '';\n const line = frame.line ? `:${frame.line}` : '';\n const column = frame.line && frame.column ? `:${frame.column}` : '';\n result += `\\n at ${func}${args} @ ${frame.url}${line}${column}`;\n });\n return result;\n}\nexport function formatErrorMessage(stack) {\n return `${stack.name || 'Error'}: ${stack.message}`;\n}\n//# sourceMappingURL=handlingStack.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nimport { createHandlingStack } from './stackTrace/handlingStack';\n/**\n * Instruments a method on a object, calling the given callback before the original method is\n * invoked. The callback receives an object with information about the method call.\n *\n * This function makes sure that we are \"good citizens\" regarding third party instrumentations: when\n * removing the instrumentation, the original method is usually restored, but if a third party\n * instrumentation was set after ours, we keep it in place and just replace our instrumentation with\n * a noop.\n *\n * Note: it is generally better to instrument methods that are \"owned\" by the object instead of ones\n * that are inherited from the prototype chain. Example:\n * * do: `instrumentMethod(Array.prototype, 'push', ...)`\n * * don't: `instrumentMethod([], 'push', ...)`\n *\n * This method is also used to set event handler properties (ex: window.onerror = ...), as it has\n * the same requirements as instrumenting a method:\n * * if the event handler is already set by a third party, we need to call it and not just blindly\n * override it.\n * * if the event handler is set by a third party after us, we need to keep it in place when\n * removing ours.\n *\n * @example\n *\n * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {\n * console.log('Before calling fetch on', target, 'with parameters', parameters)\n *\n * onPostCall((result) => {\n * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)\n * })\n * })\n */\nexport function instrumentMethod(targetPrototype, method, onPreCall, { computeHandlingStack } = {}) {\n let original = targetPrototype[method];\n if (typeof original !== 'function') {\n if (method in targetPrototype && method.startsWith('on')) {\n original = noop;\n }\n else {\n return { stop: noop };\n }\n }\n let stopped = false;\n const instrumentation = function () {\n if (stopped) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return original.apply(this, arguments);\n }\n const parameters = Array.from(arguments);\n let postCallCallback;\n callMonitored(onPreCall, null, [\n {\n target: this,\n parameters,\n onPostCall: (callback) => {\n postCallCallback = callback;\n },\n handlingStack: computeHandlingStack ? createHandlingStack('instrumented method') : undefined,\n },\n ]);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n const result = original.apply(this, parameters);\n if (postCallCallback) {\n callMonitored(postCallCallback, null, [result]);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n targetPrototype[method] = instrumentation;\n return {\n stop: () => {\n stopped = true;\n // If the instrumentation has been removed by a third party, keep the last one\n if (targetPrototype[method] === instrumentation) {\n targetPrototype[method] = original;\n }\n },\n };\n}\nexport function instrumentSetter(targetPrototype, property, after) {\n const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n const stoppedInstrumentation = noop;\n let instrumentation = (target, value) => {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(() => {\n if (instrumentation !== stoppedInstrumentation) {\n after(target, value);\n }\n }, 0);\n };\n const instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(targetPrototype, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: () => {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(targetPrototype, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(targetPrototype, property, originalDescriptor);\n }\n instrumentation = stoppedInstrumentation;\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nconst SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nconst JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nconst KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT) {\n // Unbind any toJSON function we may have on [] or {} prototypes\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n const containerQueue = [];\n const visitedObjectsWithPath = new WeakMap();\n const sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n const serializedSanitizedData = JSON.stringify(sanitizedData);\n let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n const containerToProcess = containerQueue.shift();\n let separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (let key = 0; key < containerToProcess.source.length; key++) {\n const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (const key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n const sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n const sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n const sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return `[Reference seen at ${visitedObjectsWithPath.get(sourceAsObject)}]`;\n }\n // Add processed source to queue\n const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath;\n const target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return `[BigInt] ${value.toString()}`;\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return `[Function] ${value.name || 'unknown'}`;\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return `[Symbol] ${value.description || value.toString()}`;\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n */\nfunction sanitizeObjects(value) {\n try {\n if (value instanceof Event) {\n return sanitizeEvent(value);\n }\n if (value instanceof RegExp) {\n return `[RegExp] ${value.toString()}`;\n }\n // Handle all remaining object types in a generic way\n const result = Object.prototype.toString.call(value);\n const match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return `[${match[1]}]`;\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\nfunction sanitizeEvent(event) {\n return {\n type: event.type,\n isTrusted: event.isTrusted,\n currentTarget: event.currentTarget ? sanitizeObjects(event.currentTarget) : null,\n target: event.target ? sanitizeObjects(event.target) : null,\n };\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n const object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(`The data provided has been ${changeType} as it is over the limit of ${maxCharacterCount} characters:`, source);\n}\n//# sourceMappingURL=sanitize.js.map","import { sanitize } from '../../tools/serialisation/sanitize';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nexport const NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError({ stackTrace, originalError, handlingStack, componentStack, startClocks, nonErrorPrefix, source, handling, }) {\n const isErrorInstance = isError(originalError);\n const message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n const stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n const causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n const type = stackTrace ? stackTrace.name : undefined;\n const fingerprint = tryToGetFingerprint(originalError);\n const context = tryToGetErrorContext(originalError);\n return {\n startClocks,\n source,\n handling,\n handlingStack,\n componentStack,\n originalError,\n type,\n message,\n stack,\n causes,\n fingerprint,\n context,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? `${nonErrorPrefix} ${jsonStringify(sanitize(originalError))}`\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return isError(originalError) && 'dd_fingerprint' in originalError ? String(originalError.dd_fingerprint) : undefined;\n}\nexport function tryToGetErrorContext(originalError) {\n if (originalError !== null && typeof originalError === 'object' && 'dd_context' in originalError) {\n return originalError.dd_context;\n }\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function isError(error) {\n return error instanceof Error || Object.prototype.toString.call(error) === '[object Error]';\n}\nexport function flattenErrorCauses(error, parentSource) {\n let currentError = error;\n const causes = [];\n while (isError(currentError === null || currentError === void 0 ? void 0 : currentError.cause) && causes.length < 10) {\n const stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","export const ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { instrumentMethod } from '../../tools/instrumentMethod';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nimport { computeStackTrace, computeStackTraceFromOnErrorMessage } from '../../tools/stackTrace/computeStackTrace';\nimport { computeRawError, isError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n const handleRuntimeError = (stackTrace, originalError) => {\n const rawError = computeRawError({\n stackTrace,\n originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n errorObservable.notify(rawError);\n };\n const { stop: stopInstrumentingOnError } = instrumentOnError(handleRuntimeError);\n const { stop: stopInstrumentingOnUnhandledRejection } = instrumentUnhandledRejection(handleRuntimeError);\n return {\n stop: () => {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\nexport function instrumentOnError(callback) {\n return instrumentMethod(window, 'onerror', ({ parameters: [messageObj, url, line, column, errorObj] }) => {\n let stackTrace;\n if (isError(errorObj)) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n stackTrace = computeStackTraceFromOnErrorMessage(messageObj, url, line, column);\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n });\n}\nexport function instrumentUnhandledRejection(callback) {\n return instrumentMethod(window, 'onunhandledrejection', ({ parameters: [e] }) => {\n const reason = e.reason || 'Empty reason';\n const stack = computeStackTrace(reason);\n callback(stack, reason);\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { display } from '../tools/display';\nexport function makePublicApi(stub) {\n const publicApi = {\n version: \"6.5.1\",\n // This API method is intentionally not monitored, since the only thing executed is the\n // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and\n // we don't want to interfere with the user uncaught exceptions.\n onReady(callback) {\n callback();\n },\n ...stub,\n };\n // Add a \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get() {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n const existingGlobalVariable = global[name];\n if (existingGlobalVariable && !existingGlobalVariable.q && existingGlobalVariable.version) {\n display.warn('SDK is loaded more than once. This is unsupported and might have unexpected behavior.');\n }\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach((fn) => catchUserErrors(fn, 'onReady callback threw an error:')());\n }\n}\n//# sourceMappingURL=init.js.map","import { display } from '../tools/display';\nexport function displayAlreadyInitializedError(sdkName, initConfiguration) {\n if (!initConfiguration.silentMultipleInit) {\n display.error(`${sdkName} is already initialized.`);\n }\n}\n//# sourceMappingURL=displayAlreadyInitializedError.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(configuration, eventTarget, eventNames, listener, { once, capture, passive } = {}) {\n const listenerWithMonitor = monitor((event) => {\n if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {\n return;\n }\n if (once) {\n stop();\n }\n listener(event);\n });\n const options = passive ? { capture, passive } : capture;\n // Use the window.EventTarget.prototype when possible to avoid wrong overrides (e.g: https://github.com/salesforce/lwc/issues/1824)\n const listenerTarget = window.EventTarget && eventTarget instanceof EventTarget ? window.EventTarget.prototype : eventTarget;\n const add = getZoneJsOriginalValue(listenerTarget, 'addEventListener');\n eventNames.forEach((eventName) => add.call(eventTarget, eventName, listenerWithMonitor, options));\n function stop() {\n const remove = getZoneJsOriginalValue(listenerTarget, 'removeEventListener');\n eventNames.forEach((eventName) => remove.call(eventTarget, eventName, listenerWithMonitor, options));\n }\n return {\n stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nimport { ErrorSource } from '../error/error.types';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nexport const RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n const observables = [];\n if (apis.includes(RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n const reportTypes = apis.filter((api) => api !== RawReportType.cspViolation);\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables(...observables);\n}\nfunction createReportObservable(reportTypes) {\n return new Observable((observable) => {\n if (!window.ReportingObserver) {\n return;\n }\n const handleReports = monitor((reports, _) => reports.forEach((report) => observable.notify(buildRawReportErrorFromReport(report))));\n const observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return () => {\n observer.disconnect();\n };\n });\n}\nfunction createCspViolationReportObservable(configuration) {\n return new Observable((observable) => {\n const { stop } = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, (event) => {\n observable.notify(buildRawReportErrorFromCspViolation(event));\n });\n return stop;\n });\n}\nfunction buildRawReportErrorFromReport(report) {\n const { type, body } = report;\n return buildRawReportError({\n type: body.id,\n message: `${type}: ${body.message}`,\n originalError: report,\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n });\n}\nfunction buildRawReportErrorFromCspViolation(event) {\n const message = `'${event.blockedURI}' blocked by '${event.effectiveDirective}' directive`;\n return buildRawReportError({\n type: event.effectiveDirective,\n message: `${RawReportType.cspViolation}: ${message}`,\n originalError: event,\n csp: {\n disposition: event.disposition,\n },\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? `${message} of the policy \"${safeTruncate(event.originalPolicy, 100, '...')}\"`\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n });\n}\nfunction buildRawReportError(partial) {\n return {\n startClocks: clocksNow(),\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n ...partial,\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name,\n message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","export function sendToExtension(type, payload) {\n const callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type, payload });\n }\n}\n//# sourceMappingURL=sendToExtension.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 = createCircularReferenceChecker()) {\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n const flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n const merged = Array.isArray(destination) ? destination : [];\n for (let i = 0; i < source.length; ++i) {\n merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker);\n }\n return merged;\n }\n const merged = getType(destination) === 'object' ? destination : {};\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine(...sources) {\n let destination;\n for (const source of sources) {\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n const set = new WeakSet();\n return {\n hasAlreadyBeenSeen(value) {\n const has = set.has(value);\n if (!has) {\n set.add(value);\n }\n return has;\n },\n };\n }\n const array = [];\n return {\n hasAlreadyBeenSeen(value) {\n const has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","export function getConnectivity() {\n var _a;\n const navigator = window.navigator;\n return {\n status: navigator.onLine ? 'connected' : 'not_connected',\n interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : undefined,\n effective_type: (_a = navigator.connection) === null || _a === void 0 ? void 0 : _a.effectiveType,\n };\n}\n//# sourceMappingURL=connectivity.js.map","export function removeDuplicates(array) {\n const set = new Set();\n array.forEach((item) => set.add(item));\n return Array.from(set);\n}\nexport function removeItem(array, item) {\n const index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrayUtils.js.map","import { removeItem } from './utils/arrayUtils';\nconst BUFFER_LIMIT = 500;\nexport function createBoundedBuffer() {\n const buffer = [];\n const add = (callback) => {\n const length = buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n buffer.splice(0, 1);\n }\n };\n const remove = (callback) => {\n removeItem(buffer, callback);\n };\n const drain = (arg) => {\n buffer.forEach((callback) => callback(arg));\n buffer.length = 0;\n };\n return {\n add,\n remove,\n drain,\n };\n}\n//# sourceMappingURL=boundedBuffer.js.map","export const TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n usage: 'usage',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { NO_ERROR_STACK_PRESENT_MESSAGE, isError } from '../error/error';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { getConnectivity } from '../connectivity';\nimport { createBoundedBuffer } from '../../tools/boundedBuffer';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nconst ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n];\nconst TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\n// eslint-disable-next-line local-rules/disallow-side-effects\nlet preStartTelemetryBuffer = createBoundedBuffer();\nlet onRawTelemetryEventCollected = (event) => {\n preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event));\n};\nexport function startTelemetry(telemetryService, configuration) {\n let contextProvider;\n const observable = new Observable();\n const alreadySentEvents = new Set();\n const telemetryEnabled = !TELEMETRY_EXCLUDED_SITES.includes(configuration.site) && performDraw(configuration.telemetrySampleRate);\n const telemetryEnabledPerType = {\n [TelemetryType.log]: telemetryEnabled,\n [TelemetryType.configuration]: telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate),\n [TelemetryType.usage]: telemetryEnabled && performDraw(configuration.telemetryUsageSampleRate),\n };\n const runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = (rawEvent) => {\n const stringifiedEvent = jsonStringify(rawEvent);\n if (telemetryEnabledPerType[rawEvent.type] &&\n alreadySentEvents.size < configuration.maxTelemetryEventsPerPage &&\n !alreadySentEvents.has(stringifiedEvent)) {\n const event = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event);\n sendToExtension('telemetry', event);\n alreadySentEvents.add(stringifiedEvent);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"6.5.1\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n connectivity: getConnectivity(),\n sdk_setup: \"npm\",\n }),\n experimental_features: Array.from(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: (provider) => {\n contextProvider = provider;\n },\n observable,\n enabled: telemetryEnabled,\n };\n}\nfunction getRuntimeEnvInfo() {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n };\n}\nexport function startFakeTelemetry() {\n const events = [];\n onRawTelemetryEventCollected = (event) => {\n events.push(event);\n };\n return events;\n}\n// need to be called after telemetry context is provided and observers are registered\nexport function drainPreStartTelemetry() {\n preStartTelemetryBuffer.drain();\n}\nexport function resetTelemetry() {\n preStartTelemetryBuffer = createBoundedBuffer();\n onRawTelemetryEventCollected = (event) => {\n preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event));\n };\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n onRawTelemetryEventCollected({\n type: TelemetryType.log,\n message,\n status: \"debug\" /* StatusType.debug */,\n ...context,\n });\n}\nexport function addTelemetryError(e, context) {\n onRawTelemetryEventCollected({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n ...formatError(e),\n ...context,\n });\n}\nexport function addTelemetryConfiguration(configuration) {\n onRawTelemetryEventCollected({\n type: TelemetryType.configuration,\n configuration,\n });\n}\nexport function addTelemetryUsage(usage) {\n onRawTelemetryEventCollected({\n type: TelemetryType.usage,\n usage,\n });\n}\nexport function formatError(e) {\n if (isError(e)) {\n const stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: `${\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */} ${jsonStringify(e)}`,\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter((frame) => !frame.url || ALLOWED_FRAME_URLS.some((allowedFrameUrl) => frame.url.startsWith(allowedFrameUrl)));\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { setInterval, clearInterval } from './timer';\nimport { removeItem } from './utils/arrayUtils';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nconst END_OF_TIMES = Infinity;\nexport const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\nlet cleanupHistoriesInterval = null;\nconst cleanupTasks = new Set();\nfunction cleanupHistories() {\n cleanupTasks.forEach((task) => task());\n}\nexport function createValueHistory({ expireDelay, maxEntries, }) {\n let entries = [];\n const deletedEntries = [];\n if (!cleanupHistoriesInterval) {\n cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL);\n }\n const clearExpiredValues = () => {\n const oldTimeThreshold = relativeNow() - expireDelay;\n while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {\n const entry = entries.pop();\n if (entry) {\n deletedEntries.push(entry.startTime);\n }\n }\n };\n cleanupTasks.add(clearExpiredValues);\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n function add(value, startTime) {\n const entry = {\n value,\n startTime,\n endTime: END_OF_TIMES,\n remove: () => {\n removeItem(entries, entry);\n },\n close: (endTime) => {\n entry.endTime = endTime;\n },\n };\n if (maxEntries && entries.length >= maxEntries) {\n entries.pop();\n }\n entries.unshift(entry);\n return entry;\n }\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n *\n * If `option.returnInactive` is true, returns the value at `startTime` (active or not).\n */\n function find(startTime = END_OF_TIMES, options = { returnInactive: false }) {\n for (const entry of entries) {\n if (entry.startTime <= startTime) {\n if (options.returnInactive || startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n }\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n function closeActive(endTime) {\n const latestEntry = entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n }\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n function findAll(startTime = END_OF_TIMES, duration = 0) {\n const endTime = addDuration(startTime, duration);\n return entries\n .filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n .map((entry) => entry.value);\n }\n function getAllEntries() {\n return entries.map(({ startTime, endTime, value }) => ({\n startTime,\n endTime: endTime === END_OF_TIMES ? 'Infinity' : endTime,\n value,\n }));\n }\n function getDeletedEntries() {\n return deletedEntries;\n }\n /**\n * Remove all entries from this collection.\n */\n function reset() {\n entries = [];\n }\n /**\n * Stop internal garbage collection of past entries.\n */\n function stop() {\n cleanupTasks.delete(clearExpiredValues);\n if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {\n clearInterval(cleanupHistoriesInterval);\n cleanupHistoriesInterval = null;\n }\n }\n return { add, find, closeActive, findAll, reset, stop, getAllEntries, getDeletedEntries };\n}\n//# sourceMappingURL=valueHistory.js.map","import { Observable } from '../../tools/observable';\nimport { createValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { addEventListener, addEventListeners } from '../../browser/addEventListener';\nimport { clearInterval, setInterval } from '../../tools/timer';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { startSessionStore } from './sessionStore';\nexport const VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nconst SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nlet stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState, trackingConsentState) {\n const renewObservable = new Observable();\n const expireObservable = new Observable();\n // TODO - Improve configuration type and remove assertion\n const sessionStore = startSessionStore(configuration.sessionStoreStrategyType, configuration, productKey, computeSessionState);\n stopCallbacks.push(() => sessionStore.stop());\n const sessionContextHistory = createValueHistory({\n expireDelay: SESSION_CONTEXT_TIMEOUT_DELAY,\n });\n stopCallbacks.push(() => sessionContextHistory.stop());\n sessionStore.renewObservable.subscribe(() => {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n renewObservable.notify();\n });\n sessionStore.expireObservable.subscribe(() => {\n expireObservable.notify();\n sessionContextHistory.closeActive(relativeNow());\n });\n // We expand/renew session unconditionally as tracking consent is always granted when the session\n // manager is started.\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackingConsentState.observable.subscribe(() => {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n else {\n sessionStore.expire();\n }\n });\n trackActivity(configuration, () => {\n if (trackingConsentState.isGranted()) {\n sessionStore.expandOrRenewSession();\n }\n });\n trackVisibility(configuration, () => sessionStore.expandSession());\n trackResume(configuration, () => sessionStore.restartSession());\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n isReplayForced: !!sessionStore.getSession().forcedReplay,\n anonymousId: sessionStore.getSession().anonymousId,\n };\n }\n return {\n findSession: (startTime, options) => sessionContextHistory.find(startTime, options),\n renewObservable,\n expireObservable,\n sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,\n expire: sessionStore.expire,\n updateSessionState: sessionStore.updateSessionState,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach((e) => e());\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n const { stop } = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"scroll\" /* DOM_EVENT.SCROLL */], expandOrRenewSession, { capture: true, passive: true });\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n const expandSessionWhenVisible = () => {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n const { stop } = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible);\n stopCallbacks.push(stop);\n const visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(() => {\n clearInterval(visibilityCheckInterval);\n });\n}\nfunction trackResume(configuration, cb) {\n const { stop } = addEventListener(configuration, window, \"resume\" /* DOM_EVENT.RESUME */, cb, { capture: true });\n stopCallbacks.push(stop);\n}\n//# sourceMappingURL=sessionManager.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (_a) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { setTimeout } from '../tools/timer';\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils';\nimport { isServerError } from '../tools/utils/responseUtils';\nimport { ErrorSource } from '../domain/error/error.types';\nexport const MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport const MAX_ONGOING_REQUESTS = 32;\nexport const MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport const MAX_BACKOFF_TIME = ONE_MINUTE;\nexport const INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, trackType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: () => retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, trackType, reportError),\n onFailure: () => {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, trackType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(() => {\n const payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: () => {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, trackType, reportError);\n },\n onFailure: () => {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, { onSuccess, onFailure }) {\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, (response) => {\n state.bandwidthMonitor.remove(payload);\n if (!shouldRetryRequest(response)) {\n state.transportStatus = 0 /* TransportStatus.UP */;\n onSuccess();\n }\n else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? 1 /* TransportStatus.FAILURE_DETECTED */ : 2 /* TransportStatus.DOWN */;\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n };\n onFailure();\n }\n });\n}\nfunction retryQueuedPayloads(reason, state, sendStrategy, trackType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: `Reached max ${trackType} events size queued for upload: ${MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE}MiB`,\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n const previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, trackType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n const queue = [];\n return {\n bytesCount: 0,\n enqueue(payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first() {\n return queue[0];\n },\n dequeue() {\n const payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size() {\n return queue.length;\n },\n isFull() {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle(payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add(payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove(payload) {\n this.ongoingRequestCount -= 1;\n this.ongoingByteCount -= payload.bytesCount;\n },\n };\n}\n//# sourceMappingURL=sendWithRetryStrategy.js.map","import { addTelemetryError } from '../domain/telemetry';\nimport { monitor } from '../tools/monitor';\nimport { addEventListener } from '../browser/addEventListener';\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy';\nexport function createHttpRequest(endpointBuilder, bytesLimit, reportError) {\n const retryState = newRetryState();\n const sendStrategyForRetry = (payload, onResponse) => fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse);\n return {\n send: (payload) => {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.trackType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: (payload) => {\n sendBeaconStrategy(endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(endpointBuilder, bytesLimit, payload) {\n const canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n const beaconUrl = endpointBuilder.build('beacon', payload);\n const isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n const xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(xhrUrl, payload.data);\n}\nlet hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse) {\n const canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n const fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor((response) => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type })), monitor(() => {\n const xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n const xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(xhrUrl, payload.data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(url, data, onResponse) {\n const request = new XMLHttpRequest();\n request.open('POST', url, true);\n if (data instanceof Blob) {\n // When using a Blob instance, IE does not use its 'type' to define the 'Content-Type' header\n // automatically, so the intake request ends up being rejected with an HTTP status 415\n // Defining the header manually fixes this issue.\n request.setRequestHeader('Content-Type', data.type);\n }\n addEventListener(\n // allow untrusted event to acount for synthetic event dispatched by third party xhr wrapper\n { allowUntrustedEvents: true }, request, 'loadend', () => {\n onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: request.status });\n }, {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n });\n request.send(data);\n}\n//# sourceMappingURL=httpRequest.js.map","import { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n const eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getCapabilities() {\n var _a;\n return JSON.parse(((_a = eventBridgeGlobal.getCapabilities) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal)) || '[]');\n },\n getPrivacyLevel() {\n var _a;\n return (_a = eventBridgeGlobal.getPrivacyLevel) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal);\n },\n getAllowedWebViewHosts() {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send(eventType, event, viewId) {\n const view = viewId ? { id: viewId } : undefined;\n eventBridgeGlobal.send(JSON.stringify({ eventType, event, view }));\n },\n };\n}\nexport function bridgeSupports(capability) {\n const bridge = getEventBridge();\n return !!bridge && bridge.getCapabilities().includes(capability);\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n const bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some((allowedHost) => currentHost === allowedHost || currentHost.endsWith(`.${allowedHost}`)));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { Observable } from '../tools/observable';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport const PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n return new Observable((observable) => {\n const { stop: stopListeners } = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */], (event) => {\n if (event.type === \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true });\n const stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, () => {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n return () => {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n}\nexport function isPageExitReason(reason) {\n return objectValues(PageExitReason).includes(reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nexport function createBatch({ encoder, request, flushController, messageBytesLimit, }) {\n let upsertBuffer = {};\n const flushSubscription = flushController.flushObservable.subscribe((event) => flush(event));\n function push(serializedMessage, estimatedMessageBytesCount, key) {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);\n if (key !== undefined) {\n upsertBuffer[key] = serializedMessage;\n flushController.notifyAfterAddMessage();\n }\n else {\n encoder.write(encoder.isEmpty ? serializedMessage : `\\n${serializedMessage}`, (realMessageBytesCount) => {\n flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount);\n });\n }\n }\n function hasMessageFor(key) {\n return key !== undefined && upsertBuffer[key] !== undefined;\n }\n function remove(key) {\n const removedMessage = upsertBuffer[key];\n delete upsertBuffer[key];\n const messageBytesCount = encoder.estimateEncodedBytesCount(removedMessage);\n flushController.notifyAfterRemoveMessage(messageBytesCount);\n }\n function addOrUpdate(message, key) {\n const serializedMessage = jsonStringify(message);\n const estimatedMessageBytesCount = encoder.estimateEncodedBytesCount(serializedMessage);\n if (estimatedMessageBytesCount >= messageBytesLimit) {\n display.warn(`Discarded a message whose size was bigger than the maximum allowed size ${messageBytesLimit}KB. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#technical-limitations`);\n return;\n }\n if (hasMessageFor(key)) {\n remove(key);\n }\n push(serializedMessage, estimatedMessageBytesCount, key);\n }\n function flush(event) {\n const upsertMessages = objectValues(upsertBuffer).join('\\n');\n upsertBuffer = {};\n const isPageExit = isPageExitReason(event.reason);\n const send = isPageExit ? request.sendOnExit : request.send;\n if (isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n encoder.isAsync) {\n const encoderResult = encoder.finishSync();\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult));\n }\n // Send messages that are not yet encoded at this point\n const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n');\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n });\n }\n }\n else {\n if (upsertMessages) {\n encoder.write(encoder.isEmpty ? upsertMessages : `\\n${upsertMessages}`);\n }\n encoder.finish((encoderResult) => {\n send(formatPayloadFromEncoder(encoderResult));\n });\n }\n }\n return {\n flushController,\n add: addOrUpdate,\n upsert: addOrUpdate,\n stop: flushSubscription.unsubscribe,\n };\n}\nfunction formatPayloadFromEncoder(encoderResult) {\n let data;\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output;\n }\n else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n });\n }\n return {\n data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n };\n}\n//# sourceMappingURL=batch.js.map","import { Observable } from '../tools/observable';\nimport { clearTimeout, setTimeout } from '../tools/timer';\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController({ messagesLimit, bytesLimit, durationLimit, pageExitObservable, sessionExpireObservable, }) {\n const pageExitSubscription = pageExitObservable.subscribe((event) => flush(event.reason));\n const sessionExpireSubscription = sessionExpireObservable.subscribe(() => flush('session_expire'));\n const flushObservable = new Observable(() => () => {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n });\n let currentBytesCount = 0;\n let currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n const messagesCount = currentMessagesCount;\n const bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount,\n bytesCount,\n });\n }\n let durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(() => {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable,\n get messagesCount() {\n return currentMessagesCount;\n },\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n *\n * @param estimatedMessageBytesCount: an estimation of the message bytes count once it is\n * actually added.\n */\n notifyBeforeAddMessage(estimatedMessageBytesCount) {\n if (currentBytesCount + estimatedMessageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += estimatedMessageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n *\n * @param messageBytesCountDiff: the difference between the estimated message bytes count and\n * its actual bytes count once added to the pool.\n */\n notifyAfterAddMessage(messageBytesCountDiff = 0) {\n currentBytesCount += messageBytesCountDiff;\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n *\n * @param messageBytesCount: the message bytes count that was added to the pool. Should\n * correspond to the sum of bytes counts passed to `notifyBeforeAddMessage` and\n * `notifyAfterAddMessage`.\n */\n notifyAfterRemoveMessage(messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { createBatch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable, batchFactoryImp = createBatch) {\n const primaryBatch = createBatchFromConfig(configuration, primary);\n const replicaBatch = replica && createBatchFromConfig(configuration, replica);\n function createBatchFromConfig(configuration, { endpoint, encoder }) {\n return batchFactoryImp({\n encoder,\n request: createHttpRequest(endpoint, configuration.batchBytesLimit, reportError),\n flushController: createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable,\n sessionExpireObservable,\n }),\n messageBytesLimit: configuration.messageBytesLimit,\n });\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add(message, replicated = true) {\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: (message, key) => {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: () => {\n primaryBatch.stop();\n if (replicaBatch) {\n replicaBatch.stop();\n }\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","import { computeBytesCount } from './utils/byteUtils';\nexport function createIdentityEncoder() {\n let output = '';\n let outputBytesCount = 0;\n return {\n isAsync: false,\n get isEmpty() {\n return !output;\n },\n write(data, callback) {\n const additionalEncodedBytesCount = computeBytesCount(data);\n outputBytesCount += additionalEncodedBytesCount;\n output += data;\n if (callback) {\n callback(additionalEncodedBytesCount);\n }\n },\n finish(callback) {\n callback(this.finishSync());\n },\n finishSync() {\n const result = {\n output,\n outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: '',\n };\n output = '';\n outputBytesCount = 0;\n return result;\n },\n estimateEncodedBytesCount(data) {\n return data.length;\n },\n };\n}\n//# sourceMappingURL=encoder.js.map","// eslint-disable-next-line no-restricted-syntax\nexport class AbstractLifeCycle {\n constructor() {\n this.callbacks = {};\n }\n notify(eventType, data) {\n const eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach((callback) => callback(data));\n }\n }\n subscribe(eventType, callback) {\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: () => {\n this.callbacks[eventType] = this.callbacks[eventType].filter((other) => callback !== other);\n },\n };\n }\n}\n//# sourceMappingURL=abstractLifeCycle.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n let eventCount = 0;\n let allowNextEvent = false;\n return {\n isLimitReached() {\n if (eventCount === 0) {\n setTimeout(() => {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: `Reached max number of ${eventType}s by minute: ${limit}`,\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { noop } from '../tools/utils/functionUtils';\nimport { addEventListener } from './addEventListener';\nexport function runOnReadyState(configuration, expectedReadyState, callback) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback();\n return { stop: noop };\n }\n const eventName = expectedReadyState === 'complete' ? \"load\" /* DOM_EVENT.LOAD */ : \"DOMContentLoaded\" /* DOM_EVENT.DOM_CONTENT_LOADED */;\n return addEventListener(configuration, window, eventName, callback, { once: true });\n}\nexport function asyncRunOnReadyState(configuration, expectedReadyState) {\n return new Promise((resolve) => {\n runOnReadyState(configuration, expectedReadyState, resolve);\n });\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nlet xhrObservable;\nconst xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n return new Observable((observable) => {\n const { stop: stopInstrumentingStart } = instrumentMethod(XMLHttpRequest.prototype, 'open', openXhr);\n const { stop: stopInstrumentingSend } = instrumentMethod(XMLHttpRequest.prototype, 'send', (call) => {\n sendXhr(call, configuration, observable);\n }, { computeHandlingStack: true });\n const { stop: stopInstrumentingAbort } = instrumentMethod(XMLHttpRequest.prototype, 'abort', abortXhr);\n return () => {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n}\nfunction openXhr({ target: xhr, parameters: [method, url] }) {\n xhrContexts.set(xhr, {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr({ target: xhr, handlingStack }, configuration, observable) {\n const context = xhrContexts.get(xhr);\n if (!context) {\n return;\n }\n const startContext = context;\n startContext.state = 'start';\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = xhr;\n startContext.handlingStack = handlingStack;\n let hasBeenReported = false;\n const { stop: stopInstrumentingOnReadyStateChange } = instrumentMethod(xhr, 'onreadystatechange', () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n });\n const onEnd = () => {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n const completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = xhr.status;\n observable.notify(shallowClone(completeContext));\n };\n const { stop: unsubscribeLoadEndListener } = addEventListener(configuration, xhr, 'loadend', onEnd);\n observable.notify(startContext);\n}\nfunction abortXhr({ target: xhr }) {\n const context = xhrContexts.get(xhr);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nlet fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nexport function resetFetchObservable() {\n fetchObservable = undefined;\n}\nfunction createFetchObservable() {\n return new Observable((observable) => {\n if (!window.fetch) {\n return;\n }\n const { stop } = instrumentMethod(window, 'fetch', (call) => beforeSend(call, observable), {\n computeHandlingStack: true,\n });\n return stop;\n });\n}\nfunction beforeSend({ parameters, onPostCall, handlingStack }, observable) {\n const [input, init] = parameters;\n let methodFromParams = init && init.method;\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method;\n }\n const method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET';\n const url = input instanceof Request ? input.url : normalizeUrl(String(input));\n const startClocks = clocksNow();\n const context = {\n state: 'start',\n init,\n input,\n method,\n startClocks,\n url,\n handlingStack,\n };\n observable.notify(context);\n // Those properties can be changed by observable subscribers\n parameters[0] = context.input;\n parameters[1] = context.init;\n onPostCall((responsePromise) => afterSend(observable, responsePromise, context));\n}\nfunction afterSend(observable, responsePromise, startContext) {\n const context = startContext;\n function reportFetch(partialContext) {\n context.state = 'resolve';\n Object.assign(context, partialContext);\n observable.notify(context);\n }\n responsePromise.then(monitor((response) => {\n reportFetch({\n response,\n responseType: response.type,\n status: response.status,\n isAborted: false,\n });\n }), monitor((error) => {\n var _a, _b;\n reportFetch({\n status: 0,\n isAborted: ((_b = (_a = context.init) === null || _a === void 0 ? void 0 : _a.signal) === null || _b === void 0 ? void 0 : _b.aborted) || (error instanceof DOMException && error.code === DOMException.ABORT_ERR),\n error,\n });\n }));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { setTimeout, clearTimeout } from './timer';\nimport { monitor } from './monitor';\nimport { dateNow } from './utils/timeUtils';\n/**\n * 'requestIdleCallback' with a shim.\n */\nexport function requestIdleCallback(callback, opts) {\n // Note: check both 'requestIdleCallback' and 'cancelIdleCallback' existence because some polyfills only implement 'requestIdleCallback'.\n if (window.requestIdleCallback && window.cancelIdleCallback) {\n const id = window.requestIdleCallback(monitor(callback), opts);\n return () => window.cancelIdleCallback(id);\n }\n return requestIdleCallbackShim(callback);\n}\nexport const MAX_TASK_TIME = 50;\n/*\n * Shim from https://developer.chrome.com/blog/using-requestidlecallback#checking_for_requestidlecallback\n * Note: there is no simple way to support the \"timeout\" option, so we ignore it.\n */\nexport function requestIdleCallbackShim(callback) {\n const start = dateNow();\n const timeoutId = setTimeout(() => {\n callback({\n didTimeout: false,\n timeRemaining: () => Math.max(0, MAX_TASK_TIME - (dateNow() - start)),\n });\n }, 0);\n return () => clearTimeout(timeoutId);\n}\n//# sourceMappingURL=requestIdleCallback.js.map","import { ONE_SECOND } from './utils/timeUtils';\nimport { requestIdleCallback } from './requestIdleCallback';\n/**\n * Maximum delay before starting to execute tasks in the queue. We don't want to wait too long\n * before running tasks, as it might hurt reliability (ex: if the user navigates away, we might lose\n * the opportunity to send some data). We also don't want to run tasks too often, as it might hurt\n * performance.\n */\nconst IDLE_CALLBACK_TIMEOUT = ONE_SECOND;\n/**\n * Maximum amount of time allocated to running tasks when a timeout (`IDLE_CALLBACK_TIMEOUT`) is\n * reached. We should not run tasks for too long as it will hurt performance, but we should still\n * run some tasks to avoid postponing them forever.\n *\n * Rational: Running tasks for 30ms every second (IDLE_CALLBACK_TIMEOUT) should be acceptable.\n */\nexport const MAX_EXECUTION_TIME_ON_TIMEOUT = 30;\nexport function createTaskQueue() {\n const pendingTasks = [];\n function run(deadline) {\n let executionTimeRemaining;\n if (deadline.didTimeout) {\n const start = performance.now();\n executionTimeRemaining = () => MAX_EXECUTION_TIME_ON_TIMEOUT - (performance.now() - start);\n }\n else {\n executionTimeRemaining = deadline.timeRemaining.bind(deadline);\n }\n while (executionTimeRemaining() > 0 && pendingTasks.length) {\n pendingTasks.shift()();\n }\n if (pendingTasks.length) {\n scheduleNextRun();\n }\n }\n function scheduleNextRun() {\n requestIdleCallback(run, { timeout: IDLE_CALLBACK_TIMEOUT });\n }\n return {\n push(task) {\n if (pendingTasks.push(task) === 1) {\n scheduleNextRun();\n }\n },\n };\n}\n//# sourceMappingURL=taskQueue.js.map","import { flattenErrorCauses, isError, tryToGetFingerprint, tryToGetErrorContext } from '../error/error';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { ConsoleApiName, globalConsole } from '../../tools/display';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { ErrorSource } from '../error/error.types';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { createHandlingStack, toStackTraceString, formatErrorMessage } from '../../tools/stackTrace/handlingStack';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nlet consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n const consoleObservables = apis.map((api) => {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api); // we are sure that the observable created for this api will yield the expected ConsoleLog type\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables(...consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n return new Observable((observable) => {\n const originalConsoleApi = globalConsole[api];\n globalConsole[api] = (...params) => {\n originalConsoleApi.apply(console, params);\n const handlingStack = createHandlingStack('console error');\n callMonitored(() => {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return () => {\n globalConsole[api] = originalConsoleApi;\n };\n });\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n const message = params.map((param) => formatConsoleParameters(param)).join(' ');\n let error;\n if (api === ConsoleApiName.error) {\n const firstErrorParam = params.find(isError);\n error = {\n stack: firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined,\n fingerprint: tryToGetFingerprint(firstErrorParam),\n causes: firstErrorParam ? flattenErrorCauses(firstErrorParam, 'console') : undefined,\n startClocks: clocksNow(),\n message,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack,\n context: tryToGetErrorContext(firstErrorParam),\n };\n }\n return {\n api,\n message,\n error,\n handlingStack,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (isError(param)) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\n/**\n * Simple check to ensure an object is a valid context\n */\nexport function checkContext(maybeContext) {\n const isValid = getType(maybeContext) === 'object';\n if (!isValid) {\n display.error('Unsupported context:', maybeContext);\n }\n return isValid;\n}\n//# sourceMappingURL=contextUtils.js.map","import { deepClone } from '../../tools/mergeInto';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nimport { display } from '../../tools/display';\nimport { checkContext } from './contextUtils';\nfunction ensureProperties(context, propertiesConfig, name) {\n const newContext = { ...context };\n for (const [key, { required, type }] of Object.entries(propertiesConfig)) {\n /**\n * Ensure specified properties are strings as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\n if (type === 'string' && key in newContext) {\n /* eslint-disable @typescript-eslint/no-base-to-string */\n newContext[key] = String(newContext[key]);\n }\n if (required && !(key in context)) {\n display.warn(`The property ${key} of ${name} is required; context will not be sent to the intake.`);\n }\n }\n return newContext;\n}\nexport function createContextManager(name = '', { customerDataTracker, propertiesConfig = {}, } = {}) {\n let context = {};\n const changeObservable = new Observable();\n const contextManager = {\n getContext: () => deepClone(context),\n setContext: (newContext) => {\n if (checkContext(newContext)) {\n context = sanitize(ensureProperties(newContext, propertiesConfig, name));\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: (key, property) => {\n context = sanitize(ensureProperties({ ...context, [key]: property }, propertiesConfig, name));\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n removeContextProperty: (key) => {\n delete context[key];\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);\n ensureProperties(context, propertiesConfig, name);\n changeObservable.notify();\n },\n clearContext: () => {\n context = {};\n customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.resetCustomerData();\n changeObservable.notify();\n },\n changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","import { addEventListener } from '../../browser/addEventListener';\nimport { combine } from '../../tools/mergeInto';\nimport { isEmptyObject } from '../../tools/utils/objectUtils';\nconst CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nconst storageListeners = [];\nexport function storeContextManager(configuration, contextManager, productKey, customerDataType) {\n const storageKey = buildStorageKey(productKey, customerDataType);\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, ({ key }) => {\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n const contextFromStorage = combine(getFromStorage(), contextManager.getContext());\n if (!isEmptyObject(contextFromStorage)) {\n contextManager.setContext(contextFromStorage);\n }\n function synchronizeWithStorage() {\n contextManager.setContext(getFromStorage());\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n function getFromStorage() {\n const rawContext = localStorage.getItem(storageKey);\n return rawContext ? JSON.parse(rawContext) : {};\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return `${CONTEXT_STORE_KEY_PREFIX}_${productKey}_${customerDataType}`;\n}\nexport function removeStorageListeners() {\n storageListeners.map((listener) => listener.stop());\n}\n//# sourceMappingURL=storeContextManager.js.map","import { ONE_KIBI_BYTE, computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../../tools/display';\nimport { isEmptyObject } from '../../tools/utils/objectUtils';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport const CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\n// We observed that the compression ratio is around 8 in general, but we also want to keep a margin\n// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB\n// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this\n// is a bit arbitrary.\nexport const CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * ONE_KIBI_BYTE;\nexport const BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createCustomerDataTrackerManager(compressionStatus = 2 /* CustomerDataCompressionStatus.Disabled */) {\n const customerDataTrackers = new Map();\n let alreadyWarned = false;\n function checkCustomerDataLimit(initialBytesCount = 0) {\n if (alreadyWarned || compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n return;\n }\n const bytesCountLimit = compressionStatus === 2 /* CustomerDataCompressionStatus.Disabled */\n ? CUSTOMER_DATA_BYTES_LIMIT\n : CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT;\n let bytesCount = initialBytesCount;\n customerDataTrackers.forEach((tracker) => {\n bytesCount += tracker.getBytesCount();\n });\n if (bytesCount > bytesCountLimit) {\n displayCustomerDataLimitReachedWarning(bytesCountLimit);\n alreadyWarned = true;\n }\n }\n return {\n /**\n * Creates a detached tracker. The manager will not store a reference to that tracker, and the\n * bytes count will be counted independently from other detached trackers.\n *\n * This is particularly useful when we don't know when the tracker will be unused, so we don't\n * leak memory (ex: when used in Logger instances).\n */\n createDetachedTracker: () => {\n const tracker = createCustomerDataTracker(() => checkCustomerDataLimit(tracker.getBytesCount()));\n return tracker;\n },\n /**\n * Creates a tracker if it doesn't exist, and returns it.\n */\n getOrCreateTracker: (type) => {\n if (!customerDataTrackers.has(type)) {\n customerDataTrackers.set(type, createCustomerDataTracker(checkCustomerDataLimit));\n }\n return customerDataTrackers.get(type);\n },\n setCompressionStatus: (newCompressionStatus) => {\n if (compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n compressionStatus = newCompressionStatus;\n checkCustomerDataLimit();\n }\n },\n getCompressionStatus: () => compressionStatus,\n stop: () => {\n customerDataTrackers.forEach((tracker) => tracker.stop());\n customerDataTrackers.clear();\n },\n };\n}\nexport function createCustomerDataTracker(checkCustomerDataLimit) {\n let bytesCountCache = 0;\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n const { throttled: computeBytesCountThrottled, cancel: cancelComputeBytesCount } = throttle((context) => {\n bytesCountCache = computeBytesCount(jsonStringify(context));\n checkCustomerDataLimit();\n }, BYTES_COMPUTATION_THROTTLING_DELAY);\n const resetBytesCount = () => {\n cancelComputeBytesCount();\n bytesCountCache = 0;\n };\n return {\n updateCustomerData: (context) => {\n if (isEmptyObject(context)) {\n resetBytesCount();\n }\n else {\n computeBytesCountThrottled(context);\n }\n },\n resetCustomerData: resetBytesCount,\n getBytesCount: () => bytesCountCache,\n stop: () => {\n cancelComputeBytesCount();\n },\n };\n}\nfunction displayCustomerDataLimitReachedWarning(bytesCountLimit) {\n display.warn(`Customer data exceeds the recommended ${bytesCountLimit / ONE_KIBI_BYTE}KiB threshold. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#customer-data-exceeds-the-recommended-threshold-warning`);\n}\n//# sourceMappingURL=customerDataTracker.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n const reader = stream.getReader();\n const chunks = [];\n let readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor((result) => {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor((error) => callback(error)));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n let bytes;\n let limitExceeded;\n if (options.collectStreamBody) {\n let completeBuffer;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer = new Uint8Array(readBytesCount);\n let offset = 0;\n chunks.forEach((chunk) => {\n completeBuffer.set(chunk, offset);\n offset += chunk.length;\n });\n }\n bytes = completeBuffer.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { getInitCookie } from '../../browser/cookie';\nexport const SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport const SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n const value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n const value = window._DATADOG_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","import { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n const 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 = false) {\n return list.some((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 ? value.startsWith(item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","export function buildCommonContext(globalContextManager, userContextManager, accountContextManager, recorderApi) {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n account: accountContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n };\n}\n//# sourceMappingURL=commonContext.js.map","import { clocksNow, combine, elapsed, generateUUID, toServerDuration } from '@datadog/browser-core';\nexport function createCustomVitalsState() {\n const vitalsByName = new Map();\n const vitalsByReference = new WeakMap();\n return { vitalsByName, vitalsByReference };\n}\nexport function startVitalCollection(lifeCycle, pageStateHistory, customVitalsState) {\n function isValid(vital) {\n return !pageStateHistory.wasInPageStateDuringPeriod(\"frozen\" /* PageState.FROZEN */, vital.startClocks.relative, vital.duration);\n }\n function addDurationVital(vital) {\n if (isValid(vital)) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processVital(vital, true));\n }\n }\n return {\n addDurationVital,\n startDurationVital: (name, options = {}) => startDurationVital(customVitalsState, name, options),\n stopDurationVital: (nameOrRef, options = {}) => {\n stopDurationVital(addDurationVital, customVitalsState, nameOrRef, options);\n },\n };\n}\nexport function startDurationVital({ vitalsByName, vitalsByReference }, name, options = {}) {\n const vital = {\n name,\n startClocks: clocksNow(),\n context: options.context,\n description: options.description,\n };\n // To avoid leaking implementation details of the vital, we return a reference to it.\n const reference = { __dd_vital_reference: true };\n vitalsByName.set(name, vital);\n // To avoid memory leaks caused by the creation of numerous references (e.g., from improper useEffect implementations), we use a WeakMap.\n vitalsByReference.set(reference, vital);\n return reference;\n}\nexport function stopDurationVital(stopCallback, { vitalsByName, vitalsByReference }, nameOrRef, options = {}) {\n const vitalStart = typeof nameOrRef === 'string' ? vitalsByName.get(nameOrRef) : vitalsByReference.get(nameOrRef);\n if (!vitalStart) {\n return;\n }\n stopCallback(buildDurationVital(vitalStart, vitalStart.startClocks, options, clocksNow()));\n if (typeof nameOrRef === 'string') {\n vitalsByName.delete(nameOrRef);\n }\n else {\n vitalsByReference.delete(nameOrRef);\n }\n}\nfunction buildDurationVital(vitalStart, startClocks, stopOptions, stopClocks) {\n var _a;\n return {\n name: vitalStart.name,\n type: \"duration\" /* VitalType.DURATION */,\n startClocks,\n duration: elapsed(startClocks.timeStamp, stopClocks.timeStamp),\n context: combine(vitalStart.context, stopOptions.context),\n description: (_a = stopOptions.description) !== null && _a !== void 0 ? _a : vitalStart.description,\n };\n}\nfunction processVital(vital, valueComputedBySdk) {\n const rawRumEvent = {\n date: vital.startClocks.timeStamp,\n vital: {\n id: generateUUID(),\n type: vital.type,\n name: vital.name,\n duration: toServerDuration(vital.duration),\n description: vital.description,\n },\n type: \"vital\" /* RumEventType.VITAL */,\n };\n if (valueComputedBySdk) {\n rawRumEvent._dd = {\n vital: {\n computed_value: true,\n },\n };\n }\n return {\n rawRumEvent,\n startTime: vital.startClocks.relative,\n duration: vital.duration,\n customerContext: vital.context,\n domainContext: {},\n };\n}\n//# sourceMappingURL=vitalCollection.js.map","export function callPluginsMethod(plugins, methodName, parameter) {\n if (!plugins) {\n return;\n }\n for (const plugin of plugins) {\n const method = plugin[methodName];\n if (method) {\n method(parameter);\n }\n }\n}\n//# sourceMappingURL=plugins.js.map","export function createTraceIdentifier() {\n return createIdentifier(64);\n}\nexport function createSpanIdentifier() {\n return createIdentifier(63);\n}\nfunction createIdentifier(bits) {\n const buffer = crypto.getRandomValues(new Uint32Array(2));\n if (bits === 63) {\n // eslint-disable-next-line no-bitwise\n buffer[buffer.length - 1] >>>= 1; // force 63-bit\n }\n // The `.toString` function is intentionally similar to Number and BigInt `.toString` method.\n //\n // JavaScript numbers can represent integers up to 48 bits, this is why we need two of them to\n // represent a 64 bits identifier. But BigInts don't have this limitation and can represent larger\n // integer values.\n //\n // In the future, when we drop browsers without BigInts support, we could use BigInts directly\n // represent identifiers by simply returning a BigInt from this function (as all we need is a\n // value with a `.toString` method).\n //\n // Examples:\n // const buffer = getCrypto().getRandomValues(new Uint32Array(2))\n // return BigInt(buffer[0]) + BigInt(buffer[1]) << 32n\n //\n // // Alternative with BigUint64Array (different Browser support than plain bigints!):\n // return crypto.getRandomValues(new BigUint64Array(1))[0]\n //\n // For now, let's keep using two plain numbers as having two different implementations (one for\n // browsers with BigInt support and one for older browsers) don't bring much value.\n return {\n toString(radix = 10) {\n let high = buffer[1];\n let low = buffer[0];\n let str = '';\n do {\n const 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}\nexport function toPaddedHexadecimalString(id) {\n return id.toString(16).padStart(16, '0');\n}\n//# sourceMappingURL=identifier.js.map","import { performDraw } from '@datadog/browser-core';\nlet sampleDecisionCache;\nexport function isTraceSampled(sessionId, sampleRate) {\n // Shortcuts for common cases. This is not strictly necessary, but it makes the code faster for\n // customers willing to ingest all traces.\n if (sampleRate === 100) {\n return true;\n }\n if (sampleRate === 0) {\n return false;\n }\n if (sampleDecisionCache && sessionId === sampleDecisionCache.sessionId) {\n return sampleDecisionCache.decision;\n }\n let decision;\n // @ts-expect-error BigInt might not be defined in every browser we support\n if (window.BigInt) {\n decision = sampleUsingKnuthFactor(BigInt(`0x${sessionId.split('-')[4]}`), sampleRate);\n }\n else {\n // For simplicity, we don't use consistent sampling for browser without BigInt support\n // TODO: remove this when all browser we support have BigInt support\n decision = performDraw(sampleRate);\n }\n sampleDecisionCache = { sessionId, decision };\n return decision;\n}\n// Exported for tests\nexport function resetSampleDecisionCache() {\n sampleDecisionCache = undefined;\n}\n/**\n * Perform sampling using the Knuth factor method. This method offer consistent sampling result\n * based on the provided identifier.\n *\n * @param identifier The identifier to use for sampling.\n * @param sampleRate The sample rate in percentage between 0 and 100.\n */\nexport function sampleUsingKnuthFactor(identifier, sampleRate) {\n // The formula is:\n //\n // (identifier * knuthFactor) % 2^64 < sampleRate * 2^64\n //\n // Because JavaScript numbers are 64-bit floats, we can't represent 64-bit integers, and the\n // modulo would be incorrect. Thus, we are using BigInts here.\n //\n // Implementation in other languages:\n // * Go https://github.com/DataDog/dd-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91\n // * Python https://github.com/DataDog/dd-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197\n // * Ruby https://github.com/DataDog/dd-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/datadog/tracing/sampling/rate_sampler.rb#L42\n // * C++ https://github.com/DataDog/dd-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/datadog/trace_sampler.cpp#L58\n // * Java https://github.com/DataDog/dd-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/dd-trace-core/src/main/java/datadog/trace/common/sampling/DeterministicSampler.java#L48\n //\n // Note: All implementations have slight variations. Some of them use '<=' instead of '<', and\n // use `sampleRate * 2^64 - 1` instead of `sampleRate * 2^64`. The following implementation\n // should adhere to the spec and is a bit simpler than using a 2^64-1 limit as there are less\n // BigInt arithmetic to write. In practice this does not matter, as we are using floating point\n // numbers in the end, and Number(2n**64n-1n) === Number(2n**64n).\n const knuthFactor = BigInt('1111111111111111111');\n const twoPow64 = BigInt('0x10000000000000000'); // 2n ** 64n\n const hash = (identifier * knuthFactor) % twoPow64;\n return Number(hash) <= (sampleRate / 100) * Number(twoPow64);\n}\n//# sourceMappingURL=sampler.js.map","import { objectEntries, shallowClone, getType, isMatchOption, matchList, TraceContextInjection, } from '@datadog/browser-core';\nimport { createSpanIdentifier, createTraceIdentifier, toPaddedHexadecimalString } from './identifier';\nimport { isTraceSampled } from './sampler';\nexport function isTracingOption(item) {\n const 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,\n traceFetch: (context) => injectHeadersIfTracingAllowed(configuration, context, sessionManager, (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((key) => {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n const headers = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach((value, key) => {\n headers.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach((header) => {\n headers.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach((key) => {\n headers.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers.concat(objectEntries(tracingHeaders));\n }\n }),\n traceXhr: (context, xhr) => injectHeadersIfTracingAllowed(configuration, context, sessionManager, (tracingHeaders) => {\n Object.keys(tracingHeaders).forEach((name) => {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n }),\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n const session = sessionManager.findTrackedSession();\n if (!session) {\n return;\n }\n const tracingOption = configuration.allowedTracingUrls.find((tracingOption) => matchList([tracingOption.match], context.url, true));\n if (!tracingOption) {\n return;\n }\n const traceSampled = isTraceSampled(session.id, configuration.traceSampleRate);\n const shouldInjectHeaders = traceSampled || configuration.traceContextInjection === TraceContextInjection.ALL;\n if (!shouldInjectHeaders) {\n return;\n }\n context.traceSampled = traceSampled;\n context.traceId = createTraceIdentifier();\n context.spanId = createSpanIdentifier();\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\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 const tracingHeaders = {};\n propagatorTypes.forEach((propagatorType) => {\n switch (propagatorType) {\n case 'datadog': {\n Object.assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n Object.assign(tracingHeaders, {\n traceparent: `00-0000000000000000${toPaddedHexadecimalString(traceId)}-${toPaddedHexadecimalString(spanId)}-0${traceSampled ? '1' : '0'}`,\n tracestate: `dd=s:${traceSampled ? '1' : '0'};o:rum`,\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n Object.assign(tracingHeaders, {\n b3: `${toPaddedHexadecimalString(traceId)}-${toPaddedHexadecimalString(spanId)}-${traceSampled ? '1' : '0'}`,\n });\n break;\n }\n case 'b3multi': {\n Object.assign(tracingHeaders, {\n 'X-B3-TraceId': toPaddedHexadecimalString(traceId),\n 'X-B3-SpanId': toPaddedHexadecimalString(spanId),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\n//# sourceMappingURL=tracer.js.map","import { getType, isMatchOption, serializeConfiguration, DefaultPrivacyLevel, TraceContextInjection, display, objectHasValue, validateAndBuildConfiguration, isSampleRate, isNumber, } from '@datadog/browser-core';\nimport { isTracingOption } from '../tracing/tracer';\nexport const DEFAULT_PROPAGATOR_TYPES = ['tracecontext', 'datadog'];\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (initConfiguration.trackFeatureFlagsForEvents !== undefined &&\n !Array.isArray(initConfiguration.trackFeatureFlagsForEvents)) {\n display.warn('trackFeatureFlagsForEvents should be an array');\n }\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (!isSampleRate(initConfiguration.sessionReplaySampleRate, 'Session Replay') ||\n !isSampleRate(initConfiguration.traceSampleRate, 'Trace')) {\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 const allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n const baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n const sessionReplaySampleRate = (_a = initConfiguration.sessionReplaySampleRate) !== null && _a !== void 0 ? _a : 0;\n return {\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version || undefined,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate,\n startSessionReplayRecordingManually: initConfiguration.startSessionReplayRecordingManually !== undefined\n ? !!initConfiguration.startSessionReplayRecordingManually\n : sessionReplaySampleRate === 0,\n traceSampleRate: (_b = initConfiguration.traceSampleRate) !== null && _b !== void 0 ? _b : 100,\n rulePsr: isNumber(initConfiguration.traceSampleRate) ? initConfiguration.traceSampleRate / 100 : undefined,\n allowedTracingUrls,\n excludedActivityUrls: (_c = initConfiguration.excludedActivityUrls) !== null && _c !== void 0 ? _c : [],\n workerUrl: initConfiguration.workerUrl,\n compressIntakeRequests: !!initConfiguration.compressIntakeRequests,\n trackUserInteractions: !!((_d = initConfiguration.trackUserInteractions) !== null && _d !== void 0 ? _d : true),\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: !!((_e = initConfiguration.trackResources) !== null && _e !== void 0 ? _e : true),\n trackLongTasks: !!((_f = initConfiguration.trackLongTasks) !== null && _f !== void 0 ? _f : true),\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK,\n enablePrivacyForActionName: !!initConfiguration.enablePrivacyForActionName,\n customerDataTelemetrySampleRate: 1,\n traceContextInjection: objectHasValue(TraceContextInjection, initConfiguration.traceContextInjection)\n ? initConfiguration.traceContextInjection\n : TraceContextInjection.SAMPLED,\n plugins: initConfiguration.plugins || [],\n trackFeatureFlagsForEvents: initConfiguration.trackFeatureFlagsForEvents || [],\n ...baseConfiguration,\n };\n}\n/**\n * Validates allowedTracingUrls and converts match options to tracing options\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n if (initConfiguration.allowedTracingUrls === undefined) {\n return [];\n }\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 const tracingOptions = [];\n initConfiguration.allowedTracingUrls.forEach((option) => {\n if (isMatchOption(option)) {\n tracingOptions.push({ match: option, propagatorTypes: DEFAULT_PROPAGATOR_TYPES });\n }\n else if (isTracingOption(option)) {\n tracingOptions.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;\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls\n */\nfunction getSelectedTracingPropagators(configuration) {\n const usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach((option) => {\n if (isMatchOption(option)) {\n DEFAULT_PROPAGATOR_TYPES.forEach((propagatorType) => 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((propagatorType) => usedTracingPropagators.add(propagatorType));\n }\n });\n }\n return Array.from(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var _a;\n const baseSerializedConfiguration = serializeConfiguration(configuration);\n return {\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n trace_sample_rate: configuration.traceSampleRate,\n trace_context_injection: configuration.traceContextInjection,\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 enable_privacy_for_action_name: configuration.enablePrivacyForActionName,\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 plugins: (_a = configuration.plugins) === null || _a === void 0 ? void 0 : _a.map((plugin) => {\n var _a;\n return ({\n name: plugin.name,\n ...(_a = plugin.getConfigurationTelemetry) === null || _a === void 0 ? void 0 : _a.call(plugin),\n });\n }),\n track_feature_flags_for_events: configuration.trackFeatureFlagsForEvents,\n ...baseSerializedConfiguration,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { display, addEventListener, buildEndpointHost } from '@datadog/browser-core';\nconst REMOTE_CONFIGURATION_VERSION = 'v1';\nexport function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {\n fetchRemoteConfiguration(initConfiguration, (remoteInitConfiguration) => {\n callback(applyRemoteConfiguration(initConfiguration, remoteInitConfiguration));\n });\n}\nexport function applyRemoteConfiguration(initConfiguration, remoteInitConfiguration) {\n return { ...initConfiguration, ...remoteInitConfiguration };\n}\nexport function fetchRemoteConfiguration(configuration, callback) {\n const xhr = new XMLHttpRequest();\n addEventListener(configuration, xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText);\n callback(remoteConfiguration.rum);\n }\n else {\n displayRemoteConfigurationFetchingError();\n }\n });\n addEventListener(configuration, xhr, 'error', function () {\n displayRemoteConfigurationFetchingError();\n });\n xhr.open('GET', buildEndpoint(configuration));\n xhr.send();\n}\nexport function buildEndpoint(configuration) {\n return `https://sdk-configuration.${buildEndpointHost('rum', configuration)}/${REMOTE_CONFIGURATION_VERSION}/${encodeURIComponent(configuration.remoteConfigurationId)}.json`;\n}\nfunction displayRemoteConfigurationFetchingError() {\n display.error('Error fetching the remote configuration.');\n}\n//# sourceMappingURL=remoteConfiguration.js.map","import { createBoundedBuffer, display, canUseEventBridge, displayAlreadyInitializedError, willSyntheticsInjectRum, noop, timeStampNow, clocksNow, getEventBridge, initFeatureFlags, addTelemetryConfiguration, initFetchObservable, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration, } from '../domain/configuration';\nimport { startDurationVital, stopDurationVital } from '../domain/vital/vitalCollection';\nimport { fetchAndApplyRemoteConfiguration, serializeRumConfiguration } from '../domain/configuration';\nimport { callPluginsMethod } from '../domain/plugins';\nexport function createPreStartStrategy({ ignoreInitIfSyntheticsWillInjectRum, startDeflateWorker }, getCommonContext, trackingConsentState, customVitalsState, doStartRum) {\n const bufferApiCalls = createBoundedBuffer();\n let firstStartViewCall;\n let deflateWorker;\n let cachedInitConfiguration;\n let cachedConfiguration;\n const trackingConsentStateSubscription = trackingConsentState.observable.subscribe(tryStartRum);\n const emptyContext = {};\n function tryStartRum() {\n if (!cachedInitConfiguration || !cachedConfiguration || !trackingConsentState.isGranted()) {\n return;\n }\n trackingConsentStateSubscription.unsubscribe();\n let 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 const startRumResult = doStartRum(cachedConfiguration, deflateWorker, initialViewOptions);\n bufferApiCalls.drain(startRumResult);\n }\n function doInit(initConfiguration) {\n const eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n // Update the exposed initConfiguration to reflect the bridge and remote configuration overrides\n cachedInitConfiguration = initConfiguration;\n addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));\n if (cachedConfiguration) {\n displayAlreadyInitializedError('DD_RUM', initConfiguration);\n return;\n }\n const 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 // Instrumuent fetch to track network requests\n // This is needed in case the consent is not granted and some cutsomer\n // library (Apollo Client) is storing uninstrumented fetch to be used later\n // The subscrption is needed so that the instrumentation process is completed\n initFetchObservable().subscribe(noop);\n trackingConsentState.tryToInit(configuration.trackingConsent);\n tryStartRum();\n }\n const addDurationVital = (vital) => {\n bufferApiCalls.add((startRumResult) => startRumResult.addDurationVital(vital));\n };\n const strategy = {\n init(initConfiguration, publicApi) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n initFeatureFlags(initConfiguration.enableExperimentalFeatures);\n // Expose the initial configuration regardless of initialization success.\n cachedInitConfiguration = initConfiguration;\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 callPluginsMethod(initConfiguration.plugins, 'onInit', { initConfiguration, publicApi });\n if (initConfiguration.remoteConfigurationId) {\n fetchAndApplyRemoteConfiguration(initConfiguration, doInit);\n }\n else {\n doInit(initConfiguration);\n }\n },\n get initConfiguration() {\n return cachedInitConfiguration;\n },\n getInternalContext: noop,\n stopSession: noop,\n addTiming(name, time = timeStampNow()) {\n bufferApiCalls.add((startRumResult) => startRumResult.addTiming(name, time));\n },\n startView(options, startClocks = clocksNow()) {\n const callback = (startRumResult) => {\n startRumResult.startView(options, startClocks);\n };\n bufferApiCalls.add(callback);\n if (!firstStartViewCall) {\n firstStartViewCall = { options, callback };\n tryStartRum();\n }\n },\n setViewName(name) {\n bufferApiCalls.add((startRumResult) => startRumResult.setViewName(name));\n },\n setViewContext(context) {\n bufferApiCalls.add((startRumResult) => startRumResult.setViewContext(context));\n },\n setViewContextProperty(key, value) {\n bufferApiCalls.add((startRumResult) => startRumResult.setViewContextProperty(key, value));\n },\n getViewContext: () => emptyContext,\n addAction(action, commonContext = getCommonContext()) {\n bufferApiCalls.add((startRumResult) => startRumResult.addAction(action, commonContext));\n },\n addError(providedError, commonContext = getCommonContext()) {\n bufferApiCalls.add((startRumResult) => startRumResult.addError(providedError, commonContext));\n },\n addFeatureFlagEvaluation(key, value) {\n bufferApiCalls.add((startRumResult) => startRumResult.addFeatureFlagEvaluation(key, value));\n },\n startDurationVital(name, options) {\n return startDurationVital(customVitalsState, name, options);\n },\n stopDurationVital(name, options) {\n stopDurationVital(addDurationVital, customVitalsState, name, options);\n },\n addDurationVital,\n };\n return strategy;\n}\nfunction overrideInitConfigurationForBridge(initConfiguration) {\n var _a, _b;\n return {\n ...initConfiguration,\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n defaultPrivacyLevel: (_a = initConfiguration.defaultPrivacyLevel) !== null && _a !== void 0 ? _a : (_b = getEventBridge()) === null || _b === void 0 ? void 0 : _b.getPrivacyLevel(),\n };\n}\n//# sourceMappingURL=preStartRum.js.map","import { addTelemetryUsage, createContextManager, deepClone, makePublicApi, monitor, clocksNow, callMonitored, createHandlingStack, sanitize, createIdentityEncoder, createCustomerDataTrackerManager, storeContextManager, displayAlreadyInitializedError, createTrackingConsentState, timeStampToClocks, } from '@datadog/browser-core';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { createCustomVitalsState } from '../domain/vital/vitalCollection';\nimport { callPluginsMethod } from '../domain/plugins';\nimport { createPreStartStrategy } from './preStartRum';\nconst RUM_STORAGE_KEY = 'rum';\nexport function makeRumPublicApi(startRumImpl, recorderApi, options = {}) {\n const customerDataTrackerManager = createCustomerDataTrackerManager(0 /* CustomerDataCompressionStatus.Unknown */);\n const globalContextManager = createContextManager('global context', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(2 /* CustomerDataType.GlobalContext */),\n });\n const userContextManager = createContextManager('user', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */),\n propertiesConfig: {\n id: { type: 'string' },\n name: { type: 'string' },\n email: { type: 'string' },\n },\n });\n const accountContextManager = createContextManager('account', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */),\n propertiesConfig: {\n id: { type: 'string', required: true },\n name: { type: 'string' },\n },\n });\n const trackingConsentState = createTrackingConsentState();\n const customVitalsState = createCustomVitalsState();\n function getCommonContext() {\n return buildCommonContext(globalContextManager, userContextManager, accountContextManager, recorderApi);\n }\n let strategy = createPreStartStrategy(options, getCommonContext, trackingConsentState, customVitalsState, (configuration, deflateWorker, initialViewOptions) => {\n if (configuration.storeContextsAcrossPages) {\n storeContextManager(configuration, globalContextManager, RUM_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n storeContextManager(configuration, userContextManager, RUM_STORAGE_KEY, 1 /* CustomerDataType.User */);\n storeContextManager(configuration, accountContextManager, RUM_STORAGE_KEY, 4 /* CustomerDataType.Account */);\n }\n customerDataTrackerManager.setCompressionStatus(deflateWorker ? 1 /* CustomerDataCompressionStatus.Enabled */ : 2 /* CustomerDataCompressionStatus.Disabled */);\n const startRumResult = startRumImpl(configuration, recorderApi, customerDataTrackerManager, getCommonContext, initialViewOptions, deflateWorker && options.createDeflateEncoder\n ? (streamId) => options.createDeflateEncoder(configuration, deflateWorker, streamId)\n : createIdentityEncoder, trackingConsentState, customVitalsState);\n recorderApi.onRumStart(startRumResult.lifeCycle, configuration, startRumResult.session, startRumResult.viewHistory, deflateWorker);\n strategy = createPostStartStrategy(strategy, startRumResult);\n callPluginsMethod(configuration.plugins, 'onRumStart', { strategy });\n return startRumResult;\n });\n const startView = monitor((options) => {\n const sanitizedOptions = typeof options === 'object' ? options : { name: options };\n if (sanitizedOptions.context) {\n customerDataTrackerManager.getOrCreateTracker(3 /* CustomerDataType.View */).updateCustomerData(sanitizedOptions.context);\n }\n strategy.startView(sanitizedOptions);\n addTelemetryUsage({ feature: 'start-view' });\n });\n const rumPublicApi = makePublicApi({\n init: monitor((initConfiguration) => {\n strategy.init(initConfiguration, rumPublicApi);\n }),\n setTrackingConsent: monitor((trackingConsent) => {\n trackingConsentState.update(trackingConsent);\n addTelemetryUsage({ feature: 'set-tracking-consent', tracking_consent: trackingConsent });\n }),\n setViewName: monitor((name) => {\n strategy.setViewName(name);\n addTelemetryUsage({ feature: 'set-view-name' });\n }),\n setViewContext: monitor((context) => {\n strategy.setViewContext(context);\n addTelemetryUsage({ feature: 'set-view-context' });\n }),\n setViewContextProperty: monitor((key, value) => {\n strategy.setViewContextProperty(key, value);\n addTelemetryUsage({ feature: 'set-view-context-property' });\n }),\n getViewContext: monitor(() => {\n addTelemetryUsage({ feature: 'set-view-context-property' });\n return strategy.getViewContext();\n }),\n setGlobalContext: monitor((context) => {\n globalContextManager.setContext(context);\n addTelemetryUsage({ feature: 'set-global-context' });\n }),\n getGlobalContext: monitor(() => globalContextManager.getContext()),\n setGlobalContextProperty: monitor((key, value) => {\n globalContextManager.setContextProperty(key, value);\n addTelemetryUsage({ feature: 'set-global-context' });\n }),\n removeGlobalContextProperty: monitor((key) => globalContextManager.removeContextProperty(key)),\n clearGlobalContext: monitor(() => globalContextManager.clearContext()),\n getInternalContext: monitor((startTime) => strategy.getInternalContext(startTime)),\n getInitConfiguration: monitor(() => deepClone(strategy.initConfiguration)),\n addAction: (name, context) => {\n const handlingStack = createHandlingStack('action');\n callMonitored(() => {\n strategy.addAction({\n name: sanitize(name),\n context: sanitize(context),\n startClocks: clocksNow(),\n type: \"custom\" /* ActionType.CUSTOM */,\n handlingStack,\n });\n addTelemetryUsage({ feature: 'add-action' });\n });\n },\n addError: (error, context) => {\n const handlingStack = createHandlingStack('error');\n callMonitored(() => {\n strategy.addError({\n error, // Do not sanitize error here, it is needed unserialized by computeRawError()\n handlingStack,\n context: sanitize(context),\n startClocks: clocksNow(),\n });\n addTelemetryUsage({ feature: 'add-error' });\n });\n },\n addTiming: monitor((name, time) => {\n // TODO: next major decide to drop relative time support or update its behaviour\n strategy.addTiming(sanitize(name), time);\n }),\n setUser: monitor((newUser) => {\n userContextManager.setContext(newUser);\n addTelemetryUsage({ feature: 'set-user' });\n }),\n getUser: monitor(userContextManager.getContext),\n setUserProperty: monitor((key, property) => {\n userContextManager.setContextProperty(key, property);\n addTelemetryUsage({ feature: 'set-user' });\n }),\n removeUserProperty: monitor(userContextManager.removeContextProperty),\n clearUser: monitor(userContextManager.clearContext),\n setAccount: monitor(accountContextManager.setContext),\n getAccount: monitor(accountContextManager.getContext),\n setAccountProperty: monitor(accountContextManager.setContextProperty),\n removeAccountProperty: monitor(accountContextManager.removeContextProperty),\n clearAccount: monitor(accountContextManager.clearContext),\n startView,\n stopSession: monitor(() => {\n strategy.stopSession();\n addTelemetryUsage({ feature: 'stop-session' });\n }),\n addFeatureFlagEvaluation: monitor((key, value) => {\n strategy.addFeatureFlagEvaluation(sanitize(key), sanitize(value));\n addTelemetryUsage({ feature: 'add-feature-flag-evaluation' });\n }),\n getSessionReplayLink: monitor(() => recorderApi.getSessionReplayLink()),\n startSessionReplayRecording: monitor((options) => {\n recorderApi.start(options);\n addTelemetryUsage({ feature: 'start-session-replay-recording', force: options && options.force });\n }),\n stopSessionReplayRecording: monitor(() => recorderApi.stop()),\n addDurationVital: monitor((name, options) => {\n addTelemetryUsage({ feature: 'add-duration-vital' });\n strategy.addDurationVital({\n name: sanitize(name),\n type: \"duration\" /* VitalType.DURATION */,\n startClocks: timeStampToClocks(options.startTime),\n duration: options.duration,\n context: sanitize(options && options.context),\n description: sanitize(options && options.description),\n });\n }),\n startDurationVital: monitor((name, options) => {\n addTelemetryUsage({ feature: 'start-duration-vital' });\n return strategy.startDurationVital(sanitize(name), {\n context: sanitize(options && options.context),\n description: sanitize(options && options.description),\n });\n }),\n stopDurationVital: monitor((nameOrRef, options) => {\n addTelemetryUsage({ feature: 'stop-duration-vital' });\n strategy.stopDurationVital(typeof nameOrRef === 'string' ? sanitize(nameOrRef) : nameOrRef, {\n context: sanitize(options && options.context),\n description: sanitize(options && options.description),\n });\n }),\n });\n return rumPublicApi;\n}\nfunction createPostStartStrategy(preStartStrategy, startRumResult) {\n return {\n init: (initConfiguration) => {\n displayAlreadyInitializedError('DD_RUM', initConfiguration);\n },\n initConfiguration: preStartStrategy.initConfiguration,\n ...startRumResult,\n };\n}\n//# sourceMappingURL=rumPublicApi.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n const MutationObserver = getMutationObserverConstructor();\n return new Observable((observable) => {\n if (!MutationObserver) {\n return;\n }\n const observer = new MutationObserver(monitor(() => observable.notify()));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return () => observer.disconnect();\n });\n}\nexport function getMutationObserverConstructor() {\n let constructor;\n const 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 const patchedInstance = new browserWindow.MutationObserver(noop);\n const 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 { instrumentMethod, Observable } from '@datadog/browser-core';\nexport function createWindowOpenObservable() {\n const observable = new Observable();\n const { stop } = instrumentMethod(window, 'open', () => observable.notify());\n return { observable, stop };\n}\n//# sourceMappingURL=windowOpenObservable.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Allows declaring and enforcing modifications to specific fields of an object.\n * Only supports modifying properties of an object (even if nested in an array).\n * Does not support array manipulation (adding/removing items).\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n const clone = deepClone(object);\n const result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) => \n // Traverse both object and clone simultaneously up to the path and apply the modification from the clone to the original object when the type is valid\n setValueAtPath(object, clone, fieldPath.split(/\\.|(?=\\[\\])/), fieldType));\n return result;\n}\nfunction setValueAtPath(object, clone, pathSegments, fieldType) {\n const [field, ...restPathSegments] = pathSegments;\n if (field === '[]') {\n if (Array.isArray(object) && Array.isArray(clone)) {\n object.forEach((item, i) => setValueAtPath(item, clone[i], restPathSegments, fieldType));\n }\n return;\n }\n if (!isValidObject(object) || !isValidObject(clone)) {\n return;\n }\n if (restPathSegments.length > 0) {\n return setValueAtPath(object[field], clone[field], restPathSegments, fieldType);\n }\n setNestedValue(object, field, clone[field], fieldType);\n}\nfunction setNestedValue(object, field, value, fieldType) {\n const newType = getType(value);\n if (newType === fieldType) {\n object[field] = sanitize(value);\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n object[field] = {};\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, round, isExperimentalFeatureEnabled, ExperimentalFeature, getConnectivity, addTelemetryDebug, } from '@datadog/browser-core';\nimport { limitModification } from './limitModification';\nconst VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nconst USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nconst ROOT_MODIFIABLE_FIELD_PATHS = {\n service: 'string',\n version: 'string',\n};\nlet modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, hooks, sessionManager, viewHistory, urlContexts, displayContext, getCommonContext, reportError) {\n modifiableFieldPathsByEvent = {\n [\"view\" /* RumEventType.VIEW */]: {\n 'view.performance.lcp.resource_url': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n },\n [\"error\" /* RumEventType.ERROR */]: {\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n ...ROOT_MODIFIABLE_FIELD_PATHS,\n },\n [\"resource\" /* RumEventType.RESOURCE */]: {\n 'resource.url': 'string',\n ...(isExperimentalFeatureEnabled(ExperimentalFeature.WRITABLE_RESOURCE_GRAPHQL)\n ? { 'resource.graphql': 'object' }\n : {}),\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n ...ROOT_MODIFIABLE_FIELD_PATHS,\n },\n [\"action\" /* RumEventType.ACTION */]: {\n 'action.target.name': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n ...ROOT_MODIFIABLE_FIELD_PATHS,\n },\n [\"long_task\" /* RumEventType.LONG_TASK */]: {\n 'long_task.scripts[].source_url': 'string',\n 'long_task.scripts[].invoker': 'string',\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n },\n [\"vital\" /* RumEventType.VITAL */]: {\n ...USER_CUSTOMIZABLE_FIELD_PATHS,\n ...VIEW_MODIFIABLE_FIELD_PATHS,\n },\n };\n const eventRateLimiters = {\n [\"error\" /* RumEventType.ERROR */]: createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n [\"action\" /* RumEventType.ACTION */]: createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n [\"vital\" /* RumEventType.VITAL */]: createEventRateLimiter(\"vital\" /* RumEventType.VITAL */, configuration.eventRateLimiterThreshold, reportError),\n };\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, ({ startTime, duration, rawRumEvent, domainContext, savedCommonContext, customerContext }) => {\n const viewHistoryEntry = viewHistory.findView(startTime);\n const urlContext = urlContexts.findUrl(startTime);\n const session = sessionManager.findTrackedSession(startTime);\n if (session &&\n viewHistoryEntry &&\n !urlContext &&\n isExperimentalFeatureEnabled(ExperimentalFeature.MISSING_URL_CONTEXT_TELEMETRY)) {\n addTelemetryDebug('Missing URL entry', {\n debug: {\n eventType: rawRumEvent.type,\n startTime,\n urlEntries: urlContexts.getAllEntries(),\n urlDeletedEntries: urlContexts.getDeletedEntries(),\n viewEntries: viewHistory.getAllEntries(),\n viewDeletedEntries: viewHistory.getDeletedEntries(),\n },\n });\n }\n if (session && viewHistoryEntry && urlContext) {\n const commonContext = savedCommonContext || getCommonContext();\n const 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() ? \"6.5.1\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n source: 'browser',\n session: {\n id: session.id,\n type: \"user\" /* SessionType.USER */,\n },\n display: displayContext.get(),\n connectivity: getConnectivity(),\n context: commonContext.context,\n };\n const serverRumEvent = combine(rumContext, hooks.triggerHook(0 /* HookNames.Assemble */, {\n eventType: rawRumEvent.type,\n startTime,\n duration,\n }), { context: customerContext }, rawRumEvent);\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 =\n session.sessionReplay === 1 /* SessionReplayState.SAMPLED */;\n }\n if (session.anonymousId && !commonContext.user.anonymous_id && !!configuration.trackAnonymousUser) {\n commonContext.user.anonymous_id = session.anonymousId;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (!isEmptyObject(commonContext.account) && commonContext.account.id) {\n ;\n serverRumEvent.account = commonContext.account;\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 const result = limitModification(event, modifiableFieldPathsByEvent[event.type], (event) => beforeSend(event, domainContext));\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 const rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\n//# sourceMappingURL=assembly.js.map","/**\n * Internal context keep returning v1 format\n * to not break compatibility with logs data format\n */\nexport function startInternalContext(applicationId, sessionManager, viewHistory, actionContexts, urlContexts) {\n return {\n get: (startTime) => {\n const viewContext = viewHistory.findView(startTime);\n const urlContext = urlContexts.findUrl(startTime);\n const session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n const actionId = actionContexts.findActionId(startTime);\n return {\n application_id: applicationId,\n session_id: session.id,\n user_action: actionId ? { id: actionId } : undefined,\n view: { id: viewContext.id, name: viewContext.name, referrer: urlContext.referrer, url: urlContext.url },\n };\n }\n },\n };\n}\n//# sourceMappingURL=internalContext.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport const LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { SESSION_TIME_OUT_DELAY, createValueHistory } from '@datadog/browser-core';\nexport const VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewHistory(lifeCycle) {\n const viewValueHistory = createValueHistory({ expireDelay: VIEW_CONTEXT_TIME_OUT_DELAY });\n lifeCycle.subscribe(1 /* LifeCycleEventType.BEFORE_VIEW_CREATED */, (view) => {\n viewValueHistory.add(buildViewHistoryEntry(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(6 /* LifeCycleEventType.AFTER_VIEW_ENDED */, ({ endClocks }) => {\n viewValueHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(3 /* LifeCycleEventType.BEFORE_VIEW_UPDATED */, (viewUpdate) => {\n const currentView = viewValueHistory.find(viewUpdate.startClocks.relative);\n if (currentView && viewUpdate.name) {\n currentView.name = viewUpdate.name;\n }\n if (currentView && viewUpdate.context) {\n currentView.context = viewUpdate.context;\n }\n });\n lifeCycle.subscribe(10 /* LifeCycleEventType.SESSION_RENEWED */, () => {\n viewValueHistory.reset();\n });\n function buildViewHistoryEntry(view) {\n return {\n service: view.service,\n version: view.version,\n context: view.context,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: (startTime) => viewValueHistory.find(startTime),\n getAllEntries: () => viewValueHistory.getAllEntries(),\n getDeletedEntries: () => viewValueHistory.getDeletedEntries(),\n stop: () => {\n viewValueHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewHistory.js.map","import { addTelemetryDebug, elapsed, getPathName, isValidUrl, toServerDuration, isIntakeUrl, } from '@datadog/browser-core';\nexport const FAKE_INITIAL_DOCUMENT = 'initial_document';\nconst RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, (initiatorType) => FAKE_INITIAL_DOCUMENT === initiatorType],\n [\"xhr\" /* ResourceType.XHR */, (initiatorType) => 'xmlhttprequest' === initiatorType],\n [\"fetch\" /* ResourceType.FETCH */, (initiatorType) => 'fetch' === initiatorType],\n [\"beacon\" /* ResourceType.BEACON */, (initiatorType) => 'beacon' === initiatorType],\n [\"css\" /* ResourceType.CSS */, (_, path) => /\\.css$/i.test(path)],\n [\"js\" /* ResourceType.JS */, (_, path) => /\\.js$/i.test(path)],\n [\n \"image\" /* ResourceType.IMAGE */,\n (initiatorType, path) => ['image', 'img', 'icon'].includes(initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null,\n ],\n [\"font\" /* ResourceType.FONT */, (_, path) => /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null],\n [\n \"media\" /* ResourceType.MEDIA */,\n (initiatorType, path) => ['audio', 'video'].includes(initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null,\n ],\n];\nexport function computeResourceEntryType(entry) {\n const url = entry.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(`Failed to construct URL for \"${entry.name}\"`);\n return \"other\" /* ResourceType.OTHER */;\n }\n const path = getPathName(url);\n for (const [type, isType] of RESOURCE_TYPES) {\n if (isType(entry.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder(...numbers) {\n for (let 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 isResourceEntryRequestType(entry) {\n return entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch';\n}\nexport function computeResourceEntryDuration(entry) {\n const { duration, startTime, responseEnd } = entry;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return elapsed(startTime, responseEnd);\n }\n return duration;\n}\nexport function computeResourceEntryDetails(entry) {\n if (!hasValidResourceEntryTimings(entry)) {\n return undefined;\n }\n const { startTime, fetchStart, workerStart, redirectStart, redirectEnd, domainLookupStart, domainLookupEnd, connectStart, secureConnectionStart, connectEnd, requestStart, responseStart, responseEnd, } = entry;\n const details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a worker processing time is recorded\n if (0 < workerStart && workerStart < fetchStart) {\n details.worker = formatTiming(startTime, workerStart, fetchStart);\n }\n // Make sure a connection occurred\n if (fetchStart < connectEnd) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (connectStart <= secureConnectionStart && secureConnectionStart <= connectEnd) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (fetchStart < domainLookupEnd) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n // Make sure a redirection occurred\n if (startTime < redirectEnd) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\n/**\n * Entries with negative duration are unexpected and should be dismissed. The intake will ignore RUM\n * Resource events with negative durations anyway.\n * Since Chromium 128, more entries have unexpected negative durations, see\n * https://issues.chromium.org/issues/363031537\n */\nexport function hasValidResourceEntryDuration(entry) {\n return entry.duration >= 0;\n}\nexport function hasValidResourceEntryTimings(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 const areCommonTimingsInOrder = areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd);\n const areRedirectionTimingsInOrder = hasRedirection(entry)\n ? areInOrder(entry.startTime, entry.redirectStart, entry.redirectEnd, entry.fetchStart)\n : true;\n return areCommonTimingsInOrder && areRedirectionTimingsInOrder;\n}\nfunction hasRedirection(entry) {\n return entry.redirectEnd > entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n if (origin <= start && start <= end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n }\n}\n/**\n * The 'nextHopProtocol' is an empty string for cross-origin resources without CORS headers,\n * meaning the protocol is unknown, and we shouldn't report it.\n * https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/nextHopProtocol#cross-origin_resources\n */\nexport function computeResourceEntryProtocol(entry) {\n return entry.nextHopProtocol === '' ? undefined : entry.nextHopProtocol;\n}\n/**\n * Handles the 'deliveryType' property to distinguish between supported values ('cache', 'navigational-prefetch'),\n * undefined (unsupported in some browsers), and other cases ('other' for unknown or unrecognized values).\n * see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/deliveryType\n */\nexport function computeResourceEntryDeliveryType(entry) {\n return entry.deliveryType === '' ? 'other' : entry.deliveryType;\n}\nexport function computeResourceEntrySize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n const { encodedBodySize, decodedBodySize, transferSize } = entry;\n return {\n size: decodedBodySize,\n encoded_body_size: encodedBodySize,\n decoded_body_size: decodedBodySize,\n transfer_size: transferSize,\n };\n }\n return {\n size: undefined,\n encoded_body_size: undefined,\n decoded_body_size: undefined,\n transfer_size: undefined,\n };\n}\nexport function isAllowedRequestUrl(url) {\n return url && !isIntakeUrl(url);\n}\nconst DATA_URL_REGEX = /data:(.+)?(;base64)?,/g;\nexport const MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 24000;\nexport function isLongDataUrl(url) {\n if (url.length <= MAX_ATTRIBUTE_VALUE_CHAR_LENGTH) {\n return false;\n }\n else if (url.substring(0, 5) === 'data:') {\n // Avoid String.match RangeError: Maximum call stack size exceeded\n url = url.substring(0, MAX_ATTRIBUTE_VALUE_CHAR_LENGTH);\n return true;\n }\n return false;\n}\nexport function sanitizeDataUrl(url) {\n return `${url.match(DATA_URL_REGEX)[0]}[...]`;\n}\n//# sourceMappingURL=resourceUtils.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nlet nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n const tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n const subscription = initXhrObservable(configuration).subscribe((rawContext) => {\n const context = rawContext;\n if (!isAllowedRequestUrl(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 isAborted: context.isAborted,\n handlingStack: context.handlingStack,\n });\n break;\n }\n });\n return { stop: () => subscription.unsubscribe() };\n}\nexport function trackFetch(lifeCycle, tracer) {\n const subscription = initFetchObservable().subscribe((rawContext) => {\n const context = rawContext;\n if (!isAllowedRequestUrl(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, (duration) => {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(8 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n 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 isAborted: context.isAborted,\n handlingStack: context.handlingStack,\n });\n });\n break;\n }\n });\n return { stop: () => subscription.unsubscribe() };\n}\nfunction getNextRequestIndex() {\n const result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n const 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, () => {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","import { isNumber } from '@datadog/browser-core';\nexport function discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=discardNegativeDuration.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts({ lifeCycle, isChildEvent, onChange: callback = noop, }) {\n const eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n const subscription = lifeCycle.subscribe(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, (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: () => {\n subscription.unsubscribe();\n },\n eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { addEventListeners, dateNow, relativeNow } from '@datadog/browser-core';\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nexport function retrieveFirstInputTiming(configuration, callback) {\n const startTimeStamp = dateNow();\n let timingSent = false;\n const { stop: removeEventListeners } = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"mousedown\" /* DOM_EVENT.MOUSE_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */], (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 const timing = {\n entryType: '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 cancelable: false,\n target: null,\n toJSON: () => ({}),\n };\n if (evt.type === \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true });\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, [\"pointerup\" /* DOM_EVENT.POINTER_UP */, \"pointercancel\" /* DOM_EVENT.POINTER_CANCEL */], (event) => {\n if (event.type === \"pointerup\" /* DOM_EVENT.POINTER_UP */) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n const delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\n//# sourceMappingURL=firstInputPolyfill.js.map","import { addEventListener, Observable, setTimeout, clearTimeout, monitor } from '@datadog/browser-core';\nimport { hasValidResourceEntryDuration, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { retrieveFirstInputTiming } from './firstInputPolyfill';\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[\"LONG_ANIMATION_FRAME\"] = \"long-animation-frame\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nexport function createPerformanceObservable(configuration, options) {\n return new Observable((observable) => {\n if (!window.PerformanceObserver) {\n return;\n }\n const handlePerformanceEntries = (entries) => {\n const rumPerformanceEntries = filterRumPerformanceEntries(entries);\n if (rumPerformanceEntries.length > 0) {\n observable.notify(rumPerformanceEntries);\n }\n };\n let timeoutId;\n let isObserverInitializing = true;\n const observer = new PerformanceObserver(monitor((entries) => {\n // In Safari the performance observer callback is synchronous.\n // Because the buffered performance entry list can be quite large we delay the computation to prevent the SDK from blocking the main thread on init\n if (isObserverInitializing) {\n timeoutId = setTimeout(() => handlePerformanceEntries(entries.getEntries()));\n }\n else {\n handlePerformanceEntries(entries.getEntries());\n }\n }));\n try {\n observer.observe(options);\n }\n catch (_a) {\n // Some old browser versions (<= chrome 74 ) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to getEntriesByType and PerformanceObserver with entryTypes\n // TODO: remove this fallback in the next major version\n const fallbackSupportedEntryTypes = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n if (fallbackSupportedEntryTypes.includes(options.type)) {\n if (options.buffered) {\n timeoutId = setTimeout(() => handlePerformanceEntries(performance.getEntriesByType(options.type)));\n }\n try {\n observer.observe({ entryTypes: [options.type] });\n }\n catch (_b) {\n // Old versions of Safari are throwing \"entryTypes contained only unsupported types\"\n // errors when observing only unsupported entry types.\n //\n // We could use `supportPerformanceTimingEvent` to make sure we don't invoke\n // `observer.observe` with an unsupported entry type, but Safari 11 and 12 don't support\n // `Performance.supportedEntryTypes`, so doing so would lose support for these versions\n // even if they do support the entry type.\n return;\n }\n }\n }\n isObserverInitializing = false;\n manageResourceTimingBufferFull(configuration);\n let stopFirstInputTiming;\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT) &&\n options.type === RumPerformanceEntryType.FIRST_INPUT) {\n ;\n ({ stop: stopFirstInputTiming } = retrieveFirstInputTiming(configuration, (timing) => {\n handlePerformanceEntries([timing]);\n }));\n }\n return () => {\n observer.disconnect();\n if (stopFirstInputTiming) {\n stopFirstInputTiming();\n }\n clearTimeout(timeoutId);\n };\n });\n}\nlet resourceTimingBufferFullListener;\nfunction manageResourceTimingBufferFull(configuration) {\n if (!resourceTimingBufferFullListener && supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n resourceTimingBufferFullListener = addEventListener(configuration, performance, 'resourcetimingbufferfull', () => {\n performance.clearResourceTimings();\n });\n }\n return () => {\n resourceTimingBufferFullListener === null || resourceTimingBufferFullListener === void 0 ? void 0 : resourceTimingBufferFullListener.stop();\n };\n}\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}\nfunction filterRumPerformanceEntries(entries) {\n return entries.filter((entry) => !isForbiddenResource(entry));\n}\nfunction isForbiddenResource(entry) {\n return (entry.entryType === RumPerformanceEntryType.RESOURCE &&\n (!isAllowedRequestUrl(entry.name) || !hasValidResourceEntryDuration(entry)));\n}\n//# sourceMappingURL=performanceObservable.js.map","import { matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout } from '@datadog/browser-core';\nimport { createPerformanceObservable, RumPerformanceEntryType } from '../browser/performanceObservable';\n// Delay to wait for a page activity to validate the tracking process\nexport const PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport const 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, windowOpenObservable, configuration, pageActivityEndCallback, maxDuration) {\n const pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, windowOpenObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n let pageActivityEndTimeoutId;\n let hasCompleted = false;\n const validationTimeoutId = setTimeout(monitor(() => complete({ hadActivity: false })), PAGE_ACTIVITY_VALIDATION_DELAY);\n const maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(() => complete({ hadActivity: true, end: timeStampNow() })), maxDuration)\n : undefined;\n const pageActivitySubscription = pageActivityObservable.subscribe(({ isBusy }) => {\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n const lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(() => complete({ hadActivity: true, end: lastChangeTime })), PAGE_ACTIVITY_END_DELAY);\n }\n });\n const stop = () => {\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 };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, windowOpenObservable, configuration) {\n return new Observable((observable) => {\n const subscriptions = [];\n let firstRequestIndex;\n let pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), windowOpenObservable.subscribe(notifyPageActivity), createPerformanceObservable(configuration, { type: RumPerformanceEntryType.RESOURCE }).subscribe((entries) => {\n if (entries.some((entry) => !isExcludedUrl(configuration, entry.name))) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(7 /* LifeCycleEventType.REQUEST_STARTED */, (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 */, (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 return () => {\n subscriptions.forEach((s) => 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}\n//# sourceMappingURL=waitPageActivityEnd.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 const 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 let child = node.firstChild;\n while (child) {\n callback(child);\n child = child.nextSibling;\n }\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 { DefaultPrivacyLevel } from '@datadog/browser-core';\nimport { isElementNode, getParentNode, isTextNode } from '../browser/htmlDomUtils';\nexport const 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 const PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport const PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport const PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport const PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport const PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport const PRIVACY_CLASS_PREFIX = 'dd-privacy-';\n// Private Replacement Templates\nexport const CENSORED_STRING_MARK = '***';\nexport const CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport const 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};\nconst 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 const parentNode = getParentNode(node);\n const parentNodePrivacyLevel = parentNode\n ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel, cache)\n : defaultPrivacyLevel;\n const selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n const 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 // 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 const 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 const autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year/new-password/current-password]\n if (autocomplete && (autocomplete.startsWith('cc-') || autocomplete.endsWith('-password'))) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (node.matches(getPrivacySelector(NodePrivacyLevel.HIDDEN))) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (node.matches(getPrivacySelector(NodePrivacyLevel.MASK))) {\n return NodePrivacyLevel.MASK;\n }\n if (node.matches(getPrivacySelector(NodePrivacyLevel.MASK_USER_INPUT))) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (node.matches(getPrivacySelector(NodePrivacyLevel.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 const 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 const censorText = (text) => 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 const parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n let textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n const nodePrivacyLevel = parentNodePrivacyLevel;\n const 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 //