{"version":3,"file":"postmortem.mjs","sources":["../src/callsite/clone.coffee","../src/coffee.coffee","../src/source-map-support.coffee","../src/utils.coffee","../src/callsite/wrap.coffee","../src/callsite/index.coffee","../src/structured-stack-trace.coffee","../src/install.coffee","../src/index.coffee"],"sourcesContent":["CallSiteToString = ->\n  fileName = undefined\n  fileLocation = ''\n\n  if @isNative()\n    fileLocation = 'native'\n  else\n    fileName = @getScriptNameOrSourceURL()\n\n    if !fileName and @isEval()\n      fileLocation = @getEvalOrigin()\n      fileLocation += ', ' # Expecting source position to follow.\n\n    if fileName\n      fileLocation += fileName\n    else\n      # Source code does not originate from a file and is not native, but we\n      # can still get the source position inside the source string, e.g. in\n      # an eval string.\n      fileLocation += '<anonymous>'\n\n    lineNumber = @getLineNumber()\n\n    if lineNumber != null\n      fileLocation += ':' + lineNumber\n      columnNumber = @getColumnNumber()\n      if columnNumber\n        fileLocation += ':' + columnNumber\n\n  line = ''\n  functionName = @getFunctionName()\n  addSuffix = true\n  isConstructor = @isConstructor()\n  isMethodCall = !(@isToplevel() or isConstructor)\n\n  if isMethodCall\n    typeName = @getTypeName()\n    methodName = @getMethodName()\n    if functionName\n      if typeName and functionName.indexOf(typeName) != 0\n        line += typeName + '.'\n      line += functionName\n      if methodName and functionName.indexOf('.' + methodName) != functionName.length - (methodName.length) - 1\n        line += ' [as ' + methodName + ']'\n    else\n      line += typeName + '.' + (methodName or '<anonymous>')\n  else if isConstructor\n    line += 'new ' + (functionName or '<anonymous>')\n  else if functionName\n    line += functionName\n  else\n    line += fileLocation\n    addSuffix = false\n  if addSuffix\n    line += ' (' + fileLocation + ')'\n  line\n\nexport default (frame) ->\n  _frame = {}\n  proto = Object.getPrototypeOf frame\n\n  for name in Object.getOwnPropertyNames proto\n    do (name) ->\n      if /^(?:is|get)/.test name\n        _frame[name] = -> frame[name].call frame\n      else\n        _frame[name] = frame[name]\n\n  _frame.toString = CallSiteToString\n  _frame\n","_prepareStackTrace = Error.prepareStackTrace\n\nexport coffeeDetected = /formatSourcePosition\\(frame, getSourceMapping/.test _prepareStackTrace\nexport coffeePrepare  = if coffeeDetected then _prepareStackTrace else null\n","import {mapSourcePosition} from 'source-map-support'\n\nmapEvalOrigin = (origin) ->\n  # Most eval() calls are in this format\n  match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin)\n  if match\n    position = mapSourcePosition\n      source: match[2]\n      line:   match[3]\n      column: match[4]\n\n    return \"eval at #{match[1]} (#{position.source}:#{position.line}:#{position.column})\"\n\n  # Parse nested eval() calls using recursion\n  if match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin)\n    return \"eval at #{match[1]} (#{mapEvalOrigin match[2]})\"\n\n  # Make sure we still return useful information if we didn't find anything\n  origin\n\nexport {mapEvalOrigin, mapSourcePosition}\n","import fs from 'fs'\n\nimport {mapSourcePosition} from './source-map-support'\n\nexport nodeStackRegex   = /\\n    at [^(]+ \\((.*):(\\d+):(\\d+)\\)/\nexport coffeeStackRegex = /\\((.*)\\.coffee:(\\d+):(\\d+)\\)/\n\nexport prettyPrint = (err, opts = {}) ->\n  opts.colorize ?= false\n\n  match = nodeStackRegex.exec err.stack\n  match = coffeeStackRegex.exec err.stack unless match?\n\n  if match? and fs.existsSync match[1]\n    position = mapSourcePosition\n      source: match[1]\n      line:   match[2]\n      column: match[3]\n\n    data = fs.readFileSync position.source, 'utf8'\n    if line = data.split(/(?:\\r\\n|\\r|\\n)/)[position.line - 1]\n      console.error position.source + ':' + position.line\n      console.error line\n\n      if opts.colorize\n        caret = '\\x1B[31m^\\x1B[39m'\n      else\n        caret = '^'\n\n      console.error ((new Array(+position.column)).join ' ') + caret\n\n  console.error err.stack\n","import clone from './clone'\n\nimport {coffeePrepare}                    from '../coffee'\nimport {coffeeStackRegex}                 from '../utils'\nimport {mapSourcePosition, mapEvalOrigin} from '../source-map-support'\n\nexport default (err, frame) ->\n  # If using coffee 1.6.2+ executable we can derive source, line, and column\n  # from it's prepareStackTrace function\n  if coffeePrepare and match = coffeeStackRegex.exec coffeePrepare err, [frame]\n    _frame = clone frame\n    _frame.getFileName              = -> match[1] + '.coffee'\n    _frame.getLineNumber            = -> match[2]\n    _frame.getColumnNumber          = -> match[3] - 1\n    _frame.getScriptNameOrSourceURL = -> match[1] + '.coffee'\n    return _frame\n\n  # Most call sites will return the source file from getFileName(), but code\n  # passed to eval() ending in \"//@ sourceURL=...\" will return the source file\n  # from getScriptNameOrSourceURL() instead\n  source = frame.getFileName() or frame.getScriptNameOrSourceURL()\n\n  if source\n    line   = frame.getLineNumber()\n    column = frame.getColumnNumber() - 1\n\n    if line == 1 and not frame.isEval()\n      column -= 62;\n\n    position = mapSourcePosition\n      source: source\n      line:   line\n      column: column\n\n    _frame = clone frame\n    _frame.getFileName              = -> position.source\n    _frame.getLineNumber            = -> position.line\n    _frame.getColumnNumber          = -> position.column + 1\n    _frame.getScriptNameOrSourceURL = -> position.source\n    return _frame\n\n  # Code called using eval() needs special handling\n  origin = frame.isEval() and frame.getEvalOrigin()\n  if origin\n    origin = mapEvalOrigin origin\n\n    _frame = clone frame\n    _frame.getEvalOrigin = -> origin\n    return _frame\n\n  # If we get here then we were unable to change the source position\n  frame\n","import clone from './clone'\nimport wrap  from './wrap'\n\nexport {\n  clone\n  wrap\n}\n","toJSON = ->\n  result = {}\n  Object.keys(@).forEach (key) =>\n    val = @[key]\n    if key is 'toJSON'\n      return\n    else if key is 'this'\n      result[key] = '' + val\n    else if typeof val is 'function'\n      result[key] = '' + val\n    else\n      result[key] = @[key]\n  result\n\nstructuredStackTrace = (err, stack) ->\n  for frame in stack\n    do (frame) ->\n      _frame = Object.create {}, frame\n\n      _frame['this']  = frame.getThis()\n      try\n        _frame.type     = frame.getTypeName()\n      catch err\n        _frame.type   = ''\n      _frame.isTop    = frame.isToplevel()\n      _frame.isEval   = frame.isEval()\n      _frame.origin   = frame.getEvalOrigin()\n      _frame.script   = frame.getScriptNameOrSourceURL()\n      _frame.fun      = frame.getFunction()\n      _frame.name     = frame.getFunctionName()\n      _frame.method   = frame.getMethodName()\n      _frame.path     = frame.getFileName()\n      _frame.line     = frame.getLineNumber()\n      _frame.col      = frame.getColumnNumber()\n      _frame.isNative = frame.isNative()\n      _frame.pos      = frame.getPosition()\n      _frame.isCtor   = frame.isConstructor()\n      _frame.file     = path.basename frame.path\n      _frame.toJSON   = toJSON\n      _frame\n\nexport default structuredStackTrace\n","import './coffee'\nimport structured    from './structured-stack-trace'\nimport wrap          from './callsite/wrap'\nimport {prettyPrint} from './utils'\n\nexport default (opts = {}) ->\n  opts.handleUncaughtExceptions ?= true\n  opts.structuredStackTrace     ?= false\n\n  if opts.handleUncaughtExceptions\n    process.on 'uncaughtException', (err) ->\n      prettyPrint err, colorize: process.stdout.isTTY\n      process.exit 1\n\n  Error.prepareStackTrace = (err, stack) ->\n    # rewrite callsites with source map info when possible\n    _stack = (wrap err, frame for frame in stack)\n\n    # sentry expects structuredStackTrace\n    if opts.structuredStackTrace\n      err.structuredStackTrace = structured err, stack\n\n    # return formatted stacktrace\n    err + ('\\n    at ' + frame for frame in _stack).join ''\n","import * as callsite        from './callsite'\nimport * as coffee          from './coffee'\nimport * as utils           from './utils'\nimport install              from './install'\nimport structuredStackTrace from './structured-stack-trace'\nimport {mapEvalOrigin, mapSourcePosition} from './source-map-support'\n\nexport {\n  callsite\n  coffee\n  install\n  mapEvalOrigin\n  mapSourcePosition\n  structuredStackTrace\n  utils\n}\n"],"names":[],"mappings":"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"}