@honeybadger-io/vue 6.0.5 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -96,6 +96,12 @@ function logError (app, error, vm, info) {
96
96
  }
97
97
  }
98
98
 
99
+ var NOTIFIER = {
100
+ name: '@honeybadger-io/vue',
101
+ url: 'https://github.com/honeybadger-io/honeybadger-js',
102
+ version: '6.1.0'
103
+ };
104
+
99
105
  function shouldLogError (app, options) {
100
106
  if (app.config.warnHandler) {
101
107
  return true
@@ -131,6 +137,8 @@ function install(vue, options) {
131
137
  console.log(("Honeybadger configured with " + (options.apiKey)));
132
138
  }
133
139
  var honeybadger = Honeybadger.configure(options);
140
+ honeybadger.setNotifier(NOTIFIER);
141
+
134
142
  vue.$honeybadger = honeybadger;
135
143
 
136
144
  // vue 2 support -> make available for all components
@@ -1 +1 @@
1
- {"version":3,"file":"honeybadger-vue.esm.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"honeybadger-vue.esm.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nconst NOTIFIER = {\n name: '@honeybadger-io/vue',\n url: 'https://github.com/honeybadger-io/honeybadger-js',\n version: '__VERSION__'\n}\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n honeybadger.setNotifier(NOTIFIER)\n\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["const","let"],"mappings":"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"}
@@ -101,6 +101,12 @@ var HoneybadgerVue = (function (exports, Honeybadger) {
101
101
  }
102
102
  }
103
103
 
104
+ var NOTIFIER = {
105
+ name: '@honeybadger-io/vue',
106
+ url: 'https://github.com/honeybadger-io/honeybadger-js',
107
+ version: '6.1.0'
108
+ };
109
+
104
110
  function shouldLogError (app, options) {
105
111
  if (app.config.warnHandler) {
106
112
  return true
@@ -136,6 +142,8 @@ var HoneybadgerVue = (function (exports, Honeybadger) {
136
142
  console.log(("Honeybadger configured with " + (options.apiKey)));
137
143
  }
138
144
  var honeybadger = Honeybadger__default["default"].configure(options);
145
+ honeybadger.setNotifier(NOTIFIER);
146
+
139
147
  vue.$honeybadger = honeybadger;
140
148
 
141
149
  // vue 2 support -> make available for all components
@@ -1 +1 @@
1
- {"version":3,"file":"honeybadger-vue.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["const","let","Honeybadger"],"mappings":"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"}
1
+ {"version":3,"file":"honeybadger-vue.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nconst NOTIFIER = {\n name: '@honeybadger-io/vue',\n url: 'https://github.com/honeybadger-io/honeybadger-js',\n version: '__VERSION__'\n}\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n honeybadger.setNotifier(NOTIFIER)\n\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["const","let","Honeybadger"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var HoneybadgerVue=function(n,r){"use strict";function e(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var o=e(r),t=/(?:^|[-_])(\w)/g,a="<Anonymous>",i=function(n,r,e){if(!n)return a;if(!e&&n.$root===n)return"<Root>";var o=n.$options;if(!o)return a;var i=o.name||o._componentTag||o.__name,u=o.__file;if(!i&&u){var f=u.match(/([^/\\]+)\.vue$/);i=f&&f[1]}return(i?"<"+(i.replace(t,(function(n){return n.toUpperCase()})).replace(/[-_]/g,"")+">"):a)+(u&&!1!==r?" at "+u:"")};function u(n,r,e,o){var t="Error in "+o+': "'+(r&&r.toString())+'"',a=e?function(n){var r=function(n){return!(!n||!n.__isVue)}(n);if((r||function(n){return!(!n||!n._isVue)}(n))&&n.$parent){for(var e=[],o=0;n;){if(!r&&e.length>0){var t=e[e.length-1];if(t.constructor===n.constructor){o++,n=n.$parent;continue}o>0&&(e[e.length-1]=[t,o],o=0)}e.push(n),n=n.$parent}return"\n\nfound in\n\n"+e.map((function(n,e){return""+(0===e?"---\x3e ":function(n,r){for(var e="";r;)r%2==1&&(e+=n),r>1&&(n+=n),r>>=1;return e}(" ",5+2*e))+(Array.isArray(n)?i(n[0],!0,r)+"... ("+n[1]+" recursive calls)":i(n,!0,r))})).join("\n")}return"\n\n(found in "+i(n,!0,r)+")"}(e):"";n.config.warnHandler?n.config.warnHandler.call(null,t,e,a):console.error("[Vue warn]: "+t+a)}function f(n){var r=n.$options||{},e=r.name||r._componentTag,o=r.__file,t=n.$parent&&n.$parent.$options?n.$parent.$options.name:void 0,a=r.propsData||n.$props;return{isRoot:n.$root===n,name:e,props:a,parentName:t,file:o}}var c={install:function(n,r){r.debug&&console.log("Honeybadger configured with "+r.apiKey);var e=o.default.configure(r);n.$honeybadger=e,n.prototype&&(n.prototype.$honeybadger=e),n.config&&n.config.globalProperties&&(n.config.globalProperties.$honeybadger=e);var t=n.config.errorHandler;n.config.errorHandler=function(o,a,i){var c={context:{vm:f(a),info:i}};e.notify(o,c),"function"==typeof t&&t.call(n,o,a,i),function(n,r){if(n.config.warnHandler)return!0;var e="undefined"!=typeof console,o="undefined"!=typeof process,t=r.debug||o&&"production"!==process.env.NODE_ENV;return e&&t}(n,r)&&u(n,o,a,i)}}};return n.default=c,Object.defineProperty(n,"__esModule",{value:!0}),n}({},Honeybadger);
1
+ var HoneybadgerVue=function(n,r){"use strict";function e(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var o=e(r),t=/(?:^|[-_])(\w)/g,a="<Anonymous>",i=function(n,r,e){if(!n)return a;if(!e&&n.$root===n)return"<Root>";var o=n.$options;if(!o)return a;var i=o.name||o._componentTag||o.__name,u=o.__file;if(!i&&u){var f=u.match(/([^/\\]+)\.vue$/);i=f&&f[1]}return(i?"<"+(i.replace(t,(function(n){return n.toUpperCase()})).replace(/[-_]/g,"")+">"):a)+(u&&!1!==r?" at "+u:"")};function u(n,r,e,o){var t="Error in "+o+': "'+(r&&r.toString())+'"',a=e?function(n){var r=function(n){return!(!n||!n.__isVue)}(n);if((r||function(n){return!(!n||!n._isVue)}(n))&&n.$parent){for(var e=[],o=0;n;){if(!r&&e.length>0){var t=e[e.length-1];if(t.constructor===n.constructor){o++,n=n.$parent;continue}o>0&&(e[e.length-1]=[t,o],o=0)}e.push(n),n=n.$parent}return"\n\nfound in\n\n"+e.map((function(n,e){return""+(0===e?"---\x3e ":function(n,r){for(var e="";r;)r%2==1&&(e+=n),r>1&&(n+=n),r>>=1;return e}(" ",5+2*e))+(Array.isArray(n)?i(n[0],!0,r)+"... ("+n[1]+" recursive calls)":i(n,!0,r))})).join("\n")}return"\n\n(found in "+i(n,!0,r)+")"}(e):"";n.config.warnHandler?n.config.warnHandler.call(null,t,e,a):console.error("[Vue warn]: "+t+a)}var f={name:"@honeybadger-io/vue",url:"https://github.com/honeybadger-io/honeybadger-js",version:"6.1.0"};function c(n){var r=n.$options||{},e=r.name||r._componentTag,o=r.__file,t=n.$parent&&n.$parent.$options?n.$parent.$options.name:void 0,a=r.propsData||n.$props;return{isRoot:n.$root===n,name:e,props:a,parentName:t,file:o}}var p={install:function(n,r){r.debug&&console.log("Honeybadger configured with "+r.apiKey);var e=o.default.configure(r);e.setNotifier(f),n.$honeybadger=e,n.prototype&&(n.prototype.$honeybadger=e),n.config&&n.config.globalProperties&&(n.config.globalProperties.$honeybadger=e);var t=n.config.errorHandler;n.config.errorHandler=function(o,a,i){var f={context:{vm:c(a),info:i}};e.notify(o,f),"function"==typeof t&&t.call(n,o,a,i),function(n,r){if(n.config.warnHandler)return!0;var e="undefined"!=typeof console,o="undefined"!=typeof process,t=r.debug||o&&"production"!==process.env.NODE_ENV;return e&&t}(n,r)&&u(n,o,a,i)}}};return n.default=p,Object.defineProperty(n,"__esModule",{value:!0}),n}({},Honeybadger);
2
2
  //# sourceMappingURL=honeybadger-vue.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"honeybadger-vue.min.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["classifyRE","ANONYMOUS_COMPONENT","formatComponentName","vm","includeFile","isVue3Vm","$root","const","options","$options","let","name","_componentTag","__name","file","__file","match","replace","c","toUpperCase","logError","app","error","info","message","toString","trace","vue3Vm","__isVue","_isVue","isVue2Vm","$parent","tree","currentRecursiveSequence","length","last","constructor","push","map","i","str","n","res","repeat","Array","isArray","join","generateComponentTrace","config","warnHandler","call","console","extractContext","parentName","undefined","props","propsData","$props","isRoot","index","install","vue","debug","log","honeybadger","Honeybadger","configure","$honeybadger","prototype","globalProperties","chainedErrorHandler","errorHandler","metadata","context","notify","hasConsole","hasProcess","process","isDebug","env","NODE_ENV","shouldLogError"],"mappings":"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"}
1
+ {"version":3,"file":"honeybadger-vue.min.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nconst NOTIFIER = {\n name: '@honeybadger-io/vue',\n url: 'https://github.com/honeybadger-io/honeybadger-js',\n version: '__VERSION__'\n}\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n honeybadger.setNotifier(NOTIFIER)\n\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["classifyRE","ANONYMOUS_COMPONENT","formatComponentName","vm","includeFile","isVue3Vm","$root","const","options","$options","let","name","_componentTag","__name","file","__file","match","replace","c","toUpperCase","logError","app","error","info","message","toString","trace","vue3Vm","__isVue","_isVue","isVue2Vm","$parent","tree","currentRecursiveSequence","length","last","constructor","push","map","i","str","n","res","repeat","Array","isArray","join","generateComponentTrace","config","warnHandler","call","console","NOTIFIER","url","version","extractContext","parentName","undefined","props","propsData","$props","isRoot","index","install","vue","debug","log","honeybadger","Honeybadger","configure","setNotifier","$honeybadger","prototype","globalProperties","chainedErrorHandler","errorHandler","metadata","context","notify","hasConsole","hasProcess","process","isDebug","env","NODE_ENV","shouldLogError"],"mappings":"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"}
@@ -104,6 +104,12 @@
104
104
  }
105
105
  }
106
106
 
107
+ var NOTIFIER = {
108
+ name: '@honeybadger-io/vue',
109
+ url: 'https://github.com/honeybadger-io/honeybadger-js',
110
+ version: '6.1.0'
111
+ };
112
+
107
113
  function shouldLogError (app, options) {
108
114
  if (app.config.warnHandler) {
109
115
  return true
@@ -139,6 +145,8 @@
139
145
  console.log(("Honeybadger configured with " + (options.apiKey)));
140
146
  }
141
147
  var honeybadger = Honeybadger__default["default"].configure(options);
148
+ honeybadger.setNotifier(NOTIFIER);
149
+
142
150
  vue.$honeybadger = honeybadger;
143
151
 
144
152
  // vue 2 support -> make available for all components
@@ -1 +1 @@
1
- {"version":3,"file":"honeybadger-vue.umd.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["const","let","Honeybadger"],"mappings":"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"}
1
+ {"version":3,"file":"honeybadger-vue.umd.js","sources":["../../src/vue-debug.js","../../src/error-logging.js","../../src/index.js"],"sourcesContent":["/**\n * This was originally taken from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js.\n * The method generateStackTrace is used to log errors the same way as Vue logs them when errorHandler is not set.\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = str => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nconst ANONYMOUS_COMPONENT = '<Anonymous>'\nconst ROOT_COMPONENT = '<Root>'\n\nconst formatComponentName = (vm, includeFile, isVue3Vm) => {\n if (!vm) {\n return ANONYMOUS_COMPONENT\n }\n\n // no need to check for root in vue3, better to show name of component, even if $root\n if (!isVue3Vm && vm.$root === vm) {\n return ROOT_COMPONENT\n }\n\n const options = vm.$options\n if (!options) {\n return ANONYMOUS_COMPONENT\n }\n\n // __name found in vue3\n let name = options.name || options._componentTag || options.__name\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nconst repeat = (str, n) => {\n let res = ''\n while (n) {\n if (n % 2 === 1) res += str\n if (n > 1) str += str\n n >>= 1\n }\n return res\n}\n\nconst isVue3Vm = vm => !!(vm && vm.__isVue)\nconst isVue2Vm = vm => !!(vm && vm._isVue)\n\nexport const generateComponentTrace = vm => {\n const vue3Vm = isVue3Vm(vm)\n if ((vue3Vm || isVue2Vm(vm)) && vm.$parent) {\n const tree = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (!vue3Vm && tree.length > 0) {\n const last = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : repeat(' ', 5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0], true, vue3Vm)}... (${vm[1]} recursive calls)`\n : formatComponentName(vm, true, vue3Vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm, true, vue3Vm)})`\n }\n}\n","import { generateComponentTrace } from './vue-debug'\n\nexport function logError (app, error, vm, info) {\n const message = `Error in ${info}: \"${error && error.toString()}\"`\n\n const trace = vm ? generateComponentTrace(vm) : ''\n if (app.config.warnHandler) {\n app.config.warnHandler.call(null, message, vm, trace)\n } else {\n console.error(`[Vue warn]: ${message}${trace}`)\n }\n}\n","import Honeybadger from '@honeybadger-io/js'\nimport { logError } from './error-logging'\n\nconst NOTIFIER = {\n name: '@honeybadger-io/vue',\n url: 'https://github.com/honeybadger-io/honeybadger-js',\n version: '__VERSION__'\n}\n\nfunction shouldLogError (app, options) {\n if (app.config.warnHandler) {\n return true\n }\n\n const hasConsole = typeof console !== 'undefined'\n const hasProcess = typeof process !== 'undefined'\n const isDebug = options.debug || (hasProcess && process.env.NODE_ENV !== 'production')\n return hasConsole && isDebug\n}\n\nfunction extractContext (vm) {\n const options = vm.$options || {}\n const name = options.name || options._componentTag\n const file = options.__file\n const parentName = vm.$parent && vm.$parent.$options ? vm.$parent.$options.name : undefined\n\n // Vue2 - $options.propsData\n // Vue3 - $props\n const props = options.propsData || vm.$props\n\n return {\n isRoot: vm.$root === vm,\n name: name,\n props,\n parentName: parentName,\n file: file\n }\n}\n\nfunction install(vue, options) {\n if (options.debug) {\n console.log(`Honeybadger configured with ${options.apiKey}`)\n }\n const honeybadger = Honeybadger.configure(options)\n honeybadger.setNotifier(NOTIFIER)\n\n vue.$honeybadger = honeybadger\n\n // vue 2 support -> make available for all components\n if (vue.prototype) {\n vue.prototype.$honeybadger = honeybadger\n }\n\n if (vue.config && vue.config.globalProperties) {\n // vue 3 support -> make available for all components\n vue.config.globalProperties.$honeybadger = honeybadger\n }\n const chainedErrorHandler = vue.config.errorHandler\n vue.config.errorHandler = (error, vm, info) => {\n const metadata = { context: { vm: extractContext(vm), info: info } }\n honeybadger.notify(error, metadata)\n if (typeof chainedErrorHandler === 'function') {\n chainedErrorHandler.call(vue, error, vm, info)\n }\n\n if (shouldLogError(vue, options)) {\n logError(vue, error, vm, info)\n }\n }\n}\n\nexport default {\n install\n}\n"],"names":["const","let","Honeybadger"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@honeybadger-io/vue",
3
- "version": "6.0.5",
3
+ "version": "6.1.0",
4
4
  "license": "MIT",
5
5
  "description": "Honeybadger Vue.js client",
6
6
  "author": "Jason Truesdell <jason@yuzuten.com> (https://github.com/JasonTrue)",
@@ -42,7 +42,8 @@
42
42
  "devDependencies": {
43
43
  "@babel/plugin-transform-runtime": "^7.18.9",
44
44
  "@babel/preset-env": "^7.18.9",
45
- "@honeybadger-io/js": "^6.1.2",
45
+ "@honeybadger-io/js": "^6.2.0",
46
+ "@rollup/plugin-replace": "^5.0.2",
46
47
  "@vue/compiler-sfc": "^3.2.37",
47
48
  "@vue/test-utils": "^2.0.2",
48
49
  "babel-plugin-syntax-jsx": "^6.18.0",
@@ -82,5 +83,5 @@
82
83
  "engines": {
83
84
  "node": ">=14"
84
85
  },
85
- "gitHead": "14f28c93a0ed11db479e7b5cdc2b0205292a1a83"
86
+ "gitHead": "81975a98dd8ac13e75a58d460ba58e4cc6a28fbd"
86
87
  }
package/src/index.js CHANGED
@@ -1,6 +1,12 @@
1
1
  import Honeybadger from '@honeybadger-io/js'
2
2
  import { logError } from './error-logging'
3
3
 
4
+ const NOTIFIER = {
5
+ name: '@honeybadger-io/vue',
6
+ url: 'https://github.com/honeybadger-io/honeybadger-js',
7
+ version: '__VERSION__'
8
+ }
9
+
4
10
  function shouldLogError (app, options) {
5
11
  if (app.config.warnHandler) {
6
12
  return true
@@ -36,6 +42,8 @@ function install(vue, options) {
36
42
  console.log(`Honeybadger configured with ${options.apiKey}`)
37
43
  }
38
44
  const honeybadger = Honeybadger.configure(options)
45
+ honeybadger.setNotifier(NOTIFIER)
46
+
39
47
  vue.$honeybadger = honeybadger
40
48
 
41
49
  // vue 2 support -> make available for all components