{"version":3,"file":"index.esm.js","sources":["../src/cleanInternalStack.ts","../src/escapeStringRegexp.ts","../src/cleanStack.ts","../src/indentString.ts","../src/AggregateError.ts"],"sourcesContent":["export const cleanInternalStack = (stack: string): string => stack.replace(/\\s+at .*aggregate-error\\/index.js:\\d+:\\d+\\)?/g, '');\n\n","/**\nEscape RegExp special characters.\nYou can also use this to escape a string that is inserted into the middle of a regex, for example, into a character class.\n@example\n```\nimport escapeStringRegexp = require('escape-string-regexp');\nconst escapedString = escapeStringRegexp('How much $ for a 🦄?');\n//=> 'How much \\\\$ for a 🦄\\\\?'\nnew RegExp(escapedString);\n```\n*/\nexport const escapeStringRegexp = (string: string): string => {\n if (typeof string !== 'string') {\n throw new TypeError('Expected a string');\n }\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n .replace(/-/g, '\\\\x2d');\n};\n\n","import { escapeStringRegexp } from \"./escapeStringRegexp\";\n\nconst extractPathRegex = /\\s+at.*[(\\s](.*)\\)?/;\nconst pathRegex = /^(?:(?:(?:node|(?:internal\\/[\\w/]*|.*node_modules\\/(?:babel-polyfill|pirates)\\/.*)?\\w+)\\.js:\\d+:\\d+)|native)/;\n\n/**\nClean up error stack traces. Removes the mostly unhelpful internal Node.js entries.\n@param stack - The `stack` property of an `Error`.\n@example\n```\nimport cleanStack = require('clean-stack');\nconst error = new Error('Missing unicorn');\nconsole.log(error.stack);\n// Error: Missing unicorn\n// at Object. (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)\n// at Module._compile (module.js:409:26)\n// at Object.Module._extensions..js (module.js:416:10)\n// at Module.load (module.js:343:32)\n// at Function.Module._load (module.js:300:12)\n// at Function.Module.runMain (module.js:441:10)\n// at startup (node.js:139:18)\nconsole.log(cleanStack(error.stack));\n// Error: Missing unicorn\n// at Object. (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)\n```\n*/\nexport const cleanStack = (stack: string, basePath?: string): string => {\n const basePathRegex = basePath && new RegExp(`(at | \\\\()${escapeStringRegexp(basePath)}`, 'g');\n return stack.replace(/\\\\/g, '/')\n .split('\\n')\n .filter(line => {\n const pathMatches = line.match(extractPathRegex);\n if (pathMatches === null || !pathMatches[1]) {\n return true;\n }\n const match = pathMatches[1];\n // Electron\n if (match.includes('.app/Contents/Resources/electron.asar') ||\n match.includes('.app/Contents/Resources/default_app.asar')) {\n return false;\n }\n return !pathRegex.test(match);\n })\n .filter(line => line.trim() !== '')\n .map(line => {\n if (basePathRegex) {\n line = line.replace(basePathRegex, '$1');\n }\n return line;\n })\n .join('\\n');\n};\n","interface Options {\n /**\n The string to use for the indent.\n @default ' '\n */\n readonly indent?: string;\n /**\n Also indent empty lines.\n @default false\n */\n readonly includeEmptyLines?: boolean;\n}\n/**\nIndent each line in a string.\n@param string - The string to indent.\n@param count - How many times you want `options.indent` repeated. Default: `1`.\n@example\n```\nimport indentString = require('indent-string');\nindentString('Unicorns\\nRainbows', 4);\n//=> ' Unicorns\\n Rainbows'\nindentString('Unicorns\\nRainbows', 4, {indent: '♥'});\n//=> '♥♥♥♥Unicorns\\n♥♥♥♥Rainbows'\n```\n*/\nexport const indentString = (string: string, count = 1, options?: Options): string => {\n options = Object.assign({\n indent: ' ',\n includeEmptyLines: false,\n }, options);\n if (typeof string !== 'string') {\n throw new TypeError(`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof string}\\``);\n }\n if (typeof count !== 'number') {\n throw new TypeError(`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``);\n }\n if (count < 0) {\n throw new RangeError(`Expected \\`count\\` to be at least 0, got \\`${count}\\``);\n }\n if (typeof options.indent !== 'string') {\n throw new TypeError(`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof options.indent}\\``);\n }\n if (count === 0) {\n return string;\n }\n const regex = options.includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\n return string.replace(regex, options.indent.repeat(count));\n};","import { cleanInternalStack } from \"./cleanInternalStack\";\nimport { cleanStack } from \"./cleanStack\";\nimport { indentString } from \"./indentString\";\n\nexport class AggregateError extends Error {\n /**\n @param errors - If a string, a new `Error` is created with the string as the error message. If a non-Error object, a new `Error` is created with all properties from the object copied over.\n @returns An Error that is also an [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Iterables) for the individual errors.\n @example\n ```\n import AggregateError = require('aggregate-error');\n const error = new AggregateError([new Error('foo'), 'bar', {message: 'baz'}]);\n throw error;\n // AggregateError:\n //\tError: foo\n //\t\tat Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:33)\n //\tError: bar\n //\t\tat Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13)\n //\tError: baz\n //\t\tat Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13)\n //\tat AggregateError (/Users/sindresorhus/dev/aggregate-error/index.js:19:3)\n //\tat Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13)\n //\tat Module._compile (module.js:556:32)\n //\tat Object.Module._extensions..js (module.js:565:10)\n //\tat Module.load (module.js:473:32)\n //\tat tryModuleLoad (module.js:432:12)\n //\tat Function.Module._load (module.js:424:3)\n //\tat Module.runMain (module.js:590:10)\n //\tat run (bootstrap_node.js:394:7)\n //\tat startup (bootstrap_node.js:149:9)\n for (const individualError of error) {\n console.log(individualError);\n }\n //=> [Error: foo]\n //=> [Error: bar]\n //=> [Error: baz]\n ```\n */\n public [Symbol.iterator]: () => IterableIterator;\n constructor(errors: ReadonlyArray) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`);\n }\n const normalizedErrors: Error[] = errors.map(error => {\n if (error instanceof Error) {\n return error;\n }\n if (error !== null && typeof error === 'object') {\n // Handle plain error objects with message property and/or possibly other metadata\n return Object.assign(new Error(error.message), error);\n }\n return new Error(error);\n });\n let message = normalizedErrors\n .map(error => {\n // The `stack` property is not standardized, so we can't assume it exists\n return typeof error.stack === 'string' ? cleanInternalStack(cleanStack(error.stack)) : String(error);\n })\n .join('\\n');\n message = '\\n' + indentString(message, 4);\n super(message);\n this.name = 'AggregateError';\n Object.defineProperty(this, Symbol.iterator, {\n get: () => () => normalizedErrors[Symbol.iterator](),\n })\n }\n}\n"],"names":[],"mappings":"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"}