{"version":3,"names":["Stack","Frame","__SystemJSRewritingHack","_export","default","setters","_srcExternalSourceMapMinJs","sourcemap","execute","_recorder_","_src_client_utils_stack_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","defaultErrorMessage","constructor","omitFn","max","Error","stackTraceLimit","Infinity","captureStackTrace","_error","stack","_frames","_computeFrames","desc","lines","slice","map","line","frames","getFrame","id","getFrames","from","to","toString","join","_desc","_extractInfos","endsWith","extractSourceInfo","result","exec","info","_getFileLineChar","_applyLocationInfo","isNamedCall","namedCall","funcDesc","location","locations","getLocations","evalInfo","sourceLocation","_extractEvalInfos","info2","_getFunction","_applyFunctionInfo","lively","warn","_applyEvalLocationInfo","_applyEvalFunctionInfo","locationDesc","reverseString","str","split","reverse","reversedDesc","reversedFileLineChar","char","transpiled","file","parseInt","_char","_line","_transpiled","_file","_evalChar","_evalLine","_evalTranspiled","_evalFile","newAsyncFunc","isNew","isAsync","func","_new","_async","_func","_evalNew","_evalAsync","_evalFunc","_determineSourceInfo","sourceMappingURL","sourceMapURL","files","exists","_sourceLoc","column","source","sourceMap","fetchJSON","smc","SourceMapConsumer","originalPositionFor","livelyPath","srcPath","replaceAll","async","new","getSourceLocBabelStyle","undefined","start","end","getSourceLoc","getSourceLine","getSourceChar","character","evalAsync","evalNew","evalFunc","evalFile","evalTranspiled","evalLine","evalChar","openInBrowser","browser","replace"],"sources":["stack.js"],"sourcesContent":["\nimport sourcemap from 'src/external/source-map.min.js';\n\n/*MD # Stack MD*/\nexport default class Stack {\n  static get defaultErrorMessage() {\n    return 'Error for stack';\n  }\n  constructor({ omitFn = Stack, max }) {\n    Error.stackTraceLimit = Infinity;\n    if (Error.captureStackTrace) {\n      Error.captureStackTrace(this._error = {}, omitFn);\n    }\n    \n    if (!this._error || !this._error.stack) return\n    this._frames = this._computeFrames(this._error.stack || [], max) || [];\n  }\n  _computeFrames(desc, max) {\n    return desc.lines().slice(1, max).map(line => new Frame(line));\n  }\n  get frames() {\n    return this._frames || [];\n  }\n  getFrame(id = 1) {\n    return this.frames[id];\n  }\n  getFrames(from, to) {\n    return this.frames.slice(from, to);\n  }\n  toString() {\n    return this.frames.join('\\n');\n  }\n}\n\n/*MD # Frame\nView some examples at [regex101](https://regex101.com/r/pSppPm/3)\nMD*/\nexport class Frame {\n  constructor(desc) {\n    this._desc = desc;\n    this._extractInfos(this._desc);\n  }\n\n  _extractInfos(desc) {\n    // just file, transpiled, line, char given -> no parens around\n    // \" at https://lively-kernel.org/lively4/aexpr/src/external/mocha.js?1583757762700:4694:7\"\n    if (!this._desc.endsWith(')')) {\n      const extractSourceInfo = /^\\s+at\\s(.*)$/;\n      const result = extractSourceInfo.exec(desc);\n      // lively.openInspector(result)\n      const info = this._getFileLineChar(result[1]);\n      this._applyLocationInfo(info);\n\n      return;\n    }\n\n    // e.g. \" at Function.stack (https://lively-kernel.org/lively4/aexpr/src/client/lively.js!transpiled:2548:19)\"\n    const isNamedCall = /^\\s+at\\s([^\\(]*)\\s\\((.*)\\)$/;\n    let namedCall;\n    if ((namedCall = isNamedCall.exec(desc)) !== null) {\n      const [, funcDesc, location] = namedCall;\n\n      let locations;\n      // \" at doEvaluate (eval at loadJavaScript (https://lively-kernel.org/lively4/aexpr/src/client/boot.js:25:3), &lt;anonymous>:1554:13)\"\n      // can also have no infos on function name of eval call:\n      // \"    at eval (eval at <anonymous> (https://lively-kernel.org/lively4/aexpr/test/stack-test.js!transpiled), <anonymous>:8:19)\"\n      const getLocations = /^(?:eval\\sat\\s(.*\\)),\\s)?(.*)$/;\n      if ((locations = getLocations.exec(location)) !== null) {\n        const [, evalInfo, sourceLocation] = locations;\n\n        if (evalInfo) {\n          this._extractEvalInfos(evalInfo);\n        }\n\n        const info = this._getFileLineChar(sourceLocation);\n        this._applyLocationInfo(info);\n      }\n\n      const info2 = this._getFunction(funcDesc);\n      this._applyFunctionInfo(info2);\n\n      return;\n    }\n\n    lively.warn('could not analyse frame', desc);\n  }\n\n  _extractEvalInfos(desc) {\n    const isNamedCall = /^([^\\(]*)\\s\\((.*)\\)$/;\n    let namedCall;\n    if ((namedCall = isNamedCall.exec(desc)) !== null) {\n      const [, funcDesc, location] = namedCall;\n\n      const info = this._getFileLineChar(location);\n      this._applyEvalLocationInfo(info);\n\n      const info2 = this._getFunction(funcDesc);\n      this._applyEvalFunctionInfo(info2);\n    }\n  }\n\n  /*MD ## location utils MD*/\n  _getFileLineChar(locationDesc) {\n    function reverseString(str) {\n      return str.split('').reverse().join('');\n    }\n\n    const reversedDesc = reverseString(locationDesc);\n    const reversedFileLineChar = /^(?:(\\d+):)?(?:(\\d+):)?(?:(delipsnart)!)?(.*)$/;\n\n    const [, char, line, transpiled, file] = reversedFileLineChar.exec(reversedDesc);\n\n    return {\n      char: char && parseInt(reverseString(char)),\n      line: line && parseInt(reverseString(line)),\n      transpiled: !!transpiled,\n      file: reverseString(file)\n    };\n  }\n\n  _applyLocationInfo({ char, line, transpiled, file }) {\n    this._char = char;\n    this._line = line;\n    this._transpiled = transpiled;\n    this._file = file;\n  }\n\n  _applyEvalLocationInfo({ char, line, transpiled, file }) {\n    this._evalChar = char;\n    this._evalLine = line;\n    this._evalTranspiled = transpiled;\n    this._evalFile = file;\n  }\n\n  /*MD ## func utils MD*/\n  _getFunction(desc) {\n    const newAsyncFunc = /^(?:(new)\\s)?(?:(async)\\s)?(.+)$/;\n\n    const [, isNew, isAsync, func] = newAsyncFunc.exec(desc);\n\n    return {\n      isNew: !!isNew,\n      isAsync: !!isAsync,\n      func\n    };\n  }\n\n  _applyFunctionInfo({ isNew, isAsync, func }) {\n    this._new = isNew;\n    this._async = isAsync;\n    this._func = func;\n  }\n\n  _applyEvalFunctionInfo({ isNew, isAsync, func }) {\n    this._evalNew = isNew;\n    this._evalAsync = isAsync;\n    this._evalFunc = func;\n  }\n  \n  async _determineSourceInfo() {\n    const sourceMappingURL = this.sourceMapURL();\n    if(!sourceMappingURL || !(await lively.files.exists(sourceMappingURL))) {\n      if(this._file !== \"<anonymous>\") {\n        this._sourceLoc = { line: this._line, column: this._char, source: this._file };\n      }\n      return;\n    } \n\n    var sourceMap = await sourceMappingURL.fetchJSON();\n    // guard against trash source map\n    if (sourceMap == null) {\n      this._sourceLoc = { line: this._line, column: this._char, source: this._file };\n      return \n    }\n    \n    var smc = sourcemap.SourceMapConsumer(sourceMap);\n    this._sourceLoc = smc.originalPositionFor({\n      line: parseInt(this._line),\n      column: parseInt(this._char)\n    });\n  }\n\n  sourceMapURL() {\n    if (this._file === \"<anonymous>\") return;\n\n    const [livelyPath, srcPath] = this._file.split(\"/src/\");\n\n    if (!srcPath) {\n      return;\n    }\n\n    const sourceMappingURL = livelyPath + \"/.transpiled/\" + (\"src/\" + srcPath).replaceAll(\"/\", \"_\") + \".map.json\";\n    // return \"cached://\" + sourceMappingURL; // #TODO bug with markus?\n    return sourceMappingURL;\n  }\n\n  /*MD ## func MD*/\n  /**\n   * returns Bool\n   */\n\n  get async() {\n    return this._async || false;\n  }\n\n  get new() {\n    return this._new || false;\n  }\n\n  get func() {\n    return this._func;\n  }\n\n  /*MD ## location MD*/\n  get file() {\n    return this._file;\n  }\n\n  get transpiled() {\n    return this._transpiled || false;\n  }\n\n  get line() {\n    return this._line;\n  }\n\n  get char() {\n    return this._char;\n  }\n\n  async getSourceLocBabelStyle() {\n    if (!this._sourceLoc) {\n      await this._determineSourceInfo();\n      if (!this._sourceLoc) return undefined;\n    }\n    const location = { line: this._sourceLoc.line, column: this._sourceLoc.column };\n    return { start: location, end: location, file: this._sourceLoc.source };\n  }\n\n  async getSourceLoc() {\n    if (!this._sourceLoc) {\n      await this._determineSourceInfo();\n    }\n    return this._sourceLoc;\n  }\n\n  async getSourceLine() {\n    if (!this._sourceLoc.line) {\n      await this._determineSourceInfo();\n    }\n    return this._sourceLoc.line;\n  }\n\n  async getSourceChar() {\n    if (!this._sourceLoc.character) {\n      await this._determineSourceInfo();\n    }\n    return this._sourceLoc.column;\n  }\n\n  /*MD ## eval func MD*/\n  /**\n   * returns Bool\n   */\n  get evalAsync() {\n    return this._evalAsync || false;\n  }\n\n  get evalNew() {\n    return this._evalNew || false;\n  }\n\n  get evalFunc() {\n    return this._evalFunc;\n  }\n\n  /*MD ## eval location MD*/\n  get evalFile() {\n    return this._evalFile;\n  }\n\n  get evalTranspiled() {\n    return this._evalTranspiled;\n  }\n\n  get evalLine() {\n    return this._evalLine;\n  }\n\n  get evalChar() {\n    return this._evalChar;\n  }\n\n  /*MD ## utils MD*/\n  // #TODO: implement\n  openInBrowser(browser) {\n    // #TODO: requires back mapping of source code information #SourceMaps\n  }\n\n  toString() {\n    return this._desc.replace(/\\s+at\\s/, '');\n  }\n\n}"],"mappings":"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"}