Skip to content

Commit

Permalink
v7.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
boehlerlukas committed May 24, 2022
1 parent b8eb2b4 commit c25d053
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 104 deletions.
2 changes: 1 addition & 1 deletion build/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion demo/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ setTimeout(() => {
console.warn("Demo warning :)");
console.log("Data will be loaded soon.");

xxx();
// xxx();
}, 4000);

const files = [
Expand Down
16 changes: 1 addition & 15 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,11 @@ export namespace Gleap {
function initialize(
sdkKey: string
): void;
/**
* @deprecated Please use sendSilentReport instead.
*/
function sendSilentBugReport(
description: string,
priority: "LOW" | "MEDIUM" | "HIGH"
): void;
function sendSilentBugReportWithType(
description: string,
priority: "LOW" | "MEDIUM" | "HIGH",
type: string
): void;
function sendSilentReport(
function sendSilentCrashReport(
formData: {
[key: string]: string;
},
priority?: "LOW" | "MEDIUM" | "HIGH",
feedbackType?: string,
excludeData?: {
customData: Boolean;
metaData: Boolean;
Expand All @@ -43,7 +30,6 @@ export namespace Gleap {
function logEvent(name: string, data?: any): void;
function setAppBuildNumber(buildNumber: string): void;
function setAppVersionCode(versionCode: string): void;
function attachNetworkLogs(externalConsoleLogs: any[]): void;
function setStyles(styles: {
primaryColor: string;
headerColor: string;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "gleap",
"version": "7.0.2",
"version": "7.0.3",
"main": "build/index.js",
"scripts": {
"start": "webpack serve",
Expand Down
2 changes: 1 addition & 1 deletion published/latest/index.js

Large diffs are not rendered by default.

59 changes: 2 additions & 57 deletions src/Gleap.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,6 @@ class Gleap {
}
}

/**
* Attaches external network logs that get merged with the internal network logs.
* @param {*} externalConsoleLogs
*/
static attachNetworkLogs(externalConsoleLogs) {
GleapNetworkIntercepter.getInstance().externalConsoleLogs =
externalConsoleLogs;
}

/**
* Active the Gleap offline mode.
* @param {*} offlineMode
Expand Down Expand Up @@ -228,13 +219,6 @@ class Gleap {
GleapFeedbackButtonManager.getInstance().toggleFeedbackButton(show);
}

/**
* Enables the network logger.
*/
static setNetworkLogFilters(filters) {
GleapNetworkIntercepter.getInstance().setFilters(filters);
}

/**
* Sets the app version code.
* @param {string} appVersionCode
Expand Down Expand Up @@ -359,54 +343,15 @@ class Gleap {
}
}

/**
* Reports a bug silently
* @param {*} description
* @param {*} priority
* @param {*} type
* @deprecated Please use sendSilentReport instead.
*/
static sendSilentBugReportWithType(
description,
priority = "MEDIUM",
type = "BUG"
) {
return Gleap.sendSilentReport(
{
description: description,
},
priority,
type
);
}

/**
* Reports a bug silently
* @param {*} description
* @param {*} priority
* @deprecated Please use sendSilentReport instead.
*/
static sendSilentBugReport(description, priority = "MEDIUM") {
return Gleap.sendSilentReport(
{
description: description,
},
priority,
"BUG"
);
}

/**
* Sends a silent feedback report
* @param {*} formData
* @param {*} priority
* @param {*} feedbackType
* @param {*} excludeData
*/
static sendSilentReport(
static sendSilentCrashReport(
formData,
priority = "MEDIUM",
feedbackType = "BUG",
excludeData = {}
) {
const sessionInstance = GleapSession.getInstance();
Expand All @@ -420,7 +365,7 @@ class Gleap {
}

GleapEventManager.notifyEvent("sending-silent-report");
const feedback = new GleapFeedback(feedbackType, priority, newFormData, true, excludeData ? excludeData : {});
const feedback = new GleapFeedback("CRASH", priority, newFormData, true, excludeData ? excludeData : {});
feedback.sendFeedback().then(() => {
GleapEventManager.notifyEvent("silent-report-sent");
}).catch((error) => {
Expand Down
4 changes: 4 additions & 0 deletions src/GleapConfigManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ export default class GleapConfigManager {
GleapNetworkIntercepter.getInstance().setFilters(flowConfig.networkLogPropsToIgnore);
}

if (flowConfig.networkLogBlacklist) {
GleapNetworkIntercepter.getInstance().setBlacklist(flowConfig.networkLogBlacklist);
}

if (flowConfig.customTranslations) {
GleapTranslationManager.getInstance().setCustomTranslation(flowConfig.customTranslations);
}
Expand Down
3 changes: 1 addition & 2 deletions src/GleapCrashDetector.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export default class GleapCrashDetector {
const flowConfig = GleapConfigManager.getInstance().getFlowConfig();
if (flowConfig && typeof flowConfig.enableCrashDetector !== "undefined" && flowConfig.enableCrashDetector) {
if (flowConfig.crashDetectorIsSilent) {
Gleap.sendSilentReport(
Gleap.sendSilentCrashReport(
{
errorMessage: message,
url: filename,
Expand All @@ -39,7 +39,6 @@ export default class GleapCrashDetector {
stackTrace: stackTrace,
},
"MEDIUM",
"CRASH",
{
screenshot: true,
replays: true,
Expand Down
9 changes: 6 additions & 3 deletions src/GleapFeedback.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@ export default class GleapFeedback {
screenshotData = undefined;
webReplay = undefined;
screenRecordingUrl = undefined;
spamToken = undefined;

constructor(type, priority, formData, isSilent, excludeData, outboundId) {
constructor(type, priority, formData, isSilent, excludeData, outboundId, spamToken) {
this.type = type;
this.priority = priority;
this.formData = formData;
this.isSilent = isSilent;
this.excludeData = excludeData;
this.outboundId = outboundId;
this.spamToken = spamToken;
}

takeSnapshot() {
Expand Down Expand Up @@ -84,7 +86,8 @@ export default class GleapFeedback {
outbound: this.outboundId,
screenshotData: this.screenshotData,
webReplay: this.webReplay,
screenRecordingUrl: this.screenRecordingUrl
screenRecordingUrl: this.screenRecordingUrl,
spamToken: this.spamToken,
};

const keysToExclude = Object.keys(this.excludeData);
Expand Down Expand Up @@ -112,7 +115,7 @@ export default class GleapFeedback {
const dataToSend = this.getData();

const http = new XMLHttpRequest();
http.open("POST", GleapSession.getInstance().apiUrl + "/bugs");
http.open("POST", GleapSession.getInstance().apiUrl + "/bugs/v2");
http.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
GleapSession.getInstance().injectSession(http);
http.onerror = (error) => {
Expand Down
3 changes: 2 additions & 1 deletion src/GleapFrameManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,9 @@ export default class GleapFrameManager {
const formData = data.data.formData;
const action = data.data.action;
const outboundId = data.data.outboundId;
const spamToken = data.data.spamToken;

const feedback = new GleapFeedback(action.feedbackType, "MEDIUM", formData, false, action.excludeData, outboundId);
const feedback = new GleapFeedback(action.feedbackType, "MEDIUM", formData, false, action.excludeData, outboundId, spamToken);
feedback.sendFeedback().then(() => {
this.sendMessage({
name: "feedback-sent"
Expand Down
57 changes: 38 additions & 19 deletions src/GleapNetworkIntercepter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ class GleapNetworkIntercepter {
startTimestamp = Date.now();
requestId = 0;
requests = {};
externalConsoleLogs = [];
maxRequests = 10;
filters = [];
blacklist = [];
initialized = false;
stopped = false;
loadAllResources = false;
Expand Down Expand Up @@ -44,9 +44,7 @@ class GleapNetworkIntercepter {
}

getRequests() {
var requests = this.externalConsoleLogs.concat(
Object.values(this.requests)
);
var requests = JSON.parse(JSON.stringify(Object.values(this.requests)));

if (this.filters && this.filters.length > 0) {
// Perform network log filtering.
Expand Down Expand Up @@ -109,6 +107,17 @@ class GleapNetworkIntercepter {
}
} catch (exp) { }

if (this.blacklist && this.blacklist.length > 0) {
requests = requests.filter((request) => {
for (var i = 0; i < this.blacklist.length; i++) {
if (request.url && request.url.includes(this.blacklist[i])) {
return false;
}
}
return true;
});
}

return requests;
}

Expand All @@ -121,9 +130,11 @@ class GleapNetworkIntercepter {
}

setFilters(filters) {
if (filters) {
this.filters = filters;
}
this.filters = filters ? filters : [];
}

setBlacklist(blacklist) {
this.blacklist = blacklist ? blacklist : [];
}

cleanRequests() {
Expand All @@ -148,14 +159,23 @@ class GleapNetworkIntercepter {
}
}

calculateTextSize(text) {
getTextContentSize(text) {
const size = new TextEncoder().encode(text).length;
const kiloBytes = size / 1024;
const megaBytes = kiloBytes / 1024;
return megaBytes;
}

fixPayload(payload) {
cleanupContentSize(text) {
const contentSize = this.getTextContentSize(text);
if (contentSize > 0.2) {
return "<content_too_large>";
}

return text;
}

cleanupPayload(payload) {
if (payload === undefined || payload === null) {
return "{}";
}
Expand All @@ -170,6 +190,11 @@ class GleapNetworkIntercepter {
return payload;
}

preparePayload(payload) {
var payloadText = this.cleanupPayload(payload);
return this.cleanupContentSize(payloadText);
}

start() {
if (this.initialized) {
return;
Expand Down Expand Up @@ -207,7 +232,7 @@ class GleapNetworkIntercepter {
params[1] && params[1].method ? params[1].method : "GET";
this.requests[bbRequestId] = {
request: {
payload: self.fixPayload(params[1].body),
payload: self.preparePayload(params[1].body),
headers: params[1].headers,
},
type: method,
Expand Down Expand Up @@ -259,10 +284,7 @@ class GleapNetworkIntercepter {
this.requests[bbRequestId]["response"] = {
status: req.status,
statusText: req.statusText,
responseText:
self.calculateTextSize(responseText) > 0.5
? "<response_too_large>"
: responseText,
responseText: self.cleanupContentSize(responseText)
};
}
this.calcRequestTime(bbRequestId);
Expand Down Expand Up @@ -331,7 +353,7 @@ class GleapNetworkIntercepter {
this.requests[request.bbRequestId]
) {
this.requests[request.bbRequestId]["request"] = {
payload: this.fixPayload(args.length > 0 ? args[0] : "{}"),
payload: this.preparePayload(args.length > 0 ? args[0] : "{}"),
headers: request.requestHeaders,
};
}
Expand Down Expand Up @@ -369,10 +391,7 @@ class GleapNetworkIntercepter {
var responseType = target.responseType;
var responseText = "<" + responseType + ">";
if (responseType === "" || responseType === "text") {
responseText =
this.calculateTextSize(target.responseText) > 0.5
? "<response_too_large>"
: target.responseText;
responseText = this.cleanupContentSize(target.responseText);
}

this.requests[target.bbRequestId]["success"] = true;
Expand Down
5 changes: 2 additions & 3 deletions src/GleapRageClickDetector.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,12 @@ export default class GleapRageClickDetector {
const flowConfig = GleapConfigManager.getInstance().getFlowConfig();
if (flowConfig && typeof flowConfig.enableRageClickDetector !== "undefined" && flowConfig.enableRageClickDetector) {
if (flowConfig.rageClickDetectorIsSilent) {
Gleap.sendSilentReport(
Gleap.sendSilentCrashReport(
{
description: `Rage click detected.`,
element: elementDescription,
},
"MEDIUM",
"CRASH"
"MEDIUM"
);
} else {
Gleap.startFeedbackFlow("crash");
Expand Down

0 comments on commit c25d053

Please sign in to comment.