@datadog/browser-core
Advanced tools
Comparing version 4.30.0 to 4.30.1
@@ -9,3 +9,3 @@ "use strict"; | ||
var publicApi = (0, utils_1.assign)({ | ||
version: "4.30.0", | ||
version: "4.30.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 |
@@ -13,2 +13,5 @@ export declare const enum DOM_EVENT { | ||
VISIBILITY_CHANGE = "visibilitychange", | ||
PAGE_SHOW = "pageshow", | ||
FREEZE = "freeze", | ||
RESUME = "resume", | ||
DOM_CONTENT_LOADED = "DOMContentLoaded", | ||
@@ -67,3 +70,2 @@ POINTER_DOWN = "pointerdown", | ||
}; | ||
export declare function resetUntrustedEventsCount(): void; | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.resetUntrustedEventsCount = exports.addEventListeners = exports.addEventListener = void 0; | ||
exports.addEventListeners = exports.addEventListener = void 0; | ||
var monitor_1 = require("../tools/monitor"); | ||
var getZoneJsOriginalValue_1 = require("../tools/getZoneJsOriginalValue"); | ||
var telemetry_1 = require("../domain/telemetry"); | ||
/** | ||
@@ -35,9 +34,8 @@ * 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)(function (event) { | ||
if (once) { | ||
var wrappedListener = (0, monitor_1.monitor)(once | ||
? function (event) { | ||
stop(); | ||
listener(event); | ||
} | ||
reportUntrustedEvent(event); | ||
listener(event); | ||
}); | ||
: listener); | ||
var options = passive ? { capture: capture, passive: passive } : capture; | ||
@@ -55,15 +53,2 @@ 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,3 +25,3 @@ "use strict"; | ||
build: function (api, retry) { | ||
var tags = ["sdk_version:".concat("4.30.0"), "api:".concat(api)].concat(configurationTags); | ||
var tags = ["sdk_version:".concat("4.30.1"), "api:".concat(api)].concat(configurationTags); | ||
if (retry) { | ||
@@ -34,3 +34,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.30.0")), | ||
"dd-evp-origin-version=".concat(encodeURIComponent("4.30.1")), | ||
'dd-evp-origin=browser', | ||
@@ -37,0 +37,0 @@ "dd-request-id=".concat((0, utils_1.generateUUID)()), |
@@ -46,3 +46,3 @@ "use strict"; | ||
service: telemetryService, | ||
version: "4.30.0", | ||
version: "4.30.1", | ||
source: 'browser', | ||
@@ -49,0 +49,0 @@ _dd: { |
@@ -6,3 +6,3 @@ import { catchUserErrors } from '../tools/catchUserErrors'; | ||
var publicApi = assign({ | ||
version: "4.30.0", | ||
version: "4.30.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 |
@@ -13,2 +13,5 @@ export declare const enum DOM_EVENT { | ||
VISIBILITY_CHANGE = "visibilitychange", | ||
PAGE_SHOW = "pageshow", | ||
FREEZE = "freeze", | ||
RESUME = "resume", | ||
DOM_CONTENT_LOADED = "DOMContentLoaded", | ||
@@ -67,3 +70,2 @@ POINTER_DOWN = "pointerdown", | ||
}; | ||
export declare function resetUntrustedEventsCount(): void; | ||
export {}; |
import { monitor } from '../tools/monitor'; | ||
import { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue'; | ||
import { addTelemetryDebug } from '../domain/telemetry'; | ||
/** | ||
@@ -31,9 +30,8 @@ * 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(function (event) { | ||
if (once) { | ||
var wrappedListener = monitor(once | ||
? function (event) { | ||
stop(); | ||
listener(event); | ||
} | ||
reportUntrustedEvent(event); | ||
listener(event); | ||
}); | ||
: listener); | ||
var options = passive ? { capture: capture, passive: passive } : capture; | ||
@@ -50,14 +48,2 @@ 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,3 +22,3 @@ import { timeStampNow } from '../../tools/timeUtils'; | ||
build: function (api, retry) { | ||
var tags = ["sdk_version:".concat("4.30.0"), "api:".concat(api)].concat(configurationTags); | ||
var tags = ["sdk_version:".concat("4.30.1"), "api:".concat(api)].concat(configurationTags); | ||
if (retry) { | ||
@@ -31,3 +31,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.30.0")), | ||
"dd-evp-origin-version=".concat(encodeURIComponent("4.30.1")), | ||
'dd-evp-origin=browser', | ||
@@ -34,0 +34,0 @@ "dd-request-id=".concat(generateUUID()), |
@@ -43,3 +43,3 @@ import { ConsoleApiName } from '../../tools/display'; | ||
service: telemetryService, | ||
version: "4.30.0", | ||
version: "4.30.1", | ||
source: 'browser', | ||
@@ -46,0 +46,0 @@ _dd: { |
{ | ||
"name": "@datadog/browser-core", | ||
"version": "4.30.0", | ||
"version": "4.30.1", | ||
"license": "Apache-2.0", | ||
@@ -24,3 +24,3 @@ "main": "cjs/index.js", | ||
}, | ||
"gitHead": "fada5c570ec088b6df967f1eee32c887bd138ec8" | ||
"gitHead": "2427f67053ca6041dd81eb565ea0d49483811f81" | ||
} |
@@ -1,55 +0,7 @@ | ||
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, resetUntrustedEventsCount } from './addEventListener' | ||
import { addEventListener, DOM_EVENT } 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', () => { | ||
@@ -56,0 +8,0 @@ let zoneJsStub: ReturnType<typeof stubZoneJs> |
import { monitor } from '../tools/monitor' | ||
import { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue' | ||
import { addTelemetryDebug } from '../domain/telemetry' | ||
@@ -17,2 +16,5 @@ export const enum DOM_EVENT { | ||
VISIBILITY_CHANGE = 'visibilitychange', | ||
PAGE_SHOW = 'pageshow', | ||
FREEZE = 'freeze', | ||
RESUME = 'resume', | ||
DOM_CONTENT_LOADED = 'DOMContentLoaded', | ||
@@ -82,9 +84,10 @@ POINTER_DOWN = 'pointerdown', | ||
) { | ||
const wrappedListener = monitor((event: Event) => { | ||
if (once) { | ||
stop() | ||
} | ||
reportUntrustedEvent(event) | ||
listener(event as E) | ||
}) | ||
const wrappedListener = monitor( | ||
once | ||
? (event: Event) => { | ||
stop() | ||
listener(event as E) | ||
} | ||
: (listener as (event: Event) => void) | ||
) | ||
@@ -105,18 +108,1 @@ 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() | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1015376
20313