diff --git a/appveyor.yml b/appveyor.yml index bd692adf..22598d80 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -11,6 +11,9 @@ install: build_script: - gulp build +before_test: + #- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) + test_script: - gulp test diff --git a/dist/exceptionless.min.js b/dist/exceptionless.min.js index 89e6c4ce..525adb88 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)}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(w,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)),w[r]=i?i.split("\n"):[]}return w[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,w).split("\n").length)}}}else if(i=p.exec(r[m])){var _=e.location.href.replace(/#.*$/,""),E=new RegExp(l(r[m+1])),I=f(E,[_]);y={url:_,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),T=P?P[Math.floor(P.length/2)]:null;P&&T.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,w={};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 O(e),this.settings=new O(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 M((!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 M((!1),null,(-1),null,"Invalid configuration settings.")):void n(new M((!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=w;var _=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=_;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 _;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 w({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=T;var C=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=C;var R=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=R;var k=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=k;var U=function(){function e(e){void 0===e&&(e=function(){return Date.now()}),this.priority=40,this.name="DuplicateCheckerPlugin",this._processedHashcodes=[],this._getCurrentTime=e}return e.prototype.run=function(e,t){function n(e,t,n,r){for(var i=function(){var i=S.getHashCode(e.stack_trace&&JSON.stringify(e.stack_trace));if(i&&t.some(function(e){return e.hash===i&&e.timestamp>=n-2e3}))return r.info("Ignoring duplicate error event hash: "+i),{value:!0};for(t.push({hash:i,timestamp:n});t.length>20;)t.shift();e=e.inner};e;){var o=i();if("object"==typeof o)return o.value}return!1}return"error"===e.event.type&&n(e.event.data["@error"],this._processedHashcodes,this._getCurrentTime(),e.log)?void(e.cancelled=!0):void(t&&t())},e}();t.DuplicateCheckerPlugin=U;var q=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=A;var D=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}(A);t.BrowserStorage=D;var K=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=N;var j=function(){function e(e,t){void 0===t&&(t=250),this.queue=new D("q",e,t),this.settings=new D("settings",e,1)}return e}();t.BrowserStorageProvider=j,x.prototype.useLocalStorage=function(){D.isAvailable()&&(this.storage=new j,c.applySavedServerSettings(this),this.changed())};var B=x.defaults,Q=o();return Q&&(Q.apiKey||Q.serverUrl)&&(B.apiKey=Q.apiKey,B.serverUrl=Q.serverUrl),B.errorParser=new K,B.moduleCollector=new F,B.requestInfoCollector=new L,B.submissionAdapter=new N,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):!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(w,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)),w[r]=i?i.split("\n"):[]}return w[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,w).split("\n").length)}}}else if(i=p.exec(r[m])){var _=e.location.href.replace(/#.*$/,""),E=new RegExp(l(r[m+1])),I=f(E,[_]);y={url:_,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),T=P?P[Math.floor(P.length/2)]:null;P&&T.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,w={};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 O(e),this.settings=new O(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 M(!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 M(!1,null,-1,null,"Invalid configuration settings.")):void n(new M(!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=w;var _=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=_;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 _;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 w({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=T;var C=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=C;var R=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=R;var k=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=k;var U=function(){function e(e){void 0===e&&(e=function(){return Date.now()}),this.priority=40,this.name="DuplicateCheckerPlugin",this._processedHashcodes=[],this._getCurrentTime=e}return e.prototype.run=function(e,t){function n(e,t,n,r){for(var i=function(){var i=S.getHashCode(e.stack_trace&&JSON.stringify(e.stack_trace));if(i&&t.some(function(e){return e.hash===i&&e.timestamp>=n-2e3}))return r.info("Ignoring duplicate error event hash: "+i),{value:!0};for(t.push({hash:i,timestamp:n});t.length>20;)t.shift();e=e.inner};e;){var o=i();if("object"==typeof o)return o.value}return!1}return"error"===e.event.type&&n(e.event.data["@error"],this._processedHashcodes,this._getCurrentTime(),e.log)?void(e.cancelled=!0):void(t&&t())},e}();t.DuplicateCheckerPlugin=U;var q=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=q;var M=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=M;var O=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=A;var D=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}(A);t.BrowserStorage=D;var K=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=N;var j=function(){function e(e,t){void 0===t&&(t=250),this.queue=new D("q",e,t),this.settings=new D("settings",e,1)}return e}();t.BrowserStorageProvider=j,x.prototype.useLocalStorage=function(){D.isAvailable()&&(this.storage=new j,c.applySavedServerSettings(this),this.changed())};var B=x.defaults,Q=o();return Q&&(Q.apiKey||Q.serverUrl)&&(B.apiKey=Q.apiKey,B.serverUrl=Q.serverUrl),B.errorParser=new K,B.moduleCollector=new F,B.requestInfoCollector=new L,B.submissionAdapter=new N,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 3809ccac..e0235d08 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","level","console","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","_processedHashcodes","_getCurrentTime","isDuplicate","processedHashcodes","_loop_1","hashCode","stack_trace","h","shift","state_1","getLogLevel","getMinLogLevel","loggerName","getTypeAndSourceSetting","isLog","sourcePrefix","minLogLevel","logLevel","maxItems","items","lastTimestamp","limit","KeyValueStorageBase","single","ensureIndex","getKey","json","write","read","safeDelete","filter","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 + + + + \ No newline at end of file