diff --git a/CHANGELOG.md b/CHANGELOG.md index 37b6831d2ac7..fdea43d95d1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 3.19.0 + +* NEW: `ErrorEvent` are now treated in the same way as regular `Error` objects https://github.com/getsentry/raven-js/pull/1094 +* NEW: `replaceState` is now instrumented to be stored as a breadcrumbs correctly https://github.com/getsentry/raven-js/pull/1093 +* NEW: `captureMessage` now respects `ignoreUrls` and `whitelistUrls` configs https://github.com/getsentry/raven-js/pull/1080 +* NEW: Improved support for parsing Electron errors https://github.com/getsentry/raven-js/pull/1068 +* NEW: All test suites are now using Karma and are additionally running on Headless Firefox, Edge 15, Android 4.4/5.1/6.0/7.1 and iOS10 https://github.com/getsentry/raven-js/pull/1087 +* BUGFIX: Don't throw error when calling `fetch` without a valid arguments https://github.com/getsentry/raven-js/pull/1069 +* BUGFIX: `ignoreErrors` patterns are now compared on both, error message itself and `: ` formatted string https://github.com/getsentry/raven-js/pull/1076 +* BUGFIX: `showReportDialog` `options` argument is now optional in TypeScript definitions https://github.com/getsentry/raven-js/pull/1097 +* BUGFIX: TravisCI tests will run correctly for non-org contributors as well \o/ https://github.com/getsentry/raven-js/commit/1650da749282207939d9d362194d086a565e09c5 + ## 3.18.1 * BUGFIX: Remove engine field from package.json, preventing correct npm/yarn usage diff --git a/bower.json b/bower.json index ee4fdb64f75a..57eda67443d1 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "raven-js", - "version": "3.18.1", + "version": "3.19.0", "dependencies": {}, "main": "dist/raven.js", "ignore": [ diff --git a/dist/plugins/angular.js b/dist/plugins/angular.js index 804d47f7b648..6e9b7ec58425 100644 --- a/dist/plugins/angular.js +++ b/dist/plugins/angular.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ /* * Includes TraceKit @@ -149,42 +149,407 @@ ], 2: [ function(_dereq_, module, exports) { - function isObject(what) { - return typeof what === 'object' && what !== null; - } + (function(global) { + var _window = + typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' ? self : {}; - // Yanked from https://git.io/vS8DV re-used under CC0 - // with some tiny modifications - function isError(value) { - switch ({}.toString.call(value)) { - case '[object Error]': - return true; - case '[object Exception]': - return true; - case '[object DOMException]': + function isObject(what) { + return typeof what === 'object' && what !== null; + } + + // Yanked from https://git.io/vS8DV re-used under CC0 + // with some tiny modifications + function isError(value) { + switch ({}.toString.call(value)) { + case '[object Error]': + return true; + case '[object Exception]': + return true; + case '[object DOMException]': + return true; + default: + return value instanceof Error; + } + } + + function isErrorEvent(value) { + return ( + supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]' + ); + } + + function isUndefined(what) { + return what === void 0; + } + + function isFunction(what) { + return typeof what === 'function'; + } + + function isString(what) { + return Object.prototype.toString.call(what) === '[object String]'; + } + + function isEmptyObject(what) { + for (var _ in what) return false; // eslint-disable-line guard-for-in, no-unused-vars + return true; + } + + function supportsErrorEvent() { + try { + new ErrorEvent(''); // eslint-disable-line no-new return true; - default: - return value instanceof Error; + } catch (e) { + return false; + } } - } - function wrappedCallback(callback) { - function dataCallback(data, original) { - var normalizedData = callback(data) || data; - if (original) { - return original(normalizedData) || normalizedData; + function wrappedCallback(callback) { + function dataCallback(data, original) { + var normalizedData = callback(data) || data; + if (original) { + return original(normalizedData) || normalizedData; + } + return normalizedData; } - return normalizedData; + + return dataCallback; } - return dataCallback; - } + function each(obj, callback) { + var i, j; - module.exports = { - isObject: isObject, - isError: isError, - wrappedCallback: wrappedCallback - }; + if (isUndefined(obj.length)) { + for (i in obj) { + if (hasKey(obj, i)) { + callback.call(null, i, obj[i]); + } + } + } else { + j = obj.length; + if (j) { + for (i = 0; i < j; i++) { + callback.call(null, i, obj[i]); + } + } + } + } + + function objectMerge(obj1, obj2) { + if (!obj2) { + return obj1; + } + each(obj2, function(key, value) { + obj1[key] = value; + }); + return obj1; + } + + /** + * This function is only used for react-native. + * react-native freezes object that have already been sent over the + * js bridge. We need this function in order to check if the object is frozen. + * So it's ok that objectFrozen returns false if Object.isFrozen is not + * supported because it's not relevant for other "platforms". See related issue: + * https://github.com/getsentry/react-native-sentry/issues/57 + */ + function objectFrozen(obj) { + if (!Object.isFrozen) { + return false; + } + return Object.isFrozen(obj); + } + + function truncate(str, max) { + return !max || str.length <= max ? str : str.substr(0, max) + '\u2026'; + } + + /** + * hasKey, a better form of hasOwnProperty + * Example: hasKey(MainHostObject, property) === true/false + * + * @param {Object} host object to check property + * @param {string} key to check + */ + function hasKey(object, key) { + return Object.prototype.hasOwnProperty.call(object, key); + } + + function joinRegExp(patterns) { + // Combine an array of regular expressions and strings into one large regexp + // Be mad. + var sources = [], + i = 0, + len = patterns.length, + pattern; + + for (; i < len; i++) { + pattern = patterns[i]; + if (isString(pattern)) { + // If it's a string, we need to escape it + // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions + sources.push(pattern.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1')); + } else if (pattern && pattern.source) { + // If it's a regexp already, we want to extract the source + sources.push(pattern.source); + } + // Intentionally skip other cases + } + return new RegExp(sources.join('|'), 'i'); + } + + function urlencode(o) { + var pairs = []; + each(o, function(key, value) { + pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)); + }); + return pairs.join('&'); + } + + // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B + // intentionally using regex and not href parsing trick because React Native and other + // environments where DOM might not be available + function parseUrl(url) { + var match = url.match( + /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/ + ); + if (!match) return {}; + + // coerce to undefined values to empty string so we don't get 'undefined' + var query = match[6] || ''; + var fragment = match[8] || ''; + return { + protocol: match[2], + host: match[4], + path: match[5], + relative: match[5] + query + fragment // everything minus origin + }; + } + function uuid4() { + var crypto = _window.crypto || _window.msCrypto; + + if (!isUndefined(crypto) && crypto.getRandomValues) { + // Use window.crypto API if available + // eslint-disable-next-line no-undef + var arr = new Uint16Array(8); + crypto.getRandomValues(arr); + + // set 4 in byte 7 + arr[3] = (arr[3] & 0xfff) | 0x4000; + // set 2 most significant bits of byte 9 to '10' + arr[4] = (arr[4] & 0x3fff) | 0x8000; + + var pad = function(num) { + var v = num.toString(16); + while (v.length < 4) { + v = '0' + v; + } + return v; + }; + + return ( + pad(arr[0]) + + pad(arr[1]) + + pad(arr[2]) + + pad(arr[3]) + + pad(arr[4]) + + pad(arr[5]) + + pad(arr[6]) + + pad(arr[7]) + ); + } else { + // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523 + return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = (Math.random() * 16) | 0, + v = c === 'x' ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); + } + } + + /** + * Given a child DOM element, returns a query-selector statement describing that + * and its ancestors + * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz] + * @param elem + * @returns {string} + */ + function htmlTreeAsString(elem) { + /* eslint no-extra-parens:0*/ + var MAX_TRAVERSE_HEIGHT = 5, + MAX_OUTPUT_LEN = 80, + out = [], + height = 0, + len = 0, + separator = ' > ', + sepLength = separator.length, + nextStr; + + while (elem && height++ < MAX_TRAVERSE_HEIGHT) { + nextStr = htmlElementAsString(elem); + // bail out if + // - nextStr is the 'html' element + // - the length of the string that would be created exceeds MAX_OUTPUT_LEN + // (ignore this limit if we are on the first iteration) + if ( + nextStr === 'html' || + (height > 1 && + len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) + ) { + break; + } + + out.push(nextStr); + + len += nextStr.length; + elem = elem.parentNode; + } + + return out.reverse().join(separator); + } + + /** + * Returns a simple, query-selector representation of a DOM element + * e.g. [HTMLElement] => input#foo.btn[name=baz] + * @param HTMLElement + * @returns {string} + */ + function htmlElementAsString(elem) { + var out = [], + className, + classes, + key, + attr, + i; + + if (!elem || !elem.tagName) { + return ''; + } + + out.push(elem.tagName.toLowerCase()); + if (elem.id) { + out.push('#' + elem.id); + } + + className = elem.className; + if (className && isString(className)) { + classes = className.split(/\s+/); + for (i = 0; i < classes.length; i++) { + out.push('.' + classes[i]); + } + } + var attrWhitelist = ['type', 'name', 'title', 'alt']; + for (i = 0; i < attrWhitelist.length; i++) { + key = attrWhitelist[i]; + attr = elem.getAttribute(key); + if (attr) { + out.push('[' + key + '="' + attr + '"]'); + } + } + return out.join(''); + } + + /** + * Returns true if either a OR b is truthy, but not both + */ + function isOnlyOneTruthy(a, b) { + return !!(!!a ^ !!b); + } + + /** + * Returns true if the two input exception interfaces have the same content + */ + function isSameException(ex1, ex2) { + if (isOnlyOneTruthy(ex1, ex2)) return false; + + ex1 = ex1.values[0]; + ex2 = ex2.values[0]; + + if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false; + + return isSameStacktrace(ex1.stacktrace, ex2.stacktrace); + } + + /** + * Returns true if the two input stack trace interfaces have the same content + */ + function isSameStacktrace(stack1, stack2) { + if (isOnlyOneTruthy(stack1, stack2)) return false; + + var frames1 = stack1.frames; + var frames2 = stack2.frames; + + // Exit early if frame count differs + if (frames1.length !== frames2.length) return false; + + // Iterate through every frame; bail out if anything differs + var a, b; + for (var i = 0; i < frames1.length; i++) { + a = frames1[i]; + b = frames2[i]; + if ( + a.filename !== b.filename || + a.lineno !== b.lineno || + a.colno !== b.colno || + a['function'] !== b['function'] + ) + return false; + } + return true; + } + + /** + * Polyfill a method + * @param obj object e.g. `document` + * @param name method name present on object e.g. `addEventListener` + * @param replacement replacement function + * @param track {optional} record instrumentation to an array + */ + function fill(obj, name, replacement, track) { + var orig = obj[name]; + obj[name] = replacement(orig); + if (track) { + track.push([obj, name, orig]); + } + } + + module.exports = { + isObject: isObject, + isError: isError, + isErrorEvent: isErrorEvent, + isUndefined: isUndefined, + isFunction: isFunction, + isString: isString, + isEmptyObject: isEmptyObject, + supportsErrorEvent: supportsErrorEvent, + wrappedCallback: wrappedCallback, + each: each, + objectMerge: objectMerge, + truncate: truncate, + objectFrozen: objectFrozen, + hasKey: hasKey, + joinRegExp: joinRegExp, + urlencode: urlencode, + uuid4: uuid4, + htmlTreeAsString: htmlTreeAsString, + htmlElementAsString: htmlElementAsString, + isSameException: isSameException, + isSameStacktrace: isSameStacktrace, + parseUrl: parseUrl, + fill: fill + }; + }.call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' ? window : {} + )); }, {} ] diff --git a/dist/plugins/angular.min.js b/dist/plugins/angular.min.js index fa12e4c894bf..500f2c6d70a8 100644 --- a/dist/plugins/angular.min.js +++ b/dist/plugins/angular.min.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ !(function(a) { if ('object' == typeof exports && 'undefined' != typeof module) module.exports = a(); else if ('function' == typeof define && define.amd) define([], a); @@ -101,29 +101,231 @@ ], 2: [ function(a, b, c) { - function d(a) { - return 'object' == typeof a && null !== a; - } - function e(a) { - switch ({}.toString.call(a)) { - case '[object Error]': - return !0; - case '[object Exception]': - return !0; - case '[object DOMException]': - return !0; - default: - return a instanceof Error; + (function(a) { + function c(a) { + return 'object' == typeof a && null !== a; } - } - function f(a) { - function b(b, c) { - var d = a(b) || b; - return c ? c(d) || d : d; + function d(a) { + switch ({}.toString.call(a)) { + case '[object Error]': + return !0; + case '[object Exception]': + return !0; + case '[object DOMException]': + return !0; + default: + return a instanceof Error; + } } - return b; - } - b.exports = {isObject: d, isError: e, wrappedCallback: f}; + function e(a) { + return j() && '[object ErrorEvent]' === {}.toString.call(a); + } + function f(a) { + return void 0 === a; + } + function g(a) { + return 'function' == typeof a; + } + function h(a) { + return '[object String]' === Object.prototype.toString.call(a); + } + function i(a) { + for (var b in a) return !1; + return !0; + } + function j() { + try { + return new ErrorEvent(''), !0; + } catch (a) { + return !1; + } + } + function k(a) { + function b(b, c) { + var d = a(b) || b; + return c ? c(d) || d : d; + } + return b; + } + function l(a, b) { + var c, d; + if (f(a.length)) for (c in a) p(a, c) && b.call(null, c, a[c]); + else if ((d = a.length)) for (c = 0; c < d; c++) b.call(null, c, a[c]); + } + function m(a, b) { + return b + ? (l(b, function(b, c) { + a[b] = c; + }), + a) + : a; + } + function n(a) { + return !!Object.isFrozen && Object.isFrozen(a); + } + function o(a, b) { + return !b || a.length <= b ? a : a.substr(0, b) + '…'; + } + function p(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + function q(a) { + for (var b, c = [], d = 0, e = a.length; d < e; 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 r(a) { + var b = []; + return ( + l(a, function(a, c) { + b.push(encodeURIComponent(a) + '=' + encodeURIComponent(c)); + }), + b.join('&') + ); + } + function s(a) { + var b = a.match( + /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/ + ); + if (!b) return {}; + var c = b[6] || '', + d = b[8] || ''; + return {protocol: b[2], host: b[4], path: b[5], relative: b[5] + c + d}; + } + function t() { + var a = A.crypto || A.msCrypto; + if (!f(a) && a.getRandomValues) { + var b = new Uint16Array(8); + a.getRandomValues(b), + (b[3] = (4095 & b[3]) | 16384), + (b[4] = (16383 & b[4]) | 32768); + var c = function(a) { + for (var b = a.toString(16); b.length < 4; ) b = '0' + b; + return b; + }; + return ( + c(b[0]) + + c(b[1]) + + c(b[2]) + + c(b[3]) + + c(b[4]) + + c(b[5]) + + c(b[6]) + + c(b[7]) + ); + } + 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 u(a) { + for ( + var b, c = 5, d = 80, e = [], f = 0, g = 0, h = ' > ', i = h.length; + a && + f++ < c && + ((b = v(a)), + !('html' === b || (f > 1 && g + e.length * i + b.length >= d))); + + ) + e.push(b), (g += b.length), (a = a.parentNode); + return e.reverse().join(h); + } + function v(a) { + var b, + c, + d, + e, + f, + g = []; + if (!a || !a.tagName) return ''; + if ( + (g.push(a.tagName.toLowerCase()), + a.id && g.push('#' + a.id), + (b = a.className), + b && h(b)) + ) + for (c = b.split(/\s+/), f = 0; f < c.length; f++) g.push('.' + c[f]); + var i = ['type', 'name', 'title', 'alt']; + for (f = 0; f < i.length; f++) + (d = i[f]), + (e = a.getAttribute(d)), + e && g.push('[' + d + '="' + e + '"]'); + return g.join(''); + } + function w(a, b) { + return !!(!!a ^ !!b); + } + function x(a, b) { + return ( + !w(a, b) && + ((a = a.values[0]), + (b = b.values[0]), + a.type === b.type && a.value === b.value && y(a.stacktrace, b.stacktrace)) + ); + } + function y(a, b) { + if (w(a, b)) return !1; + var c = a.frames, + d = b.frames; + if (c.length !== d.length) return !1; + for (var e, f, g = 0; g < c.length; g++) + if ( + ((e = c[g]), + (f = d[g]), + e.filename !== f.filename || + e.lineno !== f.lineno || + e.colno !== f.colno || + e['function'] !== f['function']) + ) + return !1; + return !0; + } + function z(a, b, c, d) { + var e = a[b]; + (a[b] = c(e)), d && d.push([a, b, e]); + } + var A = + 'undefined' != typeof window + ? window + : 'undefined' != typeof a ? a : 'undefined' != typeof self ? self : {}; + b.exports = { + isObject: c, + isError: d, + isErrorEvent: e, + isUndefined: f, + isFunction: g, + isString: h, + isEmptyObject: i, + supportsErrorEvent: j, + wrappedCallback: k, + each: l, + objectMerge: m, + truncate: o, + objectFrozen: n, + hasKey: p, + joinRegExp: q, + urlencode: r, + uuid4: t, + htmlTreeAsString: u, + htmlElementAsString: v, + isSameException: x, + isSameStacktrace: y, + parseUrl: s, + fill: z + }; + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window ? window : {} + )); }, {} ] diff --git a/dist/plugins/angular.min.js.map b/dist/plugins/angular.min.js.map index e896910ad02b..62b72930670d 100644 --- a/dist/plugins/angular.min.js.map +++ b/dist/plugins/angular.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["angular.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Raven","Plugins","Angular","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","_dereq_","angularPlugin","angular","RavenProvider","$get","$window","ExceptionHandlerProvider","$provide","decorator","exceptionHandler","R","$delegate","ex","cause","captureException","extra","moduleName","provider","config","setDataCallback","wrappedCallback","data","_normalizeData","angularPattern","exception","values","matches","exec","value","type","message","angularDocs","substr","2","isObject","what","isError","toString","callback","dataCallback","original","normalizedData"],"mappings":"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","file":"angular.min.js"} \ No newline at end of file +{"version":3,"sources":["angular.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Raven","Plugins","Angular","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","_dereq_","angularPlugin","angular","RavenProvider","$get","$window","ExceptionHandlerProvider","$provide","decorator","exceptionHandler","R","$delegate","ex","cause","captureException","extra","moduleName","provider","config","setDataCallback","wrappedCallback","data","_normalizeData","angularPattern","exception","values","matches","exec","value","type","message","angularDocs","substr","2","isObject","what","isError","toString","isErrorEvent","supportsErrorEvent","isUndefined","isFunction","isString","Object","prototype","isEmptyObject","_","ErrorEvent","callback","dataCallback","original","normalizedData","each","obj","j","hasKey","objectMerge","obj1","obj2","key","objectFrozen","isFrozen","truncate","str","max","object","hasOwnProperty","joinRegExp","patterns","pattern","sources","len","push","replace","source","RegExp","join","urlencode","pairs","encodeURIComponent","parseUrl","url","match","query","fragment","protocol","host","path","relative","uuid4","crypto","_window","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","c","Math","random","htmlTreeAsString","elem","nextStr","MAX_TRAVERSE_HEIGHT","MAX_OUTPUT_LEN","out","height","separator","sepLength","htmlElementAsString","parentNode","reverse","className","classes","attr","tagName","toLowerCase","id","split","attrWhitelist","getAttribute","isOnlyOneTruthy","b","isSameException","ex1","ex2","isSameStacktrace","stacktrace","stack1","stack2","frames1","frames","frames2","filename","lineno","colno","fill","name","replacement","track","orig"],"mappings":"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","file":"angular.min.js"} \ No newline at end of file diff --git a/dist/plugins/console.js b/dist/plugins/console.js index 71a026fff7af..7bc2fad4ab2e 100644 --- a/dist/plugins/console.js +++ b/dist/plugins/console.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ /* * Includes TraceKit diff --git a/dist/plugins/console.min.js b/dist/plugins/console.min.js index 070f56f299dd..f97574dc475c 100644 --- a/dist/plugins/console.min.js +++ b/dist/plugins/console.min.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ !(function(a) { if ('object' == typeof exports && 'undefined' != typeof module) module.exports = a(); else if ('function' == typeof define && define.amd) define([], a); diff --git a/dist/plugins/ember.js b/dist/plugins/ember.js index e622450dfb97..7dfaa3d8d3b8 100644 --- a/dist/plugins/ember.js +++ b/dist/plugins/ember.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ /* * Includes TraceKit diff --git a/dist/plugins/ember.min.js b/dist/plugins/ember.min.js index aeffd468ee93..f1d001403f1c 100644 --- a/dist/plugins/ember.min.js +++ b/dist/plugins/ember.min.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ !(function(a) { if ('object' == typeof exports && 'undefined' != typeof module) module.exports = a(); else if ('function' == typeof define && define.amd) define([], a); diff --git a/dist/plugins/require.js b/dist/plugins/require.js index 3a3752bd7bce..b71e07cbbe2f 100644 --- a/dist/plugins/require.js +++ b/dist/plugins/require.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ /* * Includes TraceKit diff --git a/dist/plugins/require.min.js b/dist/plugins/require.min.js index e793bad6f570..5ce48ddaeb00 100644 --- a/dist/plugins/require.min.js +++ b/dist/plugins/require.min.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ !(function(a) { if ('object' == typeof exports && 'undefined' != typeof module) module.exports = a(); else if ('function' == typeof define && define.amd) define([], a); diff --git a/dist/plugins/vue.js b/dist/plugins/vue.js index 748fda4b0939..498d70dd9e11 100644 --- a/dist/plugins/vue.js +++ b/dist/plugins/vue.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ /* * Includes TraceKit diff --git a/dist/plugins/vue.min.js b/dist/plugins/vue.min.js index e6aaea0cca36..aa4ac36412f6 100644 --- a/dist/plugins/vue.min.js +++ b/dist/plugins/vue.min.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ !(function(a) { if ('object' == typeof exports && 'undefined' != typeof module) module.exports = a(); else if ('function' == typeof define && define.amd) define([], a); diff --git a/dist/raven.js b/dist/raven.js index 93954dba8f74..4230d09d719e 100644 --- a/dist/raven.js +++ b/dist/raven.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ /* * Includes TraceKit @@ -131,15 +131,34 @@ 3: [ function(_dereq_, module, exports) { (function(global) { - /*global XDomainRequest:false, __DEV__:false*/ + /*global XDomainRequest:false */ var TraceKit = _dereq_(6); var stringify = _dereq_(7); var RavenConfigError = _dereq_(1); - var utils = _dereq_(5); - var isError = utils.isError, - isObject = utils.isObject; + var utils = _dereq_(5); + var isError = utils.isError; + var isObject = utils.isObject; + var isObject = utils.isObject; + var isErrorEvent = utils.isErrorEvent; + var isUndefined = utils.isUndefined; + var isFunction = utils.isFunction; + var isString = utils.isString; + var isEmptyObject = utils.isEmptyObject; + var each = utils.each; + var objectMerge = utils.objectMerge; + var truncate = utils.truncate; + var objectFrozen = utils.objectFrozen; + var hasKey = utils.hasKey; + var joinRegExp = utils.joinRegExp; + var urlencode = utils.urlencode; + var uuid4 = utils.uuid4; + var htmlTreeAsString = utils.htmlTreeAsString; + var isSameException = utils.isSameException; + var isSameStacktrace = utils.isSameStacktrace; + var parseUrl = utils.parseUrl; + var fill = utils.fill; var wrapConsoleMethod = _dereq_(2).wrapMethod; @@ -233,7 +252,7 @@ // webpack (using a build step causes webpack #1617). Grunt verifies that // this value matches package.json during build. // See: https://github.com/getsentry/raven-js/issues/465 - VERSION: '3.18.1', + VERSION: '3.19.0', debug: false, @@ -520,8 +539,12 @@ * @return {Raven} */ captureException: function(ex, options) { - // If not an Error is passed through, recall as a message instead - if (!isError(ex)) { + // Cases for sending ex as a message, rather than an exception + var isNotError = !isError(ex); + var isNotErrorEvent = !isErrorEvent(ex); + var isErrorEventWithoutError = isErrorEvent(ex) && !ex.error; + + if ((isNotError && isNotErrorEvent) || isErrorEventWithoutError) { return this.captureMessage( ex, objectMerge( @@ -534,6 +557,9 @@ ); } + // Get actual Error from ErrorEvent + if (isErrorEvent(ex)) ex = ex.error; + // Store the raw exception object for potential debugging and introspection this._lastCapturedException = ex; @@ -581,21 +607,41 @@ options ); - if (this._globalOptions.stacktrace || (options && options.stacktrace)) { - var ex; - // Generate a "synthetic" stack trace from this point. - // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative - // of a bug with Raven.js. Sentry generates synthetic traces either by configuration, - // or if it catches a thrown object without a "stack" property. - try { - throw new Error(msg); - } catch (ex1) { - ex = ex1; - } + var ex; + // Generate a "synthetic" stack trace from this point. + // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative + // of a bug with Raven.js. Sentry generates synthetic traces either by configuration, + // or if it catches a thrown object without a "stack" property. + try { + throw new Error(msg); + } catch (ex1) { + ex = ex1; + } + + // null exception name so `Error` isn't prefixed to msg + ex.name = null; + var stack = TraceKit.computeStackTrace(ex); + + // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1] + var initialCall = stack.stack[1]; + + var fileurl = (initialCall && initialCall.url) || ''; - // null exception name so `Error` isn't prefixed to msg - ex.name = null; + if ( + !!this._globalOptions.ignoreUrls.test && + this._globalOptions.ignoreUrls.test(fileurl) + ) { + return; + } + + if ( + !!this._globalOptions.whitelistUrls.test && + !this._globalOptions.whitelistUrls.test(fileurl) + ) { + return; + } + if (this._globalOptions.stacktrace || (options && options.stacktrace)) { options = objectMerge( { // fingerprint on msg, not stack trace (legacy behavior, could be @@ -609,7 +655,6 @@ options ); - var stack = TraceKit.computeStackTrace(ex); var frames = this._prepareFrames(stack, options); data.stacktrace = { // Sentry expects frames oldest to newest @@ -1355,11 +1400,16 @@ if (typeof fetchInput === 'string') { url = fetchInput; - } else { + } else if ( + 'Request' in _window && + fetchInput instanceof _window.Request + ) { url = fetchInput.url; if (fetchInput.method) { method = fetchInput.method; } + } else { + url = '' + fetchInput; } if (args[1] && args[1].method) { @@ -1419,9 +1469,12 @@ // borrowed from: https://github.com/angular/angular.js/pull/13945/files var chrome = _window.chrome; var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime; - var hasPushState = - !isChromePackagedApp && _window.history && history.pushState; - if (autoBreadcrumbs.location && hasPushState) { + var hasPushAndReplaceState = + !isChromePackagedApp && + _window.history && + history.pushState && + history.replaceState; + if (autoBreadcrumbs.location && hasPushAndReplaceState) { // TODO: remove onpopstate handler on uninstall() var oldOnPopState = _window.onpopstate; _window.onpopstate = function() { @@ -1433,24 +1486,27 @@ } }; + var historyReplacementFunction = function(origHistFunction) { + // note history.pushState.length is 0; intentionally not declaring + // params to preserve 0 arity + return function(/* state, title, url */) { + var url = arguments.length > 2 ? arguments[2] : undefined; + + // url argument is optional + if (url) { + // coerce to string (this is what pushState does) + self._captureUrlChange(self._lastHref, url + ''); + } + + return origHistFunction.apply(this, arguments); + }; + }; + + fill(history, 'pushState', historyReplacementFunction, wrappedBuiltIns); fill( history, - 'pushState', - function(origPushState) { - // note history.pushState.length is 0; intentionally not declaring - // params to preserve 0 arity - return function(/* state, title, url */) { - var url = arguments.length > 2 ? arguments[2] : undefined; - - // url argument is optional - if (url) { - // coerce to string (this is what pushState does) - self._captureUrlChange(self._lastHref, url + ''); - } - - return origPushState.apply(this, arguments); - }; - }, + 'replaceState', + historyReplacementFunction, wrappedBuiltIns ); } @@ -1617,13 +1673,14 @@ frames, options ) { - var testString = (type || '') + ': ' + (message || ''); - + var prefixedMessage = (type ? type + ': ' : '') + (message || ''); if ( !!this._globalOptions.ignoreErrors.test && - this._globalOptions.ignoreErrors.test(testString) - ) + (this._globalOptions.ignoreErrors.test(message) || + this._globalOptions.ignoreErrors.test(prefixedMessage)) + ) { return; + } var stacktrace; @@ -1648,13 +1705,16 @@ if ( !!this._globalOptions.ignoreUrls.test && this._globalOptions.ignoreUrls.test(fileurl) - ) + ) { return; + } + if ( !!this._globalOptions.whitelistUrls.test && !this._globalOptions.whitelistUrls.test(fileurl) - ) + ) { return; + } var data = objectMerge( { @@ -2087,13 +2147,103 @@ } }; - /*------------------------------------------------ - * utils + // Deprecations + Raven.prototype.setUser = Raven.prototype.setUserContext; + Raven.prototype.setReleaseContext = Raven.prototype.setRelease; + + module.exports = Raven; + }.call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' ? window : {} + )); + }, + {'1': 1, '2': 2, '5': 5, '6': 6, '7': 7} + ], + 4: [ + function(_dereq_, module, exports) { + (function(global) { + /** + * Enforces a single instance of the Raven client, and the + * main entry point for Raven. If you are a consumer of the + * Raven library, you SHOULD load this file (vs raven.js). + **/ + + var RavenConstructor = _dereq_(3); + + // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) + var _window = + typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' ? self : {}; + var _Raven = _window.Raven; + + var Raven = new RavenConstructor(); + + /* + * Allow multiple versions of Raven to be installed. + * Strip Raven from the global context and returns the instance. * - * conditionally exported for test via Raven.utils - ================================================= + * @return {Raven} */ - var objectPrototype = Object.prototype; + Raven.noConflict = function() { + _window.Raven = _Raven; + return Raven; + }; + + Raven.afterLoad(); + + module.exports = Raven; + }.call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' ? window : {} + )); + }, + {'3': 3} + ], + 5: [ + function(_dereq_, module, exports) { + (function(global) { + var _window = + typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' ? self : {}; + + function isObject(what) { + return typeof what === 'object' && what !== null; + } + + // Yanked from https://git.io/vS8DV re-used under CC0 + // with some tiny modifications + function isError(value) { + switch ({}.toString.call(value)) { + case '[object Error]': + return true; + case '[object Exception]': + return true; + case '[object DOMException]': + return true; + default: + return value instanceof Error; + } + } + + function isErrorEvent(value) { + return ( + supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]' + ); + } function isUndefined(what) { return what === void 0; @@ -2104,7 +2254,7 @@ } function isString(what) { - return objectPrototype.toString.call(what) === '[object String]'; + return Object.prototype.toString.call(what) === '[object String]'; } function isEmptyObject(what) { @@ -2112,6 +2262,27 @@ return true; } + function supportsErrorEvent() { + try { + new ErrorEvent(''); // eslint-disable-line no-new + return true; + } catch (e) { + return false; + } + } + + function wrappedCallback(callback) { + function dataCallback(data, original) { + var normalizedData = callback(data) || data; + if (original) { + return original(normalizedData) || normalizedData; + } + return normalizedData; + } + + return dataCallback; + } + function each(obj, callback) { var i, j; @@ -2168,7 +2339,7 @@ * @param {string} key to check */ function hasKey(object, key) { - return objectPrototype.hasOwnProperty.call(object, key); + return Object.prototype.hasOwnProperty.call(object, key); } function joinRegExp(patterns) { @@ -2409,80 +2580,31 @@ } } - if (typeof __DEV__ !== 'undefined' && __DEV__) { - Raven.utils = { - isUndefined: isUndefined, - isFunction: isFunction, - isString: isString, - isObject: isObject, - isEmptyObject: isEmptyObject, - isError: isError, - each: each, - objectMerge: objectMerge, - truncate: truncate, - hasKey: hasKey, - joinRegExp: joinRegExp, - urlencode: urlencode, - uuid4: uuid4, - htmlTreeAsString: htmlTreeAsString, - htmlElementAsString: htmlElementAsString, - parseUrl: parseUrl, - fill: fill - }; - } - - // Deprecations - Raven.prototype.setUser = Raven.prototype.setUserContext; - Raven.prototype.setReleaseContext = Raven.prototype.setRelease; - - module.exports = Raven; - }.call( - this, - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' ? window : {} - )); - }, - {'1': 1, '2': 2, '5': 5, '6': 6, '7': 7} - ], - 4: [ - function(_dereq_, module, exports) { - (function(global) { - /** - * Enforces a single instance of the Raven client, and the - * main entry point for Raven. If you are a consumer of the - * Raven library, you SHOULD load this file (vs raven.js). - **/ - - var RavenConstructor = _dereq_(3); - - // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785) - var _window = - typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' ? self : {}; - var _Raven = _window.Raven; - - var Raven = new RavenConstructor(); - - /* - * Allow multiple versions of Raven to be installed. - * Strip Raven from the global context and returns the instance. - * - * @return {Raven} - */ - Raven.noConflict = function() { - _window.Raven = _Raven; - return Raven; + module.exports = { + isObject: isObject, + isError: isError, + isErrorEvent: isErrorEvent, + isUndefined: isUndefined, + isFunction: isFunction, + isString: isString, + isEmptyObject: isEmptyObject, + supportsErrorEvent: supportsErrorEvent, + wrappedCallback: wrappedCallback, + each: each, + objectMerge: objectMerge, + truncate: truncate, + objectFrozen: objectFrozen, + hasKey: hasKey, + joinRegExp: joinRegExp, + urlencode: urlencode, + uuid4: uuid4, + htmlTreeAsString: htmlTreeAsString, + htmlElementAsString: htmlElementAsString, + isSameException: isSameException, + isSameStacktrace: isSameStacktrace, + parseUrl: parseUrl, + fill: fill }; - - Raven.afterLoad(); - - module.exports = Raven; }.call( this, typeof global !== 'undefined' @@ -2492,47 +2614,6 @@ : typeof window !== 'undefined' ? window : {} )); }, - {'3': 3} - ], - 5: [ - function(_dereq_, module, exports) { - function isObject(what) { - return typeof what === 'object' && what !== null; - } - - // Yanked from https://git.io/vS8DV re-used under CC0 - // with some tiny modifications - function isError(value) { - switch ({}.toString.call(value)) { - case '[object Error]': - return true; - case '[object Exception]': - return true; - case '[object DOMException]': - return true; - default: - return value instanceof Error; - } - } - - function wrappedCallback(callback) { - function dataCallback(data, original) { - var normalizedData = callback(data) || data; - if (original) { - return original(normalizedData) || normalizedData; - } - return normalizedData; - } - - return dataCallback; - } - - module.exports = { - isObject: isObject, - isError: isError, - wrappedCallback: wrappedCallback - }; - }, {} ], 6: [ @@ -2913,7 +2994,7 @@ function computeStackTraceFromStackProp(ex) { if (typeof ex.stack === 'undefined' || !ex.stack) return; - var chrome = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, + var chrome = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, // Used to additionally parse URL/line/column from eval frames diff --git a/dist/raven.min.js b/dist/raven.min.js index a065c2341b39..9c7027488a9d 100644 --- a/dist/raven.min.js +++ b/dist/raven.min.js @@ -1,4 +1,4 @@ -/*! Raven.js 3.18.1 (2dca364) | github.com/getsentry/raven-js */ +/*! Raven.js 3.19.0 (98bda52) | github.com/getsentry/raven-js */ !(function(a) { if ('object' == typeof exports && 'undefined' != typeof module) module.exports = a(); else if ('function' == typeof define && define.amd) define([], a); @@ -87,7 +87,7 @@ return +new Date(); } function e(a, b) { - return h(b) + return o(b) ? function(c) { return b(c, a); } @@ -95,8 +95,8 @@ } function f() { (this.a = !('object' != typeof JSON || !JSON.stringify)), - (this.b = !g(J)), - (this.c = !g(K)), + (this.b = !n(I)), + (this.c = !n(J)), (this.d = null), (this.e = null), (this.f = null), @@ -121,192 +121,56 @@ (this.l = 0), (this.m = !1), (this.n = Error.stackTraceLimit), - (this.o = I.console || {}), + (this.o = H.console || {}), (this.p = {}), (this.q = []), (this.r = d()), (this.s = []), (this.t = []), (this.u = null), - (this.v = I.location), + (this.v = H.location), (this.w = this.v && this.v.href), this.x(); for (var a in this.o) this.p[a] = this.o[a]; } - function g(a) { - return void 0 === a; - } - function h(a) { - return 'function' == typeof a; - } - function i(a) { - return '[object String]' === L.toString.call(a); - } - function j(a) { - for (var b in a) return !1; - return !0; - } - function k(a, b) { - var c, d; - if (g(a.length)) for (c in a) o(a, c) && b.call(null, c, a[c]); - else if ((d = a.length)) for (c = 0; c < d; c++) b.call(null, c, a[c]); - } - function l(a, b) { - return b - ? (k(b, function(b, c) { - a[b] = c; - }), - a) - : a; - } - function m(a) { - return !!Object.isFrozen && Object.isFrozen(a); - } - function n(a, b) { - return !b || a.length <= b ? a : a.substr(0, b) + '…'; - } - function o(a, b) { - return L.hasOwnProperty.call(a, b); - } - function p(a) { - for (var b, c = [], d = 0, e = a.length; d < e; d++) - (b = a[d]), - i(b) - ? c.push(b.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1')) - : b && b.source && c.push(b.source); - return new RegExp(c.join('|'), 'i'); - } - function q(a) { - var b = []; - return ( - k(a, function(a, c) { - b.push(encodeURIComponent(a) + '=' + encodeURIComponent(c)); - }), - b.join('&') - ); - } - function r(a) { - var b = a.match( - /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/ - ); - if (!b) return {}; - var c = b[6] || '', - d = b[8] || ''; - return {protocol: b[2], host: b[4], path: b[5], relative: b[5] + c + d}; - } - function s() { - var a = I.crypto || I.msCrypto; - if (!g(a) && a.getRandomValues) { - var b = new Uint16Array(8); - a.getRandomValues(b), - (b[3] = (4095 & b[3]) | 16384), - (b[4] = (16383 & b[4]) | 32768); - var c = function(a) { - for (var b = a.toString(16); b.length < 4; ) b = '0' + b; - return b; - }; - return ( - c(b[0]) + - c(b[1]) + - c(b[2]) + - c(b[3]) + - c(b[4]) + - c(b[5]) + - c(b[6]) + - c(b[7]) - ); - } - 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 t(a) { - for ( - var b, c = 5, d = 80, e = [], f = 0, g = 0, h = ' > ', i = h.length; - a && - f++ < c && - ((b = u(a)), - !('html' === b || (f > 1 && g + e.length * i + b.length >= d))); - - ) - e.push(b), (g += b.length), (a = a.parentNode); - return e.reverse().join(h); - } - function u(a) { - var b, - c, - d, - e, - f, - g = []; - if (!a || !a.tagName) return ''; - if ( - (g.push(a.tagName.toLowerCase()), - a.id && g.push('#' + a.id), - (b = a.className), - b && i(b)) - ) - for (c = b.split(/\s+/), f = 0; f < c.length; f++) g.push('.' + c[f]); - var h = ['type', 'name', 'title', 'alt']; - for (f = 0; f < h.length; f++) - (d = h[f]), - (e = a.getAttribute(d)), - e && g.push('[' + d + '="' + e + '"]'); - return g.join(''); - } - function v(a, b) { - return !!(!!a ^ !!b); - } - function w(a, b) { - return ( - !v(a, b) && - ((a = a.values[0]), - (b = b.values[0]), - a.type === b.type && a.value === b.value && x(a.stacktrace, b.stacktrace)) - ); - } - function x(a, b) { - if (v(a, b)) return !1; - var c = a.frames, - d = b.frames; - if (c.length !== d.length) return !1; - for (var e, f, g = 0; g < c.length; g++) - if ( - ((e = c[g]), - (f = d[g]), - e.filename !== f.filename || - e.lineno !== f.lineno || - e.colno !== f.colno || - e['function'] !== f['function']) - ) - return !1; - return !0; - } - function y(a, b, c, d) { - var e = a[b]; - (a[b] = c(e)), d && d.push([a, b, e]); - } - var z = a(6), - A = a(7), - B = a(1), - C = a(5), - D = C.isError, - E = C.isObject, - F = a(2).wrapMethod, - G = 'source protocol user pass host port path'.split(' '), - H = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/, - I = + var g = a(6), + h = a(7), + i = a(1), + j = a(5), + k = j.isError, + l = j.isObject, + l = j.isObject, + m = j.isErrorEvent, + n = j.isUndefined, + o = j.isFunction, + p = j.isString, + q = j.isEmptyObject, + r = j.each, + s = j.objectMerge, + t = j.truncate, + u = j.objectFrozen, + v = j.hasKey, + w = j.joinRegExp, + x = j.urlencode, + y = j.uuid4, + z = j.htmlTreeAsString, + A = j.isSameException, + B = j.isSameStacktrace, + C = j.parseUrl, + D = j.fill, + E = a(2).wrapMethod, + F = 'source protocol user pass host port path'.split(' '), + G = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/, + H = 'undefined' != typeof window ? window : 'undefined' != typeof c ? c : 'undefined' != typeof self ? self : {}, - J = I.document, - K = I.navigator; - f.prototype = { - VERSION: '3.18.1', + I = H.document, + J = H.navigator; + (f.prototype = { + VERSION: '3.19.0', debug: !1, - TraceKit: z, + TraceKit: g, config: function(a, b) { var c = this; if (c.g) @@ -314,7 +178,7 @@ if (!a) return c; var d = c.k; b && - k(b, function(a, b) { + r(b, function(a, b) { 'tags' === a || 'extra' === a || 'user' === a ? (c.j[a] = b) : (d[a] = b); @@ -322,10 +186,10 @@ c.setDSN(a), d.ignoreErrors.push(/^Script error\.?$/), d.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/), - (d.ignoreErrors = p(d.ignoreErrors)), - (d.ignoreUrls = !!d.ignoreUrls.length && p(d.ignoreUrls)), - (d.whitelistUrls = !!d.whitelistUrls.length && p(d.whitelistUrls)), - (d.includePaths = p(d.includePaths)), + (d.ignoreErrors = w(d.ignoreErrors)), + (d.ignoreUrls = !!d.ignoreUrls.length && w(d.ignoreUrls)), + (d.whitelistUrls = !!d.whitelistUrls.length && w(d.whitelistUrls)), + (d.includePaths = w(d.includePaths)), (d.maxBreadcrumbs = Math.max( 0, Math.min(d.maxBreadcrumbs || 100, 100) @@ -333,17 +197,17 @@ var e = {xhr: !0, console: !0, dom: !0, location: !0}, f = d.autoBreadcrumbs; '[object Object]' === {}.toString.call(f) - ? (f = l(e, f)) + ? (f = s(e, f)) : f !== !1 && (f = e), (d.autoBreadcrumbs = f); - var g = {tryCatch: !0}, - h = d.instrument; + var h = {tryCatch: !0}, + i = d.instrument; return ( - '[object Object]' === {}.toString.call(h) - ? (h = l(g, h)) - : h !== !1 && (h = g), - (d.instrument = h), - (z.collectWindowErrors = !!d.collectWindowErrors), + '[object Object]' === {}.toString.call(i) + ? (i = s(h, i)) + : i !== !1 && (i = h), + (d.instrument = i), + (g.collectWindowErrors = !!d.collectWindowErrors), c ); }, @@ -352,7 +216,7 @@ return ( a.isSetup() && !a.m && - (z.report.subscribe(function() { + (g.report.subscribe(function() { a.z.apply(a, arguments); }), a.k.instrument && a.k.instrument.tryCatch && a.A(), @@ -378,7 +242,7 @@ }, context: function(a, b, c) { return ( - h(a) && ((c = b || []), (b = a), (a = void 0)), + o(a) && ((c = b || []), (b = a), (a = void 0)), this.wrap(a, b).apply(this, c) ); }, @@ -387,29 +251,29 @@ var d = [], f = arguments.length, g = !a || (a && a.deep !== !1); - for (c && h(c) && c.apply(this, arguments); f--; ) + for (c && o(c) && c.apply(this, arguments); f--; ) d[f] = g ? e.wrap(a, arguments[f]) : arguments[f]; try { return b.apply(this, d); - } catch (i) { - throw (e.I(), e.captureException(i, a), i); + } catch (h) { + throw (e.I(), e.captureException(h, a), h); } } var e = this; - if (g(b) && !h(a)) return a; - if ((h(a) && ((b = a), (a = void 0)), !h(b))) return b; + if (n(b) && !o(a)) return a; + if ((o(a) && ((b = a), (a = void 0)), !o(b))) return b; try { if (b.J) return b; if (b.K) return b.K; } catch (f) { return b; } - for (var i in b) o(b, i) && (d[i] = b[i]); + for (var g in b) v(b, g) && (d[g] = b[g]); return (d.prototype = b.prototype), (b.K = d), (d.J = !0), (d.L = b), d; }, uninstall: function() { return ( - z.report.uninstall(), + g.report.uninstall(), this.M(), (Error.stackTraceLimit = this.n), (this.m = !1), @@ -417,48 +281,58 @@ ); }, captureException: function(a, b) { - if (!D(a)) + var c = !k(a), + d = !m(a), + e = m(a) && !a.error; + if ((c && d) || e) return this.captureMessage( a, - l({trimHeadFrames: 1, stacktrace: !0}, b) + s({trimHeadFrames: 1, stacktrace: !0}, b) ); - this.d = a; + m(a) && (a = a.error), (this.d = a); try { - var c = z.computeStackTrace(a); - this.N(c, b); - } catch (d) { - if (a !== d) throw d; + var f = g.computeStackTrace(a); + this.N(f, b); + } catch (h) { + if (a !== h) throw h; } return this; }, captureMessage: function(a, b) { if (!this.k.ignoreErrors.test || !this.k.ignoreErrors.test(a)) { b = b || {}; - var c = l({message: a + ''}, b); - if (this.k.stacktrace || (b && b.stacktrace)) { - var d; - try { - throw new Error(a); - } catch (e) { - d = e; - } - (d.name = null), - (b = l( + var c, + d = s({message: a + ''}, b); + try { + throw new Error(a); + } catch (e) { + c = e; + } + c.name = null; + var f = g.computeStackTrace(c), + h = f.stack[1], + i = (h && h.url) || ''; + if ( + (!this.k.ignoreUrls.test || !this.k.ignoreUrls.test(i)) && + (!this.k.whitelistUrls.test || this.k.whitelistUrls.test(i)) + ) { + if (this.k.stacktrace || (b && b.stacktrace)) { + b = s( {fingerprint: a, trimHeadFrames: (b.trimHeadFrames || 0) + 1}, b - )); - var f = z.computeStackTrace(d), - g = this.O(f, b); - c.stacktrace = {frames: g.reverse()}; + ); + var j = this.O(f, b); + d.stacktrace = {frames: j.reverse()}; + } + return this.P(d), this; } - return this.P(c), this; } }, captureBreadcrumb: function(a) { - var b = l({timestamp: d() / 1e3}, a); - if (h(this.k.breadcrumbCallback)) { + var b = s({timestamp: d() / 1e3}, a); + if (o(this.k.breadcrumbCallback)) { var c = this.k.breadcrumbCallback(b); - if (E(c) && !j(c)) b = c; + if (l(c) && !q(c)) b = c; else if (c === !1) return this; } return ( @@ -484,7 +358,7 @@ return (this.j = {}), this; }, getContext: function() { - return JSON.parse(A(this.j)); + return JSON.parse(h(this.j)); }, setEnvironment: function(a) { return (this.k.environment = a), this; @@ -524,16 +398,16 @@ ); }, afterLoad: function() { - var a = I.RavenConfig; + var a = H.RavenConfig; a && this.config(a.dsn, a.config).install(); }, showReportDialog: function(a) { - if (J) { + if (I) { a = a || {}; var b = a.eventId || this.lastEventId(); - if (!b) throw new B('Missing eventId'); + if (!b) throw new i('Missing eventId'); var c = a.dsn || this.E; - if (!c) throw new B('Missing DSN'); + if (!c) throw new i('Missing DSN'); var d = encodeURIComponent, e = ''; (e += '?eventId=' + d(b)), (e += '&dsn=' + d(c)); @@ -542,10 +416,10 @@ (f.name && (e += '&name=' + d(f.name)), f.email && (e += '&email=' + d(f.email))); var g = this.G(this.D(c)), - h = J.createElement('script'); + h = I.createElement('script'); (h.async = !0), (h.src = g + '/api/embed/error-page/' + e), - (J.head || J.body).appendChild(h); + (I.head || I.body).appendChild(h); } }, I: function() { @@ -560,14 +434,14 @@ if (this.b) { (b = b || {}), (a = 'raven' + a.substr(0, 1).toUpperCase() + a.substr(1)), - J.createEvent - ? ((c = J.createEvent('HTMLEvents')), c.initEvent(a, !0, !0)) - : ((c = J.createEventObject()), (c.eventType = a)); - for (d in b) o(b, d) && (c[d] = b[d]); - if (J.createEvent) J.dispatchEvent(c); + I.createEvent + ? ((c = I.createEvent('HTMLEvents')), c.initEvent(a, !0, !0)) + : ((c = I.createEventObject()), (c.eventType = a)); + for (d in b) v(b, d) && (c[d] = b[d]); + if (I.createEvent) I.dispatchEvent(c); else try { - J.fireEvent('on' + c.eventType.toLowerCase(), c); + I.fireEvent('on' + c.eventType.toLowerCase(), c); } catch (e) {} } }, @@ -578,7 +452,7 @@ b.u = c; var d; try { - d = t(c.target); + d = z(c.target); } catch (e) { d = ''; } @@ -608,9 +482,9 @@ }; }, V: function(a, b) { - var c = r(this.v.href), - d = r(b), - e = r(a); + var c = C(this.v.href), + d = C(b), + e = C(a); (this.w = b), c.protocol === d.protocol && c.host === d.host && (b = d.relative), c.protocol === e.protocol && c.host === e.host && (a = e.relative), @@ -626,17 +500,17 @@ e[f] = arguments[f]; var g = e[0]; return ( - h(g) && (e[0] = c.wrap(g)), + o(g) && (e[0] = c.wrap(g)), a.apply ? a.apply(this, e) : a(e[0], e[1]) ); }; } function b(a) { - var b = I[a] && I[a].prototype; + var b = H[a] && H[a].prototype; b && b.hasOwnProperty && b.hasOwnProperty('addEventListener') && - (y( + (D( b, 'addEventListener', function(b) { @@ -670,7 +544,7 @@ }, d ), - y( + D( b, 'removeEventListener', function(a) { @@ -687,11 +561,11 @@ var c = this, d = c.s, e = this.k.autoBreadcrumbs; - y(I, 'setTimeout', a, d), - y(I, 'setInterval', a, d), - I.requestAnimationFrame && - y( - I, + D(H, 'setTimeout', a, d), + D(H, 'setInterval', a, d), + H.requestAnimationFrame && + D( + H, 'requestAnimationFrame', function(a) { return function(b) { @@ -741,23 +615,23 @@ B: function() { function a(a, c) { a in c && - h(c[a]) && - y(c, a, function(a) { + o(c[a]) && + D(c, a, function(a) { return b.wrap(a); }); } var b = this, c = this.k.autoBreadcrumbs, d = b.s; - if (c.xhr && 'XMLHttpRequest' in I) { + if (c.xhr && 'XMLHttpRequest' in H) { var e = XMLHttpRequest.prototype; - y( + D( e, 'open', function(a) { return function(c, d) { return ( - i(d) && + p(d) && d.indexOf(b.h) === -1 && (this.W = {method: c, url: d, status_code: null}), a.apply(this, arguments) @@ -766,7 +640,7 @@ }, d ), - y( + D( e, 'send', function(c) { @@ -784,14 +658,14 @@ } } for ( - var f = this, g = ['onload', 'onerror', 'onprogress'], i = 0; - i < g.length; - i++ + var f = this, g = ['onload', 'onerror', 'onprogress'], h = 0; + h < g.length; + h++ ) - a(g[i], f); + a(g[h], f); return ( - 'onreadystatechange' in f && h(f.onreadystatechange) - ? y(f, 'onreadystatechange', function(a) { + 'onreadystatechange' in f && o(f.onreadystatechange) + ? D(f, 'onreadystatechange', function(a) { return b.wrap(a, void 0, e); }) : (f.onreadystatechange = e), @@ -803,9 +677,9 @@ ); } c.xhr && - 'fetch' in I && - y( - I, + 'fetch' in H && + D( + H, 'fetch', function(a) { return function(c, d) { @@ -820,7 +694,9 @@ i = 'GET'; 'string' == typeof h ? (g = h) - : ((g = h.url), h.method && (i = h.method)), + : 'Request' in H && h instanceof H.Request + ? ((g = h.url), h.method && (i = h.method)) + : (g = '' + h), e[1] && e[1].method && (i = e[1].method); var j = {method: i, url: g, status_code: null}; return ( @@ -835,42 +711,38 @@ ), c.dom && this.b && - (J.addEventListener - ? (J.addEventListener('click', b.S('click'), !1), - J.addEventListener('keypress', b.U(), !1)) - : (J.attachEvent('onclick', b.S('click')), - J.attachEvent('onkeypress', b.U()))); - var f = I.chrome, + (I.addEventListener + ? (I.addEventListener('click', b.S('click'), !1), + I.addEventListener('keypress', b.U(), !1)) + : (I.attachEvent('onclick', b.S('click')), + I.attachEvent('onkeypress', b.U()))); + var f = H.chrome, g = f && f.app && f.app.runtime, - j = !g && I.history && history.pushState; - if (c.location && j) { - var l = I.onpopstate; - (I.onpopstate = function() { + h = !g && H.history && history.pushState && history.replaceState; + if (c.location && h) { + var i = H.onpopstate; + H.onpopstate = function() { var a = b.v.href; - if ((b.V(b.w, a), l)) return l.apply(this, arguments); - }), - y( - history, - 'pushState', - function(a) { - return function() { - var c = arguments.length > 2 ? arguments[2] : void 0; - return c && b.V(b.w, c + ''), a.apply(this, arguments); - }; - }, - d - ); + if ((b.V(b.w, a), i)) return i.apply(this, arguments); + }; + var j = function(a) { + return function() { + var c = arguments.length > 2 ? arguments[2] : void 0; + return c && b.V(b.w, c + ''), a.apply(this, arguments); + }; + }; + D(history, 'pushState', j, d), D(history, 'replaceState', j, d); } - if (c.console && 'console' in I && console.log) { - var m = function(a, c) { + if (c.console && 'console' in H && console.log) { + var k = function(a, c) { b.captureBreadcrumb({ message: a, level: c.level, category: 'console' }); }; - k(['debug', 'info', 'warn', 'error', 'log'], function(a, b) { - F(console, b, m); + r(['debug', 'info', 'warn', 'error', 'log'], function(a, b) { + E(console, b, k); }); } }, @@ -885,23 +757,23 @@ }, C: function() { var a = this; - k(this.q, function(b, c) { + r(this.q, function(b, c) { var d = c[0], e = c[1]; d.apply(a, [a].concat(e)); }); }, D: function(a) { - var b = H.exec(a), + var b = G.exec(a), c = {}, d = 7; try { - for (; d--; ) c[G[d]] = b[d] || ''; + for (; d--; ) c[F[d]] = b[d] || ''; } catch (e) { - throw new B('Invalid DSN: ' + a); + throw new i('Invalid DSN: ' + a); } if (c.pass && !this.k.allowSecretKey) - throw new B( + throw new i( 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key' ); return c; @@ -924,7 +796,7 @@ if ( a.stack && a.stack.length && - (k(a.stack, function(b, e) { + (r(a.stack, function(b, e) { var f = c.Y(e, a.url); f && d.push(f); }), @@ -952,8 +824,11 @@ ); }, X: function(a, b, c, d, e, f) { - var g = (a || '') + ': ' + (b || ''); - if (!this.k.ignoreErrors.test || !this.k.ignoreErrors.test(g)) { + var g = (a ? a + ': ' : '') + (b || ''); + if ( + !this.k.ignoreErrors.test || + (!this.k.ignoreErrors.test(b) && !this.k.ignoreErrors.test(g)) + ) { var h; if ( (e && e.length @@ -962,7 +837,7 @@ (!this.k.ignoreUrls.test || !this.k.ignoreUrls.test(c)) && (!this.k.whitelistUrls.test || this.k.whitelistUrls.test(c))) ) { - var i = l( + var i = s( { exception: {values: [{type: a, value: b, stacktrace: h}]}, culprit: c @@ -975,15 +850,15 @@ }, Z: function(a) { var b = this.k.maxMessageLength; - if ((a.message && (a.message = n(a.message, b)), a.exception)) { + if ((a.message && (a.message = t(a.message, b)), a.exception)) { var c = a.exception.values[0]; - c.value = n(c.value, b); + c.value = t(c.value, b); } var d = a.request; return ( d && - (d.url && (d.url = n(d.url, this.k.maxUrlLength)), - d.Referer && (d.Referer = n(d.Referer, this.k.maxUrlLength))), + (d.url && (d.url = t(d.url, this.k.maxUrlLength)), + d.Referer && (d.Referer = t(d.Referer, this.k.maxUrlLength))), a.breadcrumbs && a.breadcrumbs.values && this.$(a.breadcrumbs), a ); @@ -996,14 +871,14 @@ ) if ( ((c = a.values[f]), - c.hasOwnProperty('data') && E(c.data) && !m(c.data)) + c.hasOwnProperty('data') && l(c.data) && !u(c.data)) ) { - d = l({}, c.data); + d = s({}, c.data); for (var g = 0; g < e.length; ++g) (b = e[g]), d.hasOwnProperty(b) && d[b] && - (d[b] = n(d[b], this.k.maxUrlLength)); + (d[b] = t(d[b], this.k.maxUrlLength)); a.values[f].data = d; } }, @@ -1012,13 +887,13 @@ var a = {}; return ( this.c && - K.userAgent && + J.userAgent && (a.headers = {'User-Agent': navigator.userAgent}), this.b && - (J.location && J.location.href && (a.url = J.location.href), - J.referrer && + (I.location && I.location.href && (a.url = I.location.href), + I.referrer && (a.headers || (a.headers = {}), - (a.headers.Referer = J.referrer))), + (a.headers.Referer = I.referrer))), a ); } @@ -1034,8 +909,8 @@ return ( !(!b || a.message !== b.message || a.culprit !== b.culprit) && (a.stacktrace || b.stacktrace - ? x(a.stacktrace, b.stacktrace) - : (!a.exception && !b.exception) || w(a.exception, b.exception)) + ? B(a.stacktrace, b.stacktrace) + : (!a.exception && !b.exception) || A(a.exception, b.exception)) ); }, ea: function(a) { @@ -1058,20 +933,20 @@ if ( (e && (c.request = e), a.trimHeadFrames && delete a.trimHeadFrames, - (a = l(c, a)), - (a.tags = l(l({}, this.j.tags), a.tags)), - (a.extra = l(l({}, this.j.extra), a.extra)), + (a = s(c, a)), + (a.tags = s(s({}, this.j.tags), a.tags)), + (a.extra = s(s({}, this.j.extra), a.extra)), (a.extra['session:duration'] = d() - this.r), this.t && this.t.length > 0 && (a.breadcrumbs = {values: [].slice.call(this.t, 0)}), - j(a.tags) && delete a.tags, + q(a.tags) && delete a.tags, this.j.user && (a.user = this.j.user), b.environment && (a.environment = b.environment), b.release && (a.release = b.release), b.serverName && (a.server_name = b.serverName), - h(b.dataCallback) && (a = b.dataCallback(a) || a), - a && !j(a) && (!h(b.shouldSendCallback) || b.shouldSendCallback(a))) + o(b.dataCallback) && (a = b.dataCallback(a) || a), + a && !q(a) && (!o(b.shouldSendCallback) || b.shouldSendCallback(a))) ) return this.ca() ? void this.y('warn', 'Raven dropped error due to backoff: ', a) @@ -1080,7 +955,7 @@ : this.fa(a)); }, ga: function() { - return s(); + return y(); }, fa: function(a, b) { var c = this, @@ -1128,7 +1003,7 @@ } }, ha: function(a) { - var b = I.XMLHttpRequest && new I.XMLHttpRequest(); + var b = H.XMLHttpRequest && new H.XMLHttpRequest(); if (b) { var c = 'withCredentials' in b || 'undefined' != typeof XDomainRequest; if (c) { @@ -1150,8 +1025,8 @@ var c = new Error('Sentry error code: XDomainRequest'); (c.request = b), a.onError(c); })), - b.open('POST', d + '?' + q(a.auth)), - b.send(A(a.data)); + b.open('POST', d + '?' + x(a.auth)), + b.send(h(a.data)); } } }, @@ -1165,11 +1040,10 @@ ); }, Q: function(a, b) { - g(b) ? delete this.j[a] : (this.j[a] = l(this.j[a] || {}, b)); + n(b) ? delete this.j[a] : (this.j[a] = s(this.j[a] || {}, b)); } - }; - var L = Object.prototype; - (f.prototype.setUser = f.prototype.setUserContext), + }), + (f.prototype.setUser = f.prototype.setUserContext), (f.prototype.setReleaseContext = f.prototype.setRelease), (b.exports = f); }.call( @@ -1211,29 +1085,231 @@ ], 5: [ function(a, b, c) { - function d(a) { - return 'object' == typeof a && null !== a; - } - function e(a) { - switch ({}.toString.call(a)) { - case '[object Error]': - return !0; - case '[object Exception]': - return !0; - case '[object DOMException]': - return !0; - default: - return a instanceof Error; + (function(a) { + function c(a) { + return 'object' == typeof a && null !== a; } - } - function f(a) { - function b(b, c) { - var d = a(b) || b; - return c ? c(d) || d : d; + function d(a) { + switch ({}.toString.call(a)) { + case '[object Error]': + return !0; + case '[object Exception]': + return !0; + case '[object DOMException]': + return !0; + default: + return a instanceof Error; + } } - return b; - } - b.exports = {isObject: d, isError: e, wrappedCallback: f}; + function e(a) { + return j() && '[object ErrorEvent]' === {}.toString.call(a); + } + function f(a) { + return void 0 === a; + } + function g(a) { + return 'function' == typeof a; + } + function h(a) { + return '[object String]' === Object.prototype.toString.call(a); + } + function i(a) { + for (var b in a) return !1; + return !0; + } + function j() { + try { + return new ErrorEvent(''), !0; + } catch (a) { + return !1; + } + } + function k(a) { + function b(b, c) { + var d = a(b) || b; + return c ? c(d) || d : d; + } + return b; + } + function l(a, b) { + var c, d; + if (f(a.length)) for (c in a) p(a, c) && b.call(null, c, a[c]); + else if ((d = a.length)) for (c = 0; c < d; c++) b.call(null, c, a[c]); + } + function m(a, b) { + return b + ? (l(b, function(b, c) { + a[b] = c; + }), + a) + : a; + } + function n(a) { + return !!Object.isFrozen && Object.isFrozen(a); + } + function o(a, b) { + return !b || a.length <= b ? a : a.substr(0, b) + '…'; + } + function p(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + function q(a) { + for (var b, c = [], d = 0, e = a.length; d < e; 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 r(a) { + var b = []; + return ( + l(a, function(a, c) { + b.push(encodeURIComponent(a) + '=' + encodeURIComponent(c)); + }), + b.join('&') + ); + } + function s(a) { + var b = a.match( + /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/ + ); + if (!b) return {}; + var c = b[6] || '', + d = b[8] || ''; + return {protocol: b[2], host: b[4], path: b[5], relative: b[5] + c + d}; + } + function t() { + var a = A.crypto || A.msCrypto; + if (!f(a) && a.getRandomValues) { + var b = new Uint16Array(8); + a.getRandomValues(b), + (b[3] = (4095 & b[3]) | 16384), + (b[4] = (16383 & b[4]) | 32768); + var c = function(a) { + for (var b = a.toString(16); b.length < 4; ) b = '0' + b; + return b; + }; + return ( + c(b[0]) + + c(b[1]) + + c(b[2]) + + c(b[3]) + + c(b[4]) + + c(b[5]) + + c(b[6]) + + c(b[7]) + ); + } + 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 u(a) { + for ( + var b, c = 5, d = 80, e = [], f = 0, g = 0, h = ' > ', i = h.length; + a && + f++ < c && + ((b = v(a)), + !('html' === b || (f > 1 && g + e.length * i + b.length >= d))); + + ) + e.push(b), (g += b.length), (a = a.parentNode); + return e.reverse().join(h); + } + function v(a) { + var b, + c, + d, + e, + f, + g = []; + if (!a || !a.tagName) return ''; + if ( + (g.push(a.tagName.toLowerCase()), + a.id && g.push('#' + a.id), + (b = a.className), + b && h(b)) + ) + for (c = b.split(/\s+/), f = 0; f < c.length; f++) g.push('.' + c[f]); + var i = ['type', 'name', 'title', 'alt']; + for (f = 0; f < i.length; f++) + (d = i[f]), + (e = a.getAttribute(d)), + e && g.push('[' + d + '="' + e + '"]'); + return g.join(''); + } + function w(a, b) { + return !!(!!a ^ !!b); + } + function x(a, b) { + return ( + !w(a, b) && + ((a = a.values[0]), + (b = b.values[0]), + a.type === b.type && a.value === b.value && y(a.stacktrace, b.stacktrace)) + ); + } + function y(a, b) { + if (w(a, b)) return !1; + var c = a.frames, + d = b.frames; + if (c.length !== d.length) return !1; + for (var e, f, g = 0; g < c.length; g++) + if ( + ((e = c[g]), + (f = d[g]), + e.filename !== f.filename || + e.lineno !== f.lineno || + e.colno !== f.colno || + e['function'] !== f['function']) + ) + return !1; + return !0; + } + function z(a, b, c, d) { + var e = a[b]; + (a[b] = c(e)), d && d.push([a, b, e]); + } + var A = + 'undefined' != typeof window + ? window + : 'undefined' != typeof a ? a : 'undefined' != typeof self ? self : {}; + b.exports = { + isObject: c, + isError: d, + isErrorEvent: e, + isUndefined: f, + isFunction: g, + isString: h, + isEmptyObject: i, + supportsErrorEvent: j, + wrappedCallback: k, + each: l, + objectMerge: m, + truncate: o, + objectFrozen: n, + hasKey: p, + joinRegExp: q, + urlencode: r, + uuid4: t, + htmlTreeAsString: u, + htmlElementAsString: v, + isSameException: x, + isSameStacktrace: y, + parseUrl: s, + fill: z + }; + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window ? window : {} + )); }, {} ], @@ -1342,7 +1418,7 @@ var b, c, e, - f = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, + f = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, g = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, h = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, j = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, diff --git a/dist/raven.min.js.map b/dist/raven.min.js.map index 8d53e4d4ffb6..0f2c94b72765 100644 --- a/dist/raven.min.js.map +++ b/dist/raven.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["raven.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Raven","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","_dereq_","RavenConfigError","message","name","prototype","constructor","2","wrapMethod","console","level","callback","originalConsoleLevel","originalConsole","sentryLevel","args","slice","arguments","msg","join","data","logger","extra","Function","apply","3","now","Date","keepOriginalCallback","original","isFunction","_hasJSON","JSON","stringify","_hasDocument","isUndefined","_document","_hasNavigator","_navigator","_lastCapturedException","_lastData","_lastEventId","_globalServer","_globalKey","_globalProject","_globalContext","_globalOptions","ignoreErrors","ignoreUrls","whitelistUrls","includePaths","collectWindowErrors","maxMessageLength","maxUrlLength","stackTraceLimit","autoBreadcrumbs","instrument","sampleRate","_ignoreOnError","_isRavenInstalled","_originalErrorStackTraceLimit","_originalConsole","_window","_originalConsoleMethods","_plugins","_startTime","_wrappedBuiltIns","_breadcrumbs","_lastCapturedEvent","_location","location","_lastHref","href","_resetBackoff","method","what","isString","objectPrototype","toString","isEmptyObject","_","each","obj","j","hasKey","objectMerge","obj1","obj2","key","value","objectFrozen","Object","isFrozen","truncate","str","max","substr","object","hasOwnProperty","joinRegExp","patterns","pattern","sources","len","push","replace","source","RegExp","urlencode","pairs","encodeURIComponent","parseUrl","url","match","query","fragment","protocol","host","path","relative","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","c","Math","random","htmlTreeAsString","elem","nextStr","MAX_TRAVERSE_HEIGHT","MAX_OUTPUT_LEN","out","height","separator","sepLength","htmlElementAsString","parentNode","reverse","className","classes","attr","tagName","toLowerCase","id","split","attrWhitelist","getAttribute","isOnlyOneTruthy","b","isSameException","ex1","ex2","values","type","isSameStacktrace","stacktrace","stack1","stack2","frames1","frames","frames2","filename","lineno","colno","fill","replacement","track","orig","TraceKit","utils","isError","isObject","wrapConsoleMethod","dsnKeys","dsnPattern","document","navigator","VERSION","debug","config","dsn","options","_logDebug","globalOptions","setDSN","maxBreadcrumbs","min","autoBreadcrumbDefaults","xhr","dom","instrumentDefaults","tryCatch","install","isSetup","report","subscribe","_handleOnErrorStackInfo","_instrumentTryCatch","_instrumentBreadcrumbs","_drainPlugins","uri","_parseDSN","lastSlash","lastIndexOf","_dsn","user","_globalSecret","pass","_getGlobalServer","_globalEndpoint","context","func","undefined","wrap","_before","wrapped","deep","_ignoreNextOnError","captureException","__raven__","__raven_wrapper__","property","__inner__","uninstall","_restoreBuiltIns","ex","captureMessage","trimHeadFrames","stack","computeStackTrace","_handleStackInfo","test","fingerprint","_prepareFrames","_send","captureBreadcrumb","crumb","timestamp","breadcrumbCallback","result","shift","addPlugin","plugin","pluginArgs","setUserContext","setExtraContext","_mergeContext","setTagsContext","tags","clearContext","getContext","parse","setEnvironment","environment","setRelease","release","setDataCallback","dataCallback","setBreadcrumbCallback","setShouldSendCallback","shouldSendCallback","setTransport","transport","lastException","lastEventId","ravenNotConfiguredError","afterLoad","RavenConfig","showReportDialog","eventId","encode","qs","email","globalServer","script","createElement","async","src","head","body","appendChild","I","setTimeout","R","eventType","evt","toUpperCase","createEvent","initEvent","createEventObject","dispatchEvent","fireEvent","S","evtName","_keypressTimeout","target","category","U","debounceDuration","isContentEditable","timeout","_breadcrumbEventHandler","clearTimeout","V","from","to","parsedLoc","parsedTo","parsedFrom","A","wrapTimeFn","fn","Array","originalCallback","wrapEventTarget","proto","capture","secure","handleEvent","err","before","clickHandler","keypressHandler","_keypressEventHandler","wrappedBuiltIns","requestAnimationFrame","cb","eventTargets","B","wrapProp","prop","xhrproto","XMLHttpRequest","origOpen","indexOf","__raven_xhr","status_code","origSend","onreadystatechangeHandler","readyState","status","props","onreadystatechange","origFetch","fetchInput","fetchData","then","response","addEventListener","attachEvent","chrome","isChromePackagedApp","app","runtime","hasPushState","history","pushState","oldOnPopState","onpopstate","currentHref","_captureUrlChange","origPushState","log","consoleMethodCallback","M","builtin","C","installer","concat","D","m","exec","allowSecretKey","G","port","z","N","stackInfo","_triggerEvent","_processException","O","frame","_normalizeFrame","in_app","Y","stackInfoUrl","normalized","line","column","function","X","fileurl","testString","exception","culprit","Z","request","Referer","breadcrumbs","_trimBreadcrumbs","$","urlProp","urlProps","httpData","userAgent","headers","User-Agent","referrer","x","_backoffDuration","_backoffStart","ca","da","current","last","ea","_shouldBackoff","retry","getResponseHeader","parseInt","P","baseData","project","platform","_getHttpData","serverName","server_name","_sendProcessedPayload","ga","fa","_trimPacket","allowDuplicates","_isRepeatData","event_id","_getUuid","auth","sentry_version","sentry_client","sentry_key","sentry_secret","_makeRequest","onSuccess","onError","error","_setBackoffState","ha","opts","hasCORS","XDomainRequest","onload","onerror","open","send","y","Q","setUser","setReleaseContext","5","6","7","4","RavenConstructor","_Raven","noConflict","wrappedCallback","normalizedData","getLocationHref","_slice","UNKNOWN_FUNCTION","ERROR_TYPES_RE","handler","installGlobalHandler","handlers","unsubscribe","splice","unsubscribeAll","uninstallGlobalHandler","notifyHandlers","isWindowError","inner","traceKitWindowOnError","lineNo","colNo","lastExceptionStack","augmentStackTraceWithInitialElement","processLastException","groups","_oldOnerrorHandler","_onErrorHandlerInstalled","_lastExceptionStack","_lastArgs","lastArgs","rethrow","incomplete","computeStackTraceFromStackProp","submatch","parts","element","gecko","winjs","geckoEval","chromeEval","lines","isNative","isEval","columnNumber","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","item","functionName","funcs","recursion","curr","caller","input","substring","sourceURL","fileName","lineNumber","description","haystack","needle","replacer","spaces","cycleReplacer","serializer","stringifyError","keys","thisPos","Infinity","getSerialize"],"mappings":"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","file":"raven.min.js"} \ No newline at end of file +{"version":3,"sources":["raven.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Raven","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","_dereq_","RavenConfigError","message","name","prototype","constructor","2","wrapMethod","console","level","callback","originalConsoleLevel","originalConsole","sentryLevel","args","slice","arguments","msg","join","data","logger","extra","Function","apply","3","now","Date","keepOriginalCallback","original","isFunction","_hasJSON","JSON","stringify","_hasDocument","isUndefined","_document","_hasNavigator","_navigator","_lastCapturedException","_lastData","_lastEventId","_globalServer","_globalKey","_globalProject","_globalContext","_globalOptions","ignoreErrors","ignoreUrls","whitelistUrls","includePaths","collectWindowErrors","maxMessageLength","maxUrlLength","stackTraceLimit","autoBreadcrumbs","instrument","sampleRate","_ignoreOnError","_isRavenInstalled","_originalErrorStackTraceLimit","_originalConsole","_window","_originalConsoleMethods","_plugins","_startTime","_wrappedBuiltIns","_breadcrumbs","_lastCapturedEvent","_location","location","_lastHref","href","_resetBackoff","method","TraceKit","utils","isError","isObject","isErrorEvent","isString","isEmptyObject","each","objectMerge","truncate","objectFrozen","hasKey","joinRegExp","urlencode","uuid4","htmlTreeAsString","isSameException","isSameStacktrace","parseUrl","fill","wrapConsoleMethod","dsnKeys","split","dsnPattern","document","navigator","VERSION","debug","config","dsn","options","_logDebug","globalOptions","key","value","setDSN","push","maxBreadcrumbs","Math","max","min","autoBreadcrumbDefaults","xhr","dom","toString","instrumentDefaults","tryCatch","install","isSetup","report","subscribe","_handleOnErrorStackInfo","_instrumentTryCatch","_instrumentBreadcrumbs","_drainPlugins","uri","_parseDSN","lastSlash","path","lastIndexOf","substr","_dsn","user","_globalSecret","pass","_getGlobalServer","_globalEndpoint","context","func","undefined","wrap","_before","wrapped","deep","_ignoreNextOnError","captureException","__raven__","__raven_wrapper__","property","__inner__","uninstall","_restoreBuiltIns","ex","isNotError","isNotErrorEvent","isErrorEventWithoutError","error","captureMessage","trimHeadFrames","stacktrace","stack","computeStackTrace","_handleStackInfo","ex1","test","initialCall","fileurl","url","fingerprint","frames","_prepareFrames","reverse","_send","captureBreadcrumb","obj","crumb","timestamp","breadcrumbCallback","result","shift","addPlugin","plugin","pluginArgs","setUserContext","setExtraContext","_mergeContext","setTagsContext","tags","clearContext","getContext","parse","setEnvironment","environment","setRelease","release","setDataCallback","dataCallback","setBreadcrumbCallback","setShouldSendCallback","shouldSendCallback","setTransport","transport","lastException","lastEventId","ravenNotConfiguredError","afterLoad","RavenConfig","showReportDialog","eventId","encode","encodeURIComponent","qs","email","globalServer","script","createElement","async","src","head","body","appendChild","I","setTimeout","R","eventType","evt","toUpperCase","createEvent","initEvent","createEventObject","dispatchEvent","fireEvent","toLowerCase","S","evtName","_keypressTimeout","target","category","U","debounceDuration","tagName","isContentEditable","timeout","_breadcrumbEventHandler","clearTimeout","V","from","to","parsedLoc","parsedTo","parsedFrom","protocol","host","relative","A","wrapTimeFn","orig","fn","Array","originalCallback","wrapEventTarget","proto","hasOwnProperty","capture","secure","handleEvent","err","before","clickHandler","keypressHandler","_keypressEventHandler","type","wrappedBuiltIns","requestAnimationFrame","cb","eventTargets","B","wrapProp","prop","xhrproto","XMLHttpRequest","origOpen","indexOf","__raven_xhr","status_code","origSend","onreadystatechangeHandler","readyState","status","props","j","onreadystatechange","origFetch","fetchInput","Request","fetchData","then","response","addEventListener","attachEvent","chrome","isChromePackagedApp","app","runtime","hasPushAndReplaceState","history","pushState","replaceState","oldOnPopState","onpopstate","currentHref","_captureUrlChange","historyReplacementFunction","origHistFunction","log","consoleMethodCallback","_","M","builtin","C","installer","concat","D","str","m","exec","allowSecretKey","G","port","z","N","stackInfo","_triggerEvent","_processException","lineno","O","frame","_normalizeFrame","in_app","Y","stackInfoUrl","normalized","filename","line","colno","column","function","X","prefixedMessage","exception","values","culprit","Z","request","Referer","breadcrumbs","_trimBreadcrumbs","$","urlProp","urlProps","httpData","userAgent","headers","User-Agent","referrer","x","_backoffDuration","_backoffStart","ca","da","current","last","ea","_shouldBackoff","retry","getResponseHeader","parseInt","P","baseData","project","platform","_getHttpData","serverName","server_name","random","_sendProcessedPayload","ga","fa","_trimPacket","allowDuplicates","_isRepeatData","event_id","_getUuid","auth","sentry_version","sentry_client","sentry_key","sentry_secret","_makeRequest","onSuccess","onError","_setBackoffState","ha","opts","hasCORS","XDomainRequest","replace","onload","onerror","open","send","y","Q","setUser","setReleaseContext","5","6","7","4","RavenConstructor","_Raven","noConflict","what","supportsErrorEvent","Object","ErrorEvent","wrappedCallback","normalizedData","obj1","obj2","isFrozen","object","patterns","pattern","sources","len","source","RegExp","pairs","match","query","fragment","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","c","elem","nextStr","MAX_TRAVERSE_HEIGHT","MAX_OUTPUT_LEN","out","height","separator","sepLength","htmlElementAsString","parentNode","className","classes","attr","id","attrWhitelist","getAttribute","isOnlyOneTruthy","b","ex2","stack1","stack2","frames1","frames2","replacement","track","getLocationHref","_slice","UNKNOWN_FUNCTION","ERROR_TYPES_RE","handler","installGlobalHandler","handlers","unsubscribe","splice","unsubscribeAll","uninstallGlobalHandler","notifyHandlers","isWindowError","inner","traceKitWindowOnError","lineNo","colNo","lastExceptionStack","augmentStackTraceWithInitialElement","processLastException","groups","_oldOnerrorHandler","_onErrorHandlerInstalled","_lastExceptionStack","_lastArgs","lastArgs","rethrow","incomplete","computeStackTraceFromStackProp","submatch","parts","element","gecko","winjs","geckoEval","chromeEval","lines","isNative","isEval","columnNumber","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","item","functionName","funcs","recursion","curr","caller","input","substring","sourceURL","fileName","lineNumber","description","haystack","needle","replacer","spaces","cycleReplacer","serializer","stringifyError","keys","thisPos","Infinity","getSerialize"],"mappings":"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","file":"raven.min.js"} \ No newline at end of file diff --git a/dist/sri.json b/dist/sri.json index 6b80cb555277..f5191b6b68f2 100644 --- a/dist/sri.json +++ b/dist/sri.json @@ -1,20 +1,20 @@ { "@dist/raven.js": { "hashes": { - "sha256": "gVPYbQqbPDndQX+ig7oz2QumJ0EsWtLyAGiKtRSGlGg=", - "sha512": "h+blqMGZFiOvPppwP9KxiA3rcWjD55Z1ybcfEe3LnTa+ZRB3fJ6IlpCJbsNtwCoynrSkuXZIsB1boawIJQEuKA==" + "sha256": "kNo80ZAT5AxK/r4hNw3GLc1XM6WDfPT5zk/3mA9o4Jg=", + "sha512": "7uhorE1tpXuuULm8YxYtjSc3IAPBmcIng0QtyK607G6+845X6nLRk73myrtxZVqs0iD4SKqSRtwYJnnpWGjjYw==" }, "type": null, - "integrity": "sha256-gVPYbQqbPDndQX+ig7oz2QumJ0EsWtLyAGiKtRSGlGg= sha512-h+blqMGZFiOvPppwP9KxiA3rcWjD55Z1ybcfEe3LnTa+ZRB3fJ6IlpCJbsNtwCoynrSkuXZIsB1boawIJQEuKA==", + "integrity": "sha256-kNo80ZAT5AxK/r4hNw3GLc1XM6WDfPT5zk/3mA9o4Jg= sha512-7uhorE1tpXuuULm8YxYtjSc3IAPBmcIng0QtyK607G6+845X6nLRk73myrtxZVqs0iD4SKqSRtwYJnnpWGjjYw==", "path": "dist/raven.js" }, "@dist/raven.min.js": { "hashes": { - "sha256": "nuEwzqOPlAVlqsgfK2Qfy7E1Xcd+7rIHKoaJ2f9Abbk=", - "sha512": "Uoqbb0ddO0GFDKHypu/xZWhUNgHSQJuqbj547tgcS3qp7J0EvjGj67Tl3EWYry0g/HC2sh/UUSFSOhtN9H6M9Q==" + "sha256": "HaCP30N/E7qL2Tr148nkYtUIsvMFEsdyH9P3e7jA2Hs=", + "sha512": "gwEhVo0oDg2WE6M1jDh9DU/07lkjHLitsHgDB+DpLlsox5vWmuIWofNiX5F7QKemX64LUpsUj940yvT7ykG1Gw==" }, "type": null, - "integrity": "sha256-nuEwzqOPlAVlqsgfK2Qfy7E1Xcd+7rIHKoaJ2f9Abbk= sha512-Uoqbb0ddO0GFDKHypu/xZWhUNgHSQJuqbj547tgcS3qp7J0EvjGj67Tl3EWYry0g/HC2sh/UUSFSOhtN9H6M9Q==", + "integrity": "sha256-HaCP30N/E7qL2Tr148nkYtUIsvMFEsdyH9P3e7jA2Hs= sha512-gwEhVo0oDg2WE6M1jDh9DU/07lkjHLitsHgDB+DpLlsox5vWmuIWofNiX5F7QKemX64LUpsUj940yvT7ykG1Gw==", "path": "dist/raven.min.js" } } \ No newline at end of file diff --git a/docs/sentry-doc-config.json b/docs/sentry-doc-config.json index 288cb21cce39..96f1591b546f 100644 --- a/docs/sentry-doc-config.json +++ b/docs/sentry-doc-config.json @@ -66,6 +66,6 @@ } }, "vars": { - "RAVEN_VERSION": "3.18.1" + "RAVEN_VERSION": "3.19.0" } } diff --git a/package.json b/package.json index b0e5e934b295..1183ae7d7c2f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "raven", "sentry" ], - "version": "3.18.1", + "version": "3.19.0", "repository": "git://github.com/getsentry/raven-js.git", "license": "BSD-2-Clause", "homepage": "https://github.com/getsentry/raven-js", diff --git a/src/raven.js b/src/raven.js index 3829c1a0d82a..458d13f566d6 100644 --- a/src/raven.js +++ b/src/raven.js @@ -117,7 +117,7 @@ Raven.prototype = { // webpack (using a build step causes webpack #1617). Grunt verifies that // this value matches package.json during build. // See: https://github.com/getsentry/raven-js/issues/465 - VERSION: '3.18.1', + VERSION: '3.19.0', debug: false, diff --git a/test/raven.test.js b/test/raven.test.js index 3f77b47a6dca..bfd019e64224 100644 --- a/test/raven.test.js +++ b/test/raven.test.js @@ -1266,7 +1266,7 @@ describe('globals', function() { extra: {'session:duration': 100} }); assert.deepEqual(opts.auth, { - sentry_client: 'raven-js/3.18.1', + sentry_client: 'raven-js/3.19.0', sentry_key: 'abc', sentry_version: '7' }); @@ -1313,7 +1313,7 @@ describe('globals', function() { extra: {'session:duration': 100} }); assert.deepEqual(opts.auth, { - sentry_client: 'raven-js/3.18.1', + sentry_client: 'raven-js/3.19.0', sentry_key: 'abc', sentry_secret: 'def', sentry_version: '7'