Socket
Socket
Sign inDemoInstall

@datadog/browser-core

Package Overview
Dependencies
Maintainers
1
Versions
254
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@datadog/browser-core - npm Package Compare versions

Comparing version 4.29.0 to 4.29.1

cjs/tools/runOnReadyState.d.ts

2

cjs/boot/init.js

@@ -9,3 +9,3 @@ "use strict";

var publicApi = (0, utils_1.assign)({
version: "4.29.0",
version: "4.29.1",
// This API method is intentionally not monitored, since the only thing executed is the

@@ -12,0 +12,0 @@ // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and

@@ -66,2 +66,3 @@ export declare const enum DOM_EVENT {

};
export declare function resetUntrustedEventsCount(): void;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addEventListeners = exports.addEventListener = void 0;
exports.resetUntrustedEventsCount = exports.addEventListeners = exports.addEventListener = void 0;
var monitor_1 = require("../tools/monitor");
var getZoneJsOriginalValue_1 = require("../tools/getZoneJsOriginalValue");
var telemetry_1 = require("../domain/telemetry");
/**

@@ -34,8 +35,9 @@ * Add an event listener to an event target object (Window, Element, mock object...). This provides

var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;
var wrappedListener = (0, monitor_1.monitor)(once
? function (event) {
var wrappedListener = (0, monitor_1.monitor)(function (event) {
if (once) {
stop();
listener(event);
}
: listener);
reportUntrustedEvent(event);
listener(event);
});
var options = passive ? { capture: capture, passive: passive } : capture;

@@ -53,2 +55,15 @@ var add = (0, getZoneJsOriginalValue_1.getZoneJsOriginalValue)(eventTarget, 'addEventListener');

exports.addEventListeners = addEventListeners;
var reportedUntrustedEventTypes = new Set();
function reportUntrustedEvent(event) {
var eventType = event.type;
if (event.isTrusted || window.jasmine || reportedUntrustedEventTypes.has(eventType)) {
return;
}
reportedUntrustedEventTypes.add(eventType);
(0, telemetry_1.addTelemetryDebug)('Untrusted event', { event_type: eventType });
}
function resetUntrustedEventsCount() {
reportedUntrustedEventTypes.clear();
}
exports.resetUntrustedEventsCount = resetUntrustedEventsCount;
//# sourceMappingURL=addEventListener.js.map

@@ -25,16 +25,21 @@ "use strict";

build: function (api, retry) {
var tags = ["sdk_version:".concat("4.29.0"), "api:".concat(api)].concat(configurationTags);
var tags = ["sdk_version:".concat("4.29.1"), "api:".concat(api)].concat(configurationTags);
if (retry) {
tags.push("retry_count:".concat(retry.count), "retry_after:".concat(retry.lastFailureStatus));
}
var parameters = 'ddsource=browser' +
"&ddtags=".concat(encodeURIComponent(tags.join(','))) +
"&dd-api-key=".concat(clientToken) +
"&dd-evp-origin-version=".concat(encodeURIComponent("4.29.0")) +
'&dd-evp-origin=browser' +
"&dd-request-id=".concat((0, utils_1.generateUUID)());
var parameters = [
'ddsource=browser',
"ddtags=".concat(encodeURIComponent(tags.join(','))),
"dd-api-key=".concat(clientToken),
"dd-evp-origin-version=".concat(encodeURIComponent("4.29.1")),
'dd-evp-origin=browser',
"dd-request-id=".concat((0, utils_1.generateUUID)()),
];
if (endpointType === 'rum') {
parameters += "&batch_time=".concat((0, timeUtils_1.timeStampNow)());
parameters.push("batch_time=".concat((0, timeUtils_1.timeStampNow)()));
}
var endpointUrl = "".concat(baseUrl, "?").concat(parameters);
if (initConfiguration.internalAnalyticsSubdomain) {
parameters.reverse();
}
var endpointUrl = "".concat(baseUrl, "?").concat(parameters.join('&'));
return proxyUrl ? "".concat(proxyUrl, "?ddforward=").concat(encodeURIComponent(endpointUrl)) : endpointUrl;

@@ -41,0 +46,0 @@ },

@@ -46,3 +46,3 @@ "use strict";

service: telemetryService,
version: "4.29.0",
version: "4.29.1",
source: 'browser',

@@ -49,0 +49,0 @@ _dd: {

@@ -19,2 +19,3 @@ export { Configuration, InitConfiguration, buildCookieOptions, validateAndBuildConfiguration, DefaultPrivacyLevel, EndpointBuilder, isExperimentalFeatureEnabled, updateExperimentalFeatures, resetExperimentalFeatures, serializeConfiguration, } from './domain/configuration';

export { sendToExtension } from './tools/sendToExtension';
export { runOnReadyState } from './tools/runOnReadyState';
export { getZoneJsOriginalValue } from './tools/getZoneJsOriginalValue';

@@ -21,0 +22,0 @@ export { instrumentMethod, instrumentMethodAndCallOriginal, instrumentSetter } from './tools/instrumentMethod';

@@ -17,4 +17,4 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.initFetchObservable = exports.initXhrObservable = exports.COOKIE_ACCESS_DELAY = exports.deleteCookie = exports.setCookie = exports.getCookie = exports.areCookiesAuthorized = exports.getFileFromStackTraceString = exports.toStackTraceString = exports.createHandlingStack = exports.computeRawError = exports.ErrorSource = exports.instrumentSetter = exports.instrumentMethodAndCallOriginal = exports.instrumentMethod = exports.getZoneJsOriginalValue = exports.sendToExtension = exports.startBatchWithReplica = exports.getEventBridge = exports.canUseEventBridge = exports.Batch = exports.createHttpRequest = exports.SESSION_TIME_OUT_DELAY = exports.stopSessionManager = exports.startSessionManager = exports.Observable = exports.setDebugMode = exports.callMonitored = exports.monitor = exports.monitored = exports.addTelemetryConfiguration = exports.isTelemetryReplicationAllowed = exports.resetTelemetry = exports.startFakeTelemetry = exports.addTelemetryError = exports.addTelemetryDebug = exports.startTelemetry = exports.RawReportType = exports.initReportObservable = exports.makePublicApi = exports.defineGlobal = exports.computeStackTrace = exports.trackRuntimeError = exports.serializeConfiguration = exports.resetExperimentalFeatures = exports.updateExperimentalFeatures = exports.isExperimentalFeatureEnabled = exports.DefaultPrivacyLevel = exports.validateAndBuildConfiguration = exports.buildCookieOptions = void 0;
exports.sanitizeUser = exports.checkUser = exports.getSyntheticsResultId = exports.getSyntheticsTestId = exports.willSyntheticsInjectRum = exports.SESSION_COOKIE_NAME = exports.readBytesFromStream = exports.CLEAR_OLD_CONTEXTS_INTERVAL = exports.ContextHistory = exports.limitModification = exports.createContextManager = exports.catchUserErrors = exports.BoundedBuffer = exports.initConsoleObservable = exports.createPageExitObservable = void 0;
exports.initXhrObservable = exports.COOKIE_ACCESS_DELAY = exports.deleteCookie = exports.setCookie = exports.getCookie = exports.areCookiesAuthorized = exports.getFileFromStackTraceString = exports.toStackTraceString = exports.createHandlingStack = exports.computeRawError = exports.ErrorSource = exports.instrumentSetter = exports.instrumentMethodAndCallOriginal = exports.instrumentMethod = exports.getZoneJsOriginalValue = exports.runOnReadyState = exports.sendToExtension = exports.startBatchWithReplica = exports.getEventBridge = exports.canUseEventBridge = exports.Batch = exports.createHttpRequest = exports.SESSION_TIME_OUT_DELAY = exports.stopSessionManager = exports.startSessionManager = exports.Observable = exports.setDebugMode = exports.callMonitored = exports.monitor = exports.monitored = exports.addTelemetryConfiguration = exports.isTelemetryReplicationAllowed = exports.resetTelemetry = exports.startFakeTelemetry = exports.addTelemetryError = exports.addTelemetryDebug = exports.startTelemetry = exports.RawReportType = exports.initReportObservable = exports.makePublicApi = exports.defineGlobal = exports.computeStackTrace = exports.trackRuntimeError = exports.serializeConfiguration = exports.resetExperimentalFeatures = exports.updateExperimentalFeatures = exports.isExperimentalFeatureEnabled = exports.DefaultPrivacyLevel = exports.validateAndBuildConfiguration = exports.buildCookieOptions = void 0;
exports.sanitizeUser = exports.checkUser = exports.getSyntheticsResultId = exports.getSyntheticsTestId = exports.willSyntheticsInjectRum = exports.SESSION_COOKIE_NAME = exports.readBytesFromStream = exports.CLEAR_OLD_CONTEXTS_INTERVAL = exports.ContextHistory = exports.limitModification = exports.createContextManager = exports.catchUserErrors = exports.BoundedBuffer = exports.initConsoleObservable = exports.createPageExitObservable = exports.initFetchObservable = void 0;
var configuration_1 = require("./domain/configuration");

@@ -73,2 +73,4 @@ Object.defineProperty(exports, "buildCookieOptions", { enumerable: true, get: function () { return configuration_1.buildCookieOptions; } });

Object.defineProperty(exports, "sendToExtension", { enumerable: true, get: function () { return sendToExtension_1.sendToExtension; } });
var runOnReadyState_1 = require("./tools/runOnReadyState");
Object.defineProperty(exports, "runOnReadyState", { enumerable: true, get: function () { return runOnReadyState_1.runOnReadyState; } });
var getZoneJsOriginalValue_1 = require("./tools/getZoneJsOriginalValue");

@@ -75,0 +77,0 @@ Object.defineProperty(exports, "getZoneJsOriginalValue", { enumerable: true, get: function () { return getZoneJsOriginalValue_1.getZoneJsOriginalValue; } });

@@ -22,4 +22,5 @@ "use strict";

}
if (options.collectStreamBody)
if (options.collectStreamBody) {
chunks.push(result.value);
}
readBytesCount += result.value.length;

@@ -26,0 +27,0 @@ if (readBytesCount > options.bytesLimit) {

@@ -96,3 +96,2 @@ export declare const ONE_SECOND = 1000;

}, selector: string): boolean;
export declare function runOnReadyState(expectedReadyState: 'complete' | 'interactive', callback: () => void): void;
/**

@@ -99,0 +98,0 @@ * Similar to `typeof`, but distinguish plain objects from `null` and arrays

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cssEscape = exports.matchList = exports.isMatchOption = exports.removeDuplicates = exports.requestIdleCallback = exports.combine = exports.deepClone = exports.mergeInto = exports.getType = exports.runOnReadyState = exports.elementMatches = exports.safeTruncate = exports.findCommaSeparatedValue = exports.getLinkElementOrigin = exports.getLocationOrigin = exports.getGlobalObject = exports.endsWith = exports.startsWith = exports.mapValues = exports.isEmptyObject = exports.objectEntries = exports.objectHasValue = exports.objectValues = exports.isNumber = exports.isPercentage = exports.findLast = exports.find = exports.arrayFrom = exports.includes = exports.jsonStringify = exports.noop = exports.round = exports.performDraw = exports.generateUUID = exports.shallowClone = exports.assign = exports.throttle = exports.ONE_MEBI_BYTE = exports.ONE_KIBI_BYTE = exports.ONE_YEAR = exports.ONE_DAY = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = void 0;
var addEventListener_1 = require("../browser/addEventListener");
exports.cssEscape = exports.matchList = exports.isMatchOption = exports.removeDuplicates = exports.requestIdleCallback = exports.combine = exports.deepClone = exports.mergeInto = exports.getType = exports.elementMatches = exports.safeTruncate = exports.findCommaSeparatedValue = exports.getLinkElementOrigin = exports.getLocationOrigin = exports.getGlobalObject = exports.endsWith = exports.startsWith = exports.mapValues = exports.isEmptyObject = exports.objectEntries = exports.objectHasValue = exports.objectValues = exports.isNumber = exports.isPercentage = exports.findLast = exports.find = exports.arrayFrom = exports.includes = exports.jsonStringify = exports.noop = exports.round = exports.performDraw = exports.generateUUID = exports.shallowClone = exports.assign = exports.throttle = exports.ONE_MEBI_BYTE = exports.ONE_KIBI_BYTE = exports.ONE_YEAR = exports.ONE_DAY = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = void 0;
var display_1 = require("./display");

@@ -283,4 +282,5 @@ var monitor_1 = require("./monitor");

var correctedLength = isLastCharSurrogatePair ? length + 1 : length;
if (candidate.length <= correctedLength)
if (candidate.length <= correctedLength) {
return candidate;
}
return "".concat(candidate.slice(0, correctedLength)).concat(suffix);

@@ -300,12 +300,2 @@ }

exports.elementMatches = elementMatches;
function runOnReadyState(expectedReadyState, callback) {
if (document.readyState === expectedReadyState || document.readyState === 'complete') {
callback();
}
else {
var eventName = expectedReadyState === 'complete' ? "load" /* LOAD */ : "DOMContentLoaded" /* DOM_CONTENT_LOADED */;
(0, addEventListener_1.addEventListener)(window, eventName, callback, { once: true });
}
}
exports.runOnReadyState = runOnReadyState;
/**

@@ -312,0 +302,0 @@ * Similar to `typeof`, but distinguish plain objects from `null` and arrays

@@ -6,3 +6,3 @@ import { catchUserErrors } from '../tools/catchUserErrors';

var publicApi = assign({
version: "4.29.0",
version: "4.29.1",
// This API method is intentionally not monitored, since the only thing executed is the

@@ -9,0 +9,0 @@ // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and

@@ -66,2 +66,3 @@ export declare const enum DOM_EVENT {

};
export declare function resetUntrustedEventsCount(): void;
export {};
import { monitor } from '../tools/monitor';
import { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';
import { addTelemetryDebug } from '../domain/telemetry';
/**

@@ -30,8 +31,9 @@ * Add an event listener to an event target object (Window, Element, mock object...). This provides

var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;
var wrappedListener = monitor(once
? function (event) {
var wrappedListener = monitor(function (event) {
if (once) {
stop();
listener(event);
}
: listener);
reportUntrustedEvent(event);
listener(event);
});
var options = passive ? { capture: capture, passive: passive } : capture;

@@ -48,2 +50,14 @@ var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');

}
var reportedUntrustedEventTypes = new Set();
function reportUntrustedEvent(event) {
var eventType = event.type;
if (event.isTrusted || window.jasmine || reportedUntrustedEventTypes.has(eventType)) {
return;
}
reportedUntrustedEventTypes.add(eventType);
addTelemetryDebug('Untrusted event', { event_type: eventType });
}
export function resetUntrustedEventsCount() {
reportedUntrustedEventTypes.clear();
}
//# sourceMappingURL=addEventListener.js.map

@@ -22,16 +22,21 @@ import { timeStampNow } from '../../tools/timeUtils';

build: function (api, retry) {
var tags = ["sdk_version:".concat("4.29.0"), "api:".concat(api)].concat(configurationTags);
var tags = ["sdk_version:".concat("4.29.1"), "api:".concat(api)].concat(configurationTags);
if (retry) {
tags.push("retry_count:".concat(retry.count), "retry_after:".concat(retry.lastFailureStatus));
}
var parameters = 'ddsource=browser' +
"&ddtags=".concat(encodeURIComponent(tags.join(','))) +
"&dd-api-key=".concat(clientToken) +
"&dd-evp-origin-version=".concat(encodeURIComponent("4.29.0")) +
'&dd-evp-origin=browser' +
"&dd-request-id=".concat(generateUUID());
var parameters = [
'ddsource=browser',
"ddtags=".concat(encodeURIComponent(tags.join(','))),
"dd-api-key=".concat(clientToken),
"dd-evp-origin-version=".concat(encodeURIComponent("4.29.1")),
'dd-evp-origin=browser',
"dd-request-id=".concat(generateUUID()),
];
if (endpointType === 'rum') {
parameters += "&batch_time=".concat(timeStampNow());
parameters.push("batch_time=".concat(timeStampNow()));
}
var endpointUrl = "".concat(baseUrl, "?").concat(parameters);
if (initConfiguration.internalAnalyticsSubdomain) {
parameters.reverse();
}
var endpointUrl = "".concat(baseUrl, "?").concat(parameters.join('&'));
return proxyUrl ? "".concat(proxyUrl, "?ddforward=").concat(encodeURIComponent(endpointUrl)) : endpointUrl;

@@ -38,0 +43,0 @@ },

@@ -43,3 +43,3 @@ import { ConsoleApiName } from '../../tools/display';

service: telemetryService,
version: "4.29.0",
version: "4.29.1",
source: 'browser',

@@ -46,0 +46,0 @@ _dd: {

@@ -19,2 +19,3 @@ export { Configuration, InitConfiguration, buildCookieOptions, validateAndBuildConfiguration, DefaultPrivacyLevel, EndpointBuilder, isExperimentalFeatureEnabled, updateExperimentalFeatures, resetExperimentalFeatures, serializeConfiguration, } from './domain/configuration';

export { sendToExtension } from './tools/sendToExtension';
export { runOnReadyState } from './tools/runOnReadyState';
export { getZoneJsOriginalValue } from './tools/getZoneJsOriginalValue';

@@ -21,0 +22,0 @@ export { instrumentMethod, instrumentMethodAndCallOriginal, instrumentSetter } from './tools/instrumentMethod';

@@ -22,2 +22,3 @@ export { buildCookieOptions, validateAndBuildConfiguration, DefaultPrivacyLevel, isExperimentalFeatureEnabled, updateExperimentalFeatures, resetExperimentalFeatures, serializeConfiguration, } from './domain/configuration';

export { sendToExtension } from './tools/sendToExtension';
export { runOnReadyState } from './tools/runOnReadyState';
export { getZoneJsOriginalValue } from './tools/getZoneJsOriginalValue';

@@ -24,0 +25,0 @@ export { instrumentMethod, instrumentMethodAndCallOriginal, instrumentSetter } from './tools/instrumentMethod';

@@ -19,4 +19,5 @@ import { monitor } from './monitor';

}
if (options.collectStreamBody)
if (options.collectStreamBody) {
chunks.push(result.value);
}
readBytesCount += result.value.length;

@@ -23,0 +24,0 @@ if (readBytesCount > options.bytesLimit) {

@@ -96,3 +96,2 @@ export declare const ONE_SECOND = 1000;

}, selector: string): boolean;
export declare function runOnReadyState(expectedReadyState: 'complete' | 'interactive', callback: () => void): void;
/**

@@ -99,0 +98,0 @@ * Similar to `typeof`, but distinguish plain objects from `null` and arrays

@@ -1,2 +0,1 @@

import { addEventListener } from '../browser/addEventListener';
import { display } from './display';

@@ -255,4 +254,5 @@ import { monitor } from './monitor';

var correctedLength = isLastCharSurrogatePair ? length + 1 : length;
if (candidate.length <= correctedLength)
if (candidate.length <= correctedLength) {
return candidate;
}
return "".concat(candidate.slice(0, correctedLength)).concat(suffix);

@@ -270,11 +270,2 @@ }

}
export function runOnReadyState(expectedReadyState, callback) {
if (document.readyState === expectedReadyState || document.readyState === 'complete') {
callback();
}
else {
var eventName = expectedReadyState === 'complete' ? "load" /* LOAD */ : "DOMContentLoaded" /* DOM_CONTENT_LOADED */;
addEventListener(window, eventName, callback, { once: true });
}
}
/**

@@ -281,0 +272,0 @@ * Similar to `typeof`, but distinguish plain objects from `null` and arrays

{
"name": "@datadog/browser-core",
"version": "4.29.0",
"version": "4.29.1",
"license": "Apache-2.0",

@@ -24,3 +24,3 @@ "main": "cjs/index.js",

},
"gitHead": "8983972b924a04cbd3084d569673d8e1eaaf3d06"
"gitHead": "14b6b0d10999b8ab3b85c113da4e0399cb064295"
}

@@ -0,7 +1,55 @@

import { createNewEvent } from '../../test/specHelper'
import { stubZoneJs } from '../../test/stubZoneJs'
import type { RawTelemetryEvent } from '../domain/telemetry'
import { resetTelemetry, startFakeTelemetry } from '../domain/telemetry'
import { noop } from '../tools/utils'
import { addEventListener, DOM_EVENT } from './addEventListener'
import { addEventListener, DOM_EVENT, resetUntrustedEventsCount } from './addEventListener'
describe('addEventListener', () => {
describe('untrusted events reporting', () => {
let originalJasmine: typeof jasmine
let telemetryEvents: RawTelemetryEvent[]
let eventTarget: EventTarget
beforeEach(() => {
eventTarget = document.createElement('div')
originalJasmine = window.jasmine
delete (window as any).jasmine
telemetryEvents = startFakeTelemetry()
})
afterEach(() => {
window.jasmine = originalJasmine
resetTelemetry()
resetUntrustedEventsCount()
})
it('sends a telemetry debug log when an untrusted event is dispatched', () => {
addEventListener(eventTarget, DOM_EVENT.CLICK, noop)
eventTarget.dispatchEvent(createNewEvent(DOM_EVENT.CLICK))
expect(telemetryEvents).toEqual([
{
message: 'Untrusted event',
status: 'debug',
type: 'log',
event_type: 'click',
},
])
})
it('only reports the first untrusted event of each type', () => {
addEventListener(eventTarget, DOM_EVENT.CLICK, noop)
addEventListener(eventTarget, DOM_EVENT.MOUSE_UP, noop)
eventTarget.dispatchEvent(createNewEvent(DOM_EVENT.CLICK))
eventTarget.dispatchEvent(createNewEvent(DOM_EVENT.CLICK))
eventTarget.dispatchEvent(createNewEvent(DOM_EVENT.MOUSE_UP))
expect(telemetryEvents.length).toBe(2)
})
})
describe('Zone.js support', () => {

@@ -8,0 +56,0 @@ let zoneJsStub: ReturnType<typeof stubZoneJs>

import { monitor } from '../tools/monitor'
import { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue'
import { addTelemetryDebug } from '../domain/telemetry'

@@ -80,10 +81,9 @@ export const enum DOM_EVENT {

) {
const wrappedListener = monitor(
once
? (event: Event) => {
stop()
listener(event as E)
}
: (listener as (event: Event) => void)
)
const wrappedListener = monitor((event: Event) => {
if (once) {
stop()
}
reportUntrustedEvent(event)
listener(event as E)
})

@@ -104,1 +104,18 @@ const options = passive ? { capture, passive } : capture

}
const reportedUntrustedEventTypes = new Set<string>()
function reportUntrustedEvent(event: Event) {
const eventType = event.type
if (event.isTrusted || (window as any).jasmine || reportedUntrustedEventTypes.has(eventType)) {
return
}
reportedUntrustedEventTypes.add(eventType)
addTelemetryDebug('Untrusted event', { event_type: eventType })
}
export function resetUntrustedEventsCount() {
reportedUntrustedEventTypes.clear()
}

@@ -29,2 +29,10 @@ import type { BuildEnvWindow } from '../../../test/specHelper'

})
it('should not start with ddsource for internal analytics mode', () => {
const url = createEndpointBuilder({ ...initConfiguration, internalAnalyticsSubdomain: 'foo' }, 'rum', []).build(
'xhr'
)
expect(url).not.toContain('/rum?ddsource')
expect(url).toContain('ddsource=browser')
})
})

@@ -31,0 +39,0 @@

@@ -44,14 +44,18 @@ import type { RetryInfo } from '../../transport'

}
let parameters =
'ddsource=browser' +
`&ddtags=${encodeURIComponent(tags.join(','))}` +
`&dd-api-key=${clientToken}` +
`&dd-evp-origin-version=${encodeURIComponent(__BUILD_ENV__SDK_VERSION__)}` +
'&dd-evp-origin=browser' +
`&dd-request-id=${generateUUID()}`
const parameters = [
'ddsource=browser',
`ddtags=${encodeURIComponent(tags.join(','))}`,
`dd-api-key=${clientToken}`,
`dd-evp-origin-version=${encodeURIComponent(__BUILD_ENV__SDK_VERSION__)}`,
'dd-evp-origin=browser',
`dd-request-id=${generateUUID()}`,
]
if (endpointType === 'rum') {
parameters += `&batch_time=${timeStampNow()}`
parameters.push(`batch_time=${timeStampNow()}`)
}
const endpointUrl = `${baseUrl}?${parameters}`
if (initConfiguration.internalAnalyticsSubdomain) {
parameters.reverse()
}
const endpointUrl = `${baseUrl}?${parameters.join('&')}`

@@ -58,0 +62,0 @@ return proxyUrl ? `${proxyUrl}?ddforward=${encodeURIComponent(endpointUrl)}` : endpointUrl

@@ -61,2 +61,3 @@ export {

export { sendToExtension } from './tools/sendToExtension'
export { runOnReadyState } from './tools/runOnReadyState'
export { getZoneJsOriginalValue } from './tools/getZoneJsOriginalValue'

@@ -63,0 +64,0 @@ export { instrumentMethod, instrumentMethodAndCallOriginal, instrumentSetter } from './tools/instrumentMethod'

@@ -32,3 +32,5 @@ import { monitor } from './monitor'

if (options.collectStreamBody) chunks.push(result.value)
if (options.collectStreamBody) {
chunks.push(result.value)
}
readBytesCount += result.value.length

@@ -35,0 +37,0 @@

@@ -1,2 +0,1 @@

import { DOM_EVENT, addEventListener } from '../browser/addEventListener'
import { display } from './display'

@@ -323,3 +322,5 @@ import { monitor } from './monitor'

if (candidate.length <= correctedLength) return candidate
if (candidate.length <= correctedLength) {
return candidate
}

@@ -340,11 +341,2 @@ return `${candidate.slice(0, correctedLength)}${suffix}`

export function runOnReadyState(expectedReadyState: 'complete' | 'interactive', callback: () => void) {
if (document.readyState === expectedReadyState || document.readyState === 'complete') {
callback()
} else {
const eventName = expectedReadyState === 'complete' ? DOM_EVENT.LOAD : DOM_EVENT.DOM_CONTENT_LOADED
addEventListener(window, eventName, callback, { once: true })
}
}
/**

@@ -351,0 +343,0 @@ * Similar to `typeof`, but distinguish plain objects from `null` and arrays

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc