Socket
Socket
Sign inDemoInstall

highlight.run

Package Overview
Dependencies
Maintainers
1
Versions
277
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

highlight.run - npm Package Compare versions

Comparing version 8.10.0 to 8.11.0

dist/index-BvJPsFiY.js

12

CHANGELOG.md
# highlight.run
## 8.11.0
### Minor Changes
- 4574c8dfa: lazy load client bundle from node modules to avoid ad blockers
## 8.10.1
### Patch Changes
- bd410081e: switch replay to using highlight backend for font cors proxying
## 8.10.0

@@ -4,0 +16,0 @@

5

dist/client/src/types/types.d.ts

@@ -62,7 +62,2 @@ import { ConsoleMethods, DebugOptions, IntegrationOptions, NetworkRecordingOptions, SessionShortcutOptions } from './client.js';

/**
* Do not use this.
* @private
*/
scriptUrl?: string;
/**
* Specifies where to send Highlight session data.

@@ -69,0 +64,0 @@ * You should not have to set this unless you are running an on-premise instance.

2

dist/firstload/src/__generated/version.d.ts

@@ -1,2 +0,2 @@

declare const _default: "8.10.0";
declare const _default: "8.11.0";
export default _default;

@@ -1,2 +0,2 @@

import { HighlightOptions, HighlightPublicInterface } from '../../client/src/types/types.js';
import type { HighlightOptions, HighlightPublicInterface } from '../../client/src/types/types.js';
import { HighlightSegmentMiddleware } from './integrations/segment.js';

@@ -3,0 +3,0 @@ import configureElectronHighlight from './environments/electron.js';

@@ -1,1045 +0,8 @@

var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a2, b2) => {
for (var prop in b2 || (b2 = {}))
if (__hasOwnProp.call(b2, prop))
__defNormalProp(a2, prop, b2[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b2)) {
if (__propIsEnum.call(b2, prop))
__defNormalProp(a2, prop, b2[prop]);
}
return a2;
};
var __spreadProps = (a2, b2) => __defProps(a2, __getOwnPropDescs(b2));
var __objRest = (source, exclude) => {
var target = {};
for (var prop in source)
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop];
if (source != null && __getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(source)) {
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
target[prop] = source[prop];
}
return target;
};
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e2) {
reject(e2);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e2) {
reject(e2);
}
};
var step = (x2) => x2.done ? resolve(x2.value) : Promise.resolve(x2.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
var _a, _b;
const e = ({ apiKey: e2 }) => {
!function(t2, n2) {
var r2 = t2.amplitude || { _q: [], _iq: {} }, o2 = n2.createElement("script");
o2.type = "text/javascript", o2.integrity = "sha384-+EO59vL/X7v6VE2s6/F4HxfHlK0nDUVWKVg8K9oUlvffAeeaShVBmbORTC2D3UF+", o2.crossOrigin = "anonymous", o2.async = true, o2.src = "https://cdn.amplitude.com/libs/amplitude-8.17.0-min.gz.js", o2.onload = function() {
t2.amplitude.runQueuedFunctions || console.log("[Amplitude] Error: could not load SDK"), amplitude.getInstance().init(e2);
};
var i2 = n2.getElementsByTagName("script")[0];
function s2(e3, t3) {
e3.prototype[t3] = function() {
return this._q.push([t3].concat(Array.prototype.slice.call(arguments, 0))), this;
};
}
i2.parentNode.insertBefore(o2, i2);
for (var a2 = function() {
return this._q = [], this;
}, c2 = ["add", "append", "clearAll", "prepend", "set", "setOnce", "unset", "preInsert", "postInsert", "remove"], l2 = 0; l2 < c2.length; l2++)
s2(a2, c2[l2]);
r2.Identify = a2;
for (var d2 = function() {
return this._q = [], this;
}, u2 = ["setProductId", "setQuantity", "setPrice", "setRevenueType", "setEventProperties"], h2 = 0; h2 < u2.length; h2++)
s2(d2, u2[h2]);
r2.Revenue = d2;
var p2 = ["init", "logEvent", "logRevenue", "setUserId", "setUserProperties", "setOptOut", "setVersionName", "setDomain", "setDeviceId", "enableTracking", "setGlobalUserProperties", "identify", "clearUserProperties", "setGroup", "logRevenueV2", "regenerateDeviceId", "groupIdentify", "onInit", "logEventWithTimestamp", "logEventWithGroups", "setSessionId", "resetSessionId"];
function g2(e3) {
function t3(t4) {
e3[t4] = function() {
e3._q.push([t4].concat(Array.prototype.slice.call(arguments, 0)));
};
}
for (var n3 = 0; n3 < p2.length; n3++)
t3(p2[n3]);
}
g2(r2), r2.getInstance = function(e3) {
return e3 = (e3 && 0 !== e3.length ? e3 : "$default_instance").toLowerCase(), Object.prototype.hasOwnProperty.call(r2._iq, e3) || (r2._iq[e3] = { _q: [] }, g2(r2._iq[e3])), r2._iq[e3];
}, t2.amplitude = r2;
}(window, document);
};
var t, n;
(n = t || (t = {})).RECORDING_START_TIME = "highlightRecordingStartTime", n.SEGMENT_LAST_SENT_HASH_KEY = "HIGHLIGHT_SEGMENT_LAST_SENT_HASH_KEY", n.SESSION_DATA = "sessionData", n.SESSION_SECURE_ID = "sessionSecureID", n.USER_IDENTIFIER = "highlightIdentifier", n.USER_OBJECT = "highlightUserObject", n.PAYLOAD_ID = "payloadId";
const r = "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";
function o(e2) {
if (!e2 || !e2.outerHTML)
return "";
let t2 = "";
for (; e2.parentElement; ) {
let n2 = e2.localName;
if (!n2)
break;
n2 = n2.toLowerCase();
let r2 = e2.parentElement, o2 = [];
if (r2.children && r2.children.length > 0)
for (let e3 = 0; e3 < r2.children.length; e3++) {
let t3 = r2.children[e3];
t3.localName && t3.localName.toLowerCase && t3.localName.toLowerCase() === n2 && o2.push(t3);
}
o2.length > 1 && (n2 += ":eq(" + o2.indexOf(e2) + ")"), t2 = n2 + (t2 ? ">" + t2 : ""), e2 = r2;
}
return t2;
}
function i(e2) {
return "[object Object]" === Object.prototype.toString.call(e2);
}
function s(e2, t2) {
if (0 === t2)
return true;
const n2 = Object.keys(e2);
for (const r2 of n2)
if (i(e2[r2]) && s(e2[r2], t2 - 1))
return true;
return false;
}
function a(e2, t2) {
const n2 = { numOfKeysLimit: 50, depthOfLimit: 4 };
Object.assign(n2, t2);
const r2 = [], a2 = [];
return JSON.stringify(e2, function(e3, t3) {
if (r2.length > 0) {
const n3 = r2.indexOf(this);
~n3 ? r2.splice(n3 + 1) : r2.push(this), ~n3 ? a2.splice(n3, 1 / 0, e3) : a2.push(e3), ~r2.indexOf(t3) && (t3 = r2[0] === t3 ? "[Circular ~]" : "[Circular ~." + a2.slice(0, r2.indexOf(t3)).join(".") + "]");
} else
r2.push(t3);
if (null == t3)
return t3;
if (function(e4) {
if (i(e4) && Object.keys(e4).length > n2.numOfKeysLimit)
return true;
if ("function" == typeof e4)
return true;
if (e4 instanceof Event && false === e4.isTrusted) {
return 1 === Object.keys(e4).length;
}
if (i(e4) && s(e4, n2.depthOfLimit))
return true;
return false;
}(t3))
return function(e4) {
let t4 = e4.toString();
n2.stringLengthLimit && t4.length > n2.stringLengthLimit && (t4 = `${t4.slice(0, n2.stringLengthLimit)}...`);
return t4;
}(t3);
if (t3 instanceof Event) {
const e4 = {};
for (const n3 in t3) {
const r3 = t3[n3];
Array.isArray(r3) ? e4[n3] = o(r3.length ? r3[0] : null) : e4[n3] = r3;
}
return e4;
}
return t3 instanceof Node ? t3 instanceof HTMLElement ? t3 ? t3.outerHTML : "" : t3.nodeName : t3 instanceof Error ? t3.name + ": " + t3.message : t3;
});
}
"undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self && self;
function c(e2) {
return e2 && e2.__esModule && Object.prototype.hasOwnProperty.call(e2, "default") ? e2.default : e2;
}
var l, d, u, h, p, g = { exports: {} }, f = { exports: {} };
function w() {
return l ? f.exports : (l = 1, f.exports = function() {
function e2(e3) {
return !isNaN(parseFloat(e3)) && isFinite(e3);
}
function t2(e3) {
return e3.charAt(0).toUpperCase() + e3.substring(1);
}
function n2(e3) {
return function() {
return this[e3];
};
}
var r2 = ["isConstructor", "isEval", "isNative", "isToplevel"], o2 = ["columnNumber", "lineNumber"], i2 = ["fileName", "functionName", "source"], s2 = ["args"], a2 = ["evalOrigin"], c2 = r2.concat(o2, i2, s2, a2);
function l2(e3) {
if (e3)
for (var n3 = 0; n3 < c2.length; n3++)
void 0 !== e3[c2[n3]] && this["set" + t2(c2[n3])](e3[c2[n3]]);
}
l2.prototype = { getArgs: function() {
return this.args;
}, setArgs: function(e3) {
if ("[object Array]" !== Object.prototype.toString.call(e3))
throw new TypeError("Args must be an Array");
this.args = e3;
}, getEvalOrigin: function() {
return this.evalOrigin;
}, setEvalOrigin: function(e3) {
if (e3 instanceof l2)
this.evalOrigin = e3;
else {
if (!(e3 instanceof Object))
throw new TypeError("Eval Origin must be an Object or StackFrame");
this.evalOrigin = new l2(e3);
}
}, toString: function() {
var e3 = this.getFileName() || "", t3 = this.getLineNumber() || "", n3 = this.getColumnNumber() || "", r3 = this.getFunctionName() || "";
return this.getIsEval() ? e3 ? "[eval] (" + e3 + ":" + t3 + ":" + n3 + ")" : "[eval]:" + t3 + ":" + n3 : r3 ? r3 + " (" + e3 + ":" + t3 + ":" + n3 + ")" : e3 + ":" + t3 + ":" + n3;
} }, l2.fromString = function(e3) {
var t3 = e3.indexOf("("), n3 = e3.lastIndexOf(")"), r3 = e3.substring(0, t3), o3 = e3.substring(t3 + 1, n3).split(","), i3 = e3.substring(n3 + 1);
if (0 === i3.indexOf("@"))
var s3 = /@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(i3, ""), a3 = s3[1], c3 = s3[2], d3 = s3[3];
return new l2({ functionName: r3, args: o3 || void 0, fileName: a3, lineNumber: c3 || void 0, columnNumber: d3 || void 0 });
};
for (var d2 = 0; d2 < r2.length; d2++)
l2.prototype["get" + t2(r2[d2])] = n2(r2[d2]), l2.prototype["set" + t2(r2[d2])] = /* @__PURE__ */ function(e3) {
return function(t3) {
this[e3] = Boolean(t3);
};
}(r2[d2]);
for (var u2 = 0; u2 < o2.length; u2++)
l2.prototype["get" + t2(o2[u2])] = n2(o2[u2]), l2.prototype["set" + t2(o2[u2])] = /* @__PURE__ */ function(t3) {
return function(n3) {
if (!e2(n3))
throw new TypeError(t3 + " must be a Number");
this[t3] = Number(n3);
};
}(o2[u2]);
for (var h2 = 0; h2 < i2.length; h2++)
l2.prototype["get" + t2(i2[h2])] = n2(i2[h2]), l2.prototype["set" + t2(i2[h2])] = /* @__PURE__ */ function(e3) {
return function(t3) {
this[e3] = String(t3);
};
}(i2[h2]);
return l2;
}());
}
const m = c(g.exports = (d = w(), u = /(^|@)\S+:\d+/, h = /^\s*at .*(\S+:\d+|\(native\))/m, p = /^(eval@)?(\[native code])?$/, { parse: function(e2) {
if (void 0 !== e2.stacktrace || void 0 !== e2["opera#sourceloc"])
return this.parseOpera(e2);
if (e2.stack && e2.stack.match(h))
return this.parseV8OrIE(e2);
if (e2.stack)
return this.parseFFOrSafari(e2);
throw new Error("Cannot parse given Error object");
}, extractLocation: function(e2) {
if (-1 === e2.indexOf(":"))
return [e2];
var t2 = /(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e2.replace(/[()]/g, ""));
return [t2[1], t2[2] || void 0, t2[3] || void 0];
}, parseV8OrIE: function(e2) {
return e2.stack.split("\n").filter(function(e3) {
return !!e3.match(h);
}, this).map(function(e3) {
e3.indexOf("(eval ") > -1 && (e3 = e3.replace(/eval code/g, "eval").replace(/(\(eval at [^()]*)|(\),.*$)/g, ""));
var t2 = e3.replace(/^\s+/, "").replace(/\(eval code/g, "("), n2 = t2.match(/ (\((.+):(\d+):(\d+)\)$)/), r2 = (t2 = n2 ? t2.replace(n2[0], "") : t2).split(/\s+/).slice(1), o2 = this.extractLocation(n2 ? n2[1] : r2.pop()), i2 = r2.join(" ") || void 0, s2 = ["eval", "<anonymous>"].indexOf(o2[0]) > -1 ? void 0 : o2[0];
return new d({ functionName: i2, fileName: s2, lineNumber: o2[1], columnNumber: o2[2], source: e3 });
}, this);
}, parseFFOrSafari: function(e2) {
return e2.stack.split("\n").filter(function(e3) {
return !e3.match(p);
}, this).map(function(e3) {
if (e3.indexOf(" > eval") > -1 && (e3 = e3.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g, ":$1")), -1 === e3.indexOf("@") && -1 === e3.indexOf(":"))
return new d({ functionName: e3 });
var t2 = /((.*".+"[^@]*)?[^@]*)(?:@)/, n2 = e3.match(t2), r2 = n2 && n2[1] ? n2[1] : void 0, o2 = this.extractLocation(e3.replace(t2, ""));
return new d({ functionName: r2, fileName: o2[0], lineNumber: o2[1], columnNumber: o2[2], source: e3 });
}, this);
}, parseOpera: function(e2) {
return !e2.stacktrace || e2.message.indexOf("\n") > -1 && e2.message.split("\n").length > e2.stacktrace.split("\n").length ? this.parseOpera9(e2) : e2.stack ? this.parseOpera11(e2) : this.parseOpera10(e2);
}, parseOpera9: function(e2) {
for (var t2 = /Line (\d+).*script (?:in )?(\S+)/i, n2 = e2.message.split("\n"), r2 = [], o2 = 2, i2 = n2.length; o2 < i2; o2 += 2) {
var s2 = t2.exec(n2[o2]);
s2 && r2.push(new d({ fileName: s2[2], lineNumber: s2[1], source: n2[o2] }));
}
return r2;
}, parseOpera10: function(e2) {
for (var t2 = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i, n2 = e2.stacktrace.split("\n"), r2 = [], o2 = 0, i2 = n2.length; o2 < i2; o2 += 2) {
var s2 = t2.exec(n2[o2]);
s2 && r2.push(new d({ functionName: s2[3] || void 0, fileName: s2[2], lineNumber: s2[1], source: n2[o2] }));
}
return r2;
}, parseOpera11: function(e2) {
return e2.stack.split("\n").filter(function(e3) {
return !!e3.match(u) && !e3.match(/^Error created at/);
}, this).map(function(e3) {
var t2, n2 = e3.split("@"), r2 = this.extractLocation(n2.pop()), o2 = n2.shift() || "", i2 = o2.replace(/<anonymous function(: (\w+))?>/, "$2").replace(/\([^)]*\)/g, "") || void 0;
o2.match(/\(([^)]*)\)/) && (t2 = o2.replace(/^[^(]+\(([^)]*)\)$/, "$1"));
var s2 = void 0 === t2 || "[arguments not available]" === t2 ? void 0 : t2.split(",");
return new d({ functionName: i2, args: s2, fileName: r2[0], lineNumber: r2[1], columnNumber: r2[2], source: e3 });
}, this);
} }));
function y(e2, t2) {
const n2 = t2.logger;
if (!n2)
return () => {
};
let r2;
r2 = "string" == typeof n2 ? window[n2] : n2;
const o2 = [];
if (t2.level.includes("error") && window) {
const n3 = (n4) => {
const { message: r3, error: o3 } = n4;
let i3 = [];
o3 && (i3 = m.parse(o3));
const s2 = [a(r3, t2.stringifyOptions)];
e2({ type: "Error", trace: i3, time: Date.now(), value: s2 });
};
window.addEventListener("error", n3), o2.push(() => {
window && window.removeEventListener("error", n3);
});
}
for (const e3 of t2.level)
o2.push(i2(r2, e3));
return () => {
o2.forEach((e3) => e3());
};
function i2(n3, r3) {
return n3[r3] ? function(e3, t3, n4) {
try {
if (!(t3 in e3))
return () => {
};
const r4 = e3[t3], o3 = n4(r4);
return "function" == typeof o3 && (o3.prototype = o3.prototype || {}, Object.defineProperties(o3, { __rrweb_original__: { enumerable: false, value: r4 } })), e3[t3] = o3, () => {
e3[t3] = r4;
};
} catch (e4) {
return () => {
};
}
}(n3, r3, (n4) => (...o3) => {
n4.apply(this, o3);
try {
const n5 = m.parse(new Error()), i3 = t2.serializeConsoleAttributes ? o3.map((e3) => "object" == typeof e3 ? a(e3, t2.stringifyOptions) : e3) : o3.filter((e3) => "object" != typeof e3).map((e3) => `${e3}`);
e2({ type: r3, trace: n5.slice(1), value: i3, attributes: a(o3.filter((e3) => "object" == typeof e3).reduce((e3, t3) => __spreadValues(__spreadValues({}, e3), t3), {}), t2.stringifyOptions), time: Date.now() });
} catch (e3) {
n4("highlight logger error:", e3, ...o3);
}
}) : () => {
};
}
}
var b = { exports: {} };
!function(e2, t2) {
function n2(e3, t3) {
var n3 = [], r2 = [];
return null == t3 && (t3 = function(e4, t4) {
return n3[0] === t4 ? "[Circular ~]" : "[Circular ~." + r2.slice(0, n3.indexOf(t4)).join(".") + "]";
}), function(o2, i2) {
if (n3.length > 0) {
var s2 = n3.indexOf(this);
~s2 ? n3.splice(s2 + 1) : n3.push(this), ~s2 ? r2.splice(s2, 1 / 0, o2) : r2.push(o2), ~n3.indexOf(i2) && (i2 = t3.call(this, o2, i2));
} else
n3.push(i2);
return null == e3 ? i2 : e3.call(this, o2, i2);
};
}
(b.exports = function(e3, t3, r2, o2) {
return JSON.stringify(e3, n2(t3, o2), r2);
}).getSerialize = n2;
}();
const k = c(b.exports);
function v(e2, t2, n2, r2) {
var _a2, _b2, _c, _d;
let o2 = [];
try {
o2 = m.parse(r2 != null ? r2 : t2);
} catch (e3) {
o2 = m.parse(new Error());
}
let i2 = {};
t2 instanceof Error && (t2 = t2.message).cause && (i2 = { "exception.cause": t2.cause });
const s2 = S(o2);
e2({ event: k(t2), type: "window.onerror", url: window.location.href, source: n2 != null ? n2 : "", lineNumber: ((_a2 = s2[0]) == null ? void 0 : _a2.lineNumber) ? (_b2 = s2[0]) == null ? void 0 : _b2.lineNumber : 0, columnNumber: ((_c = s2[0]) == null ? void 0 : _c.columnNumber) ? (_d = s2[0]) == null ? void 0 : _d.columnNumber : 0, stackTrace: s2, timestamp: (/* @__PURE__ */ new Date()).toISOString(), payload: i2 ? k(i2) : void 0 });
}
const R = (e2, { enablePromisePatch: t2 }) => {
if ("undefined" == typeof window)
return () => {
};
const n2 = window.onerror = (t3, n3, r3, o3, i3) => {
v(e2, t3, n3, i3);
}, r2 = window.onunhandledrejection = (t3) => {
if (t3.reason) {
const n3 = t3.promise;
n3.getStack ? v(e2, t3.reason, t3.type, n3.getStack()) : v(e2, t3.reason, t3.type);
}
}, o2 = window.Promise, i2 = class extends o2 {
constructor(e3) {
super(e3);
__publicField(this, "promiseCreationError");
this.promiseCreationError = new Error();
}
getStack() {
return this.promiseCreationError;
}
static shouldPatch() {
const e3 = void 0 === window.Zone;
return t2 && e3;
}
};
return i2.shouldPatch() && (window.Promise = i2), () => {
window.Promise = o2, window.onunhandledrejection = r2, window.onerror = n2;
};
}, S = (e2) => {
var _a2, _b2;
if (0 === e2.length)
return e2;
const t2 = e2[0];
return ((_a2 = t2.fileName) == null ? void 0 : _a2.includes("highlight.run")) || ((_b2 = t2.fileName) == null ? void 0 : _b2.includes("highlight.io")) || "new highlightPromise" === t2.functionName ? e2.slice(1) : e2;
}, E = ["assert", "count", "countReset", "debug", "dir", "dirxml", "error", "group", "groupCollapsed", "groupEnd", "info", "log", "table", "time", "timeEnd", "timeLog", "trace", "warn"];
var N, C, O, _;
(C = N || (N = {})).DeviceMemory = "DeviceMemory", C.ViewportHeight = "ViewportHeight", C.ViewportWidth = "ViewportWidth", C.ViewportArea = "ViewportArea", (_ = O || (O = {})).Device = "Device", _.WebVital = "WebVital", _.Performance = "Performance", _.Frontend = "Frontend", _.Backend = "Backend";
const T = ['["\\"Script error.\\""]', '"Script error."', '["\\"Load failed.\\""]', '"Load failed."', '["\\"Network request failed.\\""]', '"Network request failed."', '["\\"Document is not focused.\\""]', '"Document is not focused."', '["\\"Failed to fetch\\""]', '"Failed to fetch"', '[{"isTrusted":true}]', '{"isTrusted":true}', '["{}"]', '"{}"', '[""]', '""', '["\\"\\""]', '""'], L = ["websocket error", '\\"ResizeObserver loop'], x = (e2, t2, n2) => {
const r2 = I(t2, e2.headers, n2);
return __spreadProps(__spreadValues({}, e2), { headers: r2 });
}, I = (e2, t2, n2) => {
var _a2, _b2;
const r2 = __spreadValues({}, t2);
return n2 ? ((_a2 = Object.keys(r2)) == null ? void 0 : _a2.forEach((e3) => {
[...n2].includes(e3 == null ? void 0 : e3.toLowerCase()) || (r2[e3] = "[REDACTED]");
}), r2) : ((_b2 = Object.keys(r2)) == null ? void 0 : _b2.forEach((t3) => {
[...H, ...e2].includes(t3 == null ? void 0 : t3.toLowerCase()) && (r2[t3] = "[REDACTED]");
}), r2);
}, H = ["authorization", "cookie", "proxy-authorization", "token"], P = ["https://www.googleapis.com/identitytoolkit", "https://securetoken.googleapis.com"], q = "X-Highlight-Request", j = (e2) => {
let t2 = e2;
return e2.startsWith("https://") || e2.startsWith("http://") || (t2 = `${window.location.origin}${t2}`), t2.replace(/\/+$/, "");
}, D = (e2, t2, n2, r2) => {
e2.sort((e3, t3) => e3.responseEnd - t3.responseEnd);
const o2 = e2.reduce((e3, t3) => {
const r3 = j(t3.name);
return t3.initiatorType === n2 ? e3[n2][r3] = [...e3[n2][r3] || [], t3] : e3.others[r3] = [...e3.others[r3] || [], t3], e3;
}, { xmlhttprequest: {}, others: {}, fetch: {} });
let i2 = {};
i2 = t2.reduce((e3, t3) => {
const n3 = j(t3.request.url);
return e3[n3] = [...e3[n3] || [], t3], e3;
}, i2);
for (let e3 in o2[n2]) {
const t3 = o2[n2][e3], r3 = i2[e3];
if (!r3)
continue;
const s3 = Math.max(t3.length - r3.length, 0);
for (let e4 = s3; e4 < t3.length; e4++)
t3[e4] && (t3[e4].requestResponsePair = r3[e4 - s3]);
}
let s2 = [];
for (let e3 in o2)
for (let t3 in o2[e3])
s2 = s2.concat(o2[e3][t3]);
return s2.sort((e3, t3) => e3.fetchStart - t3.fetchStart).reduce((e3, t3) => {
let n3 = t3.requestResponsePair;
return n3 && (n3 = ((e4, { headersToRedact: t4, headersToRecord: n4, requestResponseSanitizer: r3 }) => {
var _a2, _b2;
let o3 = e4;
if (r3) {
let e5 = true;
try {
o3.request.body = JSON.parse(o3.request.body);
} catch (t6) {
e5 = false;
}
let t5 = true;
try {
o3.response.body = JSON.parse(o3.response.body);
} catch (e6) {
t5 = false;
}
try {
o3 = r3(o3);
} catch (e6) {
} finally {
e5 = e5 && !!((_a2 = o3 == null ? void 0 : o3.request) == null ? void 0 : _a2.body), t5 = t5 && !!((_b2 = o3 == null ? void 0 : o3.response) == null ? void 0 : _b2.body), e5 && (o3.request.body = JSON.stringify(o3.request.body)), t5 && (o3.response.body = JSON.stringify(o3.response.body));
}
if (!o3)
return null;
}
const _c = o3, { request: i3, response: s3 } = _c, a2 = __objRest(_c, ["request", "response"]);
return __spreadValues({ request: x(i3, t4, n4), response: x(s3, t4, n4) }, a2);
})(t3.requestResponsePair, r2), !n3) || (t3.toJSON = function() {
return { initiatorType: this.initiatorType, startTimeAbs: window.performance.timeOrigin + this.startTime, responseEndAbs: window.performance.timeOrigin + this.responseEnd, name: this.name, transferSize: this.transferSize, encodedBodySize: this.encodedBodySize, requestResponsePairs: n3 };
}, e3.push(t3)), e3;
}, []);
}, A = (e2, t2, n2) => {
return o2 = t2, !((r2 = e2).toLocaleLowerCase().includes("https://pub.highlight.run") || r2.toLocaleLowerCase().includes("highlight.io") || r2.toLocaleLowerCase().includes(o2)) || B(e2, n2);
var r2, o2;
}, B = (e2, t2) => {
var _a2;
let n2 = [];
true === t2 ? (n2 = ["localhost", /^\//], ((_a2 = window == null ? void 0 : window.location) == null ? void 0 : _a2.host) && n2.push(window.location.host)) : t2 instanceof Array && (n2 = t2);
let r2 = false;
return n2.forEach((t3) => {
e2.match(t3) && (r2 = true);
}), r2;
};
const U = () => function(e2) {
for (var t2 = "", n2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", r2 = 0; r2 < e2; r2++)
t2 += n2.charAt(Math.floor(62 * Math.random()));
return t2;
}(10), W = (e2, t2) => e2 + "/" + t2, K = (e2, t2, n2, r2, o2, i2, s2) => {
const a2 = XMLHttpRequest.prototype, c2 = a2.open, l2 = a2.send, d2 = a2.setRequestHeader;
return a2.open = function(e3, t3) {
return this._method = e3, this._url = t3, this._requestHeaders = {}, this._shouldRecordHeaderAndBody = !r2.some((e4) => t3.toLowerCase().includes(e4)), c2.apply(this, arguments);
}, a2.setRequestHeader = function(e3, t3) {
return this._requestHeaders[e3] = t3, d2.apply(this, arguments);
}, a2.send = function(r3) {
if (!A(this._url, t2, n2))
return l2.apply(this, arguments);
const a3 = U();
B(this._url, n2) && this.setRequestHeader(q, W(o2, a3));
const c3 = this._shouldRecordHeaderAndBody, d3 = { id: a3, url: this._url, verb: this._method, headers: c3 ? this._requestHeaders : {}, body: void 0 };
if (c3 && r3) {
const e3 = z(r3, d3.url);
e3 && (d3.body = M(e3, i2, s2, d3.headers));
}
return this.addEventListener("load", function() {
return __async(this, null, function* () {
const t3 = { status: this.status, headers: {}, body: void 0 };
if (c3) {
const e3 = this.getAllResponseHeaders().trim().split(/[\r\n]+/), n3 = {};
if (e3.forEach(function(e4) {
const t4 = e4.split(": "), r4 = t4.shift();
n3[r4] = t4.join(": ");
}), t3.headers = n3, r3) {
const e4 = z(r3, d3.url);
e4 && (d3.body = M(e4, i2, s2, t3.headers));
}
if ("" === this.responseType || "text" === this.responseType)
t3.body = M(this.responseText, i2, s2, t3.headers), t3.size = 8 * this.responseText.length;
else if ("blob" === this.responseType) {
if (this.response instanceof Blob)
try {
const e4 = yield this.response.text();
t3.body = M(e4, i2, s2, t3.headers), t3.size = this.response.size;
} catch (e4) {
}
} else
try {
t3.body = M(this.response, i2, s2, t3.headers);
} catch (e4) {
}
}
e2({ request: d3, response: t3, urlBlocked: !c3 });
});
}), this.addEventListener("error", function() {
return __async(this, null, function* () {
const t3 = { status: this.status, headers: void 0, body: void 0 };
e2({ request: d3, response: t3, urlBlocked: false });
});
}), l2.apply(this, arguments);
}, () => {
a2.open = c2, a2.send = l2, a2.setRequestHeader = d2;
};
}, z = (e2, t2) => {
if ("string" == typeof e2) {
if (!(t2 == null ? void 0 : t2.includes("localhost")) && !(t2 == null ? void 0 : t2.includes("highlight.run")) || !e2.includes("pushPayload"))
return e2;
} else if ("object" == typeof e2 || "number" == typeof e2 || "boolean" == typeof e2)
return k(e2);
return null;
}, F = { "application/json": 67108864, "text/plain": 67108864 }, M = (e2, t2, n2, r2) => {
var _a2, _b2, _c;
let o2 = 65536;
if (r2) {
let e3 = "";
e3 = "function" == typeof r2.get ? (_a2 = r2.get("content-type")) != null ? _a2 : "" : (_b2 = r2["content-type"]) != null ? _b2 : "";
try {
e3 = e3.split(";")[0];
} catch (e4) {
}
o2 = (_c = F[e3]) != null ? _c : 65536;
}
if (e2) {
if (t2)
try {
const n3 = JSON.parse(e2);
Array.isArray(n3) ? n3.forEach((e3) => {
Object.keys(e3).forEach((n4) => {
t2.includes(n4.toLocaleLowerCase()) && (e3[n4] = "[REDACTED]");
});
}) : Object.keys(n3).forEach((e3) => {
t2.includes(e3.toLocaleLowerCase()) && (n3[e3] = "[REDACTED]");
}), e2 = JSON.stringify(n3);
} catch (e3) {
}
if (n2)
try {
const t3 = JSON.parse(e2);
Object.keys(t3).forEach((e3) => {
n2.includes(e3.toLocaleLowerCase()) || (t3[e3] = "[REDACTED]");
}), e2 = JSON.stringify(t3);
} catch (e3) {
}
}
try {
e2 = e2.slice(0, o2);
} catch (e3) {
}
return e2;
}, V = (e2, t2, n2, r2, o2, i2, s2) => {
const a2 = window._fetchProxy;
return window._fetchProxy = function(c2, l2) {
const { method: d2, url: u2 } = $(c2, l2);
if (!A(u2, t2, n2))
return a2.call(this, c2, l2);
const h2 = U();
if (B(u2, n2)) {
l2 = l2 || {};
let e3 = new Headers(l2.headers);
c2 instanceof Request && [...c2.headers].forEach(([t3, n3]) => e3.set(t3, n3)), e3.set(q, W(o2, h2)), l2.headers = Object.fromEntries(e3.entries());
}
const p2 = { id: h2, headers: {}, body: void 0, url: u2, verb: d2 }, g2 = !r2.some((e3) => u2.toLowerCase().includes(e3));
g2 && (p2.headers = Object.fromEntries(new Headers(l2 == null ? void 0 : l2.headers).entries()), p2.body = M(l2 == null ? void 0 : l2.body, i2, s2, l2 == null ? void 0 : l2.headers));
let f2 = a2.call(this, c2, l2);
return J(f2, p2, e2, g2, i2, s2), f2;
}, () => {
window._fetchProxy = a2;
};
}, $ = (e2, t2) => {
const n2 = t2 && t2.method || "object" == typeof e2 && "method" in e2 && e2.method || "GET";
let r2;
return r2 = "object" == typeof e2 ? "url" in e2 && e2.url ? e2.url : e2.toString() : e2, { method: n2, url: r2 };
}, J = (e2, t2, n2, r2, o2, i2) => {
e2.then((e3) => __async(void 0, null, function* () {
let s2 = { body: void 0, headers: void 0, status: 0, size: 0 }, a2 = false;
if ("stack" in e3 || e3 instanceof Error)
s2 = __spreadProps(__spreadValues({}, s2), { body: e3.message, status: 0, size: void 0 }), a2 = true;
else if ("status" in e3) {
if (s2 = __spreadProps(__spreadValues({}, s2), { status: e3.status }), r2) {
let t3;
try {
const n3 = e3.clone().body;
if (n3) {
let r3, s3 = n3.getReader(), a3 = new TextDecoder(), c2 = "";
for (; !(r3 = yield s3.read()).done; ) {
let e4 = r3.value;
c2 += a3.decode(e4);
}
t3 = c2, t3 = M(t3, o2, i2, e3.headers);
} else
t3 = "";
} catch (e4) {
t3 = `Unable to clone response: ${e4}`;
}
s2.body = t3, s2.headers = Object.fromEntries(e3.headers.entries()), s2.size = 8 * t3.length;
}
a2 = true;
}
if (a2) {
n2({ request: t2, response: s2, urlBlocked: !r2 });
}
})).catch(() => {
});
}, G = ({ xhrCallback: e2, fetchCallback: t2, webSocketRequestCallback: n2, webSocketEventCallback: r2, disableWebSocketRecording: o2, bodyKeysToRedact: i2, backendUrl: s2, tracingOrigins: a2, urlBlocklist: c2, sessionSecureID: l2, bodyKeysToRecord: d2 }) => {
const u2 = K(e2, s2, a2, c2, l2, i2, d2), h2 = V(t2, s2, a2, c2, l2, i2, d2), p2 = o2 ? () => {
} : ((e3, t3, n3) => {
const r3 = window._highlightWebSocketRequestCallback;
window._highlightWebSocketRequestCallback = e3;
const o3 = window._highlightWebSocketEventCallback;
return window._highlightWebSocketEventCallback = (e4) => {
const _a2 = e4, { message: r4, size: o4 } = _a2, i3 = __objRest(_a2, ["message", "size"]), s3 = n3.some((t4) => e4.name.toLowerCase().includes(t4));
t3(s3 ? i3 : e4);
}, () => {
window._highlightWebSocketRequestCallback = r3, window._highlightWebSocketEventCallback = o3;
};
})(n2, r2, c2);
return () => {
u2(), h2(), p2();
};
};
class X {
constructor(e2) {
__publicField(this, "disableConsoleRecording");
__publicField(this, "reportConsoleErrors");
__publicField(this, "enablePromisePatch");
__publicField(this, "consoleMethodsToRecord");
__publicField(this, "listeners");
__publicField(this, "errors");
__publicField(this, "messages");
__publicField(this, "options");
__publicField(this, "hasNetworkRecording", true);
__publicField(this, "_backendUrl");
__publicField(this, "disableNetworkRecording");
__publicField(this, "enableRecordingNetworkContents");
__publicField(this, "xhrNetworkContents");
__publicField(this, "fetchNetworkContents");
__publicField(this, "disableRecordingWebSocketContents");
__publicField(this, "webSocketNetworkContents");
__publicField(this, "webSocketEventContents");
__publicField(this, "tracingOrigins");
__publicField(this, "networkHeadersToRedact");
__publicField(this, "networkBodyKeysToRedact");
__publicField(this, "networkBodyKeysToRecord");
__publicField(this, "networkHeaderKeysToRecord");
__publicField(this, "urlBlocklist");
__publicField(this, "requestResponseSanitizer");
var _a2, _b2;
this.options = e2, this.disableConsoleRecording = !!e2.disableConsoleRecording, this.reportConsoleErrors = (_a2 = e2.reportConsoleErrors) != null ? _a2 : false, this.enablePromisePatch = (_b2 = e2.enablePromisePatch) != null ? _b2 : true, this.consoleMethodsToRecord = e2.consoleMethodsToRecord || [...E], this.listeners = [], this.errors = [], this.messages = [];
}
isListening() {
return this.listeners.length > 0;
}
startListening() {
if (this.isListening())
return;
const e2 = this;
this.disableConsoleRecording || this.listeners.push(y((t2) => {
var _a2, _b2, _c;
if (this.reportConsoleErrors && ("Error" === t2.type || "error" === t2.type) && t2.value && t2.trace) {
const n2 = k(t2.value);
if (T.includes(n2) || L.some((e3) => n2.includes(e3)))
return;
e2.errors.push({ event: n2, type: "console.error", url: window.location.href, source: ((_a2 = t2.trace[0]) == null ? void 0 : _a2.fileName) ? t2.trace[0].fileName : "", lineNumber: ((_b2 = t2.trace[0]) == null ? void 0 : _b2.lineNumber) ? t2.trace[0].lineNumber : 0, columnNumber: ((_c = t2.trace[0]) == null ? void 0 : _c.columnNumber) ? t2.trace[0].columnNumber : 0, stackTrace: t2.trace, timestamp: (/* @__PURE__ */ new Date()).toISOString() });
}
e2.messages.push(t2);
}, { level: this.consoleMethodsToRecord, logger: "console", stringifyOptions: { depthOfLimit: 10, numOfKeysLimit: 100, stringLengthLimit: 1e3 } })), this.listeners.push(R((t2) => {
T.includes(t2.event) || L.some((e3) => t2.event.includes(e3)) || e2.errors.push(t2);
}, { enablePromisePatch: this.enablePromisePatch })), X.setupNetworkListener(this, this.options);
}
stopListening() {
this.listeners.forEach((e2) => e2()), this.listeners = [];
}
static setupNetworkListener(e2, t2) {
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
e2._backendUrl = (t2 == null ? void 0 : t2.backendUrl) || "https://pub.highlight.run", e2.xhrNetworkContents = [], e2.fetchNetworkContents = [], e2.webSocketNetworkContents = [], e2.webSocketEventContents = [], e2.networkHeadersToRedact = [], e2.urlBlocklist = [], e2.tracingOrigins = t2.tracingOrigins || [], void 0 !== (t2 == null ? void 0 : t2.disableNetworkRecording) ? (e2.disableNetworkRecording = t2 == null ? void 0 : t2.disableNetworkRecording, e2.enableRecordingNetworkContents = false, e2.disableRecordingWebSocketContents = true, e2.networkHeadersToRedact = [], e2.networkBodyKeysToRedact = [], e2.urlBlocklist = [], e2.networkBodyKeysToRecord = [], e2.networkBodyKeysToRecord = []) : "boolean" == typeof (t2 == null ? void 0 : t2.networkRecording) ? (e2.disableNetworkRecording = !t2.networkRecording, e2.enableRecordingNetworkContents = false, e2.disableRecordingWebSocketContents = true, e2.networkHeadersToRedact = [], e2.networkBodyKeysToRedact = [], e2.urlBlocklist = []) : (void 0 !== ((_a2 = t2.networkRecording) == null ? void 0 : _a2.enabled) ? e2.disableNetworkRecording = !t2.networkRecording.enabled : e2.disableNetworkRecording = false, e2.enableRecordingNetworkContents = ((_b2 = t2.networkRecording) == null ? void 0 : _b2.recordHeadersAndBody) || false, e2.disableRecordingWebSocketContents = ((_c = t2.networkRecording) == null ? void 0 : _c.disableWebSocketEventRecordings) || false, e2.networkHeadersToRedact = ((_e = (_d = t2.networkRecording) == null ? void 0 : _d.networkHeadersToRedact) == null ? void 0 : _e.map((e3) => e3.toLowerCase())) || [], e2.networkBodyKeysToRedact = ((_g = (_f = t2.networkRecording) == null ? void 0 : _f.networkBodyKeysToRedact) == null ? void 0 : _g.map((e3) => e3.toLowerCase())) || [], e2.urlBlocklist = ((_i = (_h = t2.networkRecording) == null ? void 0 : _h.urlBlocklist) == null ? void 0 : _i.map((e3) => e3.toLowerCase())) || [], e2.urlBlocklist = [...e2.urlBlocklist, ...P], e2.requestResponseSanitizer = (_j = t2.networkRecording) == null ? void 0 : _j.requestResponseSanitizer, e2.networkHeaderKeysToRecord = (_k = t2.networkRecording) == null ? void 0 : _k.headerKeysToRecord, e2.networkHeaderKeysToRecord && (e2.networkHeadersToRedact = [], e2.networkHeaderKeysToRecord = e2.networkHeaderKeysToRecord.map((e3) => e3.toLocaleLowerCase())), e2.networkBodyKeysToRecord = (_l = t2.networkRecording) == null ? void 0 : _l.bodyKeysToRecord, e2.networkBodyKeysToRecord && (e2.networkBodyKeysToRedact = [], e2.networkBodyKeysToRecord = e2.networkBodyKeysToRecord.map((e3) => e3.toLocaleLowerCase()))), !e2.disableNetworkRecording && e2.enableRecordingNetworkContents && e2.listeners.push(G({ xhrCallback: (t3) => {
e2.xhrNetworkContents.push(t3);
}, fetchCallback: (t3) => {
e2.fetchNetworkContents.push(t3);
}, webSocketRequestCallback: (t3) => {
e2.webSocketNetworkContents && e2.webSocketNetworkContents.push(t3);
}, webSocketEventCallback: (t3) => {
e2.webSocketEventContents.push(t3);
}, disableWebSocketRecording: e2.disableRecordingWebSocketContents, bodyKeysToRedact: e2.networkBodyKeysToRedact, backendUrl: e2._backendUrl, tracingOrigins: e2.tracingOrigins, urlBlocklist: e2.urlBlocklist, sessionSecureID: t2.sessionSecureID, bodyKeysToRecord: e2.networkBodyKeysToRecord }));
}
static getRecordedNetworkResources(e2, t2) {
var _a2;
let n2 = [], r2 = [];
if (!e2.disableNetworkRecording) {
const r3 = ((_a2 = window == null ? void 0 : window.performance) == null ? void 0 : _a2.timeOrigin) || 0;
n2 = performance.getEntriesByType("resource");
const o2 = 2 * (t2 - r3);
if (n2 = n2.filter((t3) => A(t3.name, e2._backendUrl, e2.tracingOrigins)).map((e3) => __spreadProps(__spreadValues({}, e3.toJSON()), { offsetStartTime: e3.startTime - o2, offsetResponseEnd: e3.responseEnd - o2, offsetFetchStart: e3.fetchStart - o2 })), e2.enableRecordingNetworkContents) {
const t3 = { headersToRedact: e2.networkHeadersToRedact, headersToRecord: e2.networkHeaderKeysToRecord, requestResponseSanitizer: e2.requestResponseSanitizer };
n2 = D(n2, e2.xhrNetworkContents, "xmlhttprequest", t3), n2 = D(n2, e2.fetchNetworkContents, "fetch", t3);
}
}
return e2.disableRecordingWebSocketContents || (r2 = e2.webSocketNetworkContents || []), [...n2, ...r2];
}
static getRecordedWebSocketEvents(e2) {
let t2 = [];
return e2.disableNetworkRecording || e2.disableRecordingWebSocketContents || (t2 = e2.webSocketEventContents), t2;
}
static clearRecordedNetworkResources(e2) {
e2.disableNetworkRecording || (e2.xhrNetworkContents = [], e2.fetchNetworkContents = [], e2.webSocketNetworkContents = [], e2.webSocketEventContents = [], performance.clearResourceTimings());
}
}
const Y = ({ next: e2, payload: t2 }) => {
if ("undefined" != typeof window && "undefined" != typeof document && "H" in window) {
if ("track" === t2.obj.type) {
const e3 = t2.obj.event, n2 = t2.obj.properties;
window.H.track(e3, n2);
} else if ("identify" === t2.obj.type) {
const e3 = t2.obj.userId;
if (e3 == null ? void 0 : e3.length) {
const n2 = t2.obj.traits;
window.H.identify(e3, n2);
}
}
}
e2(t2);
};
function Q(e2) {
var _a2;
e2.on && ((_a2 = e2.webContents) == null ? void 0 : _a2.send) && (e2.on("focus", () => {
e2.webContents.send("highlight.run", { visible: true });
}), e2.on("blur", () => {
e2.webContents.send("highlight.run", { visible: false });
}), e2.on("close", () => {
e2.webContents.send("highlight.run", { visible: false });
}));
}
const Z = "8.10.0";
let ee = new class {
constructor() {
__publicField(this, "storage", {});
}
getItem(e2) {
var _a2;
return (_a2 = this.storage[e2]) != null ? _a2 : "";
}
setItem(e2, t2) {
this.storage[e2] = t2;
}
removeItem(e2) {
delete this.storage[e2];
}
}();
const te = () => {
try {
return window.localStorage;
} catch (e2) {
return ee;
}
}, ne = () => {
let e2 = JSON.parse((n2 = t.SESSION_DATA, te().getItem(n2) || "{}"));
var n2;
if (e2 && e2.lastPushTime && Date.now() - e2.lastPushTime < 55e3)
return e2;
}, re = () => null;
var oe;
!function(e2) {
e2.Device = "Device", e2.WebVital = "WebVital", e2.Frontend = "Frontend", e2.Backend = "Backend";
}(oe || (oe = {}));
const ie = (e2, t2) => {
console.warn(`highlight.run warning: (${e2}): `, t2);
};
let se, ae, ce, le, de = [], ue = false;
const he = { options: void 0, init: (n2, o2) => {
var _a2, _b2, _c, _d, _e, _f, _g, _h;
try {
if (he.options = o2, "undefined" == typeof window || "undefined" == typeof document)
return;
if (!n2)
return void console.info("Highlight is not initializing because projectID was passed undefined.");
let c2 = ne(), l2 = (() => {
var _a3;
const e2 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var t2 = "";
const n3 = "undefined" != typeof window && ((_a3 = window.crypto) == null ? void 0 : _a3.getRandomValues), r2 = new Uint32Array(28);
n3 && window.crypto.getRandomValues(r2);
for (let o3 = 0; o3 < 28; o3++)
t2 += e2.charAt(n3 ? r2[o3] % 62 : Math.floor(62 * Math.random()));
return t2;
})();
if (c2 == null ? void 0 : c2.sessionSecureID)
l2 = c2.sessionSecureID;
else {
const e2 = __spreadProps(__spreadValues({}, c2), { projectID: +n2, sessionSecureID: l2 });
s2 = t.SESSION_DATA, a2 = JSON.stringify(e2), te().setItem(s2, a2);
}
if (ue)
return { sessionSecureID: l2 };
ue = true, ae = document.createElement("script");
var i2 = (o2 == null ? void 0 : o2.scriptUrl) ? o2.scriptUrl : `https://static.highlight.io/v${Z}/index.js`;
ae.setAttribute("src", i2), ae.setAttribute("type", "text/javascript"), document.getElementsByTagName("head")[0].appendChild(ae);
const d2 = { organizationID: n2, debug: o2 == null ? void 0 : o2.debug, backendUrl: o2 == null ? void 0 : o2.backendUrl, tracingOrigins: o2 == null ? void 0 : o2.tracingOrigins, disableNetworkRecording: o2 == null ? void 0 : o2.disableNetworkRecording, networkRecording: o2 == null ? void 0 : o2.networkRecording, disableBackgroundRecording: o2 == null ? void 0 : o2.disableBackgroundRecording, disableConsoleRecording: o2 == null ? void 0 : o2.disableConsoleRecording, disableSessionRecording: o2 == null ? void 0 : o2.disableSessionRecording, reportConsoleErrors: o2 == null ? void 0 : o2.reportConsoleErrors, consoleMethodsToRecord: o2 == null ? void 0 : o2.consoleMethodsToRecord, privacySetting: o2 == null ? void 0 : o2.privacySetting, enableSegmentIntegration: o2 == null ? void 0 : o2.enableSegmentIntegration, enableCanvasRecording: o2 == null ? void 0 : o2.enableCanvasRecording, enablePerformanceRecording: o2 == null ? void 0 : o2.enablePerformanceRecording, enablePromisePatch: o2 == null ? void 0 : o2.enablePromisePatch, samplingStrategy: o2 == null ? void 0 : o2.samplingStrategy, inlineImages: o2 == null ? void 0 : o2.inlineImages, inlineStylesheet: o2 == null ? void 0 : o2.inlineStylesheet, recordCrossOriginIframe: o2 == null ? void 0 : o2.recordCrossOriginIframe, firstloadVersion: Z, environment: (o2 == null ? void 0 : o2.environment) || "production", appVersion: o2 == null ? void 0 : o2.version, serviceName: o2 == null ? void 0 : o2.serviceName, sessionShortcut: o2 == null ? void 0 : o2.sessionShortcut, sessionSecureID: l2, storageMode: o2 == null ? void 0 : o2.storageMode, sendMode: o2 == null ? void 0 : o2.sendMode };
return le = new X(d2), (o2 == null ? void 0 : o2.manualStart) || le.startListening(), ae.addEventListener("load", () => {
const e2 = () => {
ce = new window.HighlightIO(d2, le), (o2 == null ? void 0 : o2.manualStart) || ce.initialize();
};
if ("HighlightIO" in window)
e2();
else {
const t2 = () => {
"HighlightIO" in window ? e2() : setTimeout(t2, 200);
};
t2();
}
}), !((_b2 = (_a2 = o2 == null ? void 0 : o2.integrations) == null ? void 0 : _a2.mixpanel) == null ? void 0 : _b2.disabled) && ((_d = (_c = o2 == null ? void 0 : o2.integrations) == null ? void 0 : _c.mixpanel) == null ? void 0 : _d.projectToken) && (({ projectToken: e2 }) => {
if (window.mixpanel)
return;
var t2, n3, o3;
document, (t2 = window.mixpanel || []).__SV || (window.mixpanel = t2, t2._i = [], t2.init = function(e3, r2, i4) {
function s3(e4, t3) {
var n4 = t3.split(".");
2 == n4.length && (e4 = e4[n4[0]], t3 = n4[1]), e4[t3] = function() {
e4.push([t3].concat(Array.prototype.slice.call(arguments, 0)));
};
}
var a3 = t2;
for (void 0 !== i4 ? a3 = t2[i4] = [] : i4 = "mixpanel", a3.people = a3.people || [], a3.toString = function(e4) {
var t3 = "mixpanel";
return "mixpanel" !== i4 && (t3 += "." + i4), e4 || (t3 += " (stub)"), t3;
}, a3.people.toString = function() {
return a3.toString(1) + ".people (stub)";
}, n3 = "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "), o3 = 0; o3 < n3.length; o3++)
s3(a3, n3[o3]);
var c3 = "set set_once union unset remove delete".split(" ");
a3.get_group = function() {
function e4(e5) {
t3[e5] = function() {
call2_args = arguments, call2 = [e5].concat(Array.prototype.slice.call(call2_args, 0)), a3.push([n4, call2]);
};
}
for (var t3 = {}, n4 = ["get_group"].concat(Array.prototype.slice.call(arguments, 0)), r3 = 0; r3 < c3.length; r3++)
e4(c3[r3]);
return t3;
}, t2._i.push([e3, r2, i4]);
}, t2.__SV = 1.2);
const i3 = document.createElement("script");
i3.src = r, document.head.appendChild(i3), i3.addEventListener("load", () => {
var _a3;
(_a3 = window.mixpanel) == null ? void 0 : _a3.init(e2);
});
})(o2.integrations.mixpanel), !((_f = (_e = o2 == null ? void 0 : o2.integrations) == null ? void 0 : _e.amplitude) == null ? void 0 : _f.disabled) && ((_h = (_g = o2 == null ? void 0 : o2.integrations) == null ? void 0 : _g.amplitude) == null ? void 0 : _h.apiKey) && e(o2.integrations.amplitude), { sessionSecureID: l2 };
} catch (e2) {
ie("init", e2);
}
var s2, a2;
}, snapshot: (e2) => __async(void 0, null, function* () {
try {
if (ce && ce.ready)
return yield ce.snapshot(e2);
} catch (e3) {
ie("snapshot", e3);
}
}), addSessionFeedback: ({ verbatim: e2, userName: t2, userEmail: n2, timestampOverride: r2 }) => {
try {
he.onHighlightReady(() => ce.addSessionFeedback({ verbatim: e2, timestamp: r2 || (/* @__PURE__ */ new Date()).toISOString(), user_email: n2, user_name: t2 }));
} catch (e3) {
ie("error", e3);
}
}, consumeError: (e2, t2, n2) => {
try {
he.onHighlightReady(() => ce.consumeCustomError(e2, t2, JSON.stringify(n2)));
} catch (e3) {
ie("error", e3);
}
}, error: (e2, t2) => {
try {
he.onHighlightReady(() => ce.pushCustomError(e2, JSON.stringify(t2)));
} catch (e3) {
ie("error", e3);
}
}, track: (e2, t2 = {}) => {
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k;
try {
he.onHighlightReady(() => ce.addProperties(__spreadProps(__spreadValues({}, t2), { event: e2 })));
const n2 = ce == null ? void 0 : ce.getCurrentSessionURL();
((_c = (_b2 = (_a2 = he.options) == null ? void 0 : _a2.integrations) == null ? void 0 : _b2.mixpanel) == null ? void 0 : _c.disabled) || ((_d = window.mixpanel) == null ? void 0 : _d.track) && window.mixpanel.track(e2, __spreadProps(__spreadValues({}, t2), { highlightSessionURL: n2 })), ((_g = (_f = (_e = he.options) == null ? void 0 : _e.integrations) == null ? void 0 : _f.amplitude) == null ? void 0 : _g.disabled) || ((_h = window.amplitude) == null ? void 0 : _h.getInstance) && window.amplitude.getInstance().logEvent(e2, __spreadProps(__spreadValues({}, t2), { highlightSessionURL: n2 })), ((_k = (_j = (_i = he.options) == null ? void 0 : _i.integrations) == null ? void 0 : _j.intercom) == null ? void 0 : _k.disabled) || window.Intercom && window.Intercom("trackEvent", e2, t2);
} catch (e3) {
ie("track", e3);
}
}, start: (e2) => {
"Recording" === (ce == null ? void 0 : ce.state) ? (e2 == null ? void 0 : e2.silent) || console.warn("Highlight is already recording. Please `H.stop()` the current session before starting a new one.") : (le.startListening(), he.onHighlightReady(() => __async(void 0, null, function* () {
yield ce.initialize(e2);
}), { waitForReady: false }));
}, stop: (e2) => {
"Recording" !== (ce == null ? void 0 : ce.state) ? (e2 == null ? void 0 : e2.silent) || console.warn("Highlight is already stopped. Please call `H.start()`.") : he.onHighlightReady(() => ce.stopRecording(true));
}, identify: (e2, t2 = {}) => {
var _a2, _b2, _c, _d, _e, _f, _g, _h;
try {
he.onHighlightReady(() => ce.identify(e2, t2));
} catch (e3) {
ie("identify", e3);
}
if (((_c = (_b2 = (_a2 = he.options) == null ? void 0 : _a2.integrations) == null ? void 0 : _b2.mixpanel) == null ? void 0 : _c.disabled) || ((_d = window.mixpanel) == null ? void 0 : _d.identify) && (window.mixpanel.identify("string" == typeof (t2 == null ? void 0 : t2.email) ? t2 == null ? void 0 : t2.email : e2), t2 && (window.mixpanel.track("identify", t2), window.mixpanel.people.set(t2))), !((_g = (_f = (_e = he.options) == null ? void 0 : _e.integrations) == null ? void 0 : _f.amplitude) == null ? void 0 : _g.disabled) && ((_h = window.amplitude) == null ? void 0 : _h.getInstance) && (window.amplitude.getInstance().setUserId(e2), Object.keys(t2).length > 0)) {
const e3 = Object.keys(t2).reduce((e4, n2) => (e4.set(n2, t2[n2]), e4), new window.amplitude.Identify());
window.amplitude.getInstance().identify(e3);
}
}, metrics: (e2) => {
try {
he.onHighlightReady(() => ce.recordMetric(e2.map((e3) => __spreadProps(__spreadValues({}, e3), { category: oe.Frontend }))));
} catch (e3) {
ie("metrics", e3);
}
}, getSessionURL: () => new Promise((e2, t2) => {
he.onHighlightReady(() => {
const n2 = ce.getCurrentSessionURL();
n2 ? e2(n2) : t2(new Error("Unable to get session URL"));
});
}), getSessionDetails: () => new Promise((e2, t2) => {
he.onHighlightReady(() => {
const n2 = ce.getCurrentSessionURL();
if (n2) {
const t3 = ce.getCurrentSessionTimestamp(), r2 = (/* @__PURE__ */ new Date()).getTime(), o2 = new URL(n2), i2 = new URL(n2);
i2.searchParams.set("ts", ((r2 - t3) / 1e3).toString()), e2({ url: o2.toString(), urlWithTimestamp: i2.toString() });
} else
t2(new Error("Could not get session URL"));
});
}), onHighlightReady: (e2, t2) => __async(void 0, null, function* () {
if (de.push({ options: t2, func: e2 }), void 0 === se) {
const e3 = () => __async(void 0, null, function* () {
var _a2;
const t3 = [];
for (const e4 of de)
if (ce && (false === ((_a2 = e4.options) == null ? void 0 : _a2.waitForReady) || ce.ready))
try {
yield e4.func();
} catch (e5) {
ie("onHighlightReady", e5);
}
else
t3.push(e4);
se = void 0, de = t3, de.length > 0 && (se = setTimeout(e3, 200));
});
yield e3();
}
}) };
"undefined" != typeof window && (window.H = he), "undefined" != typeof chrome && ((_a = chrome == null ? void 0 : chrome.runtime) == null ? void 0 : _a.onMessage) && ((_b = chrome == null ? void 0 : chrome.runtime) == null ? void 0 : _b.onMessage.addListener((e2, t2, n2) => {
const r2 = e2.action;
switch (console.log(`[highlight] received '${r2}' event from extension.`), r2) {
case "init": {
const e3 = "http://localhost:8080/dist/index.js";
console.log("url", e3), he.init(1, { debug: true, scriptUrl: e3 }), he.getSessionURL().then((e4) => {
n2({ url: e4 });
});
break;
}
case "stop":
he.stop(), n2({ success: true });
}
return true;
})), (() => {
if ("undefined" != typeof window) {
if (void 0 !== window._highlightFetchPatch)
return;
window._originalFetch = window.fetch, window._fetchProxy = (e2, t2) => window._originalFetch(e2, t2), window._highlightFetchPatch = (e2, t2) => window._fetchProxy.call(window || global, e2, t2), window.fetch = window._highlightFetchPatch;
}
})(), (() => {
if ("undefined" != typeof window) {
if (void 0 !== window._highlightWebSocketRequestCallback)
return;
window._highlightWebSocketRequestCallback = re, window._highlightWebSocketEventCallback = re;
const e2 = new Proxy(window.WebSocket, { construct(e3, t2) {
const n2 = U(), r2 = new e3(...t2), o2 = (e4) => {
window._highlightWebSocketRequestCallback({ socketId: n2, initiatorType: "websocket", type: "open", name: r2.url, startTimeAbs: performance.timeOrigin + e4.timeStamp });
}, i2 = (e4) => {
window._highlightWebSocketRequestCallback({ socketId: n2, initiatorType: "websocket", type: "close", name: r2.url, responseEndAbs: performance.timeOrigin + e4.timeStamp }), r2.removeEventListener("open", o2), r2.removeEventListener("error", a2), r2.removeEventListener("message", s2), r2.removeEventListener("close", i2);
}, s2 = (e4) => {
const { data: t3 } = e4, o3 = "string" == typeof t3 ? e4.data : void 0;
let i3;
i3 = "string" == typeof t3 ? t3.length : t3 instanceof Blob ? t3.size : t3.byteLength || 0, window._highlightWebSocketEventCallback({ socketId: n2, type: "received", name: r2.url, timeStamp: performance.timeOrigin + e4.timeStamp, size: i3, message: o3 });
}, a2 = (e4) => {
window._highlightWebSocketEventCallback({ socketId: n2, type: "error", name: r2.url, timeStamp: performance.timeOrigin + e4.timeStamp, size: 0 });
};
r2.addEventListener("open", o2), r2.addEventListener("error", a2), r2.addEventListener("message", s2), r2.addEventListener("close", i2);
const c2 = new Proxy(r2.send, { apply: function(e4, t3, o3) {
const i3 = o3[0], s3 = "string" == typeof i3 ? i3 : void 0;
let a3;
a3 = "string" == typeof i3 ? i3.length : i3 instanceof Blob ? i3.size : i3.byteLength || 0, window._highlightWebSocketEventCallback({ socketId: n2, type: "sent", name: r2.url, timeStamp: performance.timeOrigin + performance.now(), size: a3, message: s3 }), e4.apply(t3, o3);
} });
return r2.send = c2, r2;
} });
window.WebSocket = e2;
}
})();
import { H as i, a as r, M as t, b as a } from "./index-eQAWVLSK.js";
export {
he as H,
Y as HighlightSegmentMiddleware,
oe as MetricCategory,
Q as configureElectronHighlight
i as H,
r as HighlightSegmentMiddleware,
t as MetricCategory,
a as configureElectronHighlight
};
//# sourceMappingURL=index.js.map
{
"name": "highlight.run",
"version": "8.10.0",
"version": "8.11.0",
"description": "Open source, fullstack monitoring. Capture frontend errors, record server side logs, and visualize what broke with session replay.",

@@ -46,4 +46,2 @@ "keywords": [

"import": "./dist/index.js",
"require": "./dist/index.cjs",
"node": "./dist/index.cjs",
"default": "./dist/index.js"

@@ -59,14 +57,13 @@ },

"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-json": "^6.0.1",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^11.1.5",
"@size-limit/file": "^8.1.0",
"@types/chrome": "^0.0.144",
"@rollup/plugin-typescript": "^11.1.6",
"@size-limit/file": "^11.1.2",
"@types/chrome": "^0.0.263",
"readdirp": "^3.6.0",
"size-limit": "^8.1.0",
"tslib": "^2.4.0",
"typescript": "^5.0.4",
"vite": "^4.3.9",
"vitest": "^0.32.0"
"size-limit": "^11.1.2",
"tslib": "^2.6.2",
"typescript": "^5.4.3",
"vite": "^5.2.7",
"vitest": "^1.4.0"
},

@@ -76,3 +73,3 @@ "size-limit": [

"path": "dist/**.js",
"limit": "100 kB",
"limit": "256 kB",
"brotli": true

@@ -79,0 +76,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

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