mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-30 06:25:28 -05:00
2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
/*! Raven.js 1.1.16 (2cf8531) | github.com/getsentry/raven-js */
|
|
!function(a,b){"use strict";function c(a,b){var c,d;b=b||{},a="raven"+a.substr(0,1).toUpperCase()+a.substr(1),document.createEvent?(c=document.createEvent("HTMLEvents"),c.initEvent(a,!0,!0)):(c=document.createEventObject(),c.eventType=a);for(d in b)j(b,d)&&(c[d]=b[d]);if(document.createEvent)document.dispatchEvent(c);else try{document.fireEvent("on"+c.eventType.toLowerCase(),c)}catch(e){}}function d(a){this.name="RavenConfigError",this.message=a}function e(a){var b=Q.exec(a),c={},e=7;try{for(;e--;)c[P[e]]=b[e]||""}catch(f){throw new d("Invalid DSN: "+a)}if(c.pass)throw new d("Do not specify your private key in the DSN!");return c}function f(a){return"undefined"==typeof a}function g(a){return"function"==typeof a}function h(a){return"string"==typeof a}function i(a){for(var b in a)return!1;return!0}function j(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function k(a,b){var c,d;if(f(a.length))for(c in a)j(a,c)&&b.call(null,c,a[c]);else if(d=a.length)for(c=0;d>c;c++)b.call(null,c,a[c])}function l(){J="?sentry_version=4&sentry_client=raven-js/"+O.VERSION+"&sentry_key="+H}function m(a,b){var d=[];a.stack&&a.stack.length&&k(a.stack,function(a,b){var c=n(b);c&&d.push(c)}),c("handle",{stackInfo:a,options:b}),p(a.name,a.message,a.url,a.lineno,d,b)}function n(a){if(a.url){var b,c={filename:a.url,lineno:a.line,colno:a.column,"function":a.func||"?"},d=o(a);if(d){var e=["pre_context","context_line","post_context"];for(b=3;b--;)c[e[b]]=d[b]}return c.in_app=!(!M.includePaths.test(c.filename)||/(Raven|TraceKit)\./.test(c["function"])||/raven\.(min\.)?js$/.test(c.filename)),c}}function o(a){if(a.context&&M.fetchContext){for(var b=a.context,c=~~(b.length/2),d=b.length,e=!1;d--;)if(b[d].length>300){e=!0;break}if(e){if(f(a.column))return;return[[],b[c].substr(a.column,50),[]]}return[b.slice(0,c),b[c],b.slice(c+1)]}}function p(a,b,c,d,e,f){var g,h;b+="",("Error"!==a||b)&&(M.ignoreErrors.test(b)||(e&&e.length?(c=e[0].filename||c,e.reverse(),g={frames:e}):c&&(g={frames:[{filename:c,lineno:d,in_app:!0}]}),b=r(b,100),M.ignoreUrls&&M.ignoreUrls.test(c)||(!M.whitelistUrls||M.whitelistUrls.test(c))&&(h=d?b+" at "+d:b,t(q({exception:{type:a,value:b},stacktrace:g,culprit:c,message:h},f)))))}function q(a,b){return b?(k(b,function(b,c){a[b]=c}),a):a}function r(a,b){return a.length<=b?a:a.substr(0,b)+"…"}function s(){var a={url:document.location.href,headers:{"User-Agent":navigator.userAgent}};return document.referrer&&(a.headers.Referer=document.referrer),a}function t(a){v()&&(a=q({project:I,logger:M.logger,site:M.site,platform:"javascript",request:s()},a),a.tags=q(M.tags,a.tags),a.extra=q(M.extra,a.extra),i(a.tags)&&delete a.tags,i(a.extra)&&delete a.extra,G&&(a.user=G),g(M.dataCallback)&&(a=M.dataCallback(a)),(!g(M.shouldSendCallback)||M.shouldSendCallback(a))&&(E=a.event_id||(a.event_id=x()),u(a)))}function u(a){var b=new Image,d=F+J+"&sentry_data="+encodeURIComponent(JSON.stringify(a));b.onload=function(){c("success",{data:a,src:d})},b.onerror=b.onabort=function(){c("failure",{data:a,src:d})},b.src=d}function v(){return L?F?!0:(y("error","Error: Raven has not been configured."),!1):!1}function w(a){for(var b,c=[],d=0,e=a.length;e>d;d++)b=a[d],h(b)?c.push(b.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")):b&&b.source&&c.push(b.source);return new RegExp(c.join("|"),"i")}function x(){return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}function y(b,c){a.console&&console[b]&&O.debug&&console[b](c)}function z(){var b=a.RavenConfig;b&&O.config(b.dsn,b.config).install()}var A={remoteFetching:!1,collectWindowErrors:!0,linesOfContext:7},B=[].slice,C="?";A.wrap=function(a){function b(){try{return a.apply(this,arguments)}catch(b){throw A.report(b),b}}return b},A.report=function(){function c(a){h(),o.push(a)}function d(a){for(var b=o.length-1;b>=0;--b)o[b]===a&&o.splice(b,1)}function e(){i(),o=[]}function f(a,b){var c=null;if(!b||A.collectWindowErrors){for(var d in o)if(j(o,d))try{o[d].apply(null,[a].concat(B.call(arguments,2)))}catch(e){c=e}if(c)throw c}}function g(a,b,c,d,e){var g=null;if(r)A.computeStackTrace.augmentStackTraceWithInitialElement(r,b,c,a),k();else if(e)g=A.computeStackTrace(e),f(g,!0);else{var h={url:b,line:c,column:d};h.func=A.computeStackTrace.guessFunctionName(h.url,h.line),h.context=A.computeStackTrace.gatherContext(h.url,h.line),g={message:a,url:document.location.href,stack:[h]},f(g,!0)}return m?m.apply(this,arguments):!1}function h(){n||(m=a.onerror,a.onerror=g,n=!0)}function i(){n&&(a.onerror=m,n=!1,m=b)}function k(){var a=r,b=p;p=null,r=null,q=null,f.apply(null,[a,!1].concat(b))}function l(b,c){var d=B.call(arguments,1);if(r){if(q===b)return;k()}var e=A.computeStackTrace(b);if(r=e,q=b,p=d,a.setTimeout(function(){q===b&&k()},e.incomplete?2e3:0),c!==!1)throw b}var m,n,o=[],p=null,q=null,r=null;return l.subscribe=c,l.unsubscribe=d,l.uninstall=e,l}(),A.computeStackTrace=function(){function b(b){if(!A.remoteFetching)return"";try{var c=function(){try{return new a.XMLHttpRequest}catch(b){return new a.ActiveXObject("Microsoft.XMLHTTP")}},d=c();return d.open("GET",b,!1),d.send(""),d.responseText}catch(e){return""}}function c(a){if(!h(a))return[];if(!j(v,a)){var c="";-1!==a.indexOf(document.domain)&&(c=b(a)),v[a]=c?c.split("\n"):[]}return v[a]}function d(a,b){var d,e=/function ([^(]*)\(([^)]*)\)/,g=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,h="",i=10,j=c(a);if(!j.length)return C;for(var k=0;i>k;++k)if(h=j[b-k]+h,!f(h)){if(d=g.exec(h))return d[1];if(d=e.exec(h))return d[1]}return C}function e(a,b){var d=c(a);if(!d.length)return null;var e=[],g=Math.floor(A.linesOfContext/2),h=g+A.linesOfContext%2,i=Math.max(0,b-g-1),j=Math.min(d.length,b+h-1);b-=1;for(var k=i;j>k;++k)f(d[k])||e.push(d[k]);return e.length>0?e:null}function g(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function i(a){return g(a).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function k(a,b){for(var d,e,f=0,g=b.length;g>f;++f)if((d=c(b[f])).length&&(d=d.join("\n"),e=a.exec(d)))return{url:b[f],line:d.substring(0,e.index).split("\n").length,column:e.index-d.lastIndexOf("\n",e.index)-1};return null}function l(a,b,d){var e,f=c(b),h=new RegExp("\\b"+g(a)+"\\b");return d-=1,f&&f.length>d&&(e=h.exec(f[d]))?e.index:null}function m(b){for(var c,d,e,f,h=[a.location.href],j=document.getElementsByTagName("script"),l=""+b,m=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,n=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,o=0;o<j.length;++o){var p=j[o];p.src&&h.push(p.src)}if(e=m.exec(l)){var q=e[1]?"\\s+"+e[1]:"",r=e[2].split(",").join("\\s*,\\s*");c=g(e[3]).replace(/;$/,";?"),d=new RegExp("function"+q+"\\s*\\(\\s*"+r+"\\s*\\)\\s*{\\s*"+c+"\\s*}")}else d=new RegExp(g(l).replace(/\s+/g,"\\s+"));if(f=k(d,h))return f;if(e=n.exec(l)){var s=e[1];if(c=i(e[2]),d=new RegExp("on"+s+"=[\\'\"]\\s*"+c+"\\s*[\\'\"]","i"),f=k(d,h[0]))return f;if(d=new RegExp(c),f=k(d,h))return f}return null}function n(a){if(!a.stack)return null;for(var b,c,g=/^\s*at (?:((?:\[object object\])?\S+(?: \[as \S+\])?) )?\(?((?:file|https?|chrome-extension):.*?):(\d+)(?::(\d+))?\)?\s*$/i,h=/^\s*(\S*)(?:\((.*?)\))?@((?:file|https?|chrome).*?):(\d+)(?::(\d+))?\s*$/i,i=a.stack.split("\n"),j=[],k=/^(.*) is undefined$/.exec(a.message),m=0,n=i.length;n>m;++m){if(b=h.exec(i[m]))c={url:b[3],func:b[1]||C,args:b[2]?b[2].split(","):"",line:+b[4],column:b[5]?+b[5]:null};else{if(!(b=g.exec(i[m])))continue;c={url:b[2],func:b[1]||C,line:+b[3],column:b[4]?+b[4]:null}}!c.func&&c.line&&(c.func=d(c.url,c.line)),c.line&&(c.context=e(c.url,c.line)),j.push(c)}return j.length?(j[0].line&&!j[0].column&&k?j[0].column=l(k[1],j[0].url,j[0].line):j[0].column||f(a.columnNumber)||(j[0].column=a.columnNumber+1),{name:a.name,message:a.message,url:document.location.href,stack:j}):null}function o(a){for(var b,c=a.stacktrace,f=/ line (\d+), column (\d+) in (?:<anonymous function: ([^>]+)>|([^\)]+))\((.*)\) in (.*):\s*$/i,g=c.split("\n"),h=[],i=0,j=g.length;j>i;i+=2)if(b=f.exec(g[i])){var k={line:+b[1],column:+b[2],func:b[3]||b[4],args:b[5]?b[5].split(","):[],url:b[6]};if(!k.func&&k.line&&(k.func=d(k.url,k.line)),k.line)try{k.context=e(k.url,k.line)}catch(l){}k.context||(k.context=[g[i+1]]),h.push(k)}return h.length?{name:a.name,message:a.message,url:document.location.href,stack:h}:null}function p(b){var f=b.message.split("\n");if(f.length<4)return null;var g,h,l,m,n=/^\s*Line (\d+) of linked script ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,o=/^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,p=/^\s*Line (\d+) of function script\s*$/i,q=[],r=document.getElementsByTagName("script"),s=[];for(h in r)j(r,h)&&!r[h].src&&s.push(r[h]);for(h=2,l=f.length;l>h;h+=2){var t=null;if(g=n.exec(f[h]))t={url:g[2],func:g[3],line:+g[1]};else if(g=o.exec(f[h])){t={url:g[3],func:g[4]};var u=+g[1],v=s[g[2]-1];if(v&&(m=c(t.url))){m=m.join("\n");var w=m.indexOf(v.innerText);w>=0&&(t.line=u+m.substring(0,w).split("\n").length)}}else if(g=p.exec(f[h])){var x=a.location.href.replace(/#.*$/,""),y=g[1],z=new RegExp(i(f[h+1]));m=k(z,[x]),t={url:x,line:m?m.line:y,func:""}}if(t){t.func||(t.func=d(t.url,t.line));var A=e(t.url,t.line),B=A?A[Math.floor(A.length/2)]:null;t.context=A&&B.replace(/^\s*/,"")===f[h+1].replace(/^\s*/,"")?A:[f[h+1]],q.push(t)}}return q.length?{name:b.name,message:f[0],url:document.location.href,stack:q}:null}function q(a,b,c,f){var g={url:b,line:c};if(g.url&&g.line){a.incomplete=!1,g.func||(g.func=d(g.url,g.line)),g.context||(g.context=e(g.url,g.line));var h=/ '([^']+)' /.exec(f);if(h&&(g.column=l(h[1],g.url,g.line)),a.stack.length>0&&a.stack[0].url===g.url){if(a.stack[0].line===g.line)return!1;if(!a.stack[0].line&&a.stack[0].func===g.func)return a.stack[0].line=g.line,a.stack[0].context=g.context,!1}return a.stack.unshift(g),a.partial=!0,!0}return a.incomplete=!0,!1}function r(a,b){for(var c,e,f,g=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,h=[],i={},j=!1,k=r.caller;k&&!j;k=k.caller)if(k!==s&&k!==A.report){if(e={url:null,func:C,line:null,column:null},k.name?e.func=k.name:(c=g.exec(k.toString()))&&(e.func=c[1]),f=m(k)){e.url=f.url,e.line=f.line,e.func===C&&(e.func=d(e.url,e.line));var n=/ '([^']+)' /.exec(a.message||a.description);n&&(e.column=l(n[1],f.url,f.line))}i[""+k]?j=!0:i[""+k]=!0,h.push(e)}b&&h.splice(0,b);var o={name:a.name,message:a.message,url:document.location.href,stack:h};return q(o,a.sourceURL||a.fileName,a.line||a.lineNumber,a.message||a.description),o}function s(a,b){var c=null;b=null==b?0:+b;try{if(c=o(a))return c}catch(d){if(u)throw d}try{if(c=n(a))return c}catch(d){if(u)throw d}try{if(c=p(a))return c}catch(d){if(u)throw d}try{if(c=r(a,b+1))return c}catch(d){if(u)throw d}return{}}function t(a){a=(null==a?0:+a)+1;try{throw new Error}catch(b){return s(b,a+1)}}var u=!1,v={};return s.augmentStackTraceWithInitialElement=q,s.guessFunctionName=d,s.gatherContext=e,s.ofCaller=t,s}();var D,E,F,G,H,I,J,K=a.Raven,L=!(!a.JSON||!a.JSON.stringify),M={logger:"javascript",ignoreErrors:[],ignoreUrls:[],whitelistUrls:[],includePaths:[],collectWindowErrors:!0,tags:{},extra:{}},N=!1,O={VERSION:"1.1.16",debug:!0,noConflict:function(){return a.Raven=K,O},config:function(a,b){if(F)return y("error","Error: Raven has already been configured"),O;if(!a)return O;var c=e(a),d=c.path.lastIndexOf("/"),f=c.path.substr(1,d);return b&&k(b,function(a,b){M[a]=b}),M.ignoreErrors.push("Script error."),M.ignoreErrors.push("Script error"),M.ignoreErrors.push("Javascript error: Script error on line 0"),M.ignoreErrors.push("Javascript error: Script error. on line 0"),M.ignoreErrors=w(M.ignoreErrors),M.ignoreUrls=M.ignoreUrls.length?w(M.ignoreUrls):!1,M.whitelistUrls=M.whitelistUrls.length?w(M.whitelistUrls):!1,M.includePaths=w(M.includePaths),H=c.user,I=c.path.substr(d+1),F="//"+c.host+(c.port?":"+c.port:"")+"/"+f+"api/"+I+"/store/",c.protocol&&(F=c.protocol+":"+F),M.fetchContext&&(A.remoteFetching=!0),M.linesOfContext&&(A.linesOfContext=M.linesOfContext),A.collectWindowErrors=!!M.collectWindowErrors,l(),O},install:function(){return v()&&!N&&(A.report.subscribe(m),N=!0),O},context:function(a,c,d){return g(a)&&(d=c||[],c=a,a=b),O.wrap(a,c).apply(this,d)},wrap:function(a,c){function d(){for(var b=[],d=arguments.length,e=!a||a&&a.deep!==!1;d--;)b[d]=e?O.wrap(a,arguments[d]):arguments[d];try{return c.apply(this,b)}catch(f){throw O.captureException(f,a),f}}if(f(c)&&!g(a))return a;if(g(a)&&(c=a,a=b),!g(c))return c;if(c.__raven__)return c;for(var e in c)j(c,e)&&(d[e]=c[e]);return d.__raven__=!0,d.__inner__=c,d},uninstall:function(){return A.report.uninstall(),N=!1,O},captureException:function(a,b){if(!(a instanceof Error))return O.captureMessage(a,b);D=a;try{A.report(a,b)}catch(c){if(a!==c)throw c}return O},captureMessage:function(a,b){return t(q({message:a+""},b)),O},setUserContext:function(a){return G=a,O},setExtraContext:function(a){return M.extra=a||{},O},setTagsContext:function(a){return M.tags=a||{},O},lastException:function(){return D},lastEventId:function(){return E}};O.setUser=O.setUserContext;var P="source protocol user pass host port path".split(" "),Q=/^(?:(\w+):)?\/\/(\w+)(:\w+)?@([\w\.-]+)(?::(\d+))?(\/.*)/;d.prototype=new Error,d.prototype.constructor=d,z(),a.Raven=O,"function"==typeof define&&define.amd&&define("raven",[],function(){return O})}(this),function(a,b,c){"use strict";if(c){var d=c.event.add;c.event.add=function(a,e,f,g,h){var i;return f&&f.handler?(i=f.handler,f.handler=b.wrap(f.handler)):(i=f,f=b.wrap(f)),f.guid=i.guid?i.guid:i.guid=c.guid++,d.call(this,a,e,f,g,h)};var e=c.fn.ready;c.fn.ready=function(a){return e.call(this,b.wrap(a))};var f=c.ajax;c.ajax=function(a,d){var e,g=["complete","error","success"];for("object"==typeof a&&(d=a,a=void 0),d=d||{};e=g.pop();)c.isFunction(d[e])&&(d[e]=b.wrap(d[e]));try{return f.call(this,a,d)}catch(h){throw b.captureException(h),h}}}}(this,Raven,window.jQuery),function(a,b){"use strict";var c=function(c){var d=a[c];a[c]=function(){var a=[].slice.call(arguments),c=a[0];return"function"==typeof c&&(a[0]=b.wrap(c)),d.apply?d.apply(this,a):d(a[0],a[1])}};c("setTimeout"),c("setInterval")}(this,Raven);
|