Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@datadog/browser-core

Package Overview
Dependencies
Maintainers
1
Versions
258
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.11.5 to 4.12.0

2

cjs/boot/init.js

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

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

@@ -28,5 +28,5 @@ "use strict";

var parameters = 'ddsource=browser' +
"&ddtags=".concat(encodeURIComponent(["sdk_version:".concat("4.11.5")].concat(tags).join(','))) +
"&ddtags=".concat(encodeURIComponent(["sdk_version:".concat("4.12.0")].concat(tags).join(','))) +
"&dd-api-key=".concat(clientToken) +
"&dd-evp-origin-version=".concat(encodeURIComponent("4.11.5")) +
"&dd-evp-origin-version=".concat(encodeURIComponent("4.12.0")) +
'&dd-evp-origin=browser' +

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

@@ -30,2 +30,3 @@ "use strict";

var monitor_1 = require("../../tools/monitor");
var timeUtils_1 = require("../../tools/timeUtils");
var utils = __importStar(require("../../tools/utils"));

@@ -131,3 +132,3 @@ var sessionConstants_1 = require("./sessionConstants");

}
session.expire = String(Date.now() + sessionConstants_1.SESSION_EXPIRATION_DELAY);
session.expire = String((0, timeUtils_1.dateNow)() + sessionConstants_1.SESSION_EXPIRATION_DELAY);
setSession(session, options);

@@ -134,0 +135,0 @@ }

@@ -30,2 +30,3 @@ "use strict";

var observable_1 = require("../../tools/observable");
var timeUtils_1 = require("../../tools/timeUtils");
var utils = __importStar(require("../../tools/utils"));

@@ -99,3 +100,3 @@ var sessionConstants_1 = require("./sessionConstants");

cookieSession.id = utils.generateUUID();
cookieSession.created = String(Date.now());
cookieSession.created = String((0, timeUtils_1.dateNow)());
}

@@ -128,4 +129,4 @@ return isTracked;

// these checks could be removed when older versions will not be available/live anymore
return ((session.created === undefined || Date.now() - Number(session.created) < sessionConstants_1.SESSION_TIME_OUT_DELAY) &&
(session.expire === undefined || Date.now() < Number(session.expire)));
return ((session.created === undefined || (0, timeUtils_1.dateNow)() - Number(session.created) < sessionConstants_1.SESSION_TIME_OUT_DELAY) &&
(session.expire === undefined || (0, timeUtils_1.dateNow)() < Number(session.expire)));
}

@@ -132,0 +133,0 @@ return {

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

service: 'browser-sdk',
version: "4.11.5",
version: "4.12.0",
source: 'browser',

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

@@ -26,2 +26,3 @@ export declare type Duration = number & {

export declare function toServerDuration(duration: Duration | undefined): ServerDuration | undefined;
export declare function dateNow(): number;
export declare function timeStampNow(): TimeStamp;

@@ -28,0 +29,0 @@ export declare function relativeNow(): RelativeTime;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.resetNavigationStart = exports.looksLikeRelativeTime = exports.getTimeStamp = exports.getRelativeTime = exports.elapsed = exports.clocksOrigin = exports.clocksNow = exports.relativeNow = exports.timeStampNow = exports.toServerDuration = exports.currentDrift = exports.relativeToClocks = void 0;
exports.resetNavigationStart = exports.looksLikeRelativeTime = exports.getTimeStamp = exports.getRelativeTime = exports.elapsed = exports.clocksOrigin = exports.clocksNow = exports.relativeNow = exports.timeStampNow = exports.dateNow = exports.toServerDuration = exports.currentDrift = exports.relativeToClocks = void 0;
var utils_1 = require("./utils");

@@ -10,3 +10,3 @@ function relativeToClocks(relative) {

function getCorrectedTimeStamp(relativeTime) {
var correctedOrigin = Date.now() - performance.now();
var correctedOrigin = dateNow() - performance.now();
// apply correction only for positive drift

@@ -21,3 +21,3 @@ if (correctedOrigin > getNavigationStart()) {

// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
return Math.round(Date.now() - (getNavigationStart() + performance.now()));
return Math.round(dateNow() - (getNavigationStart() + performance.now()));
}

@@ -32,4 +32,13 @@ exports.currentDrift = currentDrift;

exports.toServerDuration = toServerDuration;
function dateNow() {
// Do not use `Date.now` because sometimes websites are wrongly "polyfilling" it. For example, we
// had some users using a very old version of `datejs`, which patched `Date.now` to return a Date
// instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this
// case ourselves.
// [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16
return new Date().getTime();
}
exports.dateNow = dateNow;
function timeStampNow() {
return Date.now();
return dateNow();
}

@@ -36,0 +45,0 @@ exports.timeStampNow = timeStampNow;

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

var messages = this.pushOnlyBuffer.concat((0, utils_1.objectValues)(this.upsertBuffer));
this.request.send(messages.join('\n'), this.bufferBytesCount, reason);
var bytesCount = this.bufferBytesCount;
this.pushOnlyBuffer = [];

@@ -41,2 +41,3 @@ this.upsertBuffer = {};

this.bufferMessagesCount = 0;
this.request.send(messages.join('\n'), bytesCount, reason);
}

@@ -43,0 +44,0 @@ };

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

endpointType: endpointType,
version: "4.11.5",
version: "4.12.0",
connection: navigator.connection ? navigator.connection.effectiveType : undefined,

@@ -25,0 +25,0 @@ onLine: navigator.onLine,

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

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

@@ -25,5 +25,5 @@ import { timeStampNow } from '../../tools/timeUtils';

var parameters = 'ddsource=browser' +
"&ddtags=".concat(encodeURIComponent(["sdk_version:".concat("4.11.5")].concat(tags).join(','))) +
"&ddtags=".concat(encodeURIComponent(["sdk_version:".concat("4.12.0")].concat(tags).join(','))) +
"&dd-api-key=".concat(clientToken) +
"&dd-evp-origin-version=".concat(encodeURIComponent("4.11.5")) +
"&dd-evp-origin-version=".concat(encodeURIComponent("4.12.0")) +
'&dd-evp-origin=browser' +

@@ -30,0 +30,0 @@ "&dd-request-id=".concat(generateUUID());

import { getCookie, setCookie } from '../../browser/cookie';
import { isChromium } from '../../tools/browserDetection';
import { monitor } from '../../tools/monitor';
import { dateNow } from '../../tools/timeUtils';
import * as utils from '../../tools/utils';

@@ -103,3 +104,3 @@ import { SESSION_EXPIRATION_DELAY } from './sessionConstants';

}
session.expire = String(Date.now() + SESSION_EXPIRATION_DELAY);
session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);
setSession(session, options);

@@ -106,0 +107,0 @@ }

import { COOKIE_ACCESS_DELAY } from '../../browser/cookie';
import { monitor } from '../../tools/monitor';
import { Observable } from '../../tools/observable';
import { dateNow } from '../../tools/timeUtils';
import * as utils from '../../tools/utils';

@@ -72,3 +73,3 @@ import { SESSION_TIME_OUT_DELAY } from './sessionConstants';

cookieSession.id = utils.generateUUID();
cookieSession.created = String(Date.now());
cookieSession.created = String(dateNow());
}

@@ -101,4 +102,4 @@ return isTracked;

// these checks could be removed when older versions will not be available/live anymore
return ((session.created === undefined || Date.now() - Number(session.created) < SESSION_TIME_OUT_DELAY) &&
(session.expire === undefined || Date.now() < Number(session.expire)));
return ((session.created === undefined || dateNow() - Number(session.created) < SESSION_TIME_OUT_DELAY) &&
(session.expire === undefined || dateNow() < Number(session.expire)));
}

@@ -105,0 +106,0 @@ return {

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

service: 'browser-sdk',
version: "4.11.5",
version: "4.12.0",
source: 'browser',

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

@@ -26,2 +26,3 @@ export declare type Duration = number & {

export declare function toServerDuration(duration: Duration | undefined): ServerDuration | undefined;
export declare function dateNow(): number;
export declare function timeStampNow(): TimeStamp;

@@ -28,0 +29,0 @@ export declare function relativeNow(): RelativeTime;

@@ -6,3 +6,3 @@ import { isNumber, ONE_YEAR, round } from './utils';

function getCorrectedTimeStamp(relativeTime) {
var correctedOrigin = Date.now() - performance.now();
var correctedOrigin = dateNow() - performance.now();
// apply correction only for positive drift

@@ -17,3 +17,3 @@ if (correctedOrigin > getNavigationStart()) {

// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
return Math.round(Date.now() - (getNavigationStart() + performance.now()));
return Math.round(dateNow() - (getNavigationStart() + performance.now()));
}

@@ -26,4 +26,12 @@ export function toServerDuration(duration) {

}
export function dateNow() {
// Do not use `Date.now` because sometimes websites are wrongly "polyfilling" it. For example, we
// had some users using a very old version of `datejs`, which patched `Date.now` to return a Date
// instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this
// case ourselves.
// [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16
return new Date().getTime();
}
export function timeStampNow() {
return Date.now();
return dateNow();
}

@@ -30,0 +38,0 @@ export function relativeNow() {

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

var messages = this.pushOnlyBuffer.concat(objectValues(this.upsertBuffer));
this.request.send(messages.join('\n'), this.bufferBytesCount, reason);
var bytesCount = this.bufferBytesCount;
this.pushOnlyBuffer = [];

@@ -38,2 +38,3 @@ this.upsertBuffer = {};

this.bufferMessagesCount = 0;
this.request.send(messages.join('\n'), bytesCount, reason);
}

@@ -40,0 +41,0 @@ };

@@ -18,3 +18,3 @@ import { isExperimentalFeatureEnabled } from '../domain/configuration';

endpointType: endpointType,
version: "4.11.5",
version: "4.12.0",
connection: navigator.connection ? navigator.connection.effectiveType : undefined,

@@ -21,0 +21,0 @@ onLine: navigator.onLine,

{
"name": "@datadog/browser-core",
"version": "4.11.5",
"version": "4.12.0",
"license": "Apache-2.0",

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

},
"gitHead": "155ee47fea83d0e3437a091013f610c8da99de4a"
"gitHead": "fac5b785d91bc14ba286614924aa9b2b322fb7ac"
}

@@ -5,2 +5,3 @@ import type { CookieOptions } from '../../browser/cookie'

import { monitor } from '../../tools/monitor'
import { dateNow } from '../../tools/timeUtils'
import * as utils from '../../tools/utils'

@@ -122,3 +123,3 @@ import { SESSION_EXPIRATION_DELAY } from './sessionConstants'

}
session.expire = String(Date.now() + SESSION_EXPIRATION_DELAY)
session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY)
setSession(session, options)

@@ -125,0 +126,0 @@ }

@@ -5,2 +5,3 @@ import type { CookieOptions } from '../../browser/cookie'

import { Observable } from '../../tools/observable'
import { dateNow } from '../../tools/timeUtils'
import * as utils from '../../tools/utils'

@@ -102,3 +103,3 @@ import { SESSION_TIME_OUT_DELAY } from './sessionConstants'

cookieSession.id = utils.generateUUID()
cookieSession.created = String(Date.now())
cookieSession.created = String(dateNow())
}

@@ -138,4 +139,4 @@ return isTracked

return (
(session.created === undefined || Date.now() - Number(session.created) < SESSION_TIME_OUT_DELAY) &&
(session.expire === undefined || Date.now() < Number(session.expire))
(session.created === undefined || dateNow() - Number(session.created) < SESSION_TIME_OUT_DELAY) &&
(session.expire === undefined || dateNow() < Number(session.expire))
)

@@ -142,0 +143,0 @@ }

@@ -14,3 +14,3 @@ import { isNumber, ONE_YEAR, round } from './utils'

function getCorrectedTimeStamp(relativeTime: RelativeTime) {
const correctedOrigin = Date.now() - performance.now()
const correctedOrigin = dateNow() - performance.now()
// apply correction only for positive drift

@@ -26,3 +26,3 @@ if (correctedOrigin > getNavigationStart()) {

// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
return Math.round(Date.now() - (getNavigationStart() + performance.now()))
return Math.round(dateNow() - (getNavigationStart() + performance.now()))
}

@@ -39,4 +39,13 @@

export function dateNow() {
// Do not use `Date.now` because sometimes websites are wrongly "polyfilling" it. For example, we
// had some users using a very old version of `datejs`, which patched `Date.now` to return a Date
// instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this
// case ourselves.
// [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16
return new Date().getTime()
}
export function timeStampNow() {
return Date.now() as TimeStamp
return dateNow() as TimeStamp
}

@@ -43,0 +52,0 @@

@@ -153,2 +153,19 @@ /* eslint-disable @typescript-eslint/unbound-method */

})
it('should be able to use telemetry in the httpRequest.send', () => {
const fakeRequest = {
send(data: string) {
addTelemetryDebugFake()
transport.send(data, BATCH_BYTES_LIMIT)
},
} as unknown as HttpRequest
const batch = new Batch(fakeRequest, BATCH_MESSAGES_LIMIT, BATCH_BYTES_LIMIT, MESSAGE_BYTES_LIMIT, FLUSH_TIMEOUT)
const addTelemetryDebugFake = () => batch.add({ message: 'telemetry message' })
batch.add({ message: 'normal message' })
batch.flush()
expect(transport.send).toHaveBeenCalledTimes(1)
batch.flush()
expect(transport.send).toHaveBeenCalledTimes(2)
})
})

@@ -40,3 +40,4 @@ import { display } from '../tools/display'

const messages = this.pushOnlyBuffer.concat(objectValues(this.upsertBuffer))
this.request.send(messages.join('\n'), this.bufferBytesCount, reason)
const bytesCount = this.bufferBytesCount
this.pushOnlyBuffer = []

@@ -46,2 +47,4 @@ this.upsertBuffer = {}

this.bufferMessagesCount = 0
this.request.send(messages.join('\n'), bytesCount, reason)
}

@@ -48,0 +51,0 @@ }

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