-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathr7insight.min.js.download
More file actions
13 lines (13 loc) · 4.4 KB
/
r7insight.min.js.download
File metadata and controls
13 lines (13 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
Copyright 2019 Rapid7.
Please view license at https://raw.github.com/rapid7/r7insight_js/master/LICENSE
*/
(function(b,e){"function"===typeof define&&define.amd?define(function(){return e(b)}):"object"===typeof exports?("object"===typeof global&&(b=global),module.exports=e(b)):b.R7Insight=e(b)})(this,function(b){function e(a){var c=a.trace?(Math.random()+Math.PI).toString(36).substring(2,10):null,q=a.page_info,e=a.token,g=v(a.region),f=a.print,p=a.no_format,r;r="undefined"===typeof XDomainRequest?a.ssl:"https:"===b.location.protocol?!0:!1;var k;k=b.R7INSIGHTENDPOINT?b.R7INSIGHTENDPOINT:p?"webhook.logs.insight.rapid7.com/noformat":
"js.logs.insight.rapid7.com/v1";k=(r?"https://":"http://")+g+"."+k+"/logs/"+e;var h=[],l=!1,t=!1;if(a.catchall){var u=b.onerror;b.onerror=function(a,b,d){m({error:a,line:d,location:b}).level("ERROR").send();return u?u(a,b,d):!1}}var w=function(){var a=b.navigator||{doNotTrack:void 0},c=b.screen||{};return{url:(b.location||{}).pathname,referrer:document.referrer,screen:{width:c.width,height:c.height},window:{width:b.innerWidth,height:b.innerHeight},browser:{name:a.appName,user_agent:a.userAgent,version:a.appVersion,
cookie_enabled:a.cookieEnabled,do_not_track:a.doNotTrack},platform:a.platform}},x=function(){var a=Array.prototype.slice.call(arguments);if(0===a.length)throw Error("No arguments!");return 1===a.length?a[0]:a},m=function(a){var b=x.apply(this,arguments),d={event:b};"never"===q||t&&"per-entry"!==q||(t=!0,"undefined"===typeof b.screen&&"undefined"===typeof b.browser&&m(w()).level("PAGE").send());c&&(d.trace=c);return{level:function(a){if(f&&"undefined"!==typeof console&&"PAGE"!==a){var b=null;"undefined"!==
typeof XDomainRequest&&(b=d.trace+" "+d.event);try{console[a.toLowerCase()].call(console,b||d)}catch(y){console.log(b||d)}}d.level=a;return{send:function(){var a=[],b=JSON.stringify(d,function(b,d){if("undefined"===typeof d)return"undefined";if("object"===typeof d&&null!==d){var c;a:{for(c=0;c<a.length;c++)if(d===a[c])break a;c=-1}if(-1!==c)return"<?>";a.push(d)}return d});l?h.push(b):n(e,b)}}}}};this.log=m;var n=function(a,b){l=!0;var d;d="undefined"!==typeof XDomainRequest?new XDomainRequest:new XMLHttpRequest;
d.constructor===XMLHttpRequest?d.onreadystatechange=function(){4===d.readyState&&(400<=d.status?(console.error("Couldn't submit events."),410===d.status&&console.warn("This version of r7insight_js is no longer supported!")):(301===d.status&&console.warn("This version of r7insight_js is deprecated! Consider upgrading."),0<h.length?n(a,h.shift()):l=!1))}:d.onload=function(){0<h.length?n(a,h.shift()):l=!1};d.open("POST",k,!0);d.constructor===XMLHttpRequest&&(d.setRequestHeader("X-Requested-With","XMLHttpRequest"),
d.setRequestHeader("Content-type","application/json"));d.overrideMimeType&&d.overrideMimeType("text");d.send(b)}}function p(a){var b,c={ssl:!0,catchall:!1,trace:!0,page_info:"never",print:!1,endpoint:null,token:null};if("object"===typeof a)for(var f in a)c[f]=a[f];else throw Error("Invalid parameters for createLogStream()");if(null===c.token)throw Error("Token not present.");if(null===c.region)throw Error("Region is not present");b=new e(c);var g=function(a){if(b)return b.log.apply(this,arguments);
throw Error("You must call R7Insight.init(...) first.");};return{log:function(){g.apply(this,arguments).level("LOG").send()},warn:function(){g.apply(this,arguments).level("WARN").send()},error:function(){g.apply(this,arguments).level("ERROR").send()},info:function(){g.apply(this,arguments).level("INFO").send()}}}function v(a){var b=["eu","us","ca","au","ap"];if(a){if(-1<b.indexOf(a))return a;throw"Unrecognised region";}throw"No region defined";}var c={},f=function(a){if("string"!==typeof a.name)throw Error("Name not present.");
if(c.hasOwnProperty(a.name))throw Error("A logger with that name already exists!");c[a.name]=new p(a);return!0};return{init:function(a){var b={name:"default"};if("object"===typeof a)for(var c in a)b[c]=a[c];else if("string"===typeof a)b.token=a;else throw Error("Invalid parameters for init()");return f(b)},createLogStream:f,to:function(a){if(!c.hasOwnProperty(a))throw Error("Invalid name for logStream");return c[a]},destroy:function(a){"undefined"===typeof a&&(a="default");delete c[a]},log:function(){for(var a in c)c[a].log.apply(this,
arguments)},warn:function(){for(var a in c)c[a].warn.apply(this,arguments)},error:function(){for(var a in c)c[a].error.apply(this,arguments)},info:function(){for(var a in c)c[a].info.apply(this,arguments)}}});