@pendo/agent 2.279.1 → 2.279.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dom.esm.js +1 -1
- package/dist/pendo.module.js +16 -133
- package/dist/pendo.module.min.js +11 -11
- package/package.json +1 -1
package/dist/dom.esm.js
CHANGED
|
@@ -7228,7 +7228,7 @@ function getScreenPosition(element) {
|
|
|
7228
7228
|
};
|
|
7229
7229
|
}
|
|
7230
7230
|
|
|
7231
|
-
var VERSION = '2.279.
|
|
7231
|
+
var VERSION = '2.279.3_';
|
|
7232
7232
|
function isExtensionAgent() {
|
|
7233
7233
|
var installType = getPendoConfigValue('installType') || getPendoConfigFromEnclosingScope().installType;
|
|
7234
7234
|
return installType === EXTENSION_INSTALL_TYPE;
|
package/dist/pendo.module.js
CHANGED
|
@@ -3891,8 +3891,8 @@ var SERVER = '';
|
|
|
3891
3891
|
var ASSET_HOST = '';
|
|
3892
3892
|
var ASSET_PATH = '';
|
|
3893
3893
|
var DESIGNER_ENV = '';
|
|
3894
|
-
var VERSION = '2.279.
|
|
3895
|
-
var PACKAGE_VERSION = '2.279.
|
|
3894
|
+
var VERSION = '2.279.3_';
|
|
3895
|
+
var PACKAGE_VERSION = '2.279.3';
|
|
3896
3896
|
var LOADER = 'xhr';
|
|
3897
3897
|
/* eslint-enable agent-eslint-rules/no-gulp-env-references */
|
|
3898
3898
|
/**
|
|
@@ -37580,6 +37580,7 @@ class DOMPrompt {
|
|
|
37580
37580
|
*
|
|
37581
37581
|
* Built-in Plugin adding optional support for monitoring a Prompt like a search box or chat text box.
|
|
37582
37582
|
*/
|
|
37583
|
+
const PENDO_HEADERS_KEY = '_pendoHeaders';
|
|
37583
37584
|
class PromptPlugin {
|
|
37584
37585
|
constructor() {
|
|
37585
37586
|
this.name = 'PromptAnalytics';
|
|
@@ -37645,6 +37646,14 @@ class PromptPlugin {
|
|
|
37645
37646
|
if (pluginInstance._networkPatched)
|
|
37646
37647
|
return;
|
|
37647
37648
|
pluginInstance._networkPatched = true;
|
|
37649
|
+
if (!pluginInstance._originalSetRequestHeader) {
|
|
37650
|
+
pluginInstance._originalSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
|
|
37651
|
+
XMLHttpRequest.prototype.setRequestHeader = function (header, value) {
|
|
37652
|
+
this[PENDO_HEADERS_KEY] = this[PENDO_HEADERS_KEY] || {};
|
|
37653
|
+
this[PENDO_HEADERS_KEY][header] = value;
|
|
37654
|
+
return pluginInstance._originalSetRequestHeader.apply(this, arguments);
|
|
37655
|
+
};
|
|
37656
|
+
}
|
|
37648
37657
|
pluginInstance._originalFetch = window.fetch;
|
|
37649
37658
|
window.fetch = function (...args) {
|
|
37650
37659
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -37745,6 +37754,10 @@ class PromptPlugin {
|
|
|
37745
37754
|
}
|
|
37746
37755
|
this._networkPatched = false;
|
|
37747
37756
|
this._.each(this.prompts, (prompt) => prompt.teardown());
|
|
37757
|
+
if (this._originalSetRequestHeader) {
|
|
37758
|
+
XMLHttpRequest.prototype.setRequestHeader = this._originalSetRequestHeader;
|
|
37759
|
+
this._originalSetRequestHeader = null;
|
|
37760
|
+
}
|
|
37748
37761
|
}
|
|
37749
37762
|
}
|
|
37750
37763
|
function safelySerializeBody(body) {
|
|
@@ -37780,14 +37793,8 @@ function extractHeaders(headers = {}) {
|
|
|
37780
37793
|
}
|
|
37781
37794
|
return result;
|
|
37782
37795
|
}
|
|
37783
|
-
const originalSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
|
|
37784
|
-
XMLHttpRequest.prototype.setRequestHeader = function (header, value) {
|
|
37785
|
-
this._headers = this._headers || {};
|
|
37786
|
-
this._headers[header] = value;
|
|
37787
|
-
return originalSetRequestHeader.apply(this, arguments);
|
|
37788
|
-
};
|
|
37789
37796
|
function extractXHRHeaders(xhr) {
|
|
37790
|
-
return xhr
|
|
37797
|
+
return xhr[PENDO_HEADERS_KEY] || {};
|
|
37791
37798
|
}
|
|
37792
37799
|
var PromptAnalytics = new PromptPlugin();
|
|
37793
37800
|
|
|
@@ -49207,32 +49214,6 @@ function initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {
|
|
|
49207
49214
|
handlers.forEach((h) => h());
|
|
49208
49215
|
};
|
|
49209
49216
|
}
|
|
49210
|
-
const encodedJs = "KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=";
|
|
49211
|
-
const decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));
|
|
49212
|
-
const blob = typeof window !== "undefined" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: "text/javascript;charset=utf-8" });
|
|
49213
|
-
function WorkerWrapper(options) {
|
|
49214
|
-
let objURL;
|
|
49215
|
-
try {
|
|
49216
|
-
objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
|
|
49217
|
-
if (!objURL) throw "";
|
|
49218
|
-
const worker = new Worker(objURL, {
|
|
49219
|
-
name: options == null ? void 0 : options.name
|
|
49220
|
-
});
|
|
49221
|
-
worker.addEventListener("error", () => {
|
|
49222
|
-
(window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
49223
|
-
});
|
|
49224
|
-
return worker;
|
|
49225
|
-
} catch (e2) {
|
|
49226
|
-
return new Worker(
|
|
49227
|
-
"data:text/javascript;base64," + encodedJs,
|
|
49228
|
-
{
|
|
49229
|
-
name: options == null ? void 0 : options.name
|
|
49230
|
-
}
|
|
49231
|
-
);
|
|
49232
|
-
} finally {
|
|
49233
|
-
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
49234
|
-
}
|
|
49235
|
-
}
|
|
49236
49217
|
class CanvasManager {
|
|
49237
49218
|
constructor(options) {
|
|
49238
49219
|
__publicField(this, "pendingCanvasMutations", /* @__PURE__ */ new Map());
|
|
@@ -49263,10 +49244,6 @@ class CanvasManager {
|
|
|
49263
49244
|
this.mirror = options.mirror;
|
|
49264
49245
|
if (recordCanvas && sampling === "all")
|
|
49265
49246
|
this.initCanvasMutationObserver(win, blockClass, blockSelector);
|
|
49266
|
-
if (recordCanvas && typeof sampling === "number")
|
|
49267
|
-
this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {
|
|
49268
|
-
dataURLOptions
|
|
49269
|
-
});
|
|
49270
49247
|
}
|
|
49271
49248
|
reset() {
|
|
49272
49249
|
this.pendingCanvasMutations.clear();
|
|
@@ -49284,100 +49261,6 @@ class CanvasManager {
|
|
|
49284
49261
|
unlock() {
|
|
49285
49262
|
this.locked = false;
|
|
49286
49263
|
}
|
|
49287
|
-
initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {
|
|
49288
|
-
const canvasContextReset = initCanvasContextObserver(
|
|
49289
|
-
win,
|
|
49290
|
-
blockClass,
|
|
49291
|
-
blockSelector,
|
|
49292
|
-
true
|
|
49293
|
-
);
|
|
49294
|
-
const snapshotInProgressMap = /* @__PURE__ */ new Map();
|
|
49295
|
-
const worker = new WorkerWrapper();
|
|
49296
|
-
worker.onmessage = (e2) => {
|
|
49297
|
-
const { id } = e2.data;
|
|
49298
|
-
snapshotInProgressMap.set(id, false);
|
|
49299
|
-
if (!("base64" in e2.data)) return;
|
|
49300
|
-
const { base64, type, width, height } = e2.data;
|
|
49301
|
-
this.mutationCb({
|
|
49302
|
-
id,
|
|
49303
|
-
type: CanvasContext["2D"],
|
|
49304
|
-
commands: [
|
|
49305
|
-
{
|
|
49306
|
-
property: "clearRect",
|
|
49307
|
-
// wipe canvas
|
|
49308
|
-
args: [0, 0, width, height]
|
|
49309
|
-
},
|
|
49310
|
-
{
|
|
49311
|
-
property: "drawImage",
|
|
49312
|
-
// draws (semi-transparent) image
|
|
49313
|
-
args: [
|
|
49314
|
-
{
|
|
49315
|
-
rr_type: "ImageBitmap",
|
|
49316
|
-
args: [
|
|
49317
|
-
{
|
|
49318
|
-
rr_type: "Blob",
|
|
49319
|
-
data: [{ rr_type: "ArrayBuffer", base64 }],
|
|
49320
|
-
type
|
|
49321
|
-
}
|
|
49322
|
-
]
|
|
49323
|
-
},
|
|
49324
|
-
0,
|
|
49325
|
-
0
|
|
49326
|
-
]
|
|
49327
|
-
}
|
|
49328
|
-
]
|
|
49329
|
-
});
|
|
49330
|
-
};
|
|
49331
|
-
const timeBetweenSnapshots = 1e3 / fps;
|
|
49332
|
-
let lastSnapshotTime = 0;
|
|
49333
|
-
let rafId;
|
|
49334
|
-
const getCanvas = () => {
|
|
49335
|
-
const matchedCanvas = [];
|
|
49336
|
-
win.document.querySelectorAll("canvas").forEach((canvas) => {
|
|
49337
|
-
if (!isBlocked(canvas, blockClass, blockSelector, true)) {
|
|
49338
|
-
matchedCanvas.push(canvas);
|
|
49339
|
-
}
|
|
49340
|
-
});
|
|
49341
|
-
return matchedCanvas;
|
|
49342
|
-
};
|
|
49343
|
-
const takeCanvasSnapshots = (timestamp) => {
|
|
49344
|
-
if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {
|
|
49345
|
-
rafId = requestAnimationFrame(takeCanvasSnapshots);
|
|
49346
|
-
return;
|
|
49347
|
-
}
|
|
49348
|
-
lastSnapshotTime = timestamp;
|
|
49349
|
-
getCanvas().forEach(async (canvas) => {
|
|
49350
|
-
var _a2;
|
|
49351
|
-
const id = this.mirror.getId(canvas);
|
|
49352
|
-
if (snapshotInProgressMap.get(id)) return;
|
|
49353
|
-
if (canvas.width === 0 || canvas.height === 0) return;
|
|
49354
|
-
snapshotInProgressMap.set(id, true);
|
|
49355
|
-
if (["webgl", "webgl2"].includes(canvas.__context)) {
|
|
49356
|
-
const context = canvas.getContext(canvas.__context);
|
|
49357
|
-
if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {
|
|
49358
|
-
context.clear(context.COLOR_BUFFER_BIT);
|
|
49359
|
-
}
|
|
49360
|
-
}
|
|
49361
|
-
const bitmap = await createImageBitmap(canvas);
|
|
49362
|
-
worker.postMessage(
|
|
49363
|
-
{
|
|
49364
|
-
id,
|
|
49365
|
-
bitmap,
|
|
49366
|
-
width: canvas.width,
|
|
49367
|
-
height: canvas.height,
|
|
49368
|
-
dataURLOptions: options.dataURLOptions
|
|
49369
|
-
},
|
|
49370
|
-
[bitmap]
|
|
49371
|
-
);
|
|
49372
|
-
});
|
|
49373
|
-
rafId = requestAnimationFrame(takeCanvasSnapshots);
|
|
49374
|
-
};
|
|
49375
|
-
rafId = requestAnimationFrame(takeCanvasSnapshots);
|
|
49376
|
-
this.resetObservers = () => {
|
|
49377
|
-
canvasContextReset();
|
|
49378
|
-
cancelAnimationFrame(rafId);
|
|
49379
|
-
};
|
|
49380
|
-
}
|
|
49381
49264
|
initCanvasMutationObserver(win, blockClass, blockSelector) {
|
|
49382
49265
|
this.startRAFTimestamping();
|
|
49383
49266
|
this.startPendingCanvasMutationFlusher();
|