Socket
Socket
Sign inDemoInstall

@datadog/browser-core

Package Overview
Dependencies
Maintainers
1
Versions
256
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 5.17.1 to 5.18.0

2

cjs/boot/init.js

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

var publicApi = (0, polyfills_1.assign)({
version: "5.17.1",
version: "5.18.0",
// 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

@@ -25,2 +25,9 @@ "use strict";

};
function checkIfString(tag, tagName) {
if (tag !== undefined && typeof tag !== 'string') {
display_1.display.error("".concat(tagName, " must be defined as a string"));
return false;
}
return true;
}
function isDatadogSite(site) {

@@ -53,2 +60,11 @@ return /(datadog|ddog|datad0g|dd0g)/.test(site);

}
if (!checkIfString(initConfiguration.version, 'Version')) {
return;
}
if (!checkIfString(initConfiguration.env, 'Env')) {
return;
}
if (!checkIfString(initConfiguration.service, 'Service')) {
return;
}
if (initConfiguration.trackingConsent !== undefined &&

@@ -55,0 +71,0 @@ !(0, objectUtils_1.objectHasValue)(trackingConsent_1.TrackingConsent, initConfiguration.trackingConsent)) {

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

var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;
var tags = ["sdk_version:".concat("5.17.1"), "api:".concat(api)].concat(configurationTags);
var tags = ["sdk_version:".concat("5.18.0"), "api:".concat(api)].concat(configurationTags);
if (flushReason && (0, experimentalFeatures_1.isExperimentalFeatureEnabled)(experimentalFeatures_1.ExperimentalFeature.COLLECT_FLUSH_REASON)) {

@@ -73,3 +73,3 @@ tags.push("flush_reason:".concat(flushReason));

"dd-api-key=".concat(clientToken),
"dd-evp-origin-version=".concat(encodeURIComponent("5.17.1")),
"dd-evp-origin-version=".concat(encodeURIComponent("5.18.0")),
'dd-evp-origin=browser',

@@ -76,0 +76,0 @@ "dd-request-id=".concat((0, stringUtils_1.generateUUID)()),

@@ -1,3 +0,3 @@

export { Telemetry, TelemetryService, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, startTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, } from './telemetry';
export { Telemetry, TelemetryService, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, startTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, drainPreStartTelemetry, } from './telemetry';
export * from './rawTelemetryEvent.types';
export * from './telemetryEvent.types';

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.addTelemetryUsage = exports.addTelemetryConfiguration = exports.isTelemetryReplicationAllowed = exports.startTelemetry = exports.resetTelemetry = exports.startFakeTelemetry = exports.addTelemetryError = exports.addTelemetryDebug = void 0;
exports.drainPreStartTelemetry = exports.addTelemetryUsage = exports.addTelemetryConfiguration = exports.isTelemetryReplicationAllowed = exports.startTelemetry = exports.resetTelemetry = exports.startFakeTelemetry = exports.addTelemetryError = exports.addTelemetryDebug = void 0;
var telemetry_1 = require("./telemetry");

@@ -28,4 +28,5 @@ Object.defineProperty(exports, "addTelemetryDebug", { enumerable: true, get: function () { return telemetry_1.addTelemetryDebug; } });

Object.defineProperty(exports, "addTelemetryUsage", { enumerable: true, get: function () { return telemetry_1.addTelemetryUsage; } });
Object.defineProperty(exports, "drainPreStartTelemetry", { enumerable: true, get: function () { return telemetry_1.drainPreStartTelemetry; } });
__exportStar(require("./rawTelemetryEvent.types"), exports);
__exportStar(require("./telemetryEvent.types"), exports);
//# sourceMappingURL=index.js.map

@@ -17,4 +17,18 @@ import type { Context } from '../../tools/serialisation/context';

export declare function startTelemetry(telemetryService: TelemetryService, configuration: Configuration): Telemetry;
export declare function startFakeTelemetry(): ({
export declare function startFakeTelemetry(): (({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type?: "log" | undefined;

@@ -28,9 +42,37 @@ status: "error";

} | undefined;
} | {
}) | ({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type?: "log" | undefined;
status: "debug";
message: string;
} | {
}) | ({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type: "configuration";

@@ -105,7 +147,22 @@ configuration: {

};
} | {
}) | ({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type: "usage";
usage: import("./telemetryEvent.types").TelemetryCommonFeaturesUsage | import("./telemetryEvent.types").TelemetryBrowserFeaturesUsage;
})[];
}))[];
export declare function drainPreStartTelemetry(): void;
export declare function resetTelemetry(): void;

@@ -112,0 +169,0 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.scrubCustomerFrames = exports.formatError = exports.addTelemetryUsage = exports.addTelemetryConfiguration = exports.addTelemetryError = exports.addTelemetryDebug = exports.isTelemetryReplicationAllowed = exports.resetTelemetry = exports.startFakeTelemetry = exports.startTelemetry = void 0;
exports.scrubCustomerFrames = exports.formatError = exports.addTelemetryUsage = exports.addTelemetryConfiguration = exports.addTelemetryError = exports.addTelemetryDebug = exports.isTelemetryReplicationAllowed = exports.resetTelemetry = exports.drainPreStartTelemetry = exports.startFakeTelemetry = exports.startTelemetry = void 0;
var display_1 = require("../../tools/display");

@@ -19,2 +19,3 @@ var error_1 = require("../error/error");

var connectivity_1 = require("../connectivity");
var boundedBuffer_1 = require("../../tools/boundedBuffer");
var rawTelemetryEvent_types_1 = require("./rawTelemetryEvent.types");

@@ -30,7 +31,7 @@ var ALLOWED_FRAME_URLS = [

var TELEMETRY_EXCLUDED_SITES = [configuration_1.INTAKE_SITE_US1_FED];
var telemetryConfiguration = {
maxEventsPerPage: 0,
sentEventCount: 0,
// eslint-disable-next-line local-rules/disallow-side-effects
var preStartTelemetryBuffer = new boundedBuffer_1.BoundedBuffer();
var onRawTelemetryEventCollected = function (event) {
preStartTelemetryBuffer.add(function () { return onRawTelemetryEventCollected(event); });
};
var onRawTelemetryEventCollected;
function startTelemetry(telemetryService, configuration) {

@@ -40,2 +41,3 @@ var _a;

var observable = new observable_1.Observable();
var alreadySentEvents = new Set();
var telemetryEnabled = !(0, polyfills_1.includes)(TELEMETRY_EXCLUDED_SITES, configuration.site) && (0, numberUtils_1.performDraw)(configuration.telemetrySampleRate);

@@ -49,13 +51,13 @@ var telemetryEnabledPerType = (_a = {},

onRawTelemetryEventCollected = function (rawEvent) {
if (telemetryEnabledPerType[rawEvent.type]) {
var stringifiedEvent = (0, jsonStringify_1.jsonStringify)(rawEvent);
if (telemetryEnabledPerType[rawEvent.type] &&
alreadySentEvents.size < configuration.maxTelemetryEventsPerPage &&
!alreadySentEvents.has(stringifiedEvent)) {
var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);
observable.notify(event_1);
(0, sendToExtension_1.sendToExtension)('telemetry', event_1);
alreadySentEvents.add(stringifiedEvent);
}
};
(0, monitor_1.startMonitorErrorCollection)(addTelemetryError);
(0, polyfills_1.assign)(telemetryConfiguration, {
maxEventsPerPage: configuration.maxTelemetryEventsPerPage,
sentEventCount: 0,
});
function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {

@@ -66,3 +68,3 @@ return (0, mergeInto_1.combine)({

service: telemetryService,
version: "5.17.1",
version: "5.18.0",
source: 'browser',

@@ -96,6 +98,2 @@ _dd: {

var events = [];
(0, polyfills_1.assign)(telemetryConfiguration, {
maxEventsPerPage: Infinity,
sentEventCount: 0,
});
onRawTelemetryEventCollected = function (event) {

@@ -107,4 +105,12 @@ events.push(event);

exports.startFakeTelemetry = startFakeTelemetry;
// need to be called after telemetry context is provided and observers are registered
function drainPreStartTelemetry() {
preStartTelemetryBuffer.drain();
}
exports.drainPreStartTelemetry = drainPreStartTelemetry;
function resetTelemetry() {
onRawTelemetryEventCollected = undefined;
preStartTelemetryBuffer = new boundedBuffer_1.BoundedBuffer();
onRawTelemetryEventCollected = function (event) {
preStartTelemetryBuffer.add(function () { return onRawTelemetryEventCollected(event); });
};
}

@@ -122,3 +128,3 @@ exports.resetTelemetry = resetTelemetry;

(0, monitor_1.displayIfDebugEnabled)(display_1.ConsoleApiName.debug, message, context);
addTelemetry((0, polyfills_1.assign)({
onRawTelemetryEventCollected((0, polyfills_1.assign)({
type: rawTelemetryEvent_types_1.TelemetryType.log,

@@ -131,3 +137,3 @@ message: message,

function addTelemetryError(e, context) {
addTelemetry((0, polyfills_1.assign)({
onRawTelemetryEventCollected((0, polyfills_1.assign)({
type: rawTelemetryEvent_types_1.TelemetryType.log,

@@ -139,3 +145,3 @@ status: "error" /* StatusType.error */,

function addTelemetryConfiguration(configuration) {
addTelemetry({
onRawTelemetryEventCollected({
type: rawTelemetryEvent_types_1.TelemetryType.configuration,

@@ -147,3 +153,3 @@ configuration: configuration,

function addTelemetryUsage(usage) {
addTelemetry({
onRawTelemetryEventCollected({
type: rawTelemetryEvent_types_1.TelemetryType.usage,

@@ -154,8 +160,2 @@ usage: usage,

exports.addTelemetryUsage = addTelemetryUsage;
function addTelemetry(event) {
if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {
telemetryConfiguration.sentEventCount += 1;
onRawTelemetryEventCollected(event);
}
}
function formatError(e) {

@@ -162,0 +162,0 @@ if (e instanceof Error) {

@@ -388,2 +388,38 @@ /**

[k: string]: unknown;
} | {
/**
* startView API
*/
feature: 'start-view';
[k: string]: unknown;
} | {
/**
* addAction API
*/
feature: 'add-action';
[k: string]: unknown;
} | {
/**
* addError API
*/
feature: 'add-error';
[k: string]: unknown;
} | {
/**
* setGlobalContext, setGlobalContextProperty, addAttribute APIs
*/
feature: 'set-global-context';
[k: string]: unknown;
} | {
/**
* setUser, setUserProperty, setUserInfo APIs
*/
feature: 'set-user';
[k: string]: unknown;
} | {
/**
* addFeatureFlagEvaluation API
*/
feature: 'add-feature-flag-evaluation';
[k: string]: unknown;
};

@@ -398,3 +434,13 @@ /**

feature: 'start-session-replay-recording';
/**
* Whether the recording is allowed to start even on sessions sampled out of replay
*/
is_forced?: boolean;
[k: string]: unknown;
} | {
/**
* startDurationVital API
*/
feature: 'start-duration-vital';
[k: string]: unknown;
};

@@ -479,3 +525,42 @@ /**

readonly experimental_features?: string[];
telemetry?: {
/**
* Device properties
*/
device?: {
/**
* Architecture of the device
*/
architecture?: string;
/**
* Brand of the device
*/
brand?: string;
/**
* Model of the device
*/
model?: string;
[k: string]: unknown;
};
/**
* OS properties
*/
os?: {
/**
* Build of the OS
*/
build?: string;
/**
* Name of the OS
*/
name?: string;
/**
* Version of the OS
*/
version?: string;
[k: string]: unknown;
};
[k: string]: unknown;
};
[k: string]: unknown;
}

@@ -9,3 +9,3 @@ export { Configuration, InitConfiguration, validateAndBuildConfiguration, DefaultPrivacyLevel, TraceContextInjection, EndpointBuilder, serializeConfiguration, INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_US1_FED, INTAKE_SITE_EU1, } from './domain/configuration';

export { initReportObservable, RawReport, RawReportType } from './domain/report/reportObservable';
export { startTelemetry, Telemetry, RawTelemetryEvent, RawTelemetryConfiguration, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, TelemetryEvent, TelemetryErrorEvent, TelemetryDebugEvent, TelemetryConfigurationEvent, TelemetryService, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, } from './domain/telemetry';
export { startTelemetry, Telemetry, RawTelemetryEvent, RawTelemetryConfiguration, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, TelemetryEvent, TelemetryErrorEvent, TelemetryDebugEvent, TelemetryConfigurationEvent, TelemetryService, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, drainPreStartTelemetry, } from './domain/telemetry';
export { monitored, monitor, callMonitored, setDebugMode } from './tools/monitor';

@@ -12,0 +12,0 @@ export { Observable, Subscription } from './tools/observable';

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.instrumentMethod = exports.getZoneJsOriginalValue = exports.runOnReadyState = exports.sendToExtension = exports.AbstractLifeCycle = exports.createIdentityEncoder = exports.createFlushController = exports.startBatchWithReplica = exports.bridgeSupports = exports.getEventBridge = exports.canUseEventBridge = exports.createHttpRequest = exports.SESSION_TIME_OUT_DELAY = exports.stopSessionManager = exports.startSessionManager = exports.Observable = exports.setDebugMode = exports.callMonitored = exports.monitor = exports.monitored = exports.addTelemetryUsage = exports.addTelemetryConfiguration = exports.isTelemetryReplicationAllowed = exports.resetTelemetry = exports.startFakeTelemetry = exports.addTelemetryError = exports.addTelemetryDebug = exports.startTelemetry = exports.RawReportType = exports.initReportObservable = exports.displayAlreadyInitializedError = exports.makePublicApi = exports.defineGlobal = exports.computeStackTrace = exports.trackRuntimeError = exports.ExperimentalFeature = exports.getExperimentalFeatures = exports.resetExperimentalFeatures = exports.addExperimentalFeatures = exports.isExperimentalFeatureEnabled = exports.createTrackingConsentState = exports.TrackingConsent = exports.INTAKE_SITE_EU1 = exports.INTAKE_SITE_US1_FED = exports.INTAKE_SITE_US1 = exports.INTAKE_SITE_STAGING = exports.serializeConfiguration = exports.TraceContextInjection = exports.DefaultPrivacyLevel = exports.validateAndBuildConfiguration = void 0;
exports.ErrorSource = exports.sanitizeUser = exports.checkUser = exports.getSyntheticsResultId = exports.getSyntheticsTestId = exports.willSyntheticsInjectRum = exports.SESSION_STORE_KEY = exports.STORAGE_POLL_DELAY = exports.readBytesFromStream = exports.CLEAR_OLD_VALUES_INTERVAL = exports.ValueHistory = exports.CUSTOMER_DATA_BYTES_LIMIT = exports.createCustomerDataTracker = exports.createCustomerDataTrackerManager = exports.removeStorageListeners = exports.storeContextManager = exports.createContextManager = exports.catchUserErrors = exports.BoundedBuffer = exports.resetConsoleObservable = exports.initConsoleObservable = exports.isPageExitReason = exports.PageExitReason = exports.createPageExitObservable = exports.initFetchObservable = exports.initXhrObservable = exports.resetInitCookies = exports.deleteCookie = exports.setCookie = exports.getInitCookie = exports.getCookie = exports.areCookiesAuthorized = exports.NO_ERROR_STACK_PRESENT_MESSAGE = exports.getFileFromStackTraceString = exports.computeRawError = exports.instrumentSetter = void 0;
exports.getZoneJsOriginalValue = exports.runOnReadyState = exports.sendToExtension = exports.AbstractLifeCycle = exports.createIdentityEncoder = exports.createFlushController = exports.startBatchWithReplica = exports.bridgeSupports = exports.getEventBridge = exports.canUseEventBridge = exports.createHttpRequest = exports.SESSION_TIME_OUT_DELAY = exports.stopSessionManager = exports.startSessionManager = exports.Observable = exports.setDebugMode = exports.callMonitored = exports.monitor = exports.monitored = exports.drainPreStartTelemetry = exports.addTelemetryUsage = exports.addTelemetryConfiguration = exports.isTelemetryReplicationAllowed = exports.resetTelemetry = exports.startFakeTelemetry = exports.addTelemetryError = exports.addTelemetryDebug = exports.startTelemetry = exports.RawReportType = exports.initReportObservable = exports.displayAlreadyInitializedError = exports.makePublicApi = exports.defineGlobal = exports.computeStackTrace = exports.trackRuntimeError = exports.ExperimentalFeature = exports.getExperimentalFeatures = exports.resetExperimentalFeatures = exports.addExperimentalFeatures = exports.isExperimentalFeatureEnabled = exports.createTrackingConsentState = exports.TrackingConsent = exports.INTAKE_SITE_EU1 = exports.INTAKE_SITE_US1_FED = exports.INTAKE_SITE_US1 = exports.INTAKE_SITE_STAGING = exports.serializeConfiguration = exports.TraceContextInjection = exports.DefaultPrivacyLevel = exports.validateAndBuildConfiguration = void 0;
exports.ErrorSource = exports.sanitizeUser = exports.checkUser = exports.getSyntheticsResultId = exports.getSyntheticsTestId = exports.willSyntheticsInjectRum = exports.SESSION_STORE_KEY = exports.STORAGE_POLL_DELAY = exports.readBytesFromStream = exports.CLEAR_OLD_VALUES_INTERVAL = exports.ValueHistory = exports.CUSTOMER_DATA_BYTES_LIMIT = exports.createCustomerDataTracker = exports.createCustomerDataTrackerManager = exports.removeStorageListeners = exports.storeContextManager = exports.createContextManager = exports.catchUserErrors = exports.BoundedBuffer = exports.resetConsoleObservable = exports.initConsoleObservable = exports.isPageExitReason = exports.PageExitReason = exports.createPageExitObservable = exports.initFetchObservable = exports.initXhrObservable = exports.resetInitCookies = exports.deleteCookie = exports.setCookie = exports.getInitCookie = exports.getCookie = exports.areCookiesAuthorized = exports.NO_ERROR_STACK_PRESENT_MESSAGE = exports.getFileFromStackTraceString = exports.computeRawError = exports.instrumentSetter = exports.instrumentMethod = void 0;
var configuration_1 = require("./domain/configuration");

@@ -59,2 +59,3 @@ Object.defineProperty(exports, "validateAndBuildConfiguration", { enumerable: true, get: function () { return configuration_1.validateAndBuildConfiguration; } });

Object.defineProperty(exports, "addTelemetryUsage", { enumerable: true, get: function () { return telemetry_1.addTelemetryUsage; } });
Object.defineProperty(exports, "drainPreStartTelemetry", { enumerable: true, get: function () { return telemetry_1.drainPreStartTelemetry; } });
var monitor_1 = require("./tools/monitor");

@@ -61,0 +62,0 @@ Object.defineProperty(exports, "monitored", { enumerable: true, get: function () { return monitor_1.monitored; } });

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

var publicApi = assign({
version: "5.17.1",
version: "5.18.0",
// 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

@@ -22,2 +22,9 @@ import { catchUserErrors } from '../../tools/catchUserErrors';

};
function checkIfString(tag, tagName) {
if (tag !== undefined && typeof tag !== 'string') {
display.error("".concat(tagName, " must be defined as a string"));
return false;
}
return true;
}
function isDatadogSite(site) {

@@ -50,2 +57,11 @@ return /(datadog|ddog|datad0g|dd0g)/.test(site);

}
if (!checkIfString(initConfiguration.version, 'Version')) {
return;
}
if (!checkIfString(initConfiguration.env, 'Env')) {
return;
}
if (!checkIfString(initConfiguration.service, 'Service')) {
return;
}
if (initConfiguration.trackingConsent !== undefined &&

@@ -52,0 +68,0 @@ !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)) {

@@ -57,3 +57,3 @@ import { timeStampNow } from '../../tools/utils/timeUtils';

var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;
var tags = ["sdk_version:".concat("5.17.1"), "api:".concat(api)].concat(configurationTags);
var tags = ["sdk_version:".concat("5.18.0"), "api:".concat(api)].concat(configurationTags);
if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {

@@ -69,3 +69,3 @@ tags.push("flush_reason:".concat(flushReason));

"dd-api-key=".concat(clientToken),
"dd-evp-origin-version=".concat(encodeURIComponent("5.17.1")),
"dd-evp-origin-version=".concat(encodeURIComponent("5.18.0")),
'dd-evp-origin=browser',

@@ -72,0 +72,0 @@ "dd-request-id=".concat(generateUUID()),

@@ -1,3 +0,3 @@

export { Telemetry, TelemetryService, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, startTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, } from './telemetry';
export { Telemetry, TelemetryService, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, startTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, drainPreStartTelemetry, } from './telemetry';
export * from './rawTelemetryEvent.types';
export * from './telemetryEvent.types';

@@ -1,4 +0,4 @@

export { addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, startTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, } from './telemetry';
export { addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, startTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, drainPreStartTelemetry, } from './telemetry';
export * from './rawTelemetryEvent.types';
export * from './telemetryEvent.types';
//# sourceMappingURL=index.js.map

@@ -17,4 +17,18 @@ import type { Context } from '../../tools/serialisation/context';

export declare function startTelemetry(telemetryService: TelemetryService, configuration: Configuration): Telemetry;
export declare function startFakeTelemetry(): ({
export declare function startFakeTelemetry(): (({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type?: "log" | undefined;

@@ -28,9 +42,37 @@ status: "error";

} | undefined;
} | {
}) | ({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type?: "log" | undefined;
status: "debug";
message: string;
} | {
}) | ({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type: "configuration";

@@ -105,7 +147,22 @@ configuration: {

};
} | {
}) | ({
[k: string]: unknown;
device?: {
[k: string]: unknown;
architecture?: string | undefined;
brand?: string | undefined;
model?: string | undefined;
} | undefined;
os?: {
[k: string]: unknown;
build?: string | undefined;
name?: string | undefined;
version?: string | undefined;
} | undefined;
} & {
[k: string]: unknown;
type: "usage";
usage: import("./telemetryEvent.types").TelemetryCommonFeaturesUsage | import("./telemetryEvent.types").TelemetryBrowserFeaturesUsage;
})[];
}))[];
export declare function drainPreStartTelemetry(): void;
export declare function resetTelemetry(): void;

@@ -112,0 +169,0 @@ /**

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

import { getConnectivity } from '../connectivity';
import { BoundedBuffer } from '../../tools/boundedBuffer';
import { TelemetryType } from './rawTelemetryEvent.types';

@@ -27,7 +28,7 @@ var ALLOWED_FRAME_URLS = [

var TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];
var telemetryConfiguration = {
maxEventsPerPage: 0,
sentEventCount: 0,
// eslint-disable-next-line local-rules/disallow-side-effects
var preStartTelemetryBuffer = new BoundedBuffer();
var onRawTelemetryEventCollected = function (event) {
preStartTelemetryBuffer.add(function () { return onRawTelemetryEventCollected(event); });
};
var onRawTelemetryEventCollected;
export function startTelemetry(telemetryService, configuration) {

@@ -37,2 +38,3 @@ var _a;

var observable = new Observable();
var alreadySentEvents = new Set();
var telemetryEnabled = !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);

@@ -46,13 +48,13 @@ var telemetryEnabledPerType = (_a = {},

onRawTelemetryEventCollected = function (rawEvent) {
if (telemetryEnabledPerType[rawEvent.type]) {
var stringifiedEvent = jsonStringify(rawEvent);
if (telemetryEnabledPerType[rawEvent.type] &&
alreadySentEvents.size < configuration.maxTelemetryEventsPerPage &&
!alreadySentEvents.has(stringifiedEvent)) {
var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);
observable.notify(event_1);
sendToExtension('telemetry', event_1);
alreadySentEvents.add(stringifiedEvent);
}
};
startMonitorErrorCollection(addTelemetryError);
assign(telemetryConfiguration, {
maxEventsPerPage: configuration.maxTelemetryEventsPerPage,
sentEventCount: 0,
});
function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {

@@ -63,3 +65,3 @@ return combine({

service: telemetryService,
version: "5.17.1",
version: "5.18.0",
source: 'browser',

@@ -92,6 +94,2 @@ _dd: {

var events = [];
assign(telemetryConfiguration, {
maxEventsPerPage: Infinity,
sentEventCount: 0,
});
onRawTelemetryEventCollected = function (event) {

@@ -102,4 +100,11 @@ events.push(event);

}
// need to be called after telemetry context is provided and observers are registered
export function drainPreStartTelemetry() {
preStartTelemetryBuffer.drain();
}
export function resetTelemetry() {
onRawTelemetryEventCollected = undefined;
preStartTelemetryBuffer = new BoundedBuffer();
onRawTelemetryEventCollected = function (event) {
preStartTelemetryBuffer.add(function () { return onRawTelemetryEventCollected(event); });
};
}

@@ -115,3 +120,3 @@ /**

displayIfDebugEnabled(ConsoleApiName.debug, message, context);
addTelemetry(assign({
onRawTelemetryEventCollected(assign({
type: TelemetryType.log,

@@ -123,3 +128,3 @@ message: message,

export function addTelemetryError(e, context) {
addTelemetry(assign({
onRawTelemetryEventCollected(assign({
type: TelemetryType.log,

@@ -130,3 +135,3 @@ status: "error" /* StatusType.error */,

export function addTelemetryConfiguration(configuration) {
addTelemetry({
onRawTelemetryEventCollected({
type: TelemetryType.configuration,

@@ -137,3 +142,3 @@ configuration: configuration,

export function addTelemetryUsage(usage) {
addTelemetry({
onRawTelemetryEventCollected({
type: TelemetryType.usage,

@@ -143,8 +148,2 @@ usage: usage,

}
function addTelemetry(event) {
if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {
telemetryConfiguration.sentEventCount += 1;
onRawTelemetryEventCollected(event);
}
}
export function formatError(e) {

@@ -151,0 +150,0 @@ if (e instanceof Error) {

@@ -388,2 +388,38 @@ /**

[k: string]: unknown;
} | {
/**
* startView API
*/
feature: 'start-view';
[k: string]: unknown;
} | {
/**
* addAction API
*/
feature: 'add-action';
[k: string]: unknown;
} | {
/**
* addError API
*/
feature: 'add-error';
[k: string]: unknown;
} | {
/**
* setGlobalContext, setGlobalContextProperty, addAttribute APIs
*/
feature: 'set-global-context';
[k: string]: unknown;
} | {
/**
* setUser, setUserProperty, setUserInfo APIs
*/
feature: 'set-user';
[k: string]: unknown;
} | {
/**
* addFeatureFlagEvaluation API
*/
feature: 'add-feature-flag-evaluation';
[k: string]: unknown;
};

@@ -398,3 +434,13 @@ /**

feature: 'start-session-replay-recording';
/**
* Whether the recording is allowed to start even on sessions sampled out of replay
*/
is_forced?: boolean;
[k: string]: unknown;
} | {
/**
* startDurationVital API
*/
feature: 'start-duration-vital';
[k: string]: unknown;
};

@@ -479,3 +525,42 @@ /**

readonly experimental_features?: string[];
telemetry?: {
/**
* Device properties
*/
device?: {
/**
* Architecture of the device
*/
architecture?: string;
/**
* Brand of the device
*/
brand?: string;
/**
* Model of the device
*/
model?: string;
[k: string]: unknown;
};
/**
* OS properties
*/
os?: {
/**
* Build of the OS
*/
build?: string;
/**
* Name of the OS
*/
name?: string;
/**
* Version of the OS
*/
version?: string;
[k: string]: unknown;
};
[k: string]: unknown;
};
[k: string]: unknown;
}

@@ -9,3 +9,3 @@ export { Configuration, InitConfiguration, validateAndBuildConfiguration, DefaultPrivacyLevel, TraceContextInjection, EndpointBuilder, serializeConfiguration, INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_US1_FED, INTAKE_SITE_EU1, } from './domain/configuration';

export { initReportObservable, RawReport, RawReportType } from './domain/report/reportObservable';
export { startTelemetry, Telemetry, RawTelemetryEvent, RawTelemetryConfiguration, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, TelemetryEvent, TelemetryErrorEvent, TelemetryDebugEvent, TelemetryConfigurationEvent, TelemetryService, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, } from './domain/telemetry';
export { startTelemetry, Telemetry, RawTelemetryEvent, RawTelemetryConfiguration, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, TelemetryEvent, TelemetryErrorEvent, TelemetryDebugEvent, TelemetryConfigurationEvent, TelemetryService, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, drainPreStartTelemetry, } from './domain/telemetry';
export { monitored, monitor, callMonitored, setDebugMode } from './tools/monitor';

@@ -12,0 +12,0 @@ export { Observable, Subscription } from './tools/observable';

@@ -9,3 +9,3 @@ export { validateAndBuildConfiguration, DefaultPrivacyLevel, TraceContextInjection, serializeConfiguration, INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_US1_FED, INTAKE_SITE_EU1, } from './domain/configuration';

export { initReportObservable, RawReportType } from './domain/report/reportObservable';
export { startTelemetry, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, } from './domain/telemetry';
export { startTelemetry, addTelemetryDebug, addTelemetryError, startFakeTelemetry, resetTelemetry, isTelemetryReplicationAllowed, addTelemetryConfiguration, addTelemetryUsage, drainPreStartTelemetry, } from './domain/telemetry';
export { monitored, monitor, callMonitored, setDebugMode } from './tools/monitor';

@@ -12,0 +12,0 @@ export { Observable } from './tools/observable';

{
"name": "@datadog/browser-core",
"version": "5.17.1",
"version": "5.18.0",
"license": "Apache-2.0",

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

},
"gitHead": "78b120d4775a8601f021adbba6df66ccfb07d8d2"
"gitHead": "933517cf9fc2d33f561ac54a07a1f5e8bbab154e"
}

@@ -111,2 +111,11 @@ import { catchUserErrors } from '../../tools/catchUserErrors'

}
function checkIfString(tag: unknown, tagName: string) {
if (tag !== undefined && typeof tag !== 'string') {
display.error(`${tagName} must be defined as a string`)
return false
}
return true
}
function isDatadogSite(site: string) {

@@ -148,2 +157,14 @@ return /(datadog|ddog|datad0g|dd0g)/.test(site)

if (!checkIfString(initConfiguration.version, 'Version')) {
return
}
if (!checkIfString(initConfiguration.env, 'Env')) {
return
}
if (!checkIfString(initConfiguration.service, 'Service')) {
return
}
if (

@@ -150,0 +171,0 @@ initConfiguration.trackingConsent !== undefined &&

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

addTelemetryUsage,
drainPreStartTelemetry,
} from './telemetry'

@@ -14,0 +15,0 @@

@@ -20,2 +20,3 @@ import type { Context } from '../../tools/serialisation/context'

import { getConnectivity } from '../connectivity'
import { BoundedBuffer } from '../../tools/boundedBuffer'
import type { TelemetryEvent } from './telemetryEvent.types'

@@ -55,15 +56,12 @@ import type {

const telemetryConfiguration: {
maxEventsPerPage: number
sentEventCount: number
} = {
maxEventsPerPage: 0,
sentEventCount: 0,
// eslint-disable-next-line local-rules/disallow-side-effects
let preStartTelemetryBuffer = new BoundedBuffer()
let onRawTelemetryEventCollected = (event: RawTelemetryEvent) => {
preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event))
}
let onRawTelemetryEventCollected: ((event: RawTelemetryEvent) => void) | undefined
export function startTelemetry(telemetryService: TelemetryService, configuration: Configuration): Telemetry {
let contextProvider: () => Context
const observable = new Observable<TelemetryEvent & Context>()
const alreadySentEvents = new Set<string>()

@@ -81,6 +79,12 @@ const telemetryEnabled =

onRawTelemetryEventCollected = (rawEvent: RawTelemetryEvent) => {
if (telemetryEnabledPerType[rawEvent.type!]) {
const stringifiedEvent = jsonStringify(rawEvent)!
if (
telemetryEnabledPerType[rawEvent.type!] &&
alreadySentEvents.size < configuration.maxTelemetryEventsPerPage &&
!alreadySentEvents.has(stringifiedEvent)
) {
const event = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo)
observable.notify(event)
sendToExtension('telemetry', event)
alreadySentEvents.add(stringifiedEvent)
}

@@ -90,7 +94,2 @@ }

assign(telemetryConfiguration, {
maxEventsPerPage: configuration.maxTelemetryEventsPerPage,
sentEventCount: 0,
})
function toTelemetryEvent(

@@ -138,6 +137,2 @@ telemetryService: TelemetryService,

const events: RawTelemetryEvent[] = []
assign(telemetryConfiguration, {
maxEventsPerPage: Infinity,
sentEventCount: 0,
})

@@ -151,4 +146,12 @@ onRawTelemetryEventCollected = (event: RawTelemetryEvent) => {

// need to be called after telemetry context is provided and observers are registered
export function drainPreStartTelemetry() {
preStartTelemetryBuffer.drain()
}
export function resetTelemetry() {
onRawTelemetryEventCollected = undefined
preStartTelemetryBuffer = new BoundedBuffer()
onRawTelemetryEventCollected = (event: RawTelemetryEvent) => {
preStartTelemetryBuffer.add(() => onRawTelemetryEventCollected(event))
}
}

@@ -166,3 +169,3 @@

displayIfDebugEnabled(ConsoleApiName.debug, message, context)
addTelemetry(
onRawTelemetryEventCollected(
assign(

@@ -180,3 +183,3 @@ {

export function addTelemetryError(e: unknown, context?: Context) {
addTelemetry(
onRawTelemetryEventCollected(
assign(

@@ -194,3 +197,3 @@ {

export function addTelemetryConfiguration(configuration: RawTelemetryConfiguration) {
addTelemetry({
onRawTelemetryEventCollected({
type: TelemetryType.configuration,

@@ -202,3 +205,3 @@ configuration,

export function addTelemetryUsage(usage: RawTelemetryUsage) {
addTelemetry({
onRawTelemetryEventCollected({
type: TelemetryType.usage,

@@ -209,9 +212,2 @@ usage,

function addTelemetry(event: RawTelemetryEvent) {
if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {
telemetryConfiguration.sentEventCount += 1
onRawTelemetryEventCollected(event)
}
}
export function formatError(e: unknown) {

@@ -218,0 +214,0 @@ if (e instanceof Error) {

@@ -401,12 +401,66 @@ /* eslint-disable */

}
| {
/**
* startView API
*/
feature: 'start-view'
[k: string]: unknown
}
| {
/**
* addAction API
*/
feature: 'add-action'
[k: string]: unknown
}
| {
/**
* addError API
*/
feature: 'add-error'
[k: string]: unknown
}
| {
/**
* setGlobalContext, setGlobalContextProperty, addAttribute APIs
*/
feature: 'set-global-context'
[k: string]: unknown
}
| {
/**
* setUser, setUserProperty, setUserInfo APIs
*/
feature: 'set-user'
[k: string]: unknown
}
| {
/**
* addFeatureFlagEvaluation API
*/
feature: 'add-feature-flag-evaluation'
[k: string]: unknown
}
/**
* Schema of browser specific features usage
*/
export type TelemetryBrowserFeaturesUsage = {
/**
* startSessionReplayRecording API
*/
feature: 'start-session-replay-recording'
[k: string]: unknown
}
export type TelemetryBrowserFeaturesUsage =
| {
/**
* startSessionReplayRecording API
*/
feature: 'start-session-replay-recording'
/**
* Whether the recording is allowed to start even on sessions sampled out of replay
*/
is_forced?: boolean
[k: string]: unknown
}
| {
/**
* startDurationVital API
*/
feature: 'start-duration-vital'
[k: string]: unknown
}

@@ -491,3 +545,42 @@ /**

readonly experimental_features?: string[]
telemetry?: {
/**
* Device properties
*/
device?: {
/**
* Architecture of the device
*/
architecture?: string
/**
* Brand of the device
*/
brand?: string
/**
* Model of the device
*/
model?: string
[k: string]: unknown
}
/**
* OS properties
*/
os?: {
/**
* Build of the OS
*/
build?: string
/**
* Name of the OS
*/
name?: string
/**
* Version of the OS
*/
version?: string
[k: string]: unknown
}
[k: string]: unknown
}
[k: string]: unknown
}

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

addTelemetryUsage,
drainPreStartTelemetry,
} from './domain/telemetry'

@@ -46,0 +47,0 @@ export { monitored, monitor, callMonitored, setDebugMode } from './tools/monitor'

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