@@ -34,9 +34,17 @@ import type {
3434} from '../domain/vital/vitalCollection'
3535import { startDurationVital , stopDurationVital } from '../domain/vital/vitalCollection'
3636import { callPluginsMethod } from '../domain/plugins'
37+ import { createStreamPlugin } from '../domain/stream'
3738import type { StartRumResult } from './startRum'
3839import type { RumPublicApiOptions , Strategy } from './rumPublicApi'
3940
41+ declare global {
42+ interface Window {
43+ DD_STREAM_PLUGIN : ReturnType < typeof createStreamPlugin >
44+ DD_STREAM : ReturnType < ReturnType < typeof createStreamPlugin > [ 'createStream' ] >
45+ }
46+ }
47+
4048export function createPreStartStrategy (
4149 { ignoreInitIfSyntheticsWillInjectRum = true , startDeflateWorker } : RumPublicApiOptions ,
4250 trackingConsentState : TrackingConsentState ,
@@ -180,6 +188,10 @@ export function createPreStartStrategy(
180188 initFeatureFlags ( initConfiguration . enableExperimentalFeatures )
181189
182190 // Expose the initial configuration regardless of initialization success.
191+ window . DD_STREAM_PLUGIN = createStreamPlugin ( )
192+ window . DD_STREAM = window . DD_STREAM_PLUGIN . createStream ( )
193+
194+ initConfiguration . plugins = ( initConfiguration . plugins ?? [ ] ) . concat ( [ window . DD_STREAM_PLUGIN . plugin ] )
183195 cachedInitConfiguration = initConfiguration
184196
185197 // If we are in a Synthetics test configured to automatically inject a RUM instance, we want
0 commit comments