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 4.34.0 to 4.34.1

2

cjs/boot/init.js

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

var publicApi = (0, utils_1.assign)({
version: "4.34.0",
version: "4.34.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

import { Observable } from '../tools/observable';
export declare const enum PageExitReason {
HIDDEN = "visibility_hidden",
UNLOADING = "before_unload"
}
export declare const PageExitReason: {
readonly HIDDEN: "visibility_hidden";
readonly UNLOADING: "before_unload";
readonly FROZEN: "page_frozen";
};
declare type PageExitReason = typeof PageExitReason[keyof typeof PageExitReason];
export interface PageExitEvent {

@@ -10,1 +12,3 @@ reason: PageExitReason;

export declare function createPageExitObservable(): Observable<PageExitEvent>;
export declare function isPageExitReason(reason: string | undefined): reason is PageExitReason;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPageExitObservable = void 0;
exports.isPageExitReason = exports.createPageExitObservable = exports.PageExitReason = void 0;
var observable_1 = require("../tools/observable");
var utils_1 = require("../tools/utils");
var addEventListener_1 = require("./addEventListener");
exports.PageExitReason = {
HIDDEN: 'visibility_hidden',
UNLOADING: 'before_unload',
FROZEN: 'page_frozen',
};
function createPageExitObservable() {
var observable = new observable_1.Observable(function () {
/**
* Only event that guarantee to fire on mobile devices when the page transitions to background state
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
*/
var stopVisibilityChangeListener = (0, addEventListener_1.addEventListener)(document, "visibilitychange" /* VISIBILITY_CHANGE */, function () {
if (document.visibilityState === 'hidden') {
observable.notify({ reason: "visibility_hidden" /* HIDDEN */ });
var stopListeners = (0, addEventListener_1.addEventListeners)(window, ["visibilitychange" /* VISIBILITY_CHANGE */, "freeze" /* FREEZE */], function (event) {
if (event.type === "visibilitychange" /* VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {
/**
* Only event that guarantee to fire on mobile devices when the page transitions to background state
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
*/
observable.notify({ reason: exports.PageExitReason.HIDDEN });
}
else if (event.type === "freeze" /* FREEZE */) {
/**
* After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)
* Allow to collect events happening between hidden and frozen state.
*/
observable.notify({ reason: exports.PageExitReason.FROZEN });
}
}, { capture: true }).stop;

@@ -23,6 +36,6 @@ /**

var stopBeforeUnloadListener = (0, addEventListener_1.addEventListener)(window, "beforeunload" /* BEFORE_UNLOAD */, function () {
observable.notify({ reason: "before_unload" /* UNLOADING */ });
observable.notify({ reason: exports.PageExitReason.UNLOADING });
}).stop;
return function () {
stopVisibilityChangeListener();
stopListeners();
stopBeforeUnloadListener();

@@ -34,2 +47,6 @@ };

exports.createPageExitObservable = createPageExitObservable;
function isPageExitReason(reason) {
return (0, utils_1.includes)((0, utils_1.objectValues)(exports.PageExitReason), reason);
}
exports.isPageExitReason = isPageExitReason;
//# sourceMappingURL=pageExitObservable.js.map

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

var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;
var tags = ["sdk_version:".concat("4.34.0"), "api:".concat(api)].concat(configurationTags);
var tags = ["sdk_version:".concat("4.34.1"), "api:".concat(api)].concat(configurationTags);
if (retry) {

@@ -77,3 +77,3 @@ tags.push("retry_count:".concat(retry.count), "retry_after:".concat(retry.lastFailureStatus));

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

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

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

service: telemetryService,
version: "4.34.0",
version: "4.34.1",
source: 'browser',

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

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

export { initFetchObservable, FetchResolveContext, FetchStartContext, FetchContext } from './browser/fetchObservable';
export { createPageExitObservable, PageExitEvent, PageExitReason } from './browser/pageExitObservable';
export { createPageExitObservable, PageExitEvent, PageExitReason, isPageExitReason } from './browser/pageExitObservable';
export * from './browser/addEventListener';

@@ -30,0 +30,0 @@ export { initConsoleObservable, ConsoleLog } from './domain/console/consoleObservable';

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

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;
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.isPageExitReason = exports.PageExitReason = exports.createPageExitObservable = exports.initFetchObservable = void 0;
var configuration_1 = require("./domain/configuration");

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

Object.defineProperty(exports, "createPageExitObservable", { enumerable: true, get: function () { return pageExitObservable_1.createPageExitObservable; } });
Object.defineProperty(exports, "PageExitReason", { enumerable: true, get: function () { return pageExitObservable_1.PageExitReason; } });
Object.defineProperty(exports, "isPageExitReason", { enumerable: true, get: function () { return pageExitObservable_1.isPageExitReason; } });
__exportStar(require("./browser/addEventListener"), exports);

@@ -101,0 +103,0 @@ var consoleObservable_1 = require("./domain/console/consoleObservable");

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

var publicApi = assign({
version: "4.34.0",
version: "4.34.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

import { Observable } from '../tools/observable';
export declare const enum PageExitReason {
HIDDEN = "visibility_hidden",
UNLOADING = "before_unload"
}
export declare const PageExitReason: {
readonly HIDDEN: "visibility_hidden";
readonly UNLOADING: "before_unload";
readonly FROZEN: "page_frozen";
};
declare type PageExitReason = typeof PageExitReason[keyof typeof PageExitReason];
export interface PageExitEvent {

@@ -10,1 +12,3 @@ reason: PageExitReason;

export declare function createPageExitObservable(): Observable<PageExitEvent>;
export declare function isPageExitReason(reason: string | undefined): reason is PageExitReason;
export {};
import { Observable } from '../tools/observable';
import { addEventListener } from './addEventListener';
import { includes, objectValues } from '../tools/utils';
import { addEventListener, addEventListeners } from './addEventListener';
export var PageExitReason = {
HIDDEN: 'visibility_hidden',
UNLOADING: 'before_unload',
FROZEN: 'page_frozen',
};
export function createPageExitObservable() {
var observable = new Observable(function () {
/**
* Only event that guarantee to fire on mobile devices when the page transitions to background state
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
*/
var stopVisibilityChangeListener = addEventListener(document, "visibilitychange" /* VISIBILITY_CHANGE */, function () {
if (document.visibilityState === 'hidden') {
observable.notify({ reason: "visibility_hidden" /* HIDDEN */ });
var stopListeners = addEventListeners(window, ["visibilitychange" /* VISIBILITY_CHANGE */, "freeze" /* FREEZE */], function (event) {
if (event.type === "visibilitychange" /* VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {
/**
* Only event that guarantee to fire on mobile devices when the page transitions to background state
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
*/
observable.notify({ reason: PageExitReason.HIDDEN });
}
else if (event.type === "freeze" /* FREEZE */) {
/**
* After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)
* Allow to collect events happening between hidden and frozen state.
*/
observable.notify({ reason: PageExitReason.FROZEN });
}
}, { capture: true }).stop;

@@ -20,6 +33,6 @@ /**

var stopBeforeUnloadListener = addEventListener(window, "beforeunload" /* BEFORE_UNLOAD */, function () {
observable.notify({ reason: "before_unload" /* UNLOADING */ });
observable.notify({ reason: PageExitReason.UNLOADING });
}).stop;
return function () {
stopVisibilityChangeListener();
stopListeners();
stopBeforeUnloadListener();

@@ -30,2 +43,5 @@ };

}
export function isPageExitReason(reason) {
return includes(objectValues(PageExitReason), reason);
}
//# sourceMappingURL=pageExitObservable.js.map

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

var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;
var tags = ["sdk_version:".concat("4.34.0"), "api:".concat(api)].concat(configurationTags);
var tags = ["sdk_version:".concat("4.34.1"), "api:".concat(api)].concat(configurationTags);
if (retry) {

@@ -73,3 +73,3 @@ tags.push("retry_count:".concat(retry.count), "retry_after:".concat(retry.lastFailureStatus));

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

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

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

service: telemetryService,
version: "4.34.0",
version: "4.34.1",
source: 'browser',

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

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

export { initFetchObservable, FetchResolveContext, FetchStartContext, FetchContext } from './browser/fetchObservable';
export { createPageExitObservable, PageExitEvent, PageExitReason } from './browser/pageExitObservable';
export { createPageExitObservable, PageExitEvent, PageExitReason, isPageExitReason } from './browser/pageExitObservable';
export * from './browser/addEventListener';

@@ -30,0 +30,0 @@ export { initConsoleObservable, ConsoleLog } from './domain/console/consoleObservable';

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

export { initFetchObservable } from './browser/fetchObservable';
export { createPageExitObservable } from './browser/pageExitObservable';
export { createPageExitObservable, PageExitReason, isPageExitReason } from './browser/pageExitObservable';
export * from './browser/addEventListener';

@@ -32,0 +32,0 @@ export { initConsoleObservable } from './domain/console/consoleObservable';

{
"name": "@datadog/browser-core",
"version": "4.34.0",
"version": "4.34.1",
"license": "Apache-2.0",

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

},
"gitHead": "e592cccb3f008ad1bffb649b586f6ca802c46558"
"gitHead": "963c6de2a0ecd461f6926a873bf905e3185808e2"
}

@@ -32,2 +32,8 @@ import { createNewEvent, restorePageVisibility, setPageVisibility } from '../../test/specHelper'

it('notifies when the page becomes frozen', () => {
window.dispatchEvent(createNewEvent('freeze'))
expect(onExitSpy).toHaveBeenCalledOnceWith({ reason: PageExitReason.FROZEN })
})
it('notifies multiple times', () => {

@@ -34,0 +40,0 @@ window.dispatchEvent(createNewEvent('beforeunload'))

import { Observable } from '../tools/observable'
import { addEventListener, DOM_EVENT } from './addEventListener'
import { includes, objectValues } from '../tools/utils'
import { addEventListener, addEventListeners, DOM_EVENT } from './addEventListener'
export const enum PageExitReason {
HIDDEN = 'visibility_hidden',
UNLOADING = 'before_unload',
}
export const PageExitReason = {
HIDDEN: 'visibility_hidden',
UNLOADING: 'before_unload',
FROZEN: 'page_frozen',
} as const
type PageExitReason = typeof PageExitReason[keyof typeof PageExitReason]
export interface PageExitEvent {

@@ -15,12 +19,18 @@ reason: PageExitReason

const observable = new Observable<PageExitEvent>(() => {
/**
* Only event that guarantee to fire on mobile devices when the page transitions to background state
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
*/
const { stop: stopVisibilityChangeListener } = addEventListener(
document,
DOM_EVENT.VISIBILITY_CHANGE,
() => {
if (document.visibilityState === 'hidden') {
const { stop: stopListeners } = addEventListeners(
window,
[DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE],
(event) => {
if (event.type === DOM_EVENT.VISIBILITY_CHANGE && document.visibilityState === 'hidden') {
/**
* Only event that guarantee to fire on mobile devices when the page transitions to background state
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
*/
observable.notify({ reason: PageExitReason.HIDDEN })
} else if (event.type === DOM_EVENT.FREEZE) {
/**
* After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)
* Allow to collect events happening between hidden and frozen state.
*/
observable.notify({ reason: PageExitReason.FROZEN })
}

@@ -41,3 +51,3 @@ },

return () => {
stopVisibilityChangeListener()
stopListeners()
stopBeforeUnloadListener()

@@ -49,1 +59,5 @@ }

}
export function isPageExitReason(reason: string | undefined): reason is PageExitReason {
return includes(objectValues(PageExitReason), reason)
}

@@ -80,3 +80,3 @@ export {

export { initFetchObservable, FetchResolveContext, FetchStartContext, FetchContext } from './browser/fetchObservable'
export { createPageExitObservable, PageExitEvent, PageExitReason } from './browser/pageExitObservable'
export { createPageExitObservable, PageExitEvent, PageExitReason, isPageExitReason } from './browser/pageExitObservable'
export * from './browser/addEventListener'

@@ -83,0 +83,0 @@ export { initConsoleObservable, ConsoleLog } from './domain/console/consoleObservable'

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