"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const error_stack_parser_1 = __importDefault(require("error-stack-parser")); const create_stack_filter_1 = __importDefault(require("./create-stack-filter")); const ORIGINAL_STACK_TRACE_LIMIT = Error.stackTraceLimit; const STACK_TRACE_LIMIT = 200; const STACK_TRACE_LINE_RE = /^\s+at\s+.*$/; exports.default = { isEnabled: false, _isStackTraceLine(stackLine) { return STACK_TRACE_LINE_RE.test(stackLine); }, _removeStackTraceLines(error) { if (!error.stack) { error.stack = ''; return; } const stackLines = error.stack.split('\n'); let stackLinesCount = 0; while (stackLinesCount < stackLines.length && this._isStackTraceLine(stackLines[stackLines.length - 1 - stackLinesCount])) stackLinesCount++; error.stack = stackLines.slice(0, stackLines.length - stackLinesCount).join('\n'); if (stackLinesCount > 0) error.stack += '\n'; }, _getFrames(error) { try { return error_stack_parser_1.default.parse(error); } catch (e) { return []; } }, _renderFrameInfo(frames) { return frames.map(frame => frame.getSource()).join('\n'); }, get enabled() { return this.isEnabled; }, set enabled(val) { if (this.isEnabled === val) return; this.isEnabled = val; // NOTE: Babel errors may have really deep stacks, // so we increase stack trace capacity if (this.isEnabled) Error.stackTraceLimit = STACK_TRACE_LIMIT; else Error.stackTraceLimit = ORIGINAL_STACK_TRACE_LIMIT; }, cleanError(error) { let frames = this._getFrames(error); if (!frames.length) return error; this._removeStackTraceLines(error); const stackFilterFn = (0, create_stack_filter_1.default)(ORIGINAL_STACK_TRACE_LIMIT); frames = frames.filter(stackFilterFn); error.stack += this._renderFrameInfo(frames); return error; }, }; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY2xlYW5pbmctaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvc3RhY2stY2xlYW5pbmctaG9vay5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRFQUFrRDtBQUNsRCxnRkFBc0Q7QUFHdEQsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQ3pELE1BQU0saUJBQWlCLEdBQVksR0FBRyxDQUFDO0FBQ3ZDLE1BQU0sbUJBQW1CLEdBQVUsY0FBYyxDQUFDO0FBR2xELGtCQUFlO0lBQ1gsU0FBUyxFQUFFLEtBQUs7SUFFaEIsaUJBQWlCLENBQUUsU0FBUztRQUN4QixPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsc0JBQXNCLENBQUUsS0FBSztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNkLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE9BQU87U0FDVjtRQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztRQUV4QixPQUFPLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7WUFDckgsZUFBZSxFQUFFLENBQUM7UUFFdEIsS0FBSyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRixJQUFJLGVBQWUsR0FBRyxDQUFDO1lBQ25CLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUUsS0FBSztRQUNiLElBQUk7WUFDQSxPQUFPLDRCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ04sT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxNQUFNO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBRSxHQUFHO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEdBQUc7WUFDdEIsT0FBTztRQUVYLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBRXJCLGtEQUFrRDtRQUNsRCxzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUztZQUNkLEtBQUssQ0FBQyxlQUFlLEdBQUcsaUJBQWlCLENBQUM7O1lBRTFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBRSxLQUFLO1FBQ2IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDZCxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsTUFBTSxhQUFhLEdBQUcsSUFBQSw2QkFBaUIsRUFBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVycm9yU3RhY2tQYXJzZXIgZnJvbSAnZXJyb3Itc3RhY2stcGFyc2VyJztcbmltcG9ydCBjcmVhdGVTdGFja0ZpbHRlciBmcm9tICcuL2NyZWF0ZS1zdGFjay1maWx0ZXInO1xuXG5cbmNvbnN0IE9SSUdJTkFMX1NUQUNLX1RSQUNFX0xJTUlUID0gRXJyb3Iuc3RhY2tUcmFjZUxpbWl0O1xuY29uc3QgU1RBQ0tfVFJBQ0VfTElNSVQgICAgICAgICAgPSAyMDA7XG5jb25zdCBTVEFDS19UUkFDRV9MSU5FX1JFICAgICAgICA9IC9eXFxzK2F0XFxzKy4qJC87XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGlzRW5hYmxlZDogZmFsc2UsXG5cbiAgICBfaXNTdGFja1RyYWNlTGluZSAoc3RhY2tMaW5lKSB7XG4gICAgICAgIHJldHVybiBTVEFDS19UUkFDRV9MSU5FX1JFLnRlc3Qoc3RhY2tMaW5lKTtcbiAgICB9LFxuXG4gICAgX3JlbW92ZVN0YWNrVHJhY2VMaW5lcyAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCFlcnJvci5zdGFjaykge1xuICAgICAgICAgICAgZXJyb3Iuc3RhY2sgPSAnJztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0YWNrTGluZXMgPSBlcnJvci5zdGFjay5zcGxpdCgnXFxuJyk7XG5cbiAgICAgICAgbGV0IHN0YWNrTGluZXNDb3VudCA9IDA7XG5cbiAgICAgICAgd2hpbGUgKHN0YWNrTGluZXNDb3VudCA8IHN0YWNrTGluZXMubGVuZ3RoICYmIHRoaXMuX2lzU3RhY2tUcmFjZUxpbmUoc3RhY2tMaW5lc1tzdGFja0xpbmVzLmxlbmd0aCAtIDEgLSBzdGFja0xpbmVzQ291bnRdKSlcbiAgICAgICAgICAgIHN0YWNrTGluZXNDb3VudCsrO1xuXG4gICAgICAgIGVycm9yLnN0YWNrID0gc3RhY2tMaW5lcy5zbGljZSgwLCBzdGFja0xpbmVzLmxlbmd0aCAtIHN0YWNrTGluZXNDb3VudCkuam9pbignXFxuJyk7XG5cbiAgICAgICAgaWYgKHN0YWNrTGluZXNDb3VudCA+IDApXG4gICAgICAgICAgICBlcnJvci5zdGFjayArPSAnXFxuJztcbiAgICB9LFxuXG4gICAgX2dldEZyYW1lcyAoZXJyb3IpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclN0YWNrUGFyc2VyLnBhcnNlKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIF9yZW5kZXJGcmFtZUluZm8gKGZyYW1lcykge1xuICAgICAgICByZXR1cm4gZnJhbWVzLm1hcChmcmFtZSA9PiBmcmFtZS5nZXRTb3VyY2UoKSkuam9pbignXFxuJyk7XG4gICAgfSxcblxuICAgIGdldCBlbmFibGVkICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFbmFibGVkO1xuICAgIH0sXG5cbiAgICBzZXQgZW5hYmxlZCAodmFsKSB7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZCA9PT0gdmFsKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaXNFbmFibGVkID0gdmFsO1xuXG4gICAgICAgIC8vIE5PVEU6IEJhYmVsIGVycm9ycyBtYXkgaGF2ZSByZWFsbHkgZGVlcCBzdGFja3MsXG4gICAgICAgIC8vIHNvIHdlIGluY3JlYXNlIHN0YWNrIHRyYWNlIGNhcGFjaXR5XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZClcbiAgICAgICAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IFNUQUNLX1RSQUNFX0xJTUlUO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBPUklHSU5BTF9TVEFDS19UUkFDRV9MSU1JVDtcbiAgICB9LFxuXG4gICAgY2xlYW5FcnJvciAoZXJyb3IpIHtcbiAgICAgICAgbGV0IGZyYW1lcyA9IHRoaXMuX2dldEZyYW1lcyhlcnJvcik7XG5cbiAgICAgICAgaWYgKCFmcmFtZXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuXG4gICAgICAgIHRoaXMuX3JlbW92ZVN0YWNrVHJhY2VMaW5lcyhlcnJvcik7XG5cbiAgICAgICAgY29uc3Qgc3RhY2tGaWx0ZXJGbiA9IGNyZWF0ZVN0YWNrRmlsdGVyKE9SSUdJTkFMX1NUQUNLX1RSQUNFX0xJTUlUKTtcblxuICAgICAgICBmcmFtZXMgPSBmcmFtZXMuZmlsdGVyKHN0YWNrRmlsdGVyRm4pO1xuXG4gICAgICAgIGVycm9yLnN0YWNrICs9IHRoaXMuX3JlbmRlckZyYW1lSW5mbyhmcmFtZXMpO1xuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9LFxufTtcbiJdfQ==