diff --git a/dist/exceptionless.min.js b/dist/exceptionless.min.js index f607b4b9..f5bb18cb 100644 --- a/dist/exceptionless.min.js +++ b/dist/exceptionless.min.js @@ -1,3 +1,3 @@ -!function(e,t){function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function r(e){return"undefined"==typeof e}if(e){var i={},o=e.TraceKit,s=[].slice,a="?";i.noConflict=function(){return e.TraceKit=o,i},i.wrap=function(e){function t(){try{return e.apply(this,arguments)}catch(t){throw i.report(t),t}}return t},i.report=function(){function t(e){u(),h.push(e)}function r(e){for(var t=h.length-1;t>=0;--t)h[t]===e&&h.splice(t,1)}function o(e,t){var r=null;if(!t||i.collectWindowErrors){for(var o in h)if(n(h,o))try{h[o].apply(null,[e].concat(s.call(arguments,2)))}catch(a){r=a}if(r)throw r}}function a(e,t,n,r,s){var a=null;if(v)i.computeStackTrace.augmentStackTraceWithInitialElement(v,t,n,e),c();else if(s)a=i.computeStackTrace(s),o(a,!0);else{var u={url:t,line:n,column:r};u.func=i.computeStackTrace.guessFunctionName(u.url,u.line),u.context=i.computeStackTrace.gatherContext(u.url,u.line),a={mode:"onerror",message:e,stack:[u]},o(a,!0)}return f?f.apply(this,arguments):!1}function u(){p!==!0&&(f=e.onerror,e.onerror=a,p=!0)}function c(){var e=v,t=d;d=null,v=null,g=null,o.apply(null,[e,!1].concat(t))}function l(t){if(v){if(g===t)return;c()}var n=i.computeStackTrace(t);throw v=n,g=t,d=s.call(arguments,1),e.setTimeout(function(){g===t&&c()},n.incomplete?2e3:0),t}var f,p,h=[],d=null,g=null,v=null;return l.subscribe=t,l.unsubscribe=r,l}(),i.computeStackTrace=function(){function t(t){if(!i.remoteFetching)return"";try{var n=function(){try{return new e.XMLHttpRequest}catch(t){return new e.ActiveXObject("Microsoft.XMLHTTP")}},r=n();return r.open("GET",t,!1),r.send(""),r.responseText}catch(o){return""}}function o(r){if("string"!=typeof r)return[];if(!n(_,r)){var i="",o="";try{o=e.document.domain}catch(s){}var a=/(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(r);a&&a[2]===o&&(i=t(r)),_[r]=i?i.split("\n"):[]}return _[r]}function s(e,t){var n,i=/function ([^(]*)\(([^)]*)\)/,s=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,u="",c=10,l=o(e);if(!l.length)return a;for(var f=0;c>f;++f)if(u=l[t-f]+u,!r(u)){if(n=s.exec(u))return n[1];if(n=i.exec(u))return n[1]}return a}function u(e,t){var n=o(e);if(!n.length)return null;var s=[],a=Math.floor(i.linesOfContext/2),u=a+i.linesOfContext%2,c=Math.max(0,t-a-1),l=Math.min(n.length,t+u-1);t-=1;for(var f=c;l>f;++f)r(n[f])||s.push(n[f]);return s.length>0?s:null}function c(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function l(e){return c(e).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function f(e,t){for(var n,r,i=0,s=t.length;s>i;++i)if((n=o(t[i])).length&&(n=n.join("\n"),r=e.exec(n)))return{url:t[i],line:n.substring(0,r.index).split("\n").length,column:r.index-n.lastIndexOf("\n",r.index)-1};return null}function p(e,t,n){var r,i=o(t),s=new RegExp("\\b"+c(e)+"\\b");return n-=1,i&&i.length>n&&(r=s.exec(i[n]))?r.index:null}function h(t){if(!r(e&&e.document)){for(var n,i,o,s,a=[e.location.href],u=e.document.getElementsByTagName("script"),p=""+t,h=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,d=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,g=0;gd;++d){if(t=i.exec(l[d])){var v=t[2]&&-1!==t[2].indexOf("native");n={url:v?null:t[2],func:t[1]||a,args:v?[t[2]]:[],line:t[3]?+t[3]:null,column:t[4]?+t[4]:null}}else if(t=c.exec(l[d]))n={url:t[2],func:t[1]||a,args:[],line:+t[3],column:t[4]?+t[4]:null};else{if(!(t=o.exec(l[d])))continue;n={url:t[3],func:t[1]||a,args:t[2]?t[2].split(","):[],line:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}!n.func&&n.line&&(n.func=s(n.url,n.line)),n.line&&(n.context=u(n.url,n.line)),f.push(n)}return f.length?(f[0]&&f[0].line&&!f[0].column&&h?f[0].column=p(h[1],f[0].url,f[0].line):f[0].column||r(e.columnNumber)||(f[0].column=e.columnNumber+1),{mode:"stack",name:e.name,message:e.message,stack:f}):null}function g(e){var t=e.stacktrace;if(t){for(var n,r=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,i=/ line (\d+), column (\d+)\s*(?:in (?:]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,o=t.split("\n"),a=[],c=0;c=0&&(y.line=b+x.substring(0,_).split("\n").length)}}}else if(i=p.exec(r[m])){var w=e.location.href.replace(/#.*$/,""),E=new RegExp(l(r[m+1])),I=f(E,[w]);y={url:w,func:"",args:[],line:I?I.line:i[1],column:null}}if(y){y.func||(y.func=s(y.url,y.line));var P=u(y.url,y.line),C=P?P[Math.floor(P.length/2)]:null;P&&C.replace(/^\s*/,"")===r[m+1].replace(/^\s*/,"")?y.context=P:y.context=[r[m+1]],h.push(y)}}return h.length?{mode:"multiline",name:t.name,message:r[0],stack:h}:null}function m(e,t,n,r){var i={url:t,line:n};if(i.url&&i.line){e.incomplete=!1,i.func||(i.func=s(i.url,i.line)),i.context||(i.context=u(i.url,i.line));var o=/ '([^']+)' /.exec(r);if(o&&(i.column=p(o[1],i.url,i.line)),e.stack.length>0&&e.stack[0].url===i.url){if(e.stack[0].line===i.line)return!1;if(!e.stack[0].line&&e.stack[0].func===i.func)return e.stack[0].line=i.line,e.stack[0].context=i.context,!1}return e.stack.unshift(i),e.partial=!0,!0}return e.incomplete=!0,!1}function y(e,t){for(var n,r,o,u=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,c=[],l={},f=!1,d=y.caller;d&&!f;d=d.caller)if(d!==b&&d!==i.report){if(r={url:null,func:a,args:[],line:null,column:null},d.name?r.func=d.name:(n=u.exec(d.toString()))&&(r.func=n[1]),"undefined"==typeof r.func)try{r.func=n.input.substring(0,n.input.indexOf("{"))}catch(g){}if(o=h(d)){r.url=o.url,r.line=o.line,r.func===a&&(r.func=s(r.url,r.line));var v=/ '([^']+)' /.exec(e.message||e.description);v&&(r.column=p(v[1],o.url,o.line))}l[""+d]?f=!0:l[""+d]=!0,c.push(r)}t&&c.splice(0,t);var S={mode:"callers",name:e.name,message:e.message,stack:c};return m(S,e.sourceURL||e.fileName,e.line||e.lineNumber,e.message||e.description),S}function b(e,t){var n=null;t=null==t?0:+t;try{if(n=g(e))return n}catch(r){if(x)throw r}try{if(n=d(e))return n}catch(r){if(x)throw r}try{if(n=v(e))return n}catch(r){if(x)throw r}try{if(n=y(e,t+1))return n}catch(r){if(x)throw r}return{mode:"failed"}}function S(e){e=(null==e?0:+e)+1;try{throw new Error}catch(t){return b(t,e+1)}}var x=!1,_={};return b.augmentStackTraceWithInitialElement=m,b.guessFunctionName=s,b.gatherContext=u,b.ofCaller=S,b.getSource=o,b}(),i.extendToAsynchronousCallbacks=function(){var t=function(t){var n=e[t];e[t]=function(){var e=s.call(arguments),t=e[0];return"function"==typeof t&&(e[0]=i.wrap(t)),n.apply?n.apply(this,e):n(e[0],e[1])}};t("setTimeout"),t("setInterval")},i.remoteFetching||(i.remoteFetching=!0),i.collectWindowErrors||(i.collectWindowErrors=!0),(!i.linesOfContext||i.linesOfContext<1)&&(i.linesOfContext=11),"undefined"!=typeof module&&module.exports&&this.module!==module?module.exports=i:"function"==typeof define&&define.amd?define("TraceKit",[],i):e.TraceKit=i}}("undefined"!=typeof window?window:global),function(e,t){var n,r,i;"function"==typeof define&&define.amd?define("exceptionless",["require","exports","module","TraceKit"],t):"object"==typeof r?i.exports=t(n,r,i,n("TraceKit")):e.exceptionless=t(n,r,i,e.TraceKit)}(this,function(e,t,n,r){function i(e,t){var n=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/g;if("string"==typeof t){var r=n.exec(t);if(r)return new Date(t)}return t}function o(){if(!document||!document.getElementsByTagName)return null;for(var e=document.getElementsByTagName("script"),t=0;t-1)return S.parseQueryString(e[t].src.split("?").pop());return null}function s(e,t){var n=E["default"].createUnhandledException(new Error(e.message||(t||{}).status||"Script error"),"onerror");n.pluginContextData["@@_TraceKit.StackTrace"]=e,n.submit()}if(e||(e=function(e){return("undefined"!=typeof window?window:global)[e]}),!t)var t={};var a=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},r=e("TraceKit"),u=function(){function e(e,t){this.success=!1,this.badRequest=!1,this.serviceUnavailable=!1,this.paymentRequired=!1,this.unableToAuthenticate=!1,this.notFound=!1,this.requestEntityTooLarge=!1,this.statusCode=e,this.message=t,this.success=e>=200&&299>=e,this.badRequest=400===e,this.serviceUnavailable=503===e,this.paymentRequired=402===e,this.unableToAuthenticate=401===e||403===e,this.notFound=404===e,this.requestEntityTooLarge=413===e}return e}();t.SubmissionResponse=u;var c=function(){function e(){}return e.onChanged=function(e){!!e&&this._handlers.push(e)},e.applySavedServerSettings=function(e){if(e&&e.isValid){var t=this.getSavedServerSettings(e);e.log.info("Applying saved settings: v"+t.version),e.settings=S.merge(e.settings,t.settings),this.changed(e)}},e.getVersion=function(e){if(!e||!e.isValid)return 0;var t=this.getSavedServerSettings(e);return t.version||0},e.checkVersion=function(e,t){var n=this.getVersion(t);n>=e||(t.log.info("Updating settings from v"+n+" to v"+e),this.updateSettings(t,n))},e.updateSettings=function(t,n){var r=this;if(t&&t.enabled){var i="Unable to update settings";if(!t.isValid)return void t.log.error(i+": ApiKey is not set.");(!n||0>n)&&(n=this.getVersion(t)),t.log.info("Checking for updated settings from: v"+n+"."),t.submissionClient.getSettings(t,n,function(n){if(!(t&&n&&n.success&&n.settings))return void t.log.warn(i+": "+n.message);t.settings=S.merge(t.settings,n.settings);var o=e.getSavedServerSettings(t);for(var s in o)n.settings[s]||delete t.settings[s];var a={version:n.settingsVersion,settings:n.settings};t.storage.settings.save(a),t.log.info("Updated settings: v"+a.version),r.changed(t)})}},e.changed=function(e){for(var t=this._handlers,n=0;n-1;o--)i[o]=n(r[o],t||o=e)&&(e=5),r.log.info("Suspending processing for "+e+" minutes."),this._suspendProcessingUntil=new Date((new Date).getTime()+6e4*e),t&&(this._discardQueuedItemsUntil=this._suspendProcessingUntil),n&&r.storage.queue.clear()},e.prototype.onEventsPosted=function(e){!!e&&this._handlers.push(e)},e.prototype.eventsPosted=function(e,t){for(var n=this._handlers,r=0;rnew Date},e.prototype.ensureQueueTimer=function(){var e=this;this._queueTimer||(this._queueTimer=setInterval(function(){return e.onProcessQueue()},1e4))},e.prototype.isQueueProcessingSuspended=function(){return this._suspendProcessingUntil&&this._suspendProcessingUntil>new Date},e.prototype.onProcessQueue=function(){this.isQueueProcessingSuspended()||this._processingQueue||this.process()},e.prototype.processSubmissionResponse=function(e,t){var n="The event will not be submitted.",r=this._config,i=r.log;if(e.success)return i.info("Sent "+t.length+" events."),void this.removeEvents(t);if(e.serviceUnavailable)return i.error("Server returned service unavailable."),void this.suspendProcessing();if(e.paymentRequired)return i.info("Too many events have been submitted, please upgrade your plan."),void this.suspendProcessing(null,!0,!0);if(e.unableToAuthenticate)return i.info("Unable to authenticate, please check your configuration. "+n),this.suspendProcessing(15),void this.removeEvents(t);if(e.notFound||e.badRequest)return i.error("Error while trying to submit data: "+e.message),this.suspendProcessing(240),void this.removeEvents(t);if(e.requestEntityTooLarge){var o="Event submission discarded for being too large.";return void(r.submissionBatchSize>1?(i.error(o+" Retrying with smaller batch size."),r.submissionBatchSize=Math.max(1,Math.round(r.submissionBatchSize/1.5))):(i.error(o+" "+n),this.removeEvents(t)))}e.success||(i.error("Error submitting events: "+(e.message||"Please check the network tab for more info.")),this.suspendProcessing())},e.prototype.removeEvents=function(e){for(var t=0;t<(e||[]).length;t++)this._config.storage.queue.remove(e[t].timestamp)},e}();t.DefaultEventQueue=m;var y=function(){function e(e){void 0===e&&(e=250),this.queue=new A(e),this.settings=new A(1)}return e}();t.InMemoryStorageProvider=y;var b=function(){function e(){this.configurationVersionHeader="x-exceptionless-configversion"}return e.prototype.postEvents=function(e,t,n,r){var i=JSON.stringify(e),o=this.createRequest(t,"POST",t.serverUrl+"/api/v2/events",i),s=this.createSubmissionCallback(t,n);return t.submissionAdapter.sendRequest(o,s,r)},e.prototype.postUserDescription=function(e,t,n,r){var i=n.serverUrl+"/api/v2/events/by-ref/"+encodeURIComponent(e)+"/user-description",o=JSON.stringify(t),s=this.createRequest(n,"POST",i,o),a=this.createSubmissionCallback(n,r);return n.submissionAdapter.sendRequest(s,a)},e.prototype.getSettings=function(e,t,n){var r=this.createRequest(e,"GET",e.serverUrl+"/api/v2/projects/config?v="+t),i=function(t,r,i,o){if(200!==t)return n(new O(!1,null,-1,null,r));var s;try{s=JSON.parse(i)}catch(a){e.log.error("Unable to parse settings: '"+i+"'")}return!s||isNaN(s.version)?n(new O(!1,null,-1,null,"Invalid configuration settings.")):void n(new O(!0,s.settings||{},s.version))};return e.submissionAdapter.sendRequest(r,i)},e.prototype.sendHeartbeat=function(e,t,n){var r=this.createRequest(n,"GET",n.heartbeatServerUrl+"/api/v2/events/session/heartbeat?id="+e+"&close="+t);n.submissionAdapter.sendRequest(r)},e.prototype.createRequest=function(e,t,n,r){return void 0===r&&(r=null),{method:t,url:n,data:r,apiKey:e.apiKey,userAgent:e.userAgent}},e.prototype.createSubmissionCallback=function(e,t){var n=this;return function(r,i,o,s){var a=s&&parseInt(s[n.configurationVersionHeader],10);c.checkVersion(a,e),t(new u(r,i))}},e}();t.DefaultSubmissionClient=b;var S=function(){function e(){}return e.addRange=function(e){for(var t=[],n=1;n0?n[0]:null},e.parseQueryString=function(t,n){if(!t||0===t.length)return null;var r=t.split("&");if(0===r.length)return null;for(var i={},o=0;o=10},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"serverUrl",{get:function(){return this._serverUrl},set:function(e){e&&(this._serverUrl=e,this._heartbeatServerUrl=e,this.log.info("serverUrl: "+e),this.changed())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"heartbeatServerUrl",{get:function(){return this._heartbeatServerUrl},set:function(e){e&&(this._heartbeatServerUrl=e,this.log.info("heartbeatServerUrl: "+e),this.changed())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updateSettingsWhenIdleInterval",{get:function(){return this._updateSettingsWhenIdleInterval},set:function(e){"number"==typeof e&&(0>=e?e=-1:e>0&&15e3>e&&(e=15e3),this._updateSettingsWhenIdleInterval=e,this.log.info("updateSettingsWhenIdleInterval: "+e),this.changed())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataExclusions",{get:function(){var e=this.settings["@@DataExclusions"];return this._dataExclusions.concat(e&&e.split(",")||[])},enumerable:!0,configurable:!0}),e.prototype.addDataExclusions=function(){for(var e=[],t=0;tt.priority?1:0})},enumerable:!0,configurable:!0}),e.prototype.addPlugin=function(e,t,n){var r=n?{name:e,priority:t,run:n}:e;if(!r||!r.run)return void this.log.error("Add plugin failed: Run method not defined");r.name||(r.name=S.guid()),r.priority||(r.priority=0);for(var i=!1,o=this._plugins,s=0;se||e>90)throw new Error("Must be a valid latitude value between -90.0 and 90.0.");if(-180>t||t>180)throw new Error("Must be a valid longitude value between -180.0 and 180.0.");return this.target.geo=e+","+t,this},e.prototype.setUserIdentity=function(e,t){var n="string"!=typeof e?e:{identity:e,name:t};return n&&(n.identity||n.name)?(this.setProperty("@user",n),this):this},e.prototype.setUserDescription=function(e,t){return e&&t&&this.setProperty("@user_description",{email_address:e,description:t}),this},e.prototype.setManualStackingInfo=function(e,t){if(e){var n={signature_data:e};t&&(n.title=t),this.setProperty("@stack",n)}return this},e.prototype.setManualStackingKey=function(e,t){if(e){var n={ManualStackingKey:e};this.setManualStackingInfo(n,t)}return this},e.prototype.setValue=function(e){return e&&(this.target.value=e),this},e.prototype.addTags=function(){for(var e=[],t=0;t100)return!1;for(var t=0;t=48&&57>=n,i=n>=65&&90>=n||n>=97&&122>=n,o=45===n;if(!r&&!i&&!o)return!1}return!0},e}();t.EventBuilder=_;var w=function(){function e(){}return e.prototype.setException=function(e){e&&(this["@@_Exception"]=e)},Object.defineProperty(e.prototype,"hasException",{get:function(){return!!this["@@_Exception"]},enumerable:!0,configurable:!0}),e.prototype.getException=function(){return this["@@_Exception"]||null},e.prototype.markAsUnhandledError=function(){this["@@_IsUnhandledError"]=!0},Object.defineProperty(e.prototype,"isUnhandledError",{get:function(){return!!this["@@_IsUnhandledError"]},enumerable:!0,configurable:!0}),e.prototype.setSubmissionMethod=function(e){e&&(this["@@_SubmissionMethod"]=e)},e.prototype.getSubmissionMethod=function(){return this["@@_SubmissionMethod"]||null},e}();t.ContextData=w;var E=function(){function e(e,t){var n=this;"object"==typeof e?this.config=new x(e):this.config=new x({apiKey:e,serverUrl:t}),this.updateSettingsTimer(5e3),this.config.onChanged(function(e){return n.updateSettingsTimer(n._timeoutId>0?5e3:0)}),this.config.queue.onEventsPosted(function(e,t){return n.updateSettingsTimer()})}return e.prototype.createException=function(e){var t=new w;return t.setException(e),this.createEvent(t).setType("error")},e.prototype.submitException=function(e,t){this.createException(e).submit(t)},e.prototype.createUnhandledException=function(e,t){var n=this.createException(e);return n.pluginContextData.markAsUnhandledError(),n.pluginContextData.setSubmissionMethod(t),n},e.prototype.submitUnhandledException=function(e,t,n){this.createUnhandledException(e,t).submit(n)},e.prototype.createFeatureUsage=function(e){return this.createEvent().setType("usage").setSource(e)},e.prototype.submitFeatureUsage=function(e,t){this.createFeatureUsage(e).submit(t)},e.prototype.createLog=function(e,t,n){ -var r=this.createEvent().setType("log");if(t&&n)r=r.setSource(e).setMessage(t).setProperty("@level",n);else if(t)r=r.setSource(e).setMessage(t);else{var i=arguments.callee.caller;r=r.setSource(i&&i.name).setMessage(e)}return r},e.prototype.submitLog=function(e,t,n,r){this.createLog(e,t,n).submit(r)},e.prototype.createNotFound=function(e){return this.createEvent().setType("404").setSource(e)},e.prototype.submitNotFound=function(e,t){this.createNotFound(e).submit(t)},e.prototype.createSessionStart=function(){return this.createEvent().setType("session")},e.prototype.submitSessionStart=function(e){this.createSessionStart().submit(e)},e.prototype.submitSessionEnd=function(e){e&&(this.config.log.info("Submitting session end: "+e),this.config.submissionClient.sendHeartbeat(e,!0,this.config))},e.prototype.submitSessionHeartbeat=function(e){e&&(this.config.log.info("Submitting session heartbeat: "+e),this.config.submissionClient.sendHeartbeat(e,!1,this.config))},e.prototype.createEvent=function(e){return new _({date:new Date},this,e)},e.prototype.submitEvent=function(e,t,n){function r(e){return e&&(e.cancelled=!0),!!n&&n(e)}var i=new h(this,e,t);return e?this.config.enabled?(e.data||(e.data={}),e.tags&&e.tags.length||(e.tags=[]),void d.run(i,function(e){var t=e.client.config,r=e.event;e.cancelled||(r.type&&0!==r.type.length||(r.type="log"),r.date||(r.date=new Date),t.queue.enqueue(r),r.reference_id&&r.reference_id.length>0&&(e.log.info("Setting last reference id '"+r.reference_id+"'"),t.lastReferenceIdManager.setLast(r.reference_id))),!!n&&n(e)})):(this.config.log.info("Event submission is currently disabled."),r(i)):r(i)},e.prototype.updateUserEmailAndDescription=function(e,t,n,r){var i=this;if(!(e&&t&&n&&this.config.enabled))return!!r&&r(new u(500,"cancelled"));var o={email_address:t,description:n};this.config.submissionClient.postUserDescription(e,o,this.config,function(t){t.success||i.config.log.error("Failed to submit user email and description for event '"+e+"': "+t.statusCode+" "+t.message),!!r&&r(t)})},e.prototype.getLastReferenceId=function(){return this.config.lastReferenceIdManager.getLast()},e.prototype.updateSettingsTimer=function(e){var t=this;this.config.log.info("Updating settings timer with delay: "+e),this._timeoutId=clearTimeout(this._timeoutId),this._timeoutId=clearInterval(this._intervalId);var n=this.config.updateSettingsWhenIdleInterval;if(n>0){var r=function(){return c.updateSettings(t.config)};e>0&&(this._timeoutId=setTimeout(r,e)),this._intervalId=setInterval(r,n)}},Object.defineProperty(e,"default",{get:function(){return null===e._instance&&(e._instance=new e(null)),e._instance},enumerable:!0,configurable:!0}),e._instance=null,e}();t.ExceptionlessClient=E;var I=function(){function e(){this.priority=10,this.name="ConfigurationDefaultsPlugin"}return e.prototype.run=function(e,t){for(var n=e.client.config,r=n.defaultTags||[],i=0;i0&&(e.event.data[n].modules=i)}t&&t()},e}();t.ModuleInfoPlugin=C;var T=function(){function e(){this.priority=70,this.name="RequestInfoPlugin"}return e.prototype.run=function(e,t){var n="@request",r=e.client.config,i=r.requestInfoCollector;if(!e.event.data[n]&&i){var o=i.getRequestInfo(e);o&&(S.isMatch(o.user_agent,r.userAgentBotPatterns)?(e.log.info("Cancelling event as the request user agent matches a known bot pattern"),e.cancelled=!0):e.event.data[n]=o)}t&&t()},e}();t.RequestInfoPlugin=T;var k=function(){function e(){this.priority=80,this.name="EnvironmentInfoPlugin"}return e.prototype.run=function(e,t){var n="@environment",r=e.client.config.environmentInfoCollector;if(!e.event.data[n]&&r){var i=r.getEnvironmentInfo(e);i&&(e.event.data[n]=i)}t&&t()},e}();t.EnvironmentInfoPlugin=k;var R=function(){function e(){this.priority=100,this.name="SubmissionMethodPlugin"}return e.prototype.run=function(e,t){var n=e.contextData.getSubmissionMethod();n&&(e.event.data["@submission_method"]=n),t&&t()},e}();t.SubmissionMethodPlugin=R;var U=function(){function e(e,t){var n=this;void 0===e&&(e=function(){return Date.now()}),void 0===t&&(t=3e4),this.priority=1010,this.name="DuplicateCheckerPlugin",this._mergedEvents=[],this._processedHashcodes=[],this._getCurrentTime=e,this._interval=t,setInterval(function(){for(;n._mergedEvents.length>0;)n._mergedEvents.shift().resubmit()},t)}return e.prototype.run=function(e,t){function n(e){for(var t=0;e;)e.message&&e.message.length&&(t+=397*t^S.getHashCode(e.message)),e.stack_trace&&e.stack_trace.length&&(t+=397*t^S.getHashCode(JSON.stringify(e.stack_trace))),e=e.inner;return t}var r=this,i=e.event.data["@error"],o=n(i);if(o){var s=e.event.count||1,a=this._getCurrentTime(),u=this._mergedEvents.filter(function(e){return e.hashCode===o})[0];if(u)return u.incrementCount(s),u.updateDate(e.event.date),e.log.info("Ignoring duplicate event with hash: "+o),void(e.cancelled=!0);if(this._processedHashcodes.some(function(e){return e.hash===o&&e.timestamp>=a-r._interval}))return e.log.trace("Adding event with hash: "+o),this._mergedEvents.push(new q(o,e,s)),void(e.cancelled=!0);for(e.log.trace("Enqueueing event with hash: "+o+"to cache."),this._processedHashcodes.push({hash:o,timestamp:a});this._processedHashcodes.length>50;)this._processedHashcodes.shift();t&&t()}},e}();t.DuplicateCheckerPlugin=U;var q=function(){function e(e,t,n){this.hashCode=e,this._context=t,this._count=n}return e.prototype.incrementCount=function(e){this._count+=e},e.prototype.resubmit=function(){this._context.event.count=this._count,this._context.client.config.queue.enqueue(this._context.event)},e.prototype.updateDate=function(e){e>this._context.event.date&&(this._context.event.date=e)},e}(),M=function(){function e(){this.priority=45,this.name="EventExclusionPlugin"}return e.prototype.run=function(e,t){function n(e){switch((e||"").toLowerCase().trim()){case"trace":case"true":case"1":case"yes":return 0;case"debug":return 1;case"info":return 2;case"warn":return 3;case"error":return 4;case"fatal":return 5;case"off":case"false":case"0":case"no":return 6;default:return-1}}function r(e,t){return void 0===t&&(t="*"),n(i(e,"log",t,"Trace")+"")}function i(e,t,n,r){if(void 0===e&&(e={}),void 0===r&&(r=void 0),!t)return r;var i="log"===t,o="@@"+t+":",s=e[o+n];if(s)return i?s:S.toBoolean(s);for(var a in e)if(S.startsWith(a.toLowerCase(),o.toLowerCase())&&S.isMatch(n,[a.substring(o.length)]))return i?e[a]:S.toBoolean(e[a]);return r}var o=e.event,s=e.log,a=e.client.config.settings;if("log"===o.type){var u=r(a,o.source),c=n(o.data["@level"]);c>=0&&(c>5||u>c)&&(s.info("Cancelling log event due to minimum log level."),e.cancelled=!0)}else if("error"===o.type)for(var l=o.data["@error"];!e.cancelled&&l;)i(a,o.type,l.type,!0)===!1&&(s.info("Cancelling error from excluded exception type: "+l.type),e.cancelled=!0),l=l.inner;else i(a,o.type,o.source,!0)===!1&&(s.info("Cancelling event from excluded type: "+o.type+" and source: "+o.source),e.cancelled=!0);t&&t()},e}();t.EventExclusionPlugin=M;var O=function(){function e(e,t,n,r,i){void 0===n&&(n=-1),void 0===r&&(r=null),void 0===i&&(i=null),this.success=!1,this.settingsVersion=-1,this.success=e,this.settings=t,this.settingsVersion=n,this.exception=r,this.message=i}return e}();t.SettingsResponse=O;var A=function(){function e(e){this.items=[],this.lastTimestamp=0,this.maxItems=e}return e.prototype.save=function(e){if(!e)return null;var t=this.items,n=Math.max(Date.now(),this.lastTimestamp+1),r={timestamp:n,value:e};return t.push(r)>this.maxItems&&t.shift(),this.lastTimestamp=n,r.timestamp},e.prototype.get=function(e){return this.items.slice(0,e)},e.prototype.remove=function(e){for(var t=this.items,n=0;nthis.maxItems&&this["delete"](this.getKey(n.shift()))}catch(s){return null}return r},e.prototype.get=function(e){var t=this;return this.ensureIndex(),this.items.slice(0,e).map(function(e){var n=t.getKey(e);try{var r=t.read(n),o=JSON.parse(r,i);return{timestamp:e,value:o}}catch(s){return t.safeDelete(n),null}}).filter(function(e){return null!=e})},e.prototype.remove=function(e){this.ensureIndex();var t=this.items,n=t.indexOf(e);if(n>=0){var r=this.getKey(e);this.safeDelete(r),t.splice(n,1)}},e.prototype.clear=function(){var e=this;this.items.forEach(function(t){return e.safeDelete(e.getKey(t))}),this.items=[]},e.prototype.ensureIndex=function(){this.items||(this.items=this.createIndex(),this.lastTimestamp=Math.max.apply(Math,[0].concat(this.items))+1)},e.prototype.safeDelete=function(e){try{this["delete"](e)}catch(t){}},e.prototype.createIndex=function(){var e=this;try{var t=this.readAllKeys();return t.map(function(t){try{var n=e.getTimestamp(t);return n?n:(e.safeDelete(t),null)}catch(r){return e.safeDelete(t),null}}).filter(function(e){return null!=e}).sort(function(e,t){return e-t})}catch(n){return[]}},e}();t.KeyValueStorageBase=D;var K=function(e){function t(t,n,r){void 0===n&&(n="com.exceptionless."),void 0===r&&(r=20),e.call(this,r),this.prefix=n+t+"-"}return a(t,e),t.isAvailable=function(){try{var e=window.localStorage,t="__storage_test__";return e.setItem(t,t),e.removeItem(t),!0}catch(n){return!1}},t.prototype.write=function(e,t){window.localStorage.setItem(e,t)},t.prototype.read=function(e){return window.localStorage.getItem(e)},t.prototype.readAllKeys=function(){var e=this;return Object.keys(window.localStorage).filter(function(t){return 0===t.indexOf(e.prefix)})},t.prototype["delete"]=function(e){window.localStorage.removeItem(e)},t.prototype.getKey=function(e){return this.prefix+e},t.prototype.getTimestamp=function(e){return parseInt(e.substr(this.prefix.length),10)},t}(D);t.BrowserStorage=K;var F=function(){function e(){}return e.prototype.parse=function(e,t){function n(e){for(var t=("string"==typeof e?[e]:e)||[],n=[],r=0;r0)for(var r=0;r0&&(n[t(o.substring(0,s).toLowerCase())]=o.substring(s+2))}return n}if(!u){u=!0;var a=r.statusText,c=r.responseText,l=r.status;if(n===o||0===l)a="Unable to connect to server.",l=0;else if(n!==s||l){if(200>l||l>299){var f=r.responseBody;if(f&&f.message)a=f.message;else if(c&&-1!==c.indexOf("message"))try{a=JSON.parse(c).message}catch(p){a=c}}}else l="POST"===e.method?202:200;t&&t(l||500,a||"",c,i(r.getAllResponseHeaders&&r.getAllResponseHeaders()))}}function i(e,t,n){var r=new XMLHttpRequest;return a in r?(r.open(t,n,!0),r.setRequestHeader("X-Exceptionless-Client",e),"POST"===t&&r.setRequestHeader("Content-Type","application/json")):"undefined"!=typeof XDomainRequest?(c=!0,r=new XDomainRequest,r.open(t,"http:"===location.protocol?n.replace("https:","http:"):n)):r=null,r&&(r.timeout=1e4),r}var o="timeout",s="loaded",a="withCredentials",u=!1,c=!1,l=""+e.url+(-1===e.url.indexOf("?")?"?":"&")+"access_token="+encodeURIComponent(e.apiKey),f=i(e.userAgent,e.method||"POST",l);return f?(a in f&&(f.onreadystatechange=function(){4===f.readyState&&r(s,f)}),f.onprogress=function(){},f.ontimeout=function(){return r(o,f)},f.onerror=function(){return r("error",f)},f.onload=function(){return r(s,f)},void(c?setTimeout(function(){return f.send(e.data)},500):f.send(e.data))):t&&t(503,"CORS not supported.")},e}();t.DefaultSubmissionAdapter=j;var B=function(){function e(e,t){void 0===t&&(t=250),this.queue=new K("q",e,t),this.settings=new K("settings",e,1)}return e}();t.BrowserStorageProvider=B,x.prototype.useLocalStorage=function(){K.isAvailable()&&(this.storage=new B,c.applySavedServerSettings(this),this.changed())};var H=x.defaults,Q=o();return Q&&(Q.apiKey||Q.serverUrl)&&(H.apiKey=Q.apiKey,H.serverUrl=Q.serverUrl),H.errorParser=new F,H.moduleCollector=new L,H.requestInfoCollector=new N,H.submissionAdapter=new j,r.report.subscribe(s),r.extendToAsynchronousCallbacks(),Error.stackTraceLimit=1/0,t}); +!function(e,t){function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function r(e){return"undefined"==typeof e}if(e){var i={},o=e.TraceKit,s=[].slice,a="?";i.noConflict=function(){return e.TraceKit=o,i},i.wrap=function(e){function t(){try{return e.apply(this,arguments)}catch(t){throw i.report(t),t}}return t},i.report=function(){function t(e){u(),h.push(e)}function r(e){for(var t=h.length-1;t>=0;--t)h[t]===e&&h.splice(t,1)}function o(e,t){var r=null;if(!t||i.collectWindowErrors){for(var o in h)if(n(h,o))try{h[o].apply(null,[e].concat(s.call(arguments,2)))}catch(a){r=a}if(r)throw r}}function a(e,t,n,r,s){var a=null;if(v)i.computeStackTrace.augmentStackTraceWithInitialElement(v,t,n,e),c();else if(s)a=i.computeStackTrace(s),o(a,!0);else{var u={url:t,line:n,column:r};u.func=i.computeStackTrace.guessFunctionName(u.url,u.line),u.context=i.computeStackTrace.gatherContext(u.url,u.line),a={mode:"onerror",message:e,stack:[u]},o(a,!0)}return!!f&&f.apply(this,arguments)}function u(){p!==!0&&(f=e.onerror,e.onerror=a,p=!0)}function c(){var e=v,t=d;d=null,v=null,g=null,o.apply(null,[e,!1].concat(t))}function l(t){if(v){if(g===t)return;c()}var n=i.computeStackTrace(t);throw v=n,g=t,d=s.call(arguments,1),e.setTimeout(function(){g===t&&c()},n.incomplete?2e3:0),t}var f,p,h=[],d=null,g=null,v=null;return l.subscribe=t,l.unsubscribe=r,l}(),i.computeStackTrace=function(){function t(t){if(!i.remoteFetching)return"";try{var n=function(){try{return new e.XMLHttpRequest}catch(t){return new e.ActiveXObject("Microsoft.XMLHTTP")}},r=n();return r.open("GET",t,!1),r.send(""),r.responseText}catch(o){return""}}function o(r){if("string"!=typeof r)return[];if(!n(_,r)){var i="",o="";try{o=e.document.domain}catch(s){}var a=/(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(r);a&&a[2]===o&&(i=t(r)),_[r]=i?i.split("\n"):[]}return _[r]}function s(e,t){var n,i=/function ([^(]*)\(([^)]*)\)/,s=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,u="",c=10,l=o(e);if(!l.length)return a;for(var f=0;f0?s:null}function c(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function l(e){return c(e).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function f(e,t){for(var n,r,i=0,s=t.length;in&&(r=s.exec(i[n]))?r.index:null}function h(t){if(!r(e&&e.document)){for(var n,i,o,s,a=[e.location.href],u=e.document.getElementsByTagName("script"),p=""+t,h=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,d=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,g=0;g]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,o=t.split("\n"),a=[],c=0;c=0&&(y.line=b+x.substring(0,_).split("\n").length)}}}else if(i=p.exec(r[m])){var w=e.location.href.replace(/#.*$/,""),E=new RegExp(l(r[m+1])),I=f(E,[w]);y={url:w,func:"",args:[],line:I?I.line:i[1],column:null}}if(y){y.func||(y.func=s(y.url,y.line));var P=u(y.url,y.line),C=P?P[Math.floor(P.length/2)]:null;P&&C.replace(/^\s*/,"")===r[m+1].replace(/^\s*/,"")?y.context=P:y.context=[r[m+1]],h.push(y)}}return h.length?{mode:"multiline",name:t.name,message:r[0],stack:h}:null}function m(e,t,n,r){var i={url:t,line:n};if(i.url&&i.line){e.incomplete=!1,i.func||(i.func=s(i.url,i.line)),i.context||(i.context=u(i.url,i.line));var o=/ '([^']+)' /.exec(r);if(o&&(i.column=p(o[1],i.url,i.line)),e.stack.length>0&&e.stack[0].url===i.url){if(e.stack[0].line===i.line)return!1;if(!e.stack[0].line&&e.stack[0].func===i.func)return e.stack[0].line=i.line,e.stack[0].context=i.context,!1}return e.stack.unshift(i),e.partial=!0,!0}return e.incomplete=!0,!1}function y(e,t){for(var n,r,o,u=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,c=[],l={},f=!1,d=y.caller;d&&!f;d=d.caller)if(d!==b&&d!==i.report){if(r={url:null,func:a,args:[],line:null,column:null},d.name?r.func=d.name:(n=u.exec(d.toString()))&&(r.func=n[1]),"undefined"==typeof r.func)try{r.func=n.input.substring(0,n.input.indexOf("{"))}catch(g){}if(o=h(d)){r.url=o.url,r.line=o.line,r.func===a&&(r.func=s(r.url,r.line));var v=/ '([^']+)' /.exec(e.message||e.description);v&&(r.column=p(v[1],o.url,o.line))}l[""+d]?f=!0:l[""+d]=!0,c.push(r)}t&&c.splice(0,t);var S={mode:"callers",name:e.name,message:e.message,stack:c};return m(S,e.sourceURL||e.fileName,e.line||e.lineNumber,e.message||e.description),S}function b(e,t){var n=null;t=null==t?0:+t;try{if(n=g(e))return n}catch(r){if(x)throw r}try{if(n=d(e))return n}catch(r){if(x)throw r}try{if(n=v(e))return n}catch(r){if(x)throw r}try{if(n=y(e,t+1))return n}catch(r){if(x)throw r}return{mode:"failed"}}function S(e){e=(null==e?0:+e)+1;try{throw new Error}catch(t){return b(t,e+1)}}var x=!1,_={};return b.augmentStackTraceWithInitialElement=m,b.guessFunctionName=s,b.gatherContext=u,b.ofCaller=S,b.getSource=o,b}(),i.extendToAsynchronousCallbacks=function(){var t=function(t){var n=e[t];e[t]=function(){var e=s.call(arguments),t=e[0];return"function"==typeof t&&(e[0]=i.wrap(t)),n.apply?n.apply(this,e):n(e[0],e[1])}};t("setTimeout"),t("setInterval")},i.remoteFetching||(i.remoteFetching=!0),i.collectWindowErrors||(i.collectWindowErrors=!0),(!i.linesOfContext||i.linesOfContext<1)&&(i.linesOfContext=11),"undefined"!=typeof module&&module.exports&&this.module!==module?module.exports=i:"function"==typeof define&&define.amd?define("TraceKit",[],i):e.TraceKit=i}}("undefined"!=typeof window?window:global),function(e,t){var n,r,i;"function"==typeof define&&define.amd?define("exceptionless",["require","exports","module","TraceKit"],t):"object"==typeof r?i.exports=t(n,r,i,n("TraceKit")):e.exceptionless=t(n,r,i,e.TraceKit)}(this,function(e,t,n,r){function i(e,t){var n=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/g;if("string"==typeof t){var r=n.exec(t);if(r)return new Date(t)}return t}function o(){if(!document||!document.getElementsByTagName)return null;for(var e=document.getElementsByTagName("script"),t=0;t-1)return S.parseQueryString(e[t].src.split("?").pop());return null}function s(e,t){var n=E["default"].createUnhandledException(new Error(e.message||(t||{}).status||"Script error"),"onerror");n.pluginContextData["@@_TraceKit.StackTrace"]=e,n.submit()}if(e||(e=function(e){return("undefined"!=typeof window?window:global)[e]}),!t)var t={};var a=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},r=e("TraceKit"),u=function(){function e(e,t){this.success=!1,this.badRequest=!1,this.serviceUnavailable=!1,this.paymentRequired=!1,this.unableToAuthenticate=!1,this.notFound=!1,this.requestEntityTooLarge=!1,this.statusCode=e,this.message=t,this.success=e>=200&&e<=299,this.badRequest=400===e,this.serviceUnavailable=503===e,this.paymentRequired=402===e,this.unableToAuthenticate=401===e||403===e,this.notFound=404===e,this.requestEntityTooLarge=413===e}return e}();t.SubmissionResponse=u;var c=function(){function e(){}return e.onChanged=function(e){!!e&&this._handlers.push(e)},e.applySavedServerSettings=function(e){if(e&&e.isValid){var t=this.getSavedServerSettings(e);e.log.info("Applying saved settings: v"+t.version),e.settings=S.merge(e.settings,t.settings),this.changed(e)}},e.getVersion=function(e){if(!e||!e.isValid)return 0;var t=this.getSavedServerSettings(e);return t.version||0},e.checkVersion=function(e,t){var n=this.getVersion(t);e<=n||(t.log.info("Updating settings from v"+n+" to v"+e),this.updateSettings(t,n))},e.updateSettings=function(t,n){var r=this;if(t&&t.enabled){var i="Unable to update settings";if(!t.isValid)return void t.log.error(i+": ApiKey is not set.");(!n||n<0)&&(n=this.getVersion(t)),t.log.info("Checking for updated settings from: v"+n+"."),t.submissionClient.getSettings(t,n,function(n){if(!(t&&n&&n.success&&n.settings))return void t.log.warn(i+": "+n.message);t.settings=S.merge(t.settings,n.settings);var o=e.getSavedServerSettings(t);for(var s in o)n.settings[s]||delete t.settings[s];var a={version:n.settingsVersion,settings:n.settings};t.storage.settings.save(a),t.log.info("Updated settings: v"+a.version),r.changed(t)})}},e.changed=function(e){for(var t=this._handlers,n=0;n-1;o--)i[o]=n(r[o],t||onew Date},e.prototype.ensureQueueTimer=function(){var e=this;this._queueTimer||(this._queueTimer=setInterval(function(){return e.onProcessQueue()},1e4))},e.prototype.isQueueProcessingSuspended=function(){return this._suspendProcessingUntil&&this._suspendProcessingUntil>new Date},e.prototype.onProcessQueue=function(){this.isQueueProcessingSuspended()||this._processingQueue||this.process()},e.prototype.processSubmissionResponse=function(e,t){var n="The event will not be submitted.",r=this._config,i=r.log;if(e.success)return i.info("Sent "+t.length+" events."),void this.removeEvents(t);if(e.serviceUnavailable)return i.error("Server returned service unavailable."),void this.suspendProcessing();if(e.paymentRequired)return i.info("Too many events have been submitted, please upgrade your plan."),void this.suspendProcessing(null,!0,!0);if(e.unableToAuthenticate)return i.info("Unable to authenticate, please check your configuration. "+n),this.suspendProcessing(15),void this.removeEvents(t);if(e.notFound||e.badRequest)return i.error("Error while trying to submit data: "+e.message),this.suspendProcessing(240),void this.removeEvents(t);if(e.requestEntityTooLarge){var o="Event submission discarded for being too large.";return void(r.submissionBatchSize>1?(i.error(o+" Retrying with smaller batch size."),r.submissionBatchSize=Math.max(1,Math.round(r.submissionBatchSize/1.5))):(i.error(o+" "+n),this.removeEvents(t)))}e.success||(i.error("Error submitting events: "+(e.message||"Please check the network tab for more info.")),this.suspendProcessing())},e.prototype.removeEvents=function(e){for(var t=0;t<(e||[]).length;t++)this._config.storage.queue.remove(e[t].timestamp)},e}();t.DefaultEventQueue=m;var y=function(){function e(e){void 0===e&&(e=250),this.queue=new A(e),this.settings=new A(1)}return e}();t.InMemoryStorageProvider=y;var b=function(){function e(){this.configurationVersionHeader="x-exceptionless-configversion"}return e.prototype.postEvents=function(e,t,n,r){var i=JSON.stringify(e),o=this.createRequest(t,"POST",t.serverUrl+"/api/v2/events",i),s=this.createSubmissionCallback(t,n);return t.submissionAdapter.sendRequest(o,s,r)},e.prototype.postUserDescription=function(e,t,n,r){var i=n.serverUrl+"/api/v2/events/by-ref/"+encodeURIComponent(e)+"/user-description",o=JSON.stringify(t),s=this.createRequest(n,"POST",i,o),a=this.createSubmissionCallback(n,r);return n.submissionAdapter.sendRequest(s,a)},e.prototype.getSettings=function(e,t,n){var r=this.createRequest(e,"GET",e.serverUrl+"/api/v2/projects/config?v="+t),i=function(t,r,i,o){if(200!==t)return n(new O((!1),null,(-1),null,r));var s;try{s=JSON.parse(i)}catch(a){e.log.error("Unable to parse settings: '"+i+"'")}return!s||isNaN(s.version)?n(new O((!1),null,(-1),null,"Invalid configuration settings.")):void n(new O((!0),s.settings||{},s.version))};return e.submissionAdapter.sendRequest(r,i)},e.prototype.sendHeartbeat=function(e,t,n){var r=this.createRequest(n,"GET",n.heartbeatServerUrl+"/api/v2/events/session/heartbeat?id="+e+"&close="+t);n.submissionAdapter.sendRequest(r)},e.prototype.createRequest=function(e,t,n,r){return void 0===r&&(r=null),{method:t,url:n,data:r,apiKey:e.apiKey,userAgent:e.userAgent}},e.prototype.createSubmissionCallback=function(e,t){var n=this;return function(r,i,o,s){var a=s&&parseInt(s[n.configurationVersionHeader],10);c.checkVersion(a,e),t(new u(r,i))}},e}();t.DefaultSubmissionClient=b;var S=function(){function e(){}return e.addRange=function(e){for(var t=[],n=1;n0?n[0]:null},e.parseQueryString=function(t,n){if(!t||0===t.length)return null;var r=t.split("&");if(0===r.length)return null;for(var i={},o=0;o=10},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"serverUrl",{get:function(){return this._serverUrl},set:function(e){e&&(this._serverUrl=e,this._heartbeatServerUrl=e,this.log.info("serverUrl: "+e),this.changed())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"heartbeatServerUrl",{get:function(){return this._heartbeatServerUrl},set:function(e){e&&(this._heartbeatServerUrl=e,this.log.info("heartbeatServerUrl: "+e),this.changed())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updateSettingsWhenIdleInterval",{get:function(){return this._updateSettingsWhenIdleInterval},set:function(e){"number"==typeof e&&(e<=0?e=-1:e>0&&e<15e3&&(e=15e3),this._updateSettingsWhenIdleInterval=e,this.log.info("updateSettingsWhenIdleInterval: "+e),this.changed())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataExclusions",{get:function(){var e=this.settings["@@DataExclusions"];return this._dataExclusions.concat(e&&e.split(",")||[])},enumerable:!0,configurable:!0}),e.prototype.addDataExclusions=function(){for(var e=[],t=0;tt.priority?1:0})},enumerable:!0,configurable:!0}),e.prototype.addPlugin=function(e,t,n){var r=n?{name:e,priority:t,run:n}:e;if(!r||!r.run)return void this.log.error("Add plugin failed: Run method not defined");r.name||(r.name=S.guid()),r.priority||(r.priority=0);for(var i=!1,o=this._plugins,s=0;s90)throw new Error("Must be a valid latitude value between -90.0 and 90.0.");if(t<-180||t>180)throw new Error("Must be a valid longitude value between -180.0 and 180.0.");return this.target.geo=e+","+t,this},e.prototype.setUserIdentity=function(e,t){var n="string"!=typeof e?e:{identity:e,name:t};return n&&(n.identity||n.name)?(this.setProperty("@user",n),this):this},e.prototype.setUserDescription=function(e,t){return e&&t&&this.setProperty("@user_description",{email_address:e,description:t}),this},e.prototype.setManualStackingInfo=function(e,t){if(e){var n={signature_data:e};t&&(n.title=t),this.setProperty("@stack",n)}return this},e.prototype.setManualStackingKey=function(e,t){if(e){var n={ManualStackingKey:e};this.setManualStackingInfo(n,t)}return this},e.prototype.setValue=function(e){return e&&(this.target.value=e),this},e.prototype.addTags=function(){for(var e=[],t=0;t100)return!1;for(var t=0;t=48&&n<=57,i=n>=65&&n<=90||n>=97&&n<=122,o=45===n;if(!r&&!i&&!o)return!1}return!0},e}();t.EventBuilder=_;var w=function(){function e(){}return e.prototype.setException=function(e){e&&(this["@@_Exception"]=e)},Object.defineProperty(e.prototype,"hasException",{get:function(){return!!this["@@_Exception"]},enumerable:!0,configurable:!0}),e.prototype.getException=function(){return this["@@_Exception"]||null},e.prototype.markAsUnhandledError=function(){this["@@_IsUnhandledError"]=!0},Object.defineProperty(e.prototype,"isUnhandledError",{get:function(){return!!this["@@_IsUnhandledError"]},enumerable:!0,configurable:!0}),e.prototype.setSubmissionMethod=function(e){e&&(this["@@_SubmissionMethod"]=e)},e.prototype.getSubmissionMethod=function(){return this["@@_SubmissionMethod"]||null},e}();t.ContextData=w;var E=function(){function e(e,t){var n=this;"object"==typeof e?this.config=new x(e):this.config=new x({apiKey:e,serverUrl:t}),this.updateSettingsTimer(5e3),this.config.onChanged(function(e){return n.updateSettingsTimer(n._timeoutId>0?5e3:0)}),this.config.queue.onEventsPosted(function(e,t){return n.updateSettingsTimer()})}return e.prototype.createException=function(e){var t=new w;return t.setException(e),this.createEvent(t).setType("error")},e.prototype.submitException=function(e,t){this.createException(e).submit(t)},e.prototype.createUnhandledException=function(e,t){var n=this.createException(e);return n.pluginContextData.markAsUnhandledError(),n.pluginContextData.setSubmissionMethod(t),n},e.prototype.submitUnhandledException=function(e,t,n){this.createUnhandledException(e,t).submit(n)},e.prototype.createFeatureUsage=function(e){return this.createEvent().setType("usage").setSource(e)},e.prototype.submitFeatureUsage=function(e,t){this.createFeatureUsage(e).submit(t)},e.prototype.createLog=function(e,t,n){ +var r=this.createEvent().setType("log");if(t&&n)r=r.setSource(e).setMessage(t).setProperty("@level",n);else if(t)r=r.setSource(e).setMessage(t);else{var i=arguments.callee.caller;r=r.setSource(i&&i.name).setMessage(e)}return r},e.prototype.submitLog=function(e,t,n,r){this.createLog(e,t,n).submit(r)},e.prototype.createNotFound=function(e){return this.createEvent().setType("404").setSource(e)},e.prototype.submitNotFound=function(e,t){this.createNotFound(e).submit(t)},e.prototype.createSessionStart=function(){return this.createEvent().setType("session")},e.prototype.submitSessionStart=function(e){this.createSessionStart().submit(e)},e.prototype.submitSessionEnd=function(e){e&&(this.config.log.info("Submitting session end: "+e),this.config.submissionClient.sendHeartbeat(e,!0,this.config))},e.prototype.submitSessionHeartbeat=function(e){e&&(this.config.log.info("Submitting session heartbeat: "+e),this.config.submissionClient.sendHeartbeat(e,!1,this.config))},e.prototype.createEvent=function(e){return new _({date:new Date},this,e)},e.prototype.submitEvent=function(e,t,n){function r(e){return e&&(e.cancelled=!0),!!n&&n(e)}var i=new h(this,e,t);return e?this.config.enabled?(e.data||(e.data={}),e.tags&&e.tags.length||(e.tags=[]),void d.run(i,function(e){var t=e.client.config,r=e.event;e.cancelled||(r.type&&0!==r.type.length||(r.type="log"),r.date||(r.date=new Date),t.queue.enqueue(r),r.reference_id&&r.reference_id.length>0&&(e.log.info("Setting last reference id '"+r.reference_id+"'"),t.lastReferenceIdManager.setLast(r.reference_id))),!!n&&n(e)})):(this.config.log.info("Event submission is currently disabled."),r(i)):r(i)},e.prototype.updateUserEmailAndDescription=function(e,t,n,r){var i=this;if(!(e&&t&&n&&this.config.enabled))return!!r&&r(new u(500,"cancelled"));var o={email_address:t,description:n};this.config.submissionClient.postUserDescription(e,o,this.config,function(t){t.success||i.config.log.error("Failed to submit user email and description for event '"+e+"': "+t.statusCode+" "+t.message),!!r&&r(t)})},e.prototype.getLastReferenceId=function(){return this.config.lastReferenceIdManager.getLast()},e.prototype.updateSettingsTimer=function(e){var t=this;this.config.log.info("Updating settings timer with delay: "+e),this._timeoutId=clearTimeout(this._timeoutId),this._timeoutId=clearInterval(this._intervalId);var n=this.config.updateSettingsWhenIdleInterval;if(n>0){var r=function(){return c.updateSettings(t.config)};e>0&&(this._timeoutId=setTimeout(r,e)),this._intervalId=setInterval(r,n)}},Object.defineProperty(e,"default",{get:function(){return null===e._instance&&(e._instance=new e(null)),e._instance},enumerable:!0,configurable:!0}),e._instance=null,e}();t.ExceptionlessClient=E;var I=function(){function e(){this.priority=10,this.name="ConfigurationDefaultsPlugin"}return e.prototype.run=function(e,t){for(var n=e.client.config,r=n.defaultTags||[],i=0;i0&&(e.event.data[n].modules=i)}t&&t()},e}();t.ModuleInfoPlugin=C;var T=function(){function e(){this.priority=70,this.name="RequestInfoPlugin"}return e.prototype.run=function(e,t){var n="@request",r=e.client.config,i=r.requestInfoCollector;if(!e.event.data[n]&&i){var o=i.getRequestInfo(e);o&&(S.isMatch(o.user_agent,r.userAgentBotPatterns)?(e.log.info("Cancelling event as the request user agent matches a known bot pattern"),e.cancelled=!0):e.event.data[n]=o)}t&&t()},e}();t.RequestInfoPlugin=T;var k=function(){function e(){this.priority=80,this.name="EnvironmentInfoPlugin"}return e.prototype.run=function(e,t){var n="@environment",r=e.client.config.environmentInfoCollector;if(!e.event.data[n]&&r){var i=r.getEnvironmentInfo(e);i&&(e.event.data[n]=i)}t&&t()},e}();t.EnvironmentInfoPlugin=k;var R=function(){function e(){this.priority=100,this.name="SubmissionMethodPlugin"}return e.prototype.run=function(e,t){var n=e.contextData.getSubmissionMethod();n&&(e.event.data["@submission_method"]=n),t&&t()},e}();t.SubmissionMethodPlugin=R;var U=function(){function e(e,t){var n=this;void 0===e&&(e=function(){return Date.now()}),void 0===t&&(t=3e4),this.priority=1010,this.name="DuplicateCheckerPlugin",this._mergedEvents=[],this._processedHashcodes=[],this._getCurrentTime=e,this._interval=t,setInterval(function(){for(;n._mergedEvents.length>0;)n._mergedEvents.shift().resubmit()},t)}return e.prototype.run=function(e,t){function n(e){for(var t=0;e;)e.message&&e.message.length&&(t+=397*t^S.getHashCode(e.message)),e.stack_trace&&e.stack_trace.length&&(t+=397*t^S.getHashCode(JSON.stringify(e.stack_trace))),e=e.inner;return t}var r=this,i=e.event.data["@error"],o=n(i);if(o){var s=e.event.count||1,a=this._getCurrentTime(),u=this._mergedEvents.filter(function(e){return e.hashCode===o})[0];if(u)return u.incrementCount(s),u.updateDate(e.event.date),e.log.info("Ignoring duplicate event with hash: "+o),void(e.cancelled=!0);if(this._processedHashcodes.some(function(e){return e.hash===o&&e.timestamp>=a-r._interval}))return e.log.trace("Adding event with hash: "+o),this._mergedEvents.push(new q(o,e,s)),void(e.cancelled=!0);for(e.log.trace("Enqueueing event with hash: "+o+"to cache."),this._processedHashcodes.push({hash:o,timestamp:a});this._processedHashcodes.length>50;)this._processedHashcodes.shift();t&&t()}},e}();t.DuplicateCheckerPlugin=U;var q=function(){function e(e,t,n){this.hashCode=e,this._context=t,this._count=n}return e.prototype.incrementCount=function(e){this._count+=e},e.prototype.resubmit=function(){this._context.event.count=this._count,this._context.client.config.queue.enqueue(this._context.event)},e.prototype.updateDate=function(e){e>this._context.event.date&&(this._context.event.date=e)},e}(),M=function(){function e(){this.priority=45,this.name="EventExclusionPlugin"}return e.prototype.run=function(e,t){function n(e){switch((e||"").toLowerCase().trim()){case"trace":case"true":case"1":case"yes":return 0;case"debug":return 1;case"info":return 2;case"warn":return 3;case"error":return 4;case"fatal":return 5;case"off":case"false":case"0":case"no":return 6;default:return-1}}function r(e,t){return void 0===t&&(t="*"),n(i(e,"log",t,"Trace")+"")}function i(e,t,n,r){if(void 0===e&&(e={}),void 0===r&&(r=void 0),!t)return r;var i="log"===t,o="@@"+t+":",s=e[o+n];if(s)return i?s:S.toBoolean(s);for(var a in e)if(S.startsWith(a.toLowerCase(),o.toLowerCase())&&S.isMatch(n,[a.substring(o.length)]))return i?e[a]:S.toBoolean(e[a]);return r}var o=e.event,s=e.log,a=e.client.config.settings;if("log"===o.type){var u=r(a,o.source),c=n(o.data["@level"]);c>=0&&(c>5||cthis.maxItems&&t.shift(),this.lastTimestamp=n,r.timestamp},e.prototype.get=function(e){return this.items.slice(0,e)},e.prototype.remove=function(e){for(var t=this.items,n=0;nthis.maxItems&&this["delete"](this.getKey(n.shift()))}catch(s){return null}return r},e.prototype.get=function(e){var t=this;return this.ensureIndex(),this.items.slice(0,e).map(function(e){var n=t.getKey(e);try{var r=t.read(n),o=JSON.parse(r,i);return{timestamp:e,value:o}}catch(s){return t.safeDelete(n),null}}).filter(function(e){return null!=e})},e.prototype.remove=function(e){this.ensureIndex();var t=this.items,n=t.indexOf(e);if(n>=0){var r=this.getKey(e);this.safeDelete(r),t.splice(n,1)}},e.prototype.clear=function(){var e=this;this.items.forEach(function(t){return e.safeDelete(e.getKey(t))}),this.items=[]},e.prototype.ensureIndex=function(){this.items||(this.items=this.createIndex(),this.lastTimestamp=Math.max.apply(Math,[0].concat(this.items))+1)},e.prototype.safeDelete=function(e){try{this["delete"](e)}catch(t){}},e.prototype.createIndex=function(){var e=this;try{var t=this.readAllKeys();return t.map(function(t){try{var n=e.getTimestamp(t);return n?n:(e.safeDelete(t),null)}catch(r){return e.safeDelete(t),null}}).filter(function(e){return null!=e}).sort(function(e,t){return e-t})}catch(n){return[]}},e}();t.KeyValueStorageBase=D;var K=function(e){function t(t,n,r){void 0===n&&(n="com.exceptionless."),void 0===r&&(r=20),e.call(this,r),this.prefix=n+t+"-"}return a(t,e),t.isAvailable=function(){try{var e=window.localStorage,t="__storage_test__";return e.setItem(t,t),e.removeItem(t),!0}catch(n){return!1}},t.prototype.write=function(e,t){window.localStorage.setItem(e,t)},t.prototype.read=function(e){return window.localStorage.getItem(e)},t.prototype.readAllKeys=function(){var e=this;return Object.keys(window.localStorage).filter(function(t){return 0===t.indexOf(e.prefix)})},t.prototype["delete"]=function(e){window.localStorage.removeItem(e)},t.prototype.getKey=function(e){return this.prefix+e},t.prototype.getTimestamp=function(e){return parseInt(e.substr(this.prefix.length),10)},t}(D);t.BrowserStorage=K;var F=function(){function e(){}return e.prototype.parse=function(e,t){function n(e){for(var t=("string"==typeof e?[e]:e)||[],n=[],r=0;r0)for(var r=0;r0&&(n[t(o.substring(0,s).toLowerCase())]=o.substring(s+2))}return n}if(!u){u=!0;var a=r.statusText,c=r.responseText,l=r.status;if(n===o||0===l)a="Unable to connect to server.",l=0;else if(n!==s||l){if(l<200||l>299){var f=r.responseBody;if(f&&f.message)a=f.message;else if(c&&c.indexOf("message")!==-1)try{a=JSON.parse(c).message}catch(p){a=c}}}else l="POST"===e.method?202:200;t&&t(l||500,a||"",c,i(r.getAllResponseHeaders&&r.getAllResponseHeaders()))}}function i(e,t,n){var r=new XMLHttpRequest;return a in r?(r.open(t,n,!0),r.setRequestHeader("X-Exceptionless-Client",e),"POST"===t&&r.setRequestHeader("Content-Type","application/json")):"undefined"!=typeof XDomainRequest?(c=!0,r=new XDomainRequest,r.open(t,"http:"===location.protocol?n.replace("https:","http:"):n)):r=null,r&&(r.timeout=1e4),r}var o="timeout",s="loaded",a="withCredentials",u=!1,c=!1,l=""+e.url+(e.url.indexOf("?")===-1?"?":"&")+"access_token="+encodeURIComponent(e.apiKey),f=i(e.userAgent,e.method||"POST",l);return f?(a in f&&(f.onreadystatechange=function(){4===f.readyState&&r(s,f)}),f.onprogress=function(){},f.ontimeout=function(){return r(o,f)},f.onerror=function(){return r("error",f)},f.onload=function(){return r(s,f)},void(c?setTimeout(function(){return f.send(e.data)},500):f.send(e.data))):t&&t(503,"CORS not supported.")},e}();t.DefaultSubmissionAdapter=j;var B=function(){function e(e,t){void 0===t&&(t=250),this.queue=new K("q",e,t),this.settings=new K("settings",e,1)}return e}();t.BrowserStorageProvider=B,x.prototype.useLocalStorage=function(){K.isAvailable()&&(this.storage=new B,c.applySavedServerSettings(this),this.changed())};var H=x.defaults,Q=o();return Q&&(Q.apiKey||Q.serverUrl)&&(H.apiKey=Q.apiKey,H.serverUrl=Q.serverUrl),H.errorParser=new F,H.moduleCollector=new L,H.requestInfoCollector=new N,H.submissionAdapter=new j,r.report.subscribe(s),r.extendToAsynchronousCallbacks(),Error.stackTraceLimit=1/0,t}); //# sourceMappingURL=exceptionless.min.js.map diff --git a/dist/exceptionless.min.js.map b/dist/exceptionless.min.js.map index a9bd3790..5f497142 100644 --- a/dist/exceptionless.min.js.map +++ b/dist/exceptionless.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["tracekit.js","exceptionless.min.js","/source/exceptionless.ts"],"names":["window","undefined","_has","object","key","Object","prototype","hasOwnProperty","call","_isUndefined","what","TraceKit","_oldTraceKit","_slice","slice","UNKNOWN_FUNCTION","noConflict","wrap","func","wrapped","apply","this","arguments","e","report","subscribe","handler","installGlobalHandler","handlers","push","unsubscribe","i","length","splice","notifyHandlers","stack","isWindowError","exception","collectWindowErrors","concat","inner","traceKitWindowOnError","message","url","lineNo","columnNo","errorObj","lastExceptionStack","computeStackTrace","augmentStackTraceWithInitialElement","processLastException","location","line","column","guessFunctionName","context","gatherContext","mode","_oldOnerrorHandler","_onErrorHandlerInstalled","onerror","_lastExceptionStack","_lastArgs","lastArgs","lastException","ex","setTimeout","incomplete","loadSource","remoteFetching","getXHR","XMLHttpRequest","ActiveXObject","request","open","send","responseText","getSource","sourceCache","source","domain","document","match","exec","split","m","reFunctionArgNames","reGuessFunction","maxLines","linesBefore","Math","floor","linesOfContext","linesAfter","start","max","end","min","escapeRegExp","text","replace","escapeCodeAsRegExpForMatchingInsideHTML","body","findSourceInUrls","re","urls","j","join","substring","index","lastIndexOf","findSourceInLine","fragment","RegExp","findSourceByFunctionBody","parts","result","href","scripts","getElementsByTagName","code","codeRE","eventRE","script","src","name","args","event","computeStackTraceFromStackProp","element","chrome","gecko","winjs","lines","reference","isNative","indexOf","columnNumber","computeStackTraceFromStacktraceProp","stacktrace","opera10Regex","opera11Regex","exc","computeStackTraceFromOperaMultiLineMessage","lineRE1","lineRE2","lineRE3","inlineScriptBlocks","s","item","relativeLine","pos","innerText","midline","stackInfo","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","functionName","funcs","recursion","curr","caller","toString","input","description","sourceURL","fileName","lineNumber","debug","computeStackTraceOfCaller","Error","ofCaller","extendToAsynchronousCallbacks","_helper","fnName","originalFn","originalCallback","module","exports","define","amd","global","root","factory","require","exceptionless","parseDate","value","dateRegx","a","Date","getDefaultsSettingsFromScriptTag","Utils","parseQueryString","pop","processUnhandledException","stackTrace","options","builder","ExceptionlessClient","createUnhandledException","status","pluginContextData","submit","__extends","d","b","__","constructor","p","create","SubmissionResponse","statusCode","success","badRequest","serviceUnavailable","paymentRequired","unableToAuthenticate","notFound","requestEntityTooLarge","SettingsManager","onChanged","_handlers","applySavedServerSettings","config","isValid","savedSettings","getSavedServerSettings","log","info","version","settings","merge","changed","getVersion","checkVersion","currentVersion","updateSettings","_this","enabled","unableToUpdateMessage","error","submissionClient","getSettings","response","warn","savedServerSettings","newSettings","settingsVersion","storage","save","get","DefaultLastReferenceIdManager","_lastReferenceId","getLast","clearLast","setLast","eventId","ConsoleLog","trace","level","console","msg","NullLog","EventPluginContext","client","contextData","ContextData","defineProperty","enumerable","configurable","EventPluginManager","run","callback","plugin","next","cancelled","plugins","wrappedPlugins","priority","addDefaultPlugins","addPlugin","ConfigurationDefaultsPlugin","ErrorPlugin","DuplicateCheckerPlugin","EventExclusionPlugin","ModuleInfoPlugin","RequestInfoPlugin","EnvironmentInfoPlugin","SubmissionMethodPlugin","HeartbeatPlugin","heartbeatInterval","_interval","clearInterval","_intervalId","user","data","identity","setInterval","submitSessionHeartbeat","ReferenceIdPlugin","reference_id","type","guid","DefaultEventQueue","_processingQueue","_config","enqueue","eventWillNotBeQueued","areQueuedItemsDiscarded","ensureQueueTimer","timestamp","queue","logText","process","isAppExiting","queueNotProcessed","events_1","submissionBatchSize","serverUrl","postEvents","map","processSubmissionResponse","eventsPosted","suspendProcessing","durationInMinutes","discardFutureQueuedItems","clearQueue","_suspendProcessingUntil","getTime","_discardQueuedItemsUntil","clear","onEventsPosted","events","_queueTimer","onProcessQueue","isQueueProcessingSuspended","noSubmission","removeEvents","round","remove","InMemoryStorageProvider","maxQueueItems","InMemoryStorage","DefaultSubmissionClient","configurationVersionHeader","JSON","stringify","createRequest","cb","createSubmissionCallback","submissionAdapter","sendRequest","postUserDescription","referenceId","path","encodeURIComponent","headers","SettingsResponse","parse","isNaN","sendHeartbeat","sessionIdOrUserId","closeSession","heartbeatServerUrl","method","apiKey","userAgent","parseInt","addRange","target","values","_i","getHashCode","hash","character","charCodeAt","getCookies","cookies","exclusions","cookie","isMatch","isEmpty","s4","random","defaultValues","parseVersion","versionRegex","matches","query","pairs","pair","decodeURIComponent","randomNumber","patterns","ignoreCase","trim","toLowerCase","some","pattern","startsWithWildcard","endsWithWildcard","endsWith","startsWith","keys","prefix","suffix","maxDepth","stringifyImpl","obj","excludedKeys","cache","flattened","prop","toBoolean","defaultValue","Configuration","configSettings","inject","fn","defaultTags","defaultData","lastReferenceIdManager","_serverUrl","_heartbeatServerUrl","_updateSettingsWhenIdleInterval","_dataExclusions","_userAgentBotPatterns","_plugins","defaults","updateSettingsWhenIdleInterval","environmentInfoCollector","errorParser","moduleCollector","requestInfoCollector","_apiKey","set","addDataExclusions","addUserAgentBotPatterns","userAgentBotPatterns","sort","p1","p2","pluginOrName","pluginAction","pluginExists","removePlugin","setVersion","setUserIdentity","userInfoOrIdentity","USER_KEY","userInfo","shouldRemove","useSessions","sendHeartbeats","useReferenceIds","useLocalStorage","useDebugLogger","_defaultSettings","EventBuilder","_validIdentifierErrorMessage","setType","setSource","setReferenceId","isValidIdentifier","setEventReference","id","setProperty","setMessage","setGeo","latitude","longitude","geo","setUserDescription","emailAddress","email_address","setManualStackingInfo","signatureData","title","signature_data","setManualStackingKey","manualStackingKey","ManualStackingKey","setValue","addTags","tags","excludedPropertyNames","dataExclusions","markAsCritical","critical","addRequestInfo","submitEvent","isDigit","isLetter","isMinus","setException","getException","markAsUnhandledError","setSubmissionMethod","getSubmissionMethod","settingsOrApiKey","updateSettingsTimer","_timeoutId","createException","createEvent","submitException","submissionMethod","submitUnhandledException","createFeatureUsage","feature","submitFeatureUsage","createLog","sourceOrMessage","callee","submitLog","createNotFound","resource","submitNotFound","createSessionStart","submitSessionStart","submitSessionEnd","date","ctx","ev","updateUserEmailAndDescription","email","userDescription","getLastReferenceId","initialDelay","clearTimeout","interval","_instance","tag","ERROR_KEY","ignoredProperties","parser","additionalData","collector","modules","getModules","REQUEST_KEY","requestInfo","getRequestInfo","user_agent","ENVIRONMENT_KEY","environmentInfo","getEnvironmentInfo","getCurrentTime","now","_mergedEvents","_processedHashcodes","_getCurrentTime","shift","resubmit","hashCode","stack_trace","count","merged","filter","incrementCount","updateDate","h","MergedEvent","_context","_count","getLogLevel","getMinLogLevel","loggerName","getTypeAndSourceSetting","isLog","sourcePrefix","minLogLevel","logLevel","maxItems","items","lastTimestamp","limit","KeyValueStorageBase","single","ensureIndex","getKey","json","write","read","safeDelete","forEach","createIndex","readAllKeys","getTimestamp","BrowserStorage","_super","namespace","isAvailable","localStorage","x","setItem","removeItem","getItem","substr","DefaultErrorParser","getParameters","parameters","params","getStackFrames","stackFrames","ANONYMOUS","frames","frame","file_name","line_number","TRACEKIT_STACK_TRACE_KEY","DefaultModuleCollector","module_id","innerHTML","DefaultRequestInfoCollector","navigator","is_secure","protocol","host","hostname","port","pathname","query_string","search","referrer","DefaultSubmissionAdapter","complete","xhr","parseResponseHeaders","headerStr","headerPairs","headerPair","separator","isCompleted","statusText","TIMEOUT","LOADED","responseBody","getAllResponseHeaders","WITH_CREDENTIALS","setRequestHeader","XDomainRequest","useSetTimeout","timeout","onreadystatechange","readyState","onprogress","ontimeout","onload","BrowserStorageProvider","stackTraceLimit","Infinity"],"mappings":"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","file":"exceptionless.min.js","sourcesContent":["/**\n * https://github.com/csnover/TraceKit\n * @license MIT\n * @namespace TraceKit\n */\n(function(window, undefined) {\nif (!window) {\n return;\n}\n\nvar TraceKit = {};\nvar _oldTraceKit = window.TraceKit;\n\n// global reference to slice\nvar _slice = [].slice;\nvar UNKNOWN_FUNCTION = '?';\n\n/**\n * A better form of hasOwnProperty
\n * Example: `_has(MainHostObject, property) === true/false`\n *\n * @param {Object} object to check property\n * @param {string} key to check\n * @return {Boolean} true if the object has the key and it is not inherited\n */\nfunction _has(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Returns true if the parameter is undefined
\n * Example: `_isUndefined(val) === true/false`\n *\n * @param {*} what Value to check\n * @return {Boolean} true if undefined and false otherwise\n */\nfunction _isUndefined(what) {\n return typeof what === 'undefined';\n}\n\n/**\n * Export TraceKit out to another variable
\n * Example: `var TK = TraceKit.noConflict()`\n * @return {Object} The TraceKit object\n * @memberof TraceKit\n */\nTraceKit.noConflict = function noConflict() {\n window.TraceKit = _oldTraceKit;\n return TraceKit;\n};\n\n/**\n * Wrap any function in a TraceKit reporter
\n * Example: `func = TraceKit.wrap(func);`\n *\n * @param {Function} func Function to be wrapped\n * @return {Function} The wrapped func\n * @memberof TraceKit\n */\nTraceKit.wrap = function traceKitWrapper(func) {\n function wrapped() {\n try {\n return func.apply(this, arguments);\n } catch (e) {\n TraceKit.report(e);\n throw e;\n }\n }\n return wrapped;\n};\n\n/**\n * Cross-browser processing of unhandled exceptions\n *\n * Syntax:\n * ```js\n * TraceKit.report.subscribe(function(stackInfo) { ... })\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\n * TraceKit.report(exception)\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\n * ```\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Requires TraceKit.computeStackTrace.\n *\n * Tries to catch all unhandled exceptions and report them to the\n * subscribed handlers. Please note that TraceKit.report will rethrow the\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\n * If the exception does not reach the top of the browser, you will only\n * get a stack trace from the point where TraceKit.report was called.\n *\n * Handlers receive a TraceKit.StackTrace object as described in the\n * TraceKit.computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nTraceKit.report = (function reportModuleWrapper() {\n var handlers = [],\n lastArgs = null,\n lastException = null,\n lastExceptionStack = null;\n\n /**\n * Add a crash handler.\n * @param {Function} handler\n * @memberof TraceKit.report\n */\n function subscribe(handler) {\n installGlobalHandler();\n handlers.push(handler);\n }\n\n /**\n * Remove a crash handler.\n * @param {Function} handler\n * @memberof TraceKit.report\n */\n function unsubscribe(handler) {\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1);\n }\n }\n }\n\n /**\n * Dispatch stack information to all handlers.\n * @param {TraceKit.StackTrace} stack\n * @param {boolean} isWindowError Is this a top-level window error?\n * @memberof TraceKit.report\n * @throws An exception if an error occurs while calling an handler.\n */\n function notifyHandlers(stack, isWindowError) {\n var exception = null;\n if (isWindowError && !TraceKit.collectWindowErrors) {\n return;\n }\n for (var i in handlers) {\n if (_has(handlers, i)) {\n try {\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\n } catch (inner) {\n exception = inner;\n }\n }\n }\n\n if (exception) {\n throw exception;\n }\n }\n\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\n\n /**\n * Ensures all global unhandled exceptions are recorded.\n * Supported by Gecko and IE.\n * @param {string} message Error message.\n * @param {string} url URL of script that generated the exception.\n * @param {(number|string)} lineNo The line number at which the error occurred.\n * @param {(number|string)=} columnNo The column number at which the error occurred.\n * @param {Error=} errorObj The actual Error object.\n * @memberof TraceKit.report\n */\n function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) {\n var stack = null;\n\n if (lastExceptionStack) {\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message);\n \t processLastException();\n\t } else if (errorObj) {\n stack = TraceKit.computeStackTrace(errorObj);\n notifyHandlers(stack, true);\n } else {\n var location = {\n 'url': url,\n 'line': lineNo,\n 'column': columnNo\n };\n location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line);\n location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line);\n stack = {\n 'mode': 'onerror',\n 'message': message,\n 'stack': [location]\n };\n\n notifyHandlers(stack, true);\n }\n\n if (_oldOnerrorHandler) {\n return _oldOnerrorHandler.apply(this, arguments);\n }\n\n return false;\n }\n\n /**\n * Install a global onerror handler\n * @memberof TraceKit.report\n */\n function installGlobalHandler () {\n if (_onErrorHandlerInstalled === true) {\n return;\n }\n _oldOnerrorHandler = window.onerror;\n window.onerror = traceKitWindowOnError;\n _onErrorHandlerInstalled = true;\n }\n\n /**\n * Process the most recent exception\n * @memberof TraceKit.report\n */\n function processLastException() {\n var _lastExceptionStack = lastExceptionStack,\n _lastArgs = lastArgs;\n lastArgs = null;\n lastExceptionStack = null;\n lastException = null;\n notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));\n }\n\n /**\n * Reports an unhandled Error to TraceKit.\n * @param {Error} ex\n * @memberof TraceKit.report\n * @throws An exception if an incomplete stack trace is detected (old IE browsers).\n */\n function report(ex) {\n if (lastExceptionStack) {\n if (lastException === ex) {\n return; // already caught by an inner catch block, ignore\n } else {\n processLastException();\n }\n }\n\n var stack = TraceKit.computeStackTrace(ex);\n lastExceptionStack = stack;\n lastException = ex;\n lastArgs = _slice.call(arguments, 1);\n\n // If the stack trace is incomplete, wait for 2 seconds for\n // slow slow IE to see if onerror occurs or not before reporting\n // this exception; otherwise, we will end up with an incomplete\n // stack trace\n window.setTimeout(function () {\n if (lastException === ex) {\n processLastException();\n }\n }, (stack.incomplete ? 2000 : 0));\n\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\n }\n\n report.subscribe = subscribe;\n report.unsubscribe = unsubscribe;\n return report;\n}());\n\n/**\n * An object representing a single stack frame.\n * @typedef {Object} StackFrame\n * @property {string} url The JavaScript or HTML file URL.\n * @property {string} func The function name, or empty for anonymous functions (if guessing did not work).\n * @property {string[]?} args The arguments passed to the function, if known.\n * @property {number=} line The line number, if known.\n * @property {number=} column The column number, if known.\n * @property {string[]} context An array of source code lines; the middle element corresponds to the correct line#.\n * @memberof TraceKit\n */\n\n/**\n * An object representing a JavaScript stack trace.\n * @typedef {Object} StackTrace\n * @property {string} name The name of the thrown exception.\n * @property {string} message The exception error message.\n * @property {TraceKit.StackFrame[]} stack An array of stack frames.\n * @property {string} mode 'stack', 'stacktrace', 'multiline', 'callers', 'onerror', or 'failed' -- method used to collect the stack trace.\n * @memberof TraceKit\n */\n\n/**\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\n *\n * Syntax:\n * ```js\n * s = TraceKit.computeStackTrace.ofCaller([depth])\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\n * ```\n *\n * Supports:\n * - Firefox: full stack trace with line numbers and unreliable column\n * number on top frame\n * - Opera 10: full stack trace with line and column numbers\n * - Opera 9-: full stack trace with line numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the topmost stacktrace element\n * only\n * - IE: no line numbers whatsoever\n *\n * Tries to guess names of anonymous functions by looking for assignments\n * in the source code. In IE and Safari, we have to guess source file names\n * by searching for function bodies inside all page scripts. This will not\n * work for scripts that are loaded cross-domain.\n * Here be dragons: some function names may be guessed incorrectly, and\n * duplicate functions may be mismatched.\n *\n * TraceKit.computeStackTrace should only be used for tracing purposes.\n * Logging of unhandled exceptions should be done with TraceKit.report,\n * which builds on top of TraceKit.computeStackTrace and provides better\n * IE support by utilizing the window.onerror event to retrieve information\n * about the top of the stack.\n *\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\n * so computeStackTrace instead walks its *own* chain of callers.\n * This means that:\n * * in Safari, some methods may be missing from the stack trace;\n * * in IE, the topmost function in the stack trace will always be the\n * caller of computeStackTrace.\n *\n * This is okay for tracing (because you are likely to be calling\n * computeStackTrace from the function you want to be the topmost element\n * of the stack trace anyway), but not okay for logging unhandled\n * exceptions (because your catch block will likely be far away from the\n * inner function that actually caused the exception).\n *\n * Tracing example:\n * ```js\n * function trace(message) {\n * var stackInfo = TraceKit.computeStackTrace.ofCaller();\n * var data = message + \"\\n\";\n * for(var i in stackInfo.stack) {\n * var item = stackInfo.stack[i];\n * data += (item.func || '[anonymous]') + \"() in \" + item.url + \":\" + (item.line || '0') + \"\\n\";\n * }\n * if (window.console)\n * console.info(data);\n * else\n * alert(data);\n * }\n * ```\n * @memberof TraceKit\n * @namespace\n */\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\n var debug = false,\n sourceCache = {};\n\n /**\n * Attempts to retrieve source code via XMLHttpRequest, which is used\n * to look up anonymous function names.\n * @param {string} url URL of source code.\n * @return {string} Source contents.\n * @memberof TraceKit.computeStackTrace\n */\n function loadSource(url) {\n if (!TraceKit.remoteFetching) { //Only attempt request if remoteFetching is on.\n return '';\n }\n try {\n var getXHR = function() {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {\n // explicitly bubble up the exception if not found\n return new window.ActiveXObject('Microsoft.XMLHTTP');\n }\n };\n\n var request = getXHR();\n request.open('GET', url, false);\n request.send('');\n return request.responseText;\n } catch (e) {\n return '';\n }\n }\n\n /**\n * Retrieves source code from the source code cache.\n * @param {string} url URL of source code.\n * @return {Array.} Source contents.\n * @memberof TraceKit.computeStackTrace\n */\n function getSource(url) {\n if (typeof url !== 'string') {\n return [];\n }\n\n if (!_has(sourceCache, url)) {\n // URL needs to be able to fetched within the acceptable domain. Otherwise,\n // cross-domain errors will be triggered.\n /*\n Regex matches:\n 0 - Full Url\n 1 - Protocol\n 2 - Domain\n 3 - Port (Useful for internal applications)\n 4 - Path\n */\n var source = '';\n var domain = '';\n try { domain = window.document.domain; } catch (e) { }\n var match = /(.*)\\:\\/\\/([^:\\/]+)([:\\d]*)\\/{0,1}([\\s\\S]*)/.exec(url);\n if (match && match[2] === domain) {\n source = loadSource(url);\n }\n sourceCache[url] = source ? source.split('\\n') : [];\n }\n\n return sourceCache[url];\n }\n\n /**\n * Tries to use an externally loaded copy of source code to determine\n * the name of a function by looking at the name of the variable it was\n * assigned to, if any.\n * @param {string} url URL of source code.\n * @param {(string|number)} lineNo Line number in source code.\n * @return {string} The function name, if discoverable.\n * @memberof TraceKit.computeStackTrace\n */\n function guessFunctionName(url, lineNo) {\n var reFunctionArgNames = /function ([^(]*)\\(([^)]*)\\)/,\n reGuessFunction = /['\"]?([0-9A-Za-z$_]+)['\"]?\\s*[:=]\\s*(function|eval|new Function)/,\n line = '',\n maxLines = 10,\n source = getSource(url),\n m;\n\n if (!source.length) {\n return UNKNOWN_FUNCTION;\n }\n\n // Walk backwards from the first line in the function until we find the line which\n // matches the pattern above, which is the function definition\n for (var i = 0; i < maxLines; ++i) {\n line = source[lineNo - i] + line;\n\n if (!_isUndefined(line)) {\n if ((m = reGuessFunction.exec(line))) {\n return m[1];\n } else if ((m = reFunctionArgNames.exec(line))) {\n return m[1];\n }\n }\n }\n\n return UNKNOWN_FUNCTION;\n }\n\n /**\n * Retrieves the surrounding lines from where an exception occurred.\n * @param {string} url URL of source code.\n * @param {(string|number)} line Line number in source code to centre\n * around for context.\n * @return {?Array.} Lines of source code.\n * @memberof TraceKit.computeStackTrace\n */\n function gatherContext(url, line) {\n var source = getSource(url);\n\n if (!source.length) {\n return null;\n }\n\n var context = [],\n // linesBefore & linesAfter are inclusive with the offending line.\n // if linesOfContext is even, there will be one extra line\n // *before* the offending line.\n linesBefore = Math.floor(TraceKit.linesOfContext / 2),\n // Add one extra line if linesOfContext is odd\n linesAfter = linesBefore + (TraceKit.linesOfContext % 2),\n start = Math.max(0, line - linesBefore - 1),\n end = Math.min(source.length, line + linesAfter - 1);\n\n line -= 1; // convert to 0-based index\n\n for (var i = start; i < end; ++i) {\n if (!_isUndefined(source[i])) {\n context.push(source[i]);\n }\n }\n\n return context.length > 0 ? context : null;\n }\n\n /**\n * Escapes special characters, except for whitespace, in a string to be\n * used inside a regular expression as a string literal.\n * @param {string} text The string.\n * @return {string} The escaped string literal.\n * @memberof TraceKit.computeStackTrace\n */\n function escapeRegExp(text) {\n return text.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#]/g, '\\\\$&');\n }\n\n /**\n * Escapes special characters in a string to be used inside a regular\n * expression as a string literal. Also ensures that HTML entities will\n * be matched the same as their literal friends.\n * @param {string} body The string.\n * @return {string} The escaped string.\n * @memberof TraceKit.computeStackTrace\n */\n function escapeCodeAsRegExpForMatchingInsideHTML(body) {\n return escapeRegExp(body).replace('<', '(?:<|<)').replace('>', '(?:>|>)').replace('&', '(?:&|&)').replace('\"', '(?:\"|")').replace(/\\s+/g, '\\\\s+');\n }\n\n /**\n * Determines where a code fragment occurs in the source code.\n * @param {RegExp} re The function definition.\n * @param {Array.} urls A list of URLs to search.\n * @return {?Object.} An object containing\n * the url, line, and column number of the defined function.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceInUrls(re, urls) {\n var source, m;\n for (var i = 0, j = urls.length; i < j; ++i) {\n // console.log('searching', urls[i]);\n if ((source = getSource(urls[i])).length) {\n source = source.join('\\n');\n if ((m = re.exec(source))) {\n // console.log('Found function in ' + urls[i]);\n\n return {\n 'url': urls[i],\n 'line': source.substring(0, m.index).split('\\n').length,\n 'column': m.index - source.lastIndexOf('\\n', m.index) - 1\n };\n }\n }\n }\n\n // console.log('no match');\n\n return null;\n }\n\n /**\n * Determines at which column a code fragment occurs on a line of the\n * source code.\n * @param {string} fragment The code fragment.\n * @param {string} url The URL to search.\n * @param {(string|number)} line The line number to examine.\n * @return {?number} The column number.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceInLine(fragment, url, line) {\n var source = getSource(url),\n re = new RegExp('\\\\b' + escapeRegExp(fragment) + '\\\\b'),\n m;\n\n line -= 1;\n\n if (source && source.length > line && (m = re.exec(source[line]))) {\n return m.index;\n }\n\n return null;\n }\n\n /**\n * Determines where a function was defined within the source code.\n * @param {(Function|string)} func A function reference or serialized\n * function definition.\n * @return {?Object.} An object containing\n * the url, line, and column number of the defined function.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceByFunctionBody(func) {\n if (_isUndefined(window && window.document)) {\n return;\n }\n\n var urls = [window.location.href],\n scripts = window.document.getElementsByTagName('script'),\n body,\n code = '' + func,\n codeRE = /^function(?:\\s+([\\w$]+))?\\s*\\(([\\w\\s,]*)\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\n eventRE = /^function on([\\w$]+)\\s*\\(event\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\n re,\n parts,\n result;\n\n for (var i = 0; i < scripts.length; ++i) {\n var script = scripts[i];\n if (script.src) {\n urls.push(script.src);\n }\n }\n\n if (!(parts = codeRE.exec(code))) {\n re = new RegExp(escapeRegExp(code).replace(/\\s+/g, '\\\\s+'));\n }\n\n // not sure if this is really necessary, but I don’t have a test\n // corpus large enough to confirm that and it was in the original.\n else {\n var name = parts[1] ? '\\\\s+' + parts[1] : '',\n args = parts[2].split(',').join('\\\\s*,\\\\s*');\n\n body = escapeRegExp(parts[3]).replace(/;$/, ';?'); // semicolon is inserted if the function ends with a comment.replace(/\\s+/g, '\\\\s+');\n re = new RegExp('function' + name + '\\\\s*\\\\(\\\\s*' + args + '\\\\s*\\\\)\\\\s*{\\\\s*' + body + '\\\\s*}');\n }\n\n // look for a normal function definition\n if ((result = findSourceInUrls(re, urls))) {\n return result;\n }\n\n // look for an old-school event handler function\n if ((parts = eventRE.exec(code))) {\n var event = parts[1];\n body = escapeCodeAsRegExpForMatchingInsideHTML(parts[2]);\n\n // look for a function defined in HTML as an onXXX handler\n re = new RegExp('on' + event + '=[\\\\\\'\"]\\\\s*' + body + '\\\\s*[\\\\\\'\"]', 'i');\n\n if ((result = findSourceInUrls(re, urls[0]))) {\n return result;\n }\n\n // look for ???\n re = new RegExp(body);\n\n if ((result = findSourceInUrls(re, urls))) {\n return result;\n }\n }\n\n return null;\n }\n\n // Contents of Exception in various browsers.\n //\n // SAFARI:\n // ex.message = Can't find variable: qq\n // ex.line = 59\n // ex.sourceId = 580238192\n // ex.sourceURL = http://...\n // ex.expressionBeginOffset = 96\n // ex.expressionCaretOffset = 98\n // ex.expressionEndOffset = 98\n // ex.name = ReferenceError\n //\n // FIREFOX:\n // ex.message = qq is not defined\n // ex.fileName = http://...\n // ex.lineNumber = 59\n // ex.columnNumber = 69\n // ex.stack = ...stack trace... (see the example below)\n // ex.name = ReferenceError\n //\n // CHROME:\n // ex.message = qq is not defined\n // ex.name = ReferenceError\n // ex.type = not_defined\n // ex.arguments = ['aa']\n // ex.stack = ...stack trace...\n //\n // INTERNET EXPLORER:\n // ex.message = ...\n // ex.name = ReferenceError\n //\n // OPERA:\n // ex.message = ...message... (see the example below)\n // ex.name = ReferenceError\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\n\n /**\n * Computes stack trace information from the stack property.\n * Chrome and Gecko use this property.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack trace information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromStackProp(ex) {\n if (!ex.stack) {\n return null;\n }\n\n var chrome = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,\n gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|\\[native).*?)(?::(\\d+))?(?::(\\d+))?\\s*$/i,\n winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:ms-appx|https?|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,\n lines = ex.stack.split('\\n'),\n stack = [],\n parts,\n element,\n reference = /^(.*) is undefined$/.exec(ex.message);\n\n for (var i = 0, j = lines.length; i < j; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') !== -1;\n element = {\n 'url': !isNative ? parts[2] : null,\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': isNative ? [parts[2]] : [],\n 'line': parts[3] ? +parts[3] : null,\n 'column': parts[4] ? +parts[4] : null\n };\n } else if ( parts = winjs.exec(lines[i]) ) {\n element = {\n 'url': parts[2],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': [],\n 'line': +parts[3],\n 'column': parts[4] ? +parts[4] : null\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n element = {\n 'url': parts[3],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': parts[2] ? parts[2].split(',') : [],\n 'line': parts[4] ? +parts[4] : null,\n 'column': parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = guessFunctionName(element.url, element.line);\n }\n\n if (element.line) {\n element.context = gatherContext(element.url, element.line);\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n if (stack[0] && stack[0].line && !stack[0].column && reference) {\n stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line);\n } else if (!stack[0].column && !_isUndefined(ex.columnNumber)) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n stack[0].column = ex.columnNumber + 1;\n }\n\n return {\n 'mode': 'stack',\n 'name': ex.name,\n 'message': ex.message,\n 'stack': stack\n };\n }\n\n /**\n * Computes stack trace information from the stacktrace property.\n * Opera 10+ uses this property.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack trace information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromStacktraceProp(ex) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n if (!stacktrace) {\n return;\n }\n\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i,\n opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i,\n lines = stacktrace.split('\\n'),\n stack = [],\n parts;\n\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n 'url': parts[2],\n 'line': +parts[1],\n 'column': null,\n 'func': parts[3],\n 'args':[]\n };\n } else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n 'url': parts[6],\n 'line': +parts[1],\n 'column': +parts[2],\n 'func': parts[3] || parts[4],\n 'args': parts[5] ? parts[5].split(',') : []\n };\n }\n\n if (element) {\n if (!element.func && element.line) {\n element.func = guessFunctionName(element.url, element.line);\n }\n if (element.line) {\n try {\n element.context = gatherContext(element.url, element.line);\n } catch (exc) {}\n }\n\n if (!element.context) {\n element.context = [lines[line + 1]];\n }\n\n stack.push(element);\n }\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n 'mode': 'stacktrace',\n 'name': ex.name,\n 'message': ex.message,\n 'stack': stack\n };\n }\n\n /**\n * NOT TESTED.\n * Computes stack trace information from an error message that includes\n * the stack trace.\n * Opera 9 and earlier use this method if the option to show stack\n * traces is turned on in opera:config.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromOperaMultiLineMessage(ex) {\n // TODO: Clean this function up\n // Opera includes a stack trace into the exception message. An example is:\n //\n // Statement on line 3: Undefined variable: undefinedFunc\n // Backtrace:\n // Line 3 of linked script file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.js: In function zzz\n // undefinedFunc(a);\n // Line 7 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function yyy\n // zzz(x, y, z);\n // Line 3 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function xxx\n // yyy(a, a, a);\n // Line 1 of function script\n // try { xxx('hi'); return false; } catch(ex) { TraceKit.report(ex); }\n // ...\n\n var lines = ex.message.split('\\n');\n if (lines.length < 4) {\n return null;\n }\n\n var lineRE1 = /^\\s*Line (\\d+) of linked script ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,\n lineRE2 = /^\\s*Line (\\d+) of inline#(\\d+) script in ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,\n lineRE3 = /^\\s*Line (\\d+) of function script\\s*$/i,\n stack = [],\n scripts = (window && window.document && window.document.getElementsByTagName('script')),\n inlineScriptBlocks = [],\n parts;\n\n for (var s in scripts) {\n if (_has(scripts, s) && !scripts[s].src) {\n inlineScriptBlocks.push(scripts[s]);\n }\n }\n\n for (var line = 2; line < lines.length; line += 2) {\n var item = null;\n if ((parts = lineRE1.exec(lines[line]))) {\n item = {\n 'url': parts[2],\n 'func': parts[3],\n 'args': [],\n 'line': +parts[1],\n 'column': null\n };\n } else if ((parts = lineRE2.exec(lines[line]))) {\n item = {\n 'url': parts[3],\n 'func': parts[4],\n 'args': [],\n 'line': +parts[1],\n 'column': null // TODO: Check to see if inline#1 (+parts[2]) points to the script number or column number.\n };\n var relativeLine = (+parts[1]); // relative to the start of the