@datadog/browser-rum-core
Advanced tools
Comparing version 4.21.2 to 4.22.0
@@ -58,3 +58,3 @@ "use strict"; | ||
if (!configuration.trackViewsManually) { | ||
doStartRum(configuration); | ||
doStartRum(initConfiguration, configuration); | ||
} | ||
@@ -68,3 +68,3 @@ else { | ||
startViewStrategy = function (options) { | ||
doStartRum(configuration, options); | ||
doStartRum(initConfiguration, configuration, options); | ||
}; | ||
@@ -76,4 +76,4 @@ beforeInitCalls.drain(); | ||
} | ||
function doStartRum(configuration, initialViewOptions) { | ||
var startRumResults = startRumImpl(configuration, function () { return ({ | ||
function doStartRum(initConfiguration, configuration, initialViewOptions) { | ||
var startRumResults = startRumImpl(initConfiguration, configuration, function () { return ({ | ||
user: userContextManager.getContext(), | ||
@@ -80,0 +80,0 @@ context: globalContextManager.getContext(), |
@@ -6,6 +6,6 @@ import type { Observable, RawError } from '@datadog/browser-core'; | ||
import type { LocationChange } from '../browser/locationChangeObservable'; | ||
import type { RumConfiguration } from '../domain/configuration'; | ||
import type { RumConfiguration, RumInitConfiguration } from '../domain/configuration'; | ||
import type { ViewOptions } from '../domain/rumEventsCollection/view/trackViews'; | ||
import type { RecorderApi } from './rumPublicApi'; | ||
export declare function startRum(configuration: RumConfiguration, getCommonContext: () => CommonContext, recorderApi: RecorderApi, initialViewOptions?: ViewOptions): { | ||
export declare function startRum(initConfiguration: RumInitConfiguration, configuration: RumConfiguration, getCommonContext: () => CommonContext, recorderApi: RecorderApi, initialViewOptions?: ViewOptions): { | ||
addAction: (action: import("../domain/rumEventsCollection/action/actionCollection").CustomAction, savedCommonContext?: CommonContext | undefined) => void; | ||
@@ -12,0 +12,0 @@ addError: ({ error, handlingStack, startClocks, context: customerContext }: import("../domain/rumEventsCollection/error/errorCollection").ProvidedError, savedCommonContext?: CommonContext | undefined) => void; |
@@ -23,3 +23,4 @@ "use strict"; | ||
var locationChangeObservable_1 = require("../browser/locationChangeObservable"); | ||
function startRum(configuration, getCommonContext, recorderApi, initialViewOptions) { | ||
var configuration_1 = require("../domain/configuration"); | ||
function startRum(initConfiguration, configuration, getCommonContext, recorderApi, initialViewOptions) { | ||
var lifeCycle = new lifeCycle_1.LifeCycle(); | ||
@@ -57,2 +58,3 @@ var telemetry = startRumTelemetry(configuration); | ||
var _a = startRumEventCollection(lifeCycle, configuration, location, session, locationChangeObservable, domMutationObservable, getCommonContext, reportError), viewContexts = _a.viewContexts, foregroundContexts = _a.foregroundContexts, urlContexts = _a.urlContexts, actionContexts = _a.actionContexts, addAction = _a.addAction; | ||
(0, browser_core_1.addTelemetryConfiguration)((0, configuration_1.serializeRumConfiguration)(initConfiguration)); | ||
(0, longTaskCollection_1.startLongTaskCollection)(lifeCycle, session); | ||
@@ -78,3 +80,3 @@ (0, resourceCollection_1.startResourceCollection)(lifeCycle, configuration, session); | ||
function startRumTelemetry(configuration) { | ||
var telemetry = (0, browser_core_1.startTelemetry)(configuration); | ||
var telemetry = (0, browser_core_1.startTelemetry)("browser-rum-sdk" /* RUM */, configuration); | ||
if ((0, browser_core_1.canUseEventBridge)()) { | ||
@@ -81,0 +83,0 @@ var bridge_1 = (0, browser_core_1.getEventBridge)(); |
@@ -48,3 +48,3 @@ "use strict"; | ||
}, | ||
browser_sdk_version: (0, browser_core_1.canUseEventBridge)() ? "4.21.2" : undefined, | ||
browser_sdk_version: (0, browser_core_1.canUseEventBridge)() ? "4.22.0" : undefined, | ||
}, | ||
@@ -75,5 +75,2 @@ application: { | ||
serverRumEvent.context = (0, browser_core_1.combine)(commonContext.context, customerContext); | ||
if ((0, browser_core_1.isSimulationActive)()) { | ||
serverRumEvent.context.simulation_label = (0, browser_core_1.getSimulationLabel)(); | ||
} | ||
if (!('has_replay' in serverRumEvent.session)) { | ||
@@ -80,0 +77,0 @@ ; |
@@ -1,2 +0,2 @@ | ||
import type { Configuration, InitConfiguration } from '@datadog/browser-core'; | ||
import type { Configuration, InitConfiguration, MatchOption, RawTelemetryConfiguration } from '@datadog/browser-core'; | ||
import { DefaultPrivacyLevel } from '@datadog/browser-core'; | ||
@@ -12,4 +12,4 @@ import type { RumEventDomainContext } from '../domainContext.types'; | ||
premiumSampleRate?: number | undefined; | ||
excludedActivityUrls?: ReadonlyArray<string | RegExp> | undefined; | ||
allowedTracingOrigins?: ReadonlyArray<string | RegExp> | undefined; | ||
excludedActivityUrls?: MatchOption[] | undefined; | ||
allowedTracingOrigins?: MatchOption[] | undefined; | ||
tracingSampleRate?: number | undefined; | ||
@@ -32,5 +32,5 @@ defaultPrivacyLevel?: DefaultPrivacyLevel | undefined; | ||
actionNameAttribute: string | undefined; | ||
allowedTracingOrigins: Array<string | RegExp>; | ||
allowedTracingOrigins: MatchOption[]; | ||
tracingSampleRate: number | undefined; | ||
excludedActivityUrls: Array<string | RegExp>; | ||
excludedActivityUrls: MatchOption[]; | ||
applicationId: string; | ||
@@ -48,1 +48,2 @@ defaultPrivacyLevel: DefaultPrivacyLevel; | ||
export declare function validateAndBuildRumConfiguration(initConfiguration: RumInitConfiguration): RumConfiguration | undefined; | ||
export declare function serializeRumConfiguration(configuration: RumInitConfiguration): RawTelemetryConfiguration; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.validateAndBuildRumConfiguration = void 0; | ||
exports.serializeRumConfiguration = exports.validateAndBuildRumConfiguration = void 0; | ||
var browser_core_1 = require("@datadog/browser-core"); | ||
@@ -69,2 +69,19 @@ function validateAndBuildRumConfiguration(initConfiguration) { | ||
exports.validateAndBuildRumConfiguration = validateAndBuildRumConfiguration; | ||
function serializeRumConfiguration(configuration) { | ||
var baseSerializedConfiguration = (0, browser_core_1.serializeConfiguration)(configuration); | ||
return (0, browser_core_1.assign)({ | ||
premium_sample_rate: configuration.premiumSampleRate, | ||
replay_sample_rate: configuration.replaySampleRate, | ||
session_replay_sample_rate: configuration.sessionReplaySampleRate, | ||
trace_sample_rate: configuration.tracingSampleRate, | ||
action_name_attribute: configuration.actionNameAttribute, | ||
use_allowed_tracing_origins: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0, | ||
default_privacy_level: configuration.defaultPrivacyLevel, | ||
use_excluded_activity_urls: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0, | ||
track_frustrations: configuration.trackFrustrations, | ||
track_views_manually: configuration.trackViewsManually, | ||
track_interactions: configuration.trackInteractions, | ||
}, baseSerializedConfiguration); | ||
} | ||
exports.serializeRumConfiguration = serializeRumConfiguration; | ||
//# sourceMappingURL=configuration.js.map |
@@ -19,3 +19,3 @@ "use strict"; | ||
function makeRumBatch(configuration, lifeCycle, reportError) { | ||
var primaryBatch = createRumBatch(configuration.rumEndpointBuilder, true, function () { | ||
var primaryBatch = createRumBatch(configuration.rumEndpointBuilder, function () { | ||
return lifeCycle.notify(9 /* BEFORE_UNLOAD */); | ||
@@ -26,6 +26,6 @@ }); | ||
if (replica !== undefined) { | ||
replicaBatch = createRumBatch(replica.rumEndpointBuilder, false); | ||
replicaBatch = createRumBatch(replica.rumEndpointBuilder); | ||
} | ||
function createRumBatch(endpointBuilder, toPrimaryEndpoint, unloadCallback) { | ||
return new browser_core_1.Batch((0, browser_core_1.createHttpRequest)(endpointBuilder, configuration.batchBytesLimit, reportError, toPrimaryEndpoint), configuration.batchMessagesLimit, configuration.batchBytesLimit, configuration.messageBytesLimit, configuration.flushTimeout, unloadCallback); | ||
function createRumBatch(endpointBuilder, unloadCallback) { | ||
return new browser_core_1.Batch((0, browser_core_1.createHttpRequest)(endpointBuilder, configuration.batchBytesLimit, reportError), configuration.batchMessagesLimit, configuration.batchBytesLimit, configuration.messageBytesLimit, configuration.flushTimeout, unloadCallback); | ||
} | ||
@@ -32,0 +32,0 @@ function withReplicaApplicationId(message) { |
@@ -55,3 +55,3 @@ import { willSyntheticsInjectRum, assign, BoundedBuffer, buildCookieOptions, createContextManager, deepClone, makePublicApi, monitor, clocksNow, timeStampNow, display, callMonitored, createHandlingStack, canUseEventBridge, areCookiesAuthorized, } from '@datadog/browser-core'; | ||
if (!configuration.trackViewsManually) { | ||
doStartRum(configuration); | ||
doStartRum(initConfiguration, configuration); | ||
} | ||
@@ -65,3 +65,3 @@ else { | ||
startViewStrategy = function (options) { | ||
doStartRum(configuration, options); | ||
doStartRum(initConfiguration, configuration, options); | ||
}; | ||
@@ -73,4 +73,4 @@ beforeInitCalls.drain(); | ||
} | ||
function doStartRum(configuration, initialViewOptions) { | ||
var startRumResults = startRumImpl(configuration, function () { return ({ | ||
function doStartRum(initConfiguration, configuration, initialViewOptions) { | ||
var startRumResults = startRumImpl(initConfiguration, configuration, function () { return ({ | ||
user: userContextManager.getContext(), | ||
@@ -77,0 +77,0 @@ context: globalContextManager.getContext(), |
@@ -6,6 +6,6 @@ import type { Observable, RawError } from '@datadog/browser-core'; | ||
import type { LocationChange } from '../browser/locationChangeObservable'; | ||
import type { RumConfiguration } from '../domain/configuration'; | ||
import type { RumConfiguration, RumInitConfiguration } from '../domain/configuration'; | ||
import type { ViewOptions } from '../domain/rumEventsCollection/view/trackViews'; | ||
import type { RecorderApi } from './rumPublicApi'; | ||
export declare function startRum(configuration: RumConfiguration, getCommonContext: () => CommonContext, recorderApi: RecorderApi, initialViewOptions?: ViewOptions): { | ||
export declare function startRum(initConfiguration: RumInitConfiguration, configuration: RumConfiguration, getCommonContext: () => CommonContext, recorderApi: RecorderApi, initialViewOptions?: ViewOptions): { | ||
addAction: (action: import("../domain/rumEventsCollection/action/actionCollection").CustomAction, savedCommonContext?: CommonContext | undefined) => void; | ||
@@ -12,0 +12,0 @@ addError: ({ error, handlingStack, startClocks, context: customerContext }: import("../domain/rumEventsCollection/error/errorCollection").ProvidedError, savedCommonContext?: CommonContext | undefined) => void; |
@@ -1,2 +0,2 @@ | ||
import { startTelemetry, canUseEventBridge, getEventBridge } from '@datadog/browser-core'; | ||
import { addTelemetryConfiguration, startTelemetry, canUseEventBridge, getEventBridge, } from '@datadog/browser-core'; | ||
import { createDOMMutationObservable } from '../browser/domMutationObservable'; | ||
@@ -20,3 +20,4 @@ import { startPerformanceCollection } from '../browser/performanceCollection'; | ||
import { createLocationChangeObservable } from '../browser/locationChangeObservable'; | ||
export function startRum(configuration, getCommonContext, recorderApi, initialViewOptions) { | ||
import { serializeRumConfiguration } from '../domain/configuration'; | ||
export function startRum(initConfiguration, configuration, getCommonContext, recorderApi, initialViewOptions) { | ||
var lifeCycle = new LifeCycle(); | ||
@@ -54,2 +55,3 @@ var telemetry = startRumTelemetry(configuration); | ||
var _a = startRumEventCollection(lifeCycle, configuration, location, session, locationChangeObservable, domMutationObservable, getCommonContext, reportError), viewContexts = _a.viewContexts, foregroundContexts = _a.foregroundContexts, urlContexts = _a.urlContexts, actionContexts = _a.actionContexts, addAction = _a.addAction; | ||
addTelemetryConfiguration(serializeRumConfiguration(initConfiguration)); | ||
startLongTaskCollection(lifeCycle, session); | ||
@@ -74,3 +76,3 @@ startResourceCollection(lifeCycle, configuration, session); | ||
function startRumTelemetry(configuration) { | ||
var telemetry = startTelemetry(configuration); | ||
var telemetry = startTelemetry("browser-rum-sdk" /* RUM */, configuration); | ||
if (canUseEventBridge()) { | ||
@@ -77,0 +79,0 @@ var bridge_1 = getEventBridge(); |
@@ -1,2 +0,2 @@ | ||
import { combine, isEmptyObject, limitModification, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, isSimulationActive, getSimulationLabel, } from '@datadog/browser-core'; | ||
import { combine, isEmptyObject, limitModification, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, } from '@datadog/browser-core'; | ||
import { getSyntheticsContext } from './contexts/syntheticsContext'; | ||
@@ -45,3 +45,3 @@ import { getCiTestContext } from './contexts/ciTestContext'; | ||
}, | ||
browser_sdk_version: canUseEventBridge() ? "4.21.2" : undefined, | ||
browser_sdk_version: canUseEventBridge() ? "4.22.0" : undefined, | ||
}, | ||
@@ -72,5 +72,2 @@ application: { | ||
serverRumEvent.context = combine(commonContext.context, customerContext); | ||
if (isSimulationActive()) { | ||
serverRumEvent.context.simulation_label = getSimulationLabel(); | ||
} | ||
if (!('has_replay' in serverRumEvent.session)) { | ||
@@ -77,0 +74,0 @@ ; |
@@ -1,2 +0,2 @@ | ||
import type { Configuration, InitConfiguration } from '@datadog/browser-core'; | ||
import type { Configuration, InitConfiguration, MatchOption, RawTelemetryConfiguration } from '@datadog/browser-core'; | ||
import { DefaultPrivacyLevel } from '@datadog/browser-core'; | ||
@@ -12,4 +12,4 @@ import type { RumEventDomainContext } from '../domainContext.types'; | ||
premiumSampleRate?: number | undefined; | ||
excludedActivityUrls?: ReadonlyArray<string | RegExp> | undefined; | ||
allowedTracingOrigins?: ReadonlyArray<string | RegExp> | undefined; | ||
excludedActivityUrls?: MatchOption[] | undefined; | ||
allowedTracingOrigins?: MatchOption[] | undefined; | ||
tracingSampleRate?: number | undefined; | ||
@@ -32,5 +32,5 @@ defaultPrivacyLevel?: DefaultPrivacyLevel | undefined; | ||
actionNameAttribute: string | undefined; | ||
allowedTracingOrigins: Array<string | RegExp>; | ||
allowedTracingOrigins: MatchOption[]; | ||
tracingSampleRate: number | undefined; | ||
excludedActivityUrls: Array<string | RegExp>; | ||
excludedActivityUrls: MatchOption[]; | ||
applicationId: string; | ||
@@ -48,1 +48,2 @@ defaultPrivacyLevel: DefaultPrivacyLevel; | ||
export declare function validateAndBuildRumConfiguration(initConfiguration: RumInitConfiguration): RumConfiguration | undefined; | ||
export declare function serializeRumConfiguration(configuration: RumInitConfiguration): RawTelemetryConfiguration; |
@@ -1,2 +0,2 @@ | ||
import { assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core'; | ||
import { serializeConfiguration, assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core'; | ||
export function validateAndBuildRumConfiguration(initConfiguration) { | ||
@@ -65,2 +65,18 @@ var _a, _b, _c, _d, _e; | ||
} | ||
export function serializeRumConfiguration(configuration) { | ||
var baseSerializedConfiguration = serializeConfiguration(configuration); | ||
return assign({ | ||
premium_sample_rate: configuration.premiumSampleRate, | ||
replay_sample_rate: configuration.replaySampleRate, | ||
session_replay_sample_rate: configuration.sessionReplaySampleRate, | ||
trace_sample_rate: configuration.tracingSampleRate, | ||
action_name_attribute: configuration.actionNameAttribute, | ||
use_allowed_tracing_origins: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0, | ||
default_privacy_level: configuration.defaultPrivacyLevel, | ||
use_excluded_activity_urls: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0, | ||
track_frustrations: configuration.trackFrustrations, | ||
track_views_manually: configuration.trackViewsManually, | ||
track_interactions: configuration.trackInteractions, | ||
}, baseSerializedConfiguration); | ||
} | ||
//# sourceMappingURL=configuration.js.map |
@@ -15,3 +15,3 @@ import { Batch, combine, createHttpRequest, isTelemetryReplicationAllowed } from '@datadog/browser-core'; | ||
function makeRumBatch(configuration, lifeCycle, reportError) { | ||
var primaryBatch = createRumBatch(configuration.rumEndpointBuilder, true, function () { | ||
var primaryBatch = createRumBatch(configuration.rumEndpointBuilder, function () { | ||
return lifeCycle.notify(9 /* BEFORE_UNLOAD */); | ||
@@ -22,6 +22,6 @@ }); | ||
if (replica !== undefined) { | ||
replicaBatch = createRumBatch(replica.rumEndpointBuilder, false); | ||
replicaBatch = createRumBatch(replica.rumEndpointBuilder); | ||
} | ||
function createRumBatch(endpointBuilder, toPrimaryEndpoint, unloadCallback) { | ||
return new Batch(createHttpRequest(endpointBuilder, configuration.batchBytesLimit, reportError, toPrimaryEndpoint), configuration.batchMessagesLimit, configuration.batchBytesLimit, configuration.messageBytesLimit, configuration.flushTimeout, unloadCallback); | ||
function createRumBatch(endpointBuilder, unloadCallback) { | ||
return new Batch(createHttpRequest(endpointBuilder, configuration.batchBytesLimit, reportError), configuration.batchMessagesLimit, configuration.batchBytesLimit, configuration.messageBytesLimit, configuration.flushTimeout, unloadCallback); | ||
} | ||
@@ -28,0 +28,0 @@ function withReplicaApplicationId(message) { |
{ | ||
"name": "@datadog/browser-rum-core", | ||
"version": "4.21.2", | ||
"version": "4.22.0", | ||
"license": "Apache-2.0", | ||
@@ -15,3 +15,3 @@ "main": "cjs/index.js", | ||
"dependencies": { | ||
"@datadog/browser-core": "4.21.2" | ||
"@datadog/browser-core": "4.22.0" | ||
}, | ||
@@ -26,3 +26,3 @@ "devDependencies": { | ||
}, | ||
"gitHead": "90f0b3a1cd5cf0de53634cdaa1d10deba4c61c66" | ||
"gitHead": "00aab8934115bd56c8cb5f6001a4c2845eecc12c" | ||
} |
@@ -689,3 +689,3 @@ import type { RelativeTime, TimeStamp, Context } from '@datadog/browser-core' | ||
expect(startRumSpy).toHaveBeenCalled() | ||
expect(startRumSpy.calls.argsFor(0)[3]).toEqual({ name: 'foo' }) | ||
expect(startRumSpy.calls.argsFor(0)[4]).toEqual({ name: 'foo' }) | ||
expect(recorderApiOnRumStartSpy).toHaveBeenCalled() | ||
@@ -702,3 +702,3 @@ expect(startViewSpy).not.toHaveBeenCalled() | ||
expect(startRumSpy).toHaveBeenCalled() | ||
expect(startRumSpy.calls.argsFor(0)[3]).toEqual({ name: 'foo' }) | ||
expect(startRumSpy.calls.argsFor(0)[4]).toEqual({ name: 'foo' }) | ||
expect(recorderApiOnRumStartSpy).toHaveBeenCalled() | ||
@@ -714,3 +714,3 @@ expect(startViewSpy).not.toHaveBeenCalled() | ||
expect(startRumSpy).toHaveBeenCalled() | ||
expect(startRumSpy.calls.argsFor(0)[3]).toEqual({ name: 'foo' }) | ||
expect(startRumSpy.calls.argsFor(0)[4]).toEqual({ name: 'foo' }) | ||
expect(recorderApiOnRumStartSpy).toHaveBeenCalled() | ||
@@ -760,3 +760,3 @@ expect(startViewSpy).toHaveBeenCalled() | ||
function getCommonContext() { | ||
return startRumSpy.calls.argsFor(0)[1]() | ||
return startRumSpy.calls.argsFor(0)[2]() | ||
} | ||
@@ -763,0 +763,0 @@ |
@@ -115,3 +115,3 @@ import type { Context, InitConfiguration, TimeStamp, RelativeTime } from '@datadog/browser-core' | ||
if (!configuration.trackViewsManually) { | ||
doStartRum(configuration) | ||
doStartRum(initConfiguration, configuration) | ||
} else { | ||
@@ -125,3 +125,3 @@ // drain beforeInitCalls by buffering them until we start RUM | ||
startViewStrategy = (options) => { | ||
doStartRum(configuration, options) | ||
doStartRum(initConfiguration, configuration, options) | ||
} | ||
@@ -135,4 +135,9 @@ beforeInitCalls.drain() | ||
function doStartRum(configuration: RumConfiguration, initialViewOptions?: ViewOptions) { | ||
function doStartRum( | ||
initConfiguration: RumInitConfiguration, | ||
configuration: RumConfiguration, | ||
initialViewOptions?: ViewOptions | ||
) { | ||
const startRumResults = startRumImpl( | ||
initConfiguration, | ||
configuration, | ||
@@ -139,0 +144,0 @@ () => ({ |
import type { Observable, TelemetryEvent, RawError } from '@datadog/browser-core' | ||
import { startTelemetry, canUseEventBridge, getEventBridge } from '@datadog/browser-core' | ||
import { | ||
TelemetryService, | ||
addTelemetryConfiguration, | ||
startTelemetry, | ||
canUseEventBridge, | ||
getEventBridge, | ||
} from '@datadog/browser-core' | ||
import { createDOMMutationObservable } from '../browser/domMutationObservable' | ||
@@ -24,3 +30,4 @@ import { startPerformanceCollection } from '../browser/performanceCollection' | ||
import { createLocationChangeObservable } from '../browser/locationChangeObservable' | ||
import type { RumConfiguration } from '../domain/configuration' | ||
import type { RumConfiguration, RumInitConfiguration } from '../domain/configuration' | ||
import { serializeRumConfiguration } from '../domain/configuration' | ||
import type { ViewOptions } from '../domain/rumEventsCollection/view/trackViews' | ||
@@ -30,2 +37,3 @@ import type { RecorderApi } from './rumPublicApi' | ||
export function startRum( | ||
initConfiguration: RumInitConfiguration, | ||
configuration: RumConfiguration, | ||
@@ -77,2 +85,3 @@ getCommonContext: () => CommonContext, | ||
) | ||
addTelemetryConfiguration(serializeRumConfiguration(initConfiguration)) | ||
@@ -117,3 +126,3 @@ startLongTaskCollection(lifeCycle, session) | ||
function startRumTelemetry(configuration: RumConfiguration) { | ||
const telemetry = startTelemetry(configuration) | ||
const telemetry = startTelemetry(TelemetryService.RUM, configuration) | ||
if (canUseEventBridge()) { | ||
@@ -120,0 +129,0 @@ const bridge = getEventBridge<'internal_telemetry', TelemetryEvent>()! |
@@ -11,4 +11,2 @@ import type { Context, RawError, EventRateLimiter } from '@datadog/browser-core' | ||
canUseEventBridge, | ||
isSimulationActive, | ||
getSimulationLabel, | ||
} from '@datadog/browser-core' | ||
@@ -139,6 +137,2 @@ import type { RumEventDomainContext } from '../domainContext.types' | ||
if (isSimulationActive()) { | ||
serverRumEvent.context.simulation_label = getSimulationLabel() | ||
} | ||
if (!('has_replay' in serverRumEvent.session)) { | ||
@@ -145,0 +139,0 @@ ;(serverRumEvent.session as Mutable<RumEvent['session']>).has_replay = commonContext.hasReplay |
@@ -183,2 +183,14 @@ import { DefaultPrivacyLevel, display } from '@datadog/browser-core' | ||
it('accepts functions', () => { | ||
const customOriginFunction = (origin: string): boolean => origin === 'foo' | ||
expect( | ||
validateAndBuildRumConfiguration({ | ||
...DEFAULT_INIT_CONFIGURATION, | ||
allowedTracingOrigins: [customOriginFunction], | ||
service: 'bar', | ||
})!.allowedTracingOrigins | ||
).toEqual([customOriginFunction]) | ||
}) | ||
it('does not validate the configuration if a value is provided and service is undefined', () => { | ||
@@ -214,2 +226,14 @@ expect( | ||
it('accepts functions', () => { | ||
const customUrlFunction = (url: string): boolean => url === 'foo' | ||
expect( | ||
validateAndBuildRumConfiguration({ | ||
...DEFAULT_INIT_CONFIGURATION, | ||
excludedActivityUrls: [customUrlFunction], | ||
service: 'bar', | ||
})!.excludedActivityUrls | ||
).toEqual([customUrlFunction]) | ||
}) | ||
it('does not validate the configuration if an incorrect value is provided', () => { | ||
@@ -216,0 +240,0 @@ expect( |
@@ -1,3 +0,4 @@ | ||
import type { Configuration, InitConfiguration } from '@datadog/browser-core' | ||
import type { Configuration, InitConfiguration, MatchOption, RawTelemetryConfiguration } from '@datadog/browser-core' | ||
import { | ||
serializeConfiguration, | ||
assign, | ||
@@ -21,6 +22,6 @@ DefaultPrivacyLevel, | ||
premiumSampleRate?: number | undefined | ||
excludedActivityUrls?: ReadonlyArray<string | RegExp> | undefined | ||
excludedActivityUrls?: MatchOption[] | undefined | ||
// tracing options | ||
allowedTracingOrigins?: ReadonlyArray<string | RegExp> | undefined | ||
allowedTracingOrigins?: MatchOption[] | undefined | ||
tracingSampleRate?: number | undefined | ||
@@ -53,5 +54,5 @@ | ||
actionNameAttribute: string | undefined | ||
allowedTracingOrigins: Array<string | RegExp> | ||
allowedTracingOrigins: MatchOption[] | ||
tracingSampleRate: number | undefined | ||
excludedActivityUrls: Array<string | RegExp> | ||
excludedActivityUrls: MatchOption[] | ||
applicationId: string | ||
@@ -147,1 +148,24 @@ defaultPrivacyLevel: DefaultPrivacyLevel | ||
} | ||
export function serializeRumConfiguration(configuration: RumInitConfiguration): RawTelemetryConfiguration { | ||
const baseSerializedConfiguration = serializeConfiguration(configuration) | ||
return assign( | ||
{ | ||
premium_sample_rate: configuration.premiumSampleRate, | ||
replay_sample_rate: configuration.replaySampleRate, | ||
session_replay_sample_rate: configuration.sessionReplaySampleRate, | ||
trace_sample_rate: configuration.tracingSampleRate, | ||
action_name_attribute: configuration.actionNameAttribute, | ||
use_allowed_tracing_origins: | ||
Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0, | ||
default_privacy_level: configuration.defaultPrivacyLevel, | ||
use_excluded_activity_urls: | ||
Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0, | ||
track_frustrations: configuration.trackFrustrations, | ||
track_views_manually: configuration.trackViewsManually, | ||
track_interactions: configuration.trackInteractions, | ||
}, | ||
baseSerializedConfiguration | ||
) | ||
} |
@@ -110,3 +110,7 @@ import { isIE, objectEntries } from '@datadog/browser-core' | ||
...configuration, | ||
allowedTracingOrigins: [/^https?:\/\/qux\.com/, 'http://bar.com'], | ||
allowedTracingOrigins: [ | ||
/^https?:\/\/qux\.com/, | ||
'http://bar.com', | ||
(origin: string) => origin === 'http://dynamic.com', | ||
], | ||
} | ||
@@ -121,2 +125,3 @@ const stub = xhrStub as unknown as XMLHttpRequest | ||
expect(context.spanId).toBeDefined() | ||
context = { url: 'http://bar.com' } | ||
@@ -126,2 +131,7 @@ tracer.traceXhr(context, stub) | ||
expect(context.spanId).toBeDefined() | ||
context = { url: 'http://dynamic.com' } | ||
tracer.traceXhr(context, stub) | ||
expect(context.traceId).toBeDefined() | ||
expect(context.spanId).toBeDefined() | ||
}) | ||
@@ -326,6 +336,11 @@ }) | ||
...configuration, | ||
allowedTracingOrigins: [/^https?:\/\/qux\.com.*/, 'http://bar.com'], | ||
allowedTracingOrigins: [ | ||
/^https?:\/\/qux\.com.*/, | ||
'http://bar.com', | ||
(origin: string) => origin === 'http://dynamic.com', | ||
], | ||
} | ||
const quxDomainContext: Partial<RumFetchStartContext> = { url: 'http://qux.com' } | ||
const barDomainContext: Partial<RumFetchStartContext> = { url: 'http://bar.com' } | ||
const dynamicDomainContext: Partial<RumFetchStartContext> = { url: 'http://dynamic.com' } | ||
@@ -336,2 +351,3 @@ const tracer = startTracer(configurationWithTracingUrls, sessionManager) | ||
tracer.traceFetch(barDomainContext) | ||
tracer.traceFetch(dynamicDomainContext) | ||
expect(quxDomainContext.traceId).toBeDefined() | ||
@@ -341,2 +357,4 @@ expect(quxDomainContext.spanId).toBeDefined() | ||
expect(barDomainContext.spanId).toBeDefined() | ||
expect(dynamicDomainContext.traceId).toBeDefined() | ||
expect(dynamicDomainContext.spanId).toBeDefined() | ||
}) | ||
@@ -343,0 +361,0 @@ }) |
@@ -138,8 +138,22 @@ import type { RelativeTime, Subscription } from '@datadog/browser-core' | ||
it('ignores resources that should be excluded by configuration', () => { | ||
const { lifeCycle } = setupBuilder.build() | ||
const performanceTiming = { | ||
entryType: 'resource', | ||
name: EXCLUDED_FAKE_URL, | ||
} as RumPerformanceResourceTiming | ||
lifeCycle.notify(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, [performanceTiming]) | ||
const { lifeCycle } = setupBuilder | ||
.withConfiguration({ | ||
excludedActivityUrls: [ | ||
/^https?:\/\/qux\.com.*/, | ||
'http://bar.com', | ||
(url: string) => url === 'http://dynamic.com', | ||
], | ||
}) | ||
.build() | ||
lifeCycle.notify(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, [ | ||
makeFakePerformanceTiming('http://qux.com'), | ||
]) | ||
lifeCycle.notify(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, [ | ||
makeFakePerformanceTiming('http://bar.com'), | ||
]) | ||
lifeCycle.notify(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, [ | ||
makeFakePerformanceTiming('http://dynamic.com'), | ||
]) | ||
expect(events).toEqual([]) | ||
@@ -164,2 +178,8 @@ }) | ||
function makeFakePerformanceTiming(url: string) { | ||
return { | ||
entryType: 'resource', | ||
name: url, | ||
} as RumPerformanceResourceTiming | ||
} | ||
function makeFakeRequestCompleteEvent(requestIndex: number, url = FAKE_URL) { | ||
@@ -166,0 +186,0 @@ return { requestIndex, url } as RequestCompleteEvent |
@@ -38,3 +38,3 @@ import type { Context, EndpointBuilder, TelemetryEvent, Observable, RawError } from '@datadog/browser-core' | ||
): RumBatch { | ||
const primaryBatch = createRumBatch(configuration.rumEndpointBuilder, true, () => | ||
const primaryBatch = createRumBatch(configuration.rumEndpointBuilder, () => | ||
lifeCycle.notify(LifeCycleEventType.BEFORE_UNLOAD) | ||
@@ -46,8 +46,8 @@ ) | ||
if (replica !== undefined) { | ||
replicaBatch = createRumBatch(replica.rumEndpointBuilder, false) | ||
replicaBatch = createRumBatch(replica.rumEndpointBuilder) | ||
} | ||
function createRumBatch(endpointBuilder: EndpointBuilder, toPrimaryEndpoint: boolean, unloadCallback?: () => void) { | ||
function createRumBatch(endpointBuilder: EndpointBuilder, unloadCallback?: () => void) { | ||
return new Batch( | ||
createHttpRequest(endpointBuilder, configuration.batchBytesLimit, reportError, toPrimaryEndpoint), | ||
createHttpRequest(endpointBuilder, configuration.batchBytesLimit, reportError), | ||
configuration.batchMessagesLimit, | ||
@@ -54,0 +54,0 @@ configuration.batchBytesLimit, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1237625
25332
+ Added@datadog/browser-core@4.22.0(transitive)
- Removed@datadog/browser-core@4.21.2(transitive)
Updated@datadog/browser-core@4.22.0