/** * Datadog Browser RUM SDK - Full version with Session Replay and Real User Profiling capabilities. * Use this package to monitor your web application's performance and user experience. * * @packageDocumentation * @see [RUM Browser Monitoring Setup](https://docs.datadoghq.com/real_user_monitoring/browser/) */ // Keep the following in sync with packages/rum-slim/src/entries/main.ts import { defineGlobal, getGlobalObject } from '@openobserve/browser-core' import type { RumPublicApi } from '@openobserve/browser-rum-core' import { makeRumPublicApi, startRum } from '@openobserve/browser-rum-core' import { makeRecorderApi } from '../boot/recorderApi' import { createDeflateEncoder, startDeflateWorker } from '../domain/deflate' import { lazyLoadRecorder } from '../boot/lazyLoadRecorder' import { makeProfilerApi } from '../boot/profilerApi' export type { User, Account, TraceContextInjection, SessionPersistence, TrackingConsent, MatchOption, ProxyFn, Site, Context, ContextValue, ContextArray, RumInternalContext, } from '@openobserve/browser-core' export { DefaultPrivacyLevel } from '@openobserve/browser-core' /** * @deprecated Use {@link DatadogRum} instead */ export type RumGlobal = RumPublicApi export type { RumPublicApi as DatadogRum, RumInitConfiguration, ViewOptions, StartRecordingOptions, AddDurationVitalOptions, DurationVitalOptions, DurationVitalReference, TracingOption, RumPlugin, OnRumStartOptions, PropagatorType, FeatureFlagsForEvents, // Events CommonProperties, RumEvent, RumActionEvent, RumErrorEvent, RumLongTaskEvent, RumResourceEvent, RumViewEvent, RumVitalEvent, // Events context RumEventDomainContext, RumViewEventDomainContext, RumErrorEventDomainContext, RumActionEventDomainContext, RumVitalEventDomainContext, RumFetchResourceEventDomainContext, RumXhrResourceEventDomainContext, RumOtherResourceEventDomainContext, RumLongTaskEventDomainContext, } from '@openobserve/browser-rum-core' const recorderApi = makeRecorderApi(lazyLoadRecorder) const profilerApi = makeProfilerApi() /** * The global RUM instance. Use this to call RUM methods. * * @category Main * @see {@link DatadogRum} * @see [RUM Browser Monitoring Setup](https://docs.datadoghq.com/real_user_monitoring/browser/) */ export const openobserveRum = makeRumPublicApi(startRum, recorderApi, profilerApi, { startDeflateWorker, createDeflateEncoder, sdkName: 'rum', }) interface BrowserWindow extends Window { OO_RUM?: RumPublicApi } defineGlobal(getGlobalObject(), 'OO_RUM', openobserveRum)