{"version":3,"file":"components.js","sources":["../../../src/vendor/components.ts"],"sourcesContent":["import type { ViewModel } from '../types';\n\n// Vendored from https://github.com/vuejs/vue/blob/612fb89547711cacb030a3893a0065b785802860/src/core/util/debug.js\n// with types only changes.\n\n// The MIT License (MIT)\n\n// Copyright (c) 2013-present, Yuxi (Evan) You\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str: string): string => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');\n\nconst ROOT_COMPONENT_NAME = '';\nconst ANONYMOUS_COMPONENT_NAME = '';\n\nconst repeat = (str: string, n: number): string => {\n return str.repeat(n);\n};\n\nexport const formatComponentName = (vm?: ViewModel, includeFile?: boolean): string => {\n if (!vm) {\n return ANONYMOUS_COMPONENT_NAME;\n }\n\n if (vm.$root === vm) {\n return ROOT_COMPONENT_NAME;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5204 $options can be undefined\n if (!vm.$options) {\n return ANONYMOUS_COMPONENT_NAME;\n }\n\n const options = vm.$options;\n\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 if (match) {\n name = match[1];\n }\n }\n\n return (\n (name ? `<${classify(name)}>` : ANONYMOUS_COMPONENT_NAME) + (file && includeFile !== false ? ` at ${file}` : '')\n );\n};\n\nexport const generateComponentTrace = (vm?: ViewModel): string => {\n if (vm && (vm._isVue || vm.__isVue) && vm.$parent) {\n const tree = [];\n let currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const last = tree[tree.length - 1] as any;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent; // eslint-disable-line no-param-reassign\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; // eslint-disable-line no-param-reassign\n }\n\n const formattedTree = tree\n .map(\n (vm, i) =>\n `${\n (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) +\n (Array.isArray(vm)\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm))\n }`,\n )\n .join('\\n');\n\n return `\\n\\nfound in\\n\\n${formattedTree}`;\n }\n\n return `\\n\\n(found in ${formatComponentName(vm)})`;\n};\n"],"names":["vm"],"mappings":"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"}