{"version":3,"sources":["jsdelivr-header.js","/npm/@ladjs/error-stack-parser@3.0.0/error-stack-parser.js"],"names":[],"mappings":"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","file":"/npm/@ladjs/error-stack-parser@3.0.0/error-stack-parser.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@ladjs/error-stack-parser@3.0.0/error-stack-parser.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (typeof define === 'function' && define.amd) {\n        define('@ladjs/error-stack-parser', ['@ladjs/stackframe'], factory);\n    } else if (typeof exports === 'object') {\n        module.exports = factory(require('@ladjs/stackframe'));\n    } else {\n        root.ErrorStackParser = factory(root.StackFrame);\n    }\n}(this, function ErrorStackParser(StackFrame) {\n    'use strict';\n\n    var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n    var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n    var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n\n    return {\n        /**\n         * Given an Error object, extract the most information from it.\n         *\n         * @param {Error} error object\n         * @return {Array} of StackFrames\n         */\n        parse: function ErrorStackParser$$parse(error) {\n            if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n                return this.parseOpera(error);\n            } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n                return this.parseV8OrIE(error);\n            } else if (error.stack) {\n                return this.parseFFOrSafari(error);\n            } else {\n                throw new Error('Cannot parse given Error object');\n            }\n        },\n\n        // Separate line and column numbers from a string of the form: (URI:Line:Column)\n        extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n            // Fail-fast but return locations like \"(native)\"\n            if (urlLike.indexOf(':') === -1) {\n                return [urlLike];\n            }\n\n            var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n            var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n            return [parts[1], parts[2] || undefined, parts[3] || undefined];\n        },\n\n        parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(CHROME_IE_STACK_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                if (line.indexOf('(eval ') > -1) {\n                    // Throw away eval information until we implement stacktrace.js/stackframe#8\n                    line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n                }\n                var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n                // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n                // case it has spaces in it, as the string is split on \\s+ later on\n                var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n                // remove the parenthesized location from the line, if it was matched\n                sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n                var tokens = sanitizedLine.split(/\\s+/).slice(1);\n                // if a location was matched, pass it to extractLocation() otherwise pop the last token\n                var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n                var functionName = tokens.join(' ') || undefined;\n                var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n                return new StackFrame({\n                    functionName: functionName,\n                    fileName: fileName,\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        },\n\n        parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                // Throw away eval information until we implement stacktrace.js/stackframe#8\n                if (line.indexOf(' > eval') > -1) {\n                    line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n                }\n\n                if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n                    // Safari eval frames only have function names and nothing else\n                    return new StackFrame({\n                        functionName: line\n                    });\n                } else {\n                    var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n                    var matches = line.match(functionNameRegex);\n                    var functionName = matches && matches[1] ? matches[1] : undefined;\n                    var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n                    return new StackFrame({\n                        functionName: functionName,\n                        fileName: locationParts[0],\n                        lineNumber: locationParts[1],\n                        columnNumber: locationParts[2],\n                        source: line\n                    });\n                }\n            }, this);\n        },\n\n        parseOpera: function ErrorStackParser$$parseOpera(e) {\n            if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n                e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n                return this.parseOpera9(e);\n            } else if (!e.stack) {\n                return this.parseOpera10(e);\n            } else {\n                return this.parseOpera11(e);\n            }\n        },\n\n        parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n            var lines = e.message.split('\\n');\n            var result = [];\n\n            for (var i = 2, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(new StackFrame({\n                        fileName: match[2],\n                        lineNumber: match[1],\n                        source: lines[i]\n                    }));\n                }\n            }\n\n            return result;\n        },\n\n        parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n            var lines = e.stacktrace.split('\\n');\n            var result = [];\n\n            for (var i = 0, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(\n                        new StackFrame({\n                            functionName: match[3] || undefined,\n                            fileName: match[2],\n                            lineNumber: match[1],\n                            source: lines[i]\n                        })\n                    );\n                }\n            }\n\n            return result;\n        },\n\n        // Opera 10.65+ Error.stack very similar to FF/Safari\n        parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n            }, this);\n\n            return filtered.map(function(line) {\n                var tokens = line.split('@');\n                var locationParts = this.extractLocation(tokens.pop());\n                var functionCall = (tokens.shift() || '');\n                var functionName = functionCall\n                        .replace(/<anonymous function(: (\\w+))?>/, '$2')\n                        .replace(/\\([^\\)]*\\)/g, '') || undefined;\n                var argsRaw;\n                if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n                    argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n                }\n                var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n                    undefined : argsRaw.split(',');\n\n                return new StackFrame({\n                    functionName: functionName,\n                    args: args,\n                    fileName: locationParts[0],\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        }\n    };\n}));\n"]}