@tapjs/stack
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"call-site-like.d.ts","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EAGT,MAAM,YAAY,CAAA;AAInB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAKD,qBAAa,YAAY;;IACvB,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;IAMvD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;IACrD,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,eAAe,CAAA;IAI3B,IAAI,QAAQ,8BAEX;IAED,IAAI,gBAAgB,8BAOnB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAiB9B;gBAGC,CAAC,EAAE,KAAK,GAAG,IAAI,EACf,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,QAAQ;IA0LxC,QAAQ,CAAC,OAAO,UAAQ,GAAG,MAAM;IA+HjC,MAAM,IAAI,gBAAgB;CAoD3B"} | ||
| {"version":3,"file":"call-site-like.d.ts","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EAGT,MAAM,YAAY,CAAA;AAInB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAKD,qBAAa,YAAY;;IACvB,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;IAMvD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;IACrD,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,eAAe,CAAA;IAI3B,IAAI,QAAQ,8BAEX;IAED,IAAI,gBAAgB,8BAOnB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAiB9B;gBAEW,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,QAAQ;IAwLnE,QAAQ,CAAC,OAAO,UAAQ,GAAG,MAAM;IA+HjC,MAAM,IAAI,gBAAgB;CAmD3B"} |
@@ -92,4 +92,3 @@ "use strict"; | ||
| } | ||
| this.lineNumber = | ||
| c.lineNumber === undefined ? null : c.lineNumber; | ||
| this.lineNumber = c.lineNumber === undefined ? null : c.lineNumber; | ||
| this.columnNumber = | ||
@@ -96,0 +95,0 @@ c.columnNumber === undefined ? null : c.columnNumber; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"call-site-like.js","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"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","sourcesContent":["import { findSourceMap, SourceMap } from 'module'\nimport type { SourceMapping } from 'module'\nimport { isAbsolute, relative, resolve } from 'path'\nimport { fileURLToPath } from 'url'\nimport {\n Compiled,\n isCompiledCallSiteLine,\n parseCallSiteLine,\n} from './parse.js'\n\nconst methodRe = /^(.*?) \\[as (.*?)\\]$/\n\nexport interface CallSiteLikeJSON {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n evalOrigin?: CallSiteLikeJSON\n typeName?: string\n methodName?: string\n functionName?: string\n isEval?: true\n isNative?: true\n isToplevel?: true\n isConstructor?: true\n generated?: {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n }\n}\n\nexport interface GeneratedResult {\n fileName?: string | null\n lineNumber?: number | null\n columnNumber?: number | null\n}\n\nconst isCallSite = (c: any): c is NodeJS.CallSite =>\n !!c && typeof c === 'object' && c.constructor?.name === 'CallSite'\n\nexport class CallSiteLike {\n static prepareStackTrace(e: Error, c: NodeJS.CallSite[]) {\n return c.map(c => new CallSiteLike(e, c))\n }\n\n #fileName?: string | null\n #cwd?: string\n lineNumber: ReturnType<NodeJS.CallSite['getLineNumber']>\n columnNumber: ReturnType<NodeJS.CallSite['getColumnNumber']>\n this: ReturnType<NodeJS.CallSite['getThis']>\n evalOrigin?: CallSiteLike\n function: ReturnType<NodeJS.CallSite['getFunction']>\n typeName: ReturnType<NodeJS.CallSite['getTypeName']>\n methodName: ReturnType<NodeJS.CallSite['getMethodName']>\n functionName: ReturnType<NodeJS.CallSite['getFunctionName']>\n isEval: ReturnType<NodeJS.CallSite['isEval']>\n isNative: ReturnType<NodeJS.CallSite['isNative']>\n isToplevel: ReturnType<NodeJS.CallSite['isToplevel']>\n isConstructor: ReturnType<NodeJS.CallSite['isConstructor']>\n generated?: GeneratedResult\n #sourceMap?: SourceMap\n\n // normalize and relativize filename if cwd is set\n get fileName() {\n return this.#relativize(this.#fileName)\n }\n\n get absoluteFileName() {\n if (!this.#fileName) return this.#fileName\n else if (this.#fileName.startsWith('file://')) {\n return fileURLToPath(this.#fileName)\n } else {\n return this.#fileName\n }\n }\n\n get cwd(): string | undefined {\n return this.#cwd\n }\n\n set cwd(cwd: string | undefined) {\n if (cwd === undefined) {\n if (this.generated) {\n this.generated.fileName = this.#derelativize(\n this.generated?.fileName,\n )\n }\n }\n this.#cwd = cwd?.replace(/\\\\/g, '/')\n if (cwd !== undefined) {\n if (this.generated) {\n this.generated.fileName = this.#relativize(\n this.generated?.fileName,\n )\n }\n }\n if (this.evalOrigin) this.evalOrigin.cwd = cwd\n }\n\n constructor(\n e: Error | null,\n c: NodeJS.CallSite | string | Compiled,\n ) {\n if (typeof c === 'string') {\n c = parseCallSiteLine(c)\n }\n\n if (isCallSite(c)) {\n const fileName = c.getFileName()\n this.#fileName = typeof fileName === 'string' ? fileName : null\n this.lineNumber = c.getLineNumber()\n this.columnNumber = c.getColumnNumber()\n this.this = c.getThis()\n const evalOrigin = c.getEvalOrigin()\n if (evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, evalOrigin)\n }\n this.function = c.getFunction()\n this.typeName = c.getTypeName()\n this.methodName = c.getMethodName()\n this.functionName = c.getFunctionName()\n this.isEval = c.isEval()\n this.isNative = c.isNative()\n this.isToplevel = c.isToplevel()\n this.isConstructor = c.isConstructor()\n } else if (isCompiledCallSiteLine(c)) {\n // compiled object from stack line\n this.isEval = !!c.isEval\n this.isToplevel = false\n if (c.evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, c.evalOrigin)\n }\n\n this.lineNumber =\n c.lineNumber === undefined ? null : c.lineNumber\n this.columnNumber =\n c.columnNumber === undefined ? null : c.columnNumber\n const fileName = c.fileName\n this.#fileName = typeof fileName === 'string' ? fileName : null\n const { generated } = c\n if (generated) {\n this.generated = generated\n this.generated.fileName = this.#relativize(generated.fileName)\n }\n let fname = c.fname?.trim()\n let method: null | string = null\n this.isNative = !!c.isNative\n\n if (fname) {\n if (fname.startsWith('new ')) {\n this.isConstructor = true\n fname = fname.substring('new '.length).trim()\n } else {\n this.isConstructor = false\n }\n this.methodName = null\n const methodMatch = fname.match(methodRe) as [\n string,\n string,\n string,\n ]\n if (methodMatch) {\n fname = methodMatch[1]\n method = methodMatch[2]\n }\n const dots = fname.split('.')\n const m = dots.pop()\n if (m !== undefined) {\n this.typeName = dots.join('.').trim() || null\n this.methodName = method || m\n if (this.methodName.match(/^get |set /)) {\n this.methodName = this.methodName.substring(4)\n }\n this.functionName = m\n // we know it's not undefined, but TS is afraid of pop()\n /* c8 ignore start */\n } else {\n this.functionName = null\n this.typeName = null\n }\n /* c8 ignore stop */\n } else {\n this.isConstructor = false\n this.typeName = null\n this.functionName = null\n this.methodName = null\n }\n } else {\n throw new Error('invalid call site information provided')\n }\n\n // This is a slight deviation from the CallSite API, but it's very useful\n // to have a field that's the actual function with type and method name.\n if (\n this.typeName &&\n this.functionName &&\n !this.functionName.startsWith(this.typeName)\n ) {\n this.functionName = `${this.typeName}.${this.functionName}`\n } else if (this.functionName === this.methodName) {\n this.methodName = null\n }\n\n // We only do the sourcemap lookup if we're parsing from a CallSite\n // If we get it from an Error stack line, then Node has already done\n // the mapping for us, and when ts-node (and other in-place\n // transpilers) create JavaScript, they use the same filename, leading\n // to an incorrect double offset,.\n if (\n this.#fileName &&\n isCallSite(c) &&\n !this.#sourceMap &&\n !this.#fileName.startsWith('node:')\n ) {\n // Passing an object that isn't an actual Error object to\n // findSourceMap causes problems in node 16\n this.#sourceMap = findSourceMap(this.#fileName)\n if (this.#sourceMap && typeof this.lineNumber === 'number') {\n // SourceMap.findEntry doesn't actually return the line/column\n // number, despite the property names, but rather the zero-indexed\n // line/column start of a mapping range, and must be looked up\n // using the zero-indexed line and column.\n // To find the mapping, we look it up with the zero-indexed\n // line/col, then figure out how far our line/col is from the\n // mapping, and apply that same offset to the start of the origin\n // in the mapping.\n const payload = this.#sourceMap.findEntry(\n // safety bounds around numbers here, impossible to hit\n // if we're looking up actual call sites though.\n /* c8 ignore start */\n Math.max(0, this.lineNumber - 1),\n Math.max(0, (this.columnNumber || 0) - 1),\n /* c8 ignore stop */\n ) as undefined | SourceMapping\n if (payload) {\n const offset: [number, number] = [\n this.lineNumber - payload.generatedLine,\n /* c8 ignore start */\n (this.columnNumber || 1) - payload.generatedColumn,\n /* c8 ignore stop */\n ]\n const originalLine = payload.originalLine + offset[0]\n const originalColumn = payload.originalColumn + offset[1]\n const genFilename = this.#relativize(this.#fileName)\n this.generated = {\n /* c8 ignore start */\n fileName: this.#relativize(genFilename || null),\n /* c8 ignore stop */\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n }\n\n this.#fileName = payload.originalSource\n this.lineNumber = originalLine\n this.columnNumber = originalColumn\n }\n }\n }\n }\n\n #relativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n else f = f.replace(/\\\\/g, '/')\n try {\n const rel = relative(this.#cwd, f)\n return rel.length < f.length ? rel : f\n } catch {\n return f\n }\n }\n #derelativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n try {\n return resolve(this.#cwd, f)\n } catch {\n return f\n }\n }\n\n toString(jsStyle = false): string {\n // in js style mode, use the origin source file if it is within\n // our cwd. Otherwise, use the generated source location.\n const useGen =\n jsStyle &&\n this.generated?.fileName &&\n this.fileName &&\n this.generated.fileName !== this.fileName &&\n (isAbsolute(this.fileName) || this.fileName.startsWith('..'))\n const { fileName, lineNumber, columnNumber, generated } =\n useGen && this.generated ?\n {\n fileName: this.#derelativize(this.generated.fileName),\n lineNumber: this.generated.lineNumber,\n columnNumber: this.generated.columnNumber,\n generated: undefined,\n }\n : jsStyle ?\n {\n fileName: this.#derelativize(this.fileName),\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n generated: undefined,\n }\n : this\n const loc = { fileName, lineNumber, columnNumber, generated }\n for (const l of [loc, loc.generated]) {\n if (l?.fileName) {\n l.fileName =\n jsStyle ?\n this.#derelativize(l.fileName)\n : this.#relativize(l.fileName)\n }\n }\n\n let fname = this.functionName || ''\n let tn = ''\n let tnGet = ''\n let tnSet = ''\n if (this.typeName) {\n const mn = this.methodName || '<anonymous>'\n tn = this.typeName + '.' + mn\n tnGet = this.typeName + '.get ' + mn\n tnSet = this.typeName + '.set ' + mn\n }\n if (!fname && tn) {\n fname = tn\n }\n const mn = this.methodName\n if (\n fname &&\n tn &&\n mn &&\n fname !== tn &&\n fname !== tnGet &&\n fname !== tnSet\n ) {\n fname += ` [as ${mn}]`\n }\n if (this.isConstructor && fname) {\n fname = `new ${fname}`\n }\n let ev = ''\n const nat = this.isNative ? 'native' : ''\n let file = loc.fileName || ''\n const hasLC = loc.lineNumber && loc.columnNumber\n if (this.evalOrigin) {\n ev = `eval at ${this.evalOrigin.toString(jsStyle)}`\n if (hasLC) {\n const f = loc.fileName || '<anonymous>'\n let lr = `${f}:${loc.lineNumber}:${loc.columnNumber}`\n if (loc.generated && loc.generated.fileName) {\n const f = loc.generated.fileName\n const { lineNumber: l, columnNumber: c } = loc.generated\n lr = `${f}:${l}:${c} (${lr})`\n }\n ev += `, ${lr}`\n }\n // should always have an fname at this point\n /* c8 ignore start */\n ev = fname ? ` (${ev})` : ev\n /* c8 ignore stop */\n return `${fname}${ev}`\n }\n\n if (file || hasLC) {\n if (hasLC) {\n /* c8 ignore start */\n file = file || '<anonymous>'\n /* c8 ignore stop */\n file += `:${loc.lineNumber}:${loc.columnNumber}`\n }\n } else if (nat) {\n file = 'native'\n // impossible in normal cases\n /* c8 ignore start */\n } else {\n file = ''\n }\n /* c8 ignore stop */\n let g = ''\n if (loc.generated && loc.generated.fileName) {\n const { fileName, lineNumber, columnNumber } = loc.generated\n g = fileName\n /* c8 ignore start */\n if (!g) g = ''\n /* c8 ignore stop */\n if (g === loc.fileName) g = ''\n if (g) {\n if (\n typeof lineNumber === 'number' &&\n typeof columnNumber === 'number'\n ) {\n g += `:${lineNumber}:${columnNumber}`\n }\n if (ev || fname) {\n g = ` (${g})`\n }\n }\n }\n if (file && (ev || fname || g)) {\n file = ` (${file})`\n }\n const pre = jsStyle ? ' at ' : ''\n return `${pre}${fname}${ev}${g}${file}`\n }\n\n toJSON(): CallSiteLikeJSON {\n const {\n fileName,\n lineNumber,\n columnNumber,\n evalOrigin,\n typeName,\n methodName,\n functionName,\n isEval,\n isNative,\n isToplevel,\n isConstructor,\n generated,\n } = this\n const json: CallSiteLikeJSON = {}\n if (fileName !== null) json.fileName = fileName\n if (lineNumber || lineNumber === 0) json.lineNumber = lineNumber\n if (columnNumber || columnNumber === 0)\n json.columnNumber = columnNumber\n if (evalOrigin) json.evalOrigin = evalOrigin.toJSON()\n\n if (typeName !== null) {\n json.typeName = typeName\n }\n\n if (methodName !== null) json.methodName = methodName\n if (functionName !== null) json.functionName = functionName\n if (isEval) json.isEval = isEval\n if (isNative) json.isNative = isNative\n if (isToplevel) json.isToplevel = isToplevel\n if (isConstructor) json.isConstructor = isConstructor\n if (generated && generated.fileName) {\n const f = this.#relativize(generated.fileName)\n if (\n f &&\n typeof f === 'string' &&\n (f !== json.fileName || f === '<anonymous>')\n ) {\n const gen: Record<string, string | number> = {}\n gen.fileName = f\n if (generated.lineNumber)\n gen.lineNumber = generated.lineNumber\n if (generated.columnNumber)\n gen.columnNumber = generated.columnNumber\n if (Object.keys(gen).length > 0) {\n json.generated = gen\n }\n }\n }\n return json\n }\n}\n"]} | ||
| {"version":3,"file":"call-site-like.js","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"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","sourcesContent":["import { findSourceMap, SourceMap } from 'module'\nimport type { SourceMapping } from 'module'\nimport { isAbsolute, relative, resolve } from 'path'\nimport { fileURLToPath } from 'url'\nimport {\n Compiled,\n isCompiledCallSiteLine,\n parseCallSiteLine,\n} from './parse.js'\n\nconst methodRe = /^(.*?) \\[as (.*?)\\]$/\n\nexport interface CallSiteLikeJSON {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n evalOrigin?: CallSiteLikeJSON\n typeName?: string\n methodName?: string\n functionName?: string\n isEval?: true\n isNative?: true\n isToplevel?: true\n isConstructor?: true\n generated?: {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n }\n}\n\nexport interface GeneratedResult {\n fileName?: string | null\n lineNumber?: number | null\n columnNumber?: number | null\n}\n\nconst isCallSite = (c: any): c is NodeJS.CallSite =>\n !!c && typeof c === 'object' && c.constructor?.name === 'CallSite'\n\nexport class CallSiteLike {\n static prepareStackTrace(e: Error, c: NodeJS.CallSite[]) {\n return c.map(c => new CallSiteLike(e, c))\n }\n\n #fileName?: string | null\n #cwd?: string\n lineNumber: ReturnType<NodeJS.CallSite['getLineNumber']>\n columnNumber: ReturnType<NodeJS.CallSite['getColumnNumber']>\n this: ReturnType<NodeJS.CallSite['getThis']>\n evalOrigin?: CallSiteLike\n function: ReturnType<NodeJS.CallSite['getFunction']>\n typeName: ReturnType<NodeJS.CallSite['getTypeName']>\n methodName: ReturnType<NodeJS.CallSite['getMethodName']>\n functionName: ReturnType<NodeJS.CallSite['getFunctionName']>\n isEval: ReturnType<NodeJS.CallSite['isEval']>\n isNative: ReturnType<NodeJS.CallSite['isNative']>\n isToplevel: ReturnType<NodeJS.CallSite['isToplevel']>\n isConstructor: ReturnType<NodeJS.CallSite['isConstructor']>\n generated?: GeneratedResult\n #sourceMap?: SourceMap\n\n // normalize and relativize filename if cwd is set\n get fileName() {\n return this.#relativize(this.#fileName)\n }\n\n get absoluteFileName() {\n if (!this.#fileName) return this.#fileName\n else if (this.#fileName.startsWith('file://')) {\n return fileURLToPath(this.#fileName)\n } else {\n return this.#fileName\n }\n }\n\n get cwd(): string | undefined {\n return this.#cwd\n }\n\n set cwd(cwd: string | undefined) {\n if (cwd === undefined) {\n if (this.generated) {\n this.generated.fileName = this.#derelativize(\n this.generated?.fileName,\n )\n }\n }\n this.#cwd = cwd?.replace(/\\\\/g, '/')\n if (cwd !== undefined) {\n if (this.generated) {\n this.generated.fileName = this.#relativize(\n this.generated?.fileName,\n )\n }\n }\n if (this.evalOrigin) this.evalOrigin.cwd = cwd\n }\n\n constructor(e: Error | null, c: NodeJS.CallSite | string | Compiled) {\n if (typeof c === 'string') {\n c = parseCallSiteLine(c)\n }\n\n if (isCallSite(c)) {\n const fileName = c.getFileName()\n this.#fileName = typeof fileName === 'string' ? fileName : null\n this.lineNumber = c.getLineNumber()\n this.columnNumber = c.getColumnNumber()\n this.this = c.getThis()\n const evalOrigin = c.getEvalOrigin()\n if (evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, evalOrigin)\n }\n this.function = c.getFunction()\n this.typeName = c.getTypeName()\n this.methodName = c.getMethodName()\n this.functionName = c.getFunctionName()\n this.isEval = c.isEval()\n this.isNative = c.isNative()\n this.isToplevel = c.isToplevel()\n this.isConstructor = c.isConstructor()\n } else if (isCompiledCallSiteLine(c)) {\n // compiled object from stack line\n this.isEval = !!c.isEval\n this.isToplevel = false\n if (c.evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, c.evalOrigin)\n }\n\n this.lineNumber = c.lineNumber === undefined ? null : c.lineNumber\n this.columnNumber =\n c.columnNumber === undefined ? null : c.columnNumber\n const fileName = c.fileName\n this.#fileName = typeof fileName === 'string' ? fileName : null\n const { generated } = c\n if (generated) {\n this.generated = generated\n this.generated.fileName = this.#relativize(generated.fileName)\n }\n let fname = c.fname?.trim()\n let method: null | string = null\n this.isNative = !!c.isNative\n\n if (fname) {\n if (fname.startsWith('new ')) {\n this.isConstructor = true\n fname = fname.substring('new '.length).trim()\n } else {\n this.isConstructor = false\n }\n this.methodName = null\n const methodMatch = fname.match(methodRe) as [\n string,\n string,\n string,\n ]\n if (methodMatch) {\n fname = methodMatch[1]\n method = methodMatch[2]\n }\n const dots = fname.split('.')\n const m = dots.pop()\n if (m !== undefined) {\n this.typeName = dots.join('.').trim() || null\n this.methodName = method || m\n if (this.methodName.match(/^get |set /)) {\n this.methodName = this.methodName.substring(4)\n }\n this.functionName = m\n // we know it's not undefined, but TS is afraid of pop()\n /* c8 ignore start */\n } else {\n this.functionName = null\n this.typeName = null\n }\n /* c8 ignore stop */\n } else {\n this.isConstructor = false\n this.typeName = null\n this.functionName = null\n this.methodName = null\n }\n } else {\n throw new Error('invalid call site information provided')\n }\n\n // This is a slight deviation from the CallSite API, but it's very useful\n // to have a field that's the actual function with type and method name.\n if (\n this.typeName &&\n this.functionName &&\n !this.functionName.startsWith(this.typeName)\n ) {\n this.functionName = `${this.typeName}.${this.functionName}`\n } else if (this.functionName === this.methodName) {\n this.methodName = null\n }\n\n // We only do the sourcemap lookup if we're parsing from a CallSite\n // If we get it from an Error stack line, then Node has already done\n // the mapping for us, and when ts-node (and other in-place\n // transpilers) create JavaScript, they use the same filename, leading\n // to an incorrect double offset,.\n if (\n this.#fileName &&\n isCallSite(c) &&\n !this.#sourceMap &&\n !this.#fileName.startsWith('node:')\n ) {\n // Passing an object that isn't an actual Error object to\n // findSourceMap causes problems in node 16\n this.#sourceMap = findSourceMap(this.#fileName)\n if (this.#sourceMap && typeof this.lineNumber === 'number') {\n // SourceMap.findEntry doesn't actually return the line/column\n // number, despite the property names, but rather the zero-indexed\n // line/column start of a mapping range, and must be looked up\n // using the zero-indexed line and column.\n // To find the mapping, we look it up with the zero-indexed\n // line/col, then figure out how far our line/col is from the\n // mapping, and apply that same offset to the start of the origin\n // in the mapping.\n const payload = this.#sourceMap.findEntry(\n // safety bounds around numbers here, impossible to hit\n // if we're looking up actual call sites though.\n /* c8 ignore start */\n Math.max(0, this.lineNumber - 1),\n Math.max(0, (this.columnNumber || 0) - 1),\n /* c8 ignore stop */\n ) as undefined | SourceMapping\n if (payload) {\n const offset: [number, number] = [\n this.lineNumber - payload.generatedLine,\n /* c8 ignore start */\n (this.columnNumber || 1) - payload.generatedColumn,\n /* c8 ignore stop */\n ]\n const originalLine = payload.originalLine + offset[0]\n const originalColumn = payload.originalColumn + offset[1]\n const genFilename = this.#relativize(this.#fileName)\n this.generated = {\n /* c8 ignore start */\n fileName: this.#relativize(genFilename || null),\n /* c8 ignore stop */\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n }\n\n this.#fileName = payload.originalSource\n this.lineNumber = originalLine\n this.columnNumber = originalColumn\n }\n }\n }\n }\n\n #relativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n else f = f.replace(/\\\\/g, '/')\n try {\n const rel = relative(this.#cwd, f)\n return rel.length < f.length ? rel : f\n } catch {\n return f\n }\n }\n #derelativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n try {\n return resolve(this.#cwd, f)\n } catch {\n return f\n }\n }\n\n toString(jsStyle = false): string {\n // in js style mode, use the origin source file if it is within\n // our cwd. Otherwise, use the generated source location.\n const useGen =\n jsStyle &&\n this.generated?.fileName &&\n this.fileName &&\n this.generated.fileName !== this.fileName &&\n (isAbsolute(this.fileName) || this.fileName.startsWith('..'))\n const { fileName, lineNumber, columnNumber, generated } =\n useGen && this.generated ?\n {\n fileName: this.#derelativize(this.generated.fileName),\n lineNumber: this.generated.lineNumber,\n columnNumber: this.generated.columnNumber,\n generated: undefined,\n }\n : jsStyle ?\n {\n fileName: this.#derelativize(this.fileName),\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n generated: undefined,\n }\n : this\n const loc = { fileName, lineNumber, columnNumber, generated }\n for (const l of [loc, loc.generated]) {\n if (l?.fileName) {\n l.fileName =\n jsStyle ?\n this.#derelativize(l.fileName)\n : this.#relativize(l.fileName)\n }\n }\n\n let fname = this.functionName || ''\n let tn = ''\n let tnGet = ''\n let tnSet = ''\n if (this.typeName) {\n const mn = this.methodName || '<anonymous>'\n tn = this.typeName + '.' + mn\n tnGet = this.typeName + '.get ' + mn\n tnSet = this.typeName + '.set ' + mn\n }\n if (!fname && tn) {\n fname = tn\n }\n const mn = this.methodName\n if (\n fname &&\n tn &&\n mn &&\n fname !== tn &&\n fname !== tnGet &&\n fname !== tnSet\n ) {\n fname += ` [as ${mn}]`\n }\n if (this.isConstructor && fname) {\n fname = `new ${fname}`\n }\n let ev = ''\n const nat = this.isNative ? 'native' : ''\n let file = loc.fileName || ''\n const hasLC = loc.lineNumber && loc.columnNumber\n if (this.evalOrigin) {\n ev = `eval at ${this.evalOrigin.toString(jsStyle)}`\n if (hasLC) {\n const f = loc.fileName || '<anonymous>'\n let lr = `${f}:${loc.lineNumber}:${loc.columnNumber}`\n if (loc.generated && loc.generated.fileName) {\n const f = loc.generated.fileName\n const { lineNumber: l, columnNumber: c } = loc.generated\n lr = `${f}:${l}:${c} (${lr})`\n }\n ev += `, ${lr}`\n }\n // should always have an fname at this point\n /* c8 ignore start */\n ev = fname ? ` (${ev})` : ev\n /* c8 ignore stop */\n return `${fname}${ev}`\n }\n\n if (file || hasLC) {\n if (hasLC) {\n /* c8 ignore start */\n file = file || '<anonymous>'\n /* c8 ignore stop */\n file += `:${loc.lineNumber}:${loc.columnNumber}`\n }\n } else if (nat) {\n file = 'native'\n // impossible in normal cases\n /* c8 ignore start */\n } else {\n file = ''\n }\n /* c8 ignore stop */\n let g = ''\n if (loc.generated && loc.generated.fileName) {\n const { fileName, lineNumber, columnNumber } = loc.generated\n g = fileName\n /* c8 ignore start */\n if (!g) g = ''\n /* c8 ignore stop */\n if (g === loc.fileName) g = ''\n if (g) {\n if (\n typeof lineNumber === 'number' &&\n typeof columnNumber === 'number'\n ) {\n g += `:${lineNumber}:${columnNumber}`\n }\n if (ev || fname) {\n g = ` (${g})`\n }\n }\n }\n if (file && (ev || fname || g)) {\n file = ` (${file})`\n }\n const pre = jsStyle ? ' at ' : ''\n return `${pre}${fname}${ev}${g}${file}`\n }\n\n toJSON(): CallSiteLikeJSON {\n const {\n fileName,\n lineNumber,\n columnNumber,\n evalOrigin,\n typeName,\n methodName,\n functionName,\n isEval,\n isNative,\n isToplevel,\n isConstructor,\n generated,\n } = this\n const json: CallSiteLikeJSON = {}\n if (fileName !== null) json.fileName = fileName\n if (lineNumber || lineNumber === 0) json.lineNumber = lineNumber\n if (columnNumber || columnNumber === 0)\n json.columnNumber = columnNumber\n if (evalOrigin) json.evalOrigin = evalOrigin.toJSON()\n\n if (typeName !== null) {\n json.typeName = typeName\n }\n\n if (methodName !== null) json.methodName = methodName\n if (functionName !== null) json.functionName = functionName\n if (isEval) json.isEval = isEval\n if (isNative) json.isNative = isNative\n if (isToplevel) json.isToplevel = isToplevel\n if (isConstructor) json.isConstructor = isConstructor\n if (generated && generated.fileName) {\n const f = this.#relativize(generated.fileName)\n if (\n f &&\n typeof f === 'string' &&\n (f !== json.fileName || f === '<anonymous>')\n ) {\n const gen: Record<string, string | number> = {}\n gen.fileName = f\n if (generated.lineNumber) gen.lineNumber = generated.lineNumber\n if (generated.columnNumber)\n gen.columnNumber = generated.columnNumber\n if (Object.keys(gen).length > 0) {\n json.generated = gen\n }\n }\n }\n return json\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAiBnD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,GAAG,SAAS,uBAAc,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,MAAM,0BAAY,CAAA;AAG/B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,eAA4B,CAAA;AAC/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,GAAG,OAAO,YACtB,CAAA;AAgB3B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,SAM1C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,SAM7C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yBACU,CAAA;AAkCzC;;GAEG;AACH,eAAO,MAAM,oBAAoB,0BAG9B,CAAA;AAKH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,GAAG,OAAO,YACtB,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAA8B,CAAA;AAgDnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAAA;AACtD,wBAAgB,OAAO,CACrB,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,IAAI,YAAY,EAAE,CAAA;AAgCzC;;;;;;GAMG;AACH,eAAO,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KACnC,YAAY,GAAG,SAGnB,CAAA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,MAAM,CAAA;AACT,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;AACpD,wBAAgB,aAAa,CAC3B,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACrC,MAAM,CAAA;AACT,wBAAgB,aAAa,IAAI,MAAM,CAAA;AAevC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GACvB,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,KAC/B,YAAY,EA2Bd,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,KAAK,KAAG,MAGjC,CAAA;AAEb;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,YAAY,EAOhD,CAAA;AAEH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,GAAG,YAAY,EAAE,KAAG,MAMzD,CAAA"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAiBnD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,GAAG,SAAS,uBAAc,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,MAAM,0BAAY,CAAA;AAG/B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,eAA4B,CAAA;AAC/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,GAAG,OAAO,YACtB,CAAA;AAgB3B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,SAM1C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,SAM7C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yBACU,CAAA;AAkCzC;;GAEG;AACH,eAAO,MAAM,oBAAoB,0BAC0C,CAAA;AAK3E;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,GAAG,OAAO,YACtB,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAA8B,CAAA;AAgDnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAAA;AACtD,wBAAgB,OAAO,CACrB,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,IAAI,YAAY,EAAE,CAAA;AAgCzC;;;;;;GAMG;AACH,eAAO,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KACnC,YAAY,GAAG,SAGnB,CAAA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,MAAM,CAAA;AACT,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;AACpD,wBAAgB,aAAa,CAC3B,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACrC,MAAM,CAAA;AACT,wBAAgB,aAAa,IAAI,MAAM,CAAA;AAevC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GACvB,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,KAC/B,YAAY,EAyBd,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,KAAK,KAAG,MAGjC,CAAA;AAEb;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,YAAY,EAOhD,CAAA;AAEH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,GAAG,YAAY,EAAE,KAAG,MAMzD,CAAA"} |
@@ -120,3 +120,3 @@ "use strict"; | ||
| */ | ||
| const getIgnoredPackagesRE = () => !dirty ? ignoredPackagesRE : ((ignoredPackagesRE = buildIgnoredPackages())); | ||
| const getIgnoredPackagesRE = () => !dirty ? ignoredPackagesRE : (ignoredPackagesRE = buildIgnoredPackages()); | ||
| exports.getIgnoredPackagesRE = getIgnoredPackagesRE; | ||
@@ -260,3 +260,3 @@ let ignoredPackagesRE = buildIgnoredPackages(); | ||
| // any weird junk it might contain | ||
| return cleanHead ? cleaned : (cleaned.filter(c => !isErrorStackHead(c))); | ||
| return cleanHead ? cleaned : cleaned.filter(c => !isErrorStackHead(c)); | ||
| }; | ||
@@ -263,0 +263,0 @@ exports.captureError = captureError; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules } from 'node:module'\nimport { resolve } from 'node:path'\nimport { CallSiteLike } from './call-site-like.js'\nimport { requireResolve } from './require-resolve.js'\nexport { CallSiteLike, CallSiteLikeJSON } from './call-site-like.js'\nexport type { GeneratedResult } from './call-site-like.js'\nexport type { Compiled, LineRef } from './parse.js'\n\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// platform portability accommodation\n/* c8 ignore start */\nlet cwd =\n (\n typeof process === 'object' &&\n process &&\n typeof process.cwd === 'function'\n ) ?\n process.cwd()\n : undefined\n/* c8 ignore stop */\n\n/**\n * Set the effective cwd for shortening filenames in stack traces\n * Set to `undefined` to show full absolute paths.\n */\nexport const setCwd = (c: string | undefined) => (cwd = c)\n\n/**\n * Get the effective cwd for shortening filenames in stack traces\n * If set to `undefined`, then will show full absolute paths.\n */\nexport const getCwd = () => cwd\n\nlet filterNodeInternals = true\n/**\n * Get the current value indicating whether node internals should be\n * filtered out. (Defaults to true)\n */\nexport const getFilterNodeInternals = () => filterNodeInternals\n/**\n * Set whether node internals should be filtered out.\n */\nexport const setFilterNodeInternals = (s: boolean) =>\n (filterNodeInternals = s)\n\n// these are packages that function somewhat like node internals,\n// for tap's purposes, and `@tapjs` packages themselves, when loaded\n// from node_modules.\nconst ignoredPackages: string[] = [\n '@tapjs',\n '@isaacs/ts-node-temp-fork-for-pr-2009',\n 'pirates',\n 'function-loop',\n '@cspotcode/source-map-support',\n 'signal-exit',\n 'async-hook-domain',\n]\nlet dirty: boolean = false\n\n/**\n * Add a package name to the list of deps that should be excluded\n * from stack traces.\n */\nexport const addIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i === -1) {\n ignoredPackages.push(s)\n dirty = true\n }\n}\n\n/**\n * Remove a package name from the list of deps that should be excluded\n * from stack traces.\n */\nexport const removeIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i !== -1) {\n ignoredPackages.splice(i, 1)\n dirty = true\n }\n}\n\n/**\n * Get a read-only copy of the list of deps that should be excluded\n * from stack traces.\n */\nexport const getIgnoredPackages = () =>\n Object.freeze(ignoredPackages.slice(0))\n\nconst getTestBuiltPath = () => {\n const p = requireResolve('@tapjs/test')\n // we'll always find the test class in this project\n /* c8 ignore start */\n if (!p) return ''\n /* c8 ignore stop */\n return resolve(p, '../../../test-built')\n}\n\nconst buildIgnoredPackages = () => {\n // just a safety precaution, no reason to ever do this\n /* c8 ignore start */\n if (!ignoredPackages.length) return undefined\n /* c8 ignore stop */\n const p = ignoredPackages.map(s => regExpEscape(s)).join('|')\n const nm = `[/\\\\\\\\]node_modules[/\\\\\\\\](?:${p})([/\\\\\\\\]|$)`\n // if we are ignoring @tapjs/test, then also ignore its built\n // plugged-in implementation. This is only relevant when developing\n // this project, or other cases where @tapjs/test may be linked,\n // because when it's loaded from node_modules, it'll be excluded\n // by virtue of being in that folder anyhow.\n const built =\n (\n ignoredPackages.includes('@tapjs') ||\n ignoredPackages.includes('@tapjs/test')\n ) ?\n getTestBuiltPath()\n : ''\n const re = built ? `${built}([/\\\\\\\\].*|$)|${nm}` : nm\n return new RegExp(re)\n}\n\n/**\n * exported for testing, no real purpose, but also no harm in looking\n */\nexport const getIgnoredPackagesRE = () =>\n !dirty ? ignoredPackagesRE : (\n (ignoredPackagesRE = buildIgnoredPackages())\n )\n\nlet ignoredPackagesRE: RegExp | undefined = buildIgnoredPackages()\nlet filterIgnoredPackages = true\n\n/**\n * Set whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const setFilterIgnoredPackages = (s: boolean) =>\n (filterIgnoredPackages = s)\n\n/**\n * Get whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const getFilterIgnoredPackages = () => filterIgnoredPackages\n\n// detect the first line of Error.stack, 'Error: blah'\nconst isErrorStackHead = (c?: CallSiteLike): boolean =>\n !!c &&\n c.lineNumber === null &&\n c.columnNumber === null &&\n c.this === undefined &&\n c.evalOrigin === undefined &&\n c.function === undefined &&\n c.typeName === null &&\n c.methodName === null &&\n (typeof c.functionName === 'string' || !c.functionName) &&\n c.isEval === false &&\n c.isNative === false &&\n c.isToplevel === false &&\n c.isConstructor === false &&\n c.generated === undefined\n\nconst filter = (c: CallSiteLike): boolean => {\n const s = c.fileName\n // technically this is possible, but super unlikely\n /* c8 ignore start */\n if (!s) return true\n /* c8 ignore stop */\n if (dirty && filterIgnoredPackages) {\n ignoredPackagesRE = buildIgnoredPackages()\n dirty = false\n }\n return (\n (!filterNodeInternals ||\n !(s.startsWith('node:') || builtinModules.includes(s))) &&\n (!filterIgnoredPackages || !ignoredPackagesRE?.test(s))\n )\n}\n\nconst clean = (c: CallSiteLike[]): CallSiteLike[] => {\n const filtered = c.filter(filter)\n while (isErrorStackHead(filtered[0])) filtered.shift()\n if (cwd !== undefined) {\n for (const c of filtered) {\n c.cwd = cwd\n }\n }\n return filtered\n}\n\nlet capturing = false\n/**\n * Get an array of {@link @tapjs/stack!call-site-like.CallSiteLike} objects for\n * the current location, from the call to the `fn` argument supplied, limited\n * to the number of frames specified by `limit`.\n *\n * If the `limit` argument is 0, then the current `Error.stackTraceLimit`\n * value will be used.\n *\n * This method is not re-entry safe, due to the fact that it relies on\n * temporarily overriding the global Error.prepareStackTrace. As a result,\n * if a capture() is triggered in any of the methods used by the\n * CallSiteLike constructor (for example, if `@tapjs/intercept` is used to\n * capture the process.cwd() method, which is used by path.resolve()),\n * then that will cause problems. To work around this, if a re-entry is\n * detected, then an empty stack of [] is returned.\n *\n * Even if it was made re-entry safe, it would be easy to accidentally\n * trigger an infinite recursion and stack overflow in such a scenario, so\n * returning an empty stack in the case of re-entry is the best workaround.\n */\nexport function capture(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(limit: number): CallSiteLike[]\nexport function capture(\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(): CallSiteLike[]\nexport function capture(\n limit: number | Function | ((...a: any[]) => any) = 0,\n fn: Function | ((...a: any[]) => any) = capture,\n): CallSiteLike[] {\n // should be impossible to hit, but can if we have to look up\n // a sourcemap for a file we haven't seen before, and the filename\n // happens to come through as a url or relative path.\n /* c8 ignore start */\n if (capturing) return []\n /* c8 ignore stop */\n capturing = true\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const { prepareStackTrace, stackTraceLimit } = Error\n Error.prepareStackTrace = CallSiteLike.prepareStackTrace\n if (limit) {\n // we always get an extra few frames to account for internals\n // or proxy frames that might be filtered out of the top.\n Error.stackTraceLimit = limit + 10\n }\n const obj: { stack: CallSiteLike[] } = { stack: [] }\n Error.captureStackTrace(obj, fn)\n const { stack } = obj\n Object.assign(Error, { prepareStackTrace, stackTraceLimit })\n const st = clean(stack)\n capturing = false\n return limit === 0 ? st : st.slice(0, limit)\n}\n\n/**\n * Get the call site in the stack either where `at()` is called, or\n * where the supplied `fn` function is called.\n *\n * If `fn` is provided, and is not in the current call stack, then\n * `undefined` will be returned.\n */\nexport const at: (\n fn?: Function | ((...a: any[]) => any),\n) => CallSiteLike | undefined = (fn = at) => {\n const [site] = capture(1, fn)\n return site\n}\n\n/**\n * Same as {@link @tapjs/stack!index.capture}, but return the `toString()`\n * values of the {@link @tapjs/stack!call-site-like.CallSiteLike} objects\n */\nexport function captureString(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): string\nexport function captureString(limit: number): string\nexport function captureString(\n fn?: Function | ((...a: any[]) => any),\n): string\nexport function captureString(): string\nexport function captureString(\n limit: number | Function | ((...a: any[]) => any) = Infinity,\n fn: Function | ((...a: any[]) => any) = captureString,\n): string {\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const stack = capture(limit, fn)\n return (limit === 0 ? stack : stack.slice(0, limit))\n .map(c => String(c) + '\\n')\n .join('')\n}\n\n/**\n * Get an array of {@link CallSiteLike} objects corresponding to the stack\n * trace of the Error object provided.\n *\n * This does _not_ actually look at the current call site, or do anything\n * magical with the V8 engine. It's just parsing a string.\n *\n * While some effort is made to interpret stacks correctly when an Error\n * contains a `name` and `message`, remember that the `Error.stack` property in\n * JavaScript is remarkably sloppy. In some cases, if the `Error.message`\n * contains `\\n` and some lines after the first look like stack trace lines,\n * incorrect data may result. It's only as good as the stack you pass to it.\n */\nexport const captureError = (\n e: Error | NodeJS.ErrnoException,\n): CallSiteLike[] => {\n // errors almost always have these fields\n const { message = '', name = '', code } = e as NodeJS.ErrnoException\n const stack = typeof e.stack === 'string' ? e.stack : ''\n const head = name && message ? `${name}: ${message}\\n` : ''\n const errnoHead =\n name && message && code ? `${name} [${code}]: ${message}` : ''\n const cleanHead = !!head && stack.startsWith(head)\n const cleanErrnoHead = !!errnoHead && stack.startsWith(errnoHead)\n\n const s =\n cleanHead ? stack.substring(head.length)\n : cleanErrnoHead ? stack.substring(errnoHead.length)\n : stack\n const cleaned = clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l)\n .map(line => new CallSiteLike(e, line)),\n )\n\n // if we didn't clean the header cleanly, then sweep the stack for\n // any weird junk it might contain\n return cleanHead ? cleaned : (\n cleaned.filter(c => !isErrorStackHead(c))\n )\n}\n\n/**\n * Get a processed string stack corresponding to the stack trace of the Error\n * object provided.\n *\n * This method has all the same caveats as {@link captureError}. If the\n * object provided has a weird looking `stack` property, then you might get\n * weird results.\n */\nexport const captureErrorString = (e: Error): string =>\n captureError(e)\n .map(c => String(c) + '\\n')\n .join('')\n\n/**\n * Parse a stack string and return an array of CallSiteLike objects\n *\n * We use this to get the `at` diagnostic callsite when all we have is\n * a stack, either from a native Error object, or a stringified CallSiteLike\n * stack.\n */\nexport const parseStack = (s: string): CallSiteLike[] =>\n clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l.trim())\n .map(line => new CallSiteLike(null, line)),\n )\n\nexport const expandStack = (s?: string | CallSiteLike[]): string => {\n if (!s) return ''\n if (typeof s === 'string') return expandStack(parseStack(s))\n return clean(s)\n .map(c => c.toString(true) + '\\n')\n .join('')\n}\n"]} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules } from 'node:module'\nimport { resolve } from 'node:path'\nimport { CallSiteLike } from './call-site-like.js'\nimport { requireResolve } from './require-resolve.js'\nexport { CallSiteLike, CallSiteLikeJSON } from './call-site-like.js'\nexport type { GeneratedResult } from './call-site-like.js'\nexport type { Compiled, LineRef } from './parse.js'\n\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// platform portability accommodation\n/* c8 ignore start */\nlet cwd =\n (\n typeof process === 'object' &&\n process &&\n typeof process.cwd === 'function'\n ) ?\n process.cwd()\n : undefined\n/* c8 ignore stop */\n\n/**\n * Set the effective cwd for shortening filenames in stack traces\n * Set to `undefined` to show full absolute paths.\n */\nexport const setCwd = (c: string | undefined) => (cwd = c)\n\n/**\n * Get the effective cwd for shortening filenames in stack traces\n * If set to `undefined`, then will show full absolute paths.\n */\nexport const getCwd = () => cwd\n\nlet filterNodeInternals = true\n/**\n * Get the current value indicating whether node internals should be\n * filtered out. (Defaults to true)\n */\nexport const getFilterNodeInternals = () => filterNodeInternals\n/**\n * Set whether node internals should be filtered out.\n */\nexport const setFilterNodeInternals = (s: boolean) =>\n (filterNodeInternals = s)\n\n// these are packages that function somewhat like node internals,\n// for tap's purposes, and `@tapjs` packages themselves, when loaded\n// from node_modules.\nconst ignoredPackages: string[] = [\n '@tapjs',\n '@isaacs/ts-node-temp-fork-for-pr-2009',\n 'pirates',\n 'function-loop',\n '@cspotcode/source-map-support',\n 'signal-exit',\n 'async-hook-domain',\n]\nlet dirty: boolean = false\n\n/**\n * Add a package name to the list of deps that should be excluded\n * from stack traces.\n */\nexport const addIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i === -1) {\n ignoredPackages.push(s)\n dirty = true\n }\n}\n\n/**\n * Remove a package name from the list of deps that should be excluded\n * from stack traces.\n */\nexport const removeIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i !== -1) {\n ignoredPackages.splice(i, 1)\n dirty = true\n }\n}\n\n/**\n * Get a read-only copy of the list of deps that should be excluded\n * from stack traces.\n */\nexport const getIgnoredPackages = () =>\n Object.freeze(ignoredPackages.slice(0))\n\nconst getTestBuiltPath = () => {\n const p = requireResolve('@tapjs/test')\n // we'll always find the test class in this project\n /* c8 ignore start */\n if (!p) return ''\n /* c8 ignore stop */\n return resolve(p, '../../../test-built')\n}\n\nconst buildIgnoredPackages = () => {\n // just a safety precaution, no reason to ever do this\n /* c8 ignore start */\n if (!ignoredPackages.length) return undefined\n /* c8 ignore stop */\n const p = ignoredPackages.map(s => regExpEscape(s)).join('|')\n const nm = `[/\\\\\\\\]node_modules[/\\\\\\\\](?:${p})([/\\\\\\\\]|$)`\n // if we are ignoring @tapjs/test, then also ignore its built\n // plugged-in implementation. This is only relevant when developing\n // this project, or other cases where @tapjs/test may be linked,\n // because when it's loaded from node_modules, it'll be excluded\n // by virtue of being in that folder anyhow.\n const built =\n (\n ignoredPackages.includes('@tapjs') ||\n ignoredPackages.includes('@tapjs/test')\n ) ?\n getTestBuiltPath()\n : ''\n const re = built ? `${built}([/\\\\\\\\].*|$)|${nm}` : nm\n return new RegExp(re)\n}\n\n/**\n * exported for testing, no real purpose, but also no harm in looking\n */\nexport const getIgnoredPackagesRE = () =>\n !dirty ? ignoredPackagesRE : (ignoredPackagesRE = buildIgnoredPackages())\n\nlet ignoredPackagesRE: RegExp | undefined = buildIgnoredPackages()\nlet filterIgnoredPackages = true\n\n/**\n * Set whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const setFilterIgnoredPackages = (s: boolean) =>\n (filterIgnoredPackages = s)\n\n/**\n * Get whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const getFilterIgnoredPackages = () => filterIgnoredPackages\n\n// detect the first line of Error.stack, 'Error: blah'\nconst isErrorStackHead = (c?: CallSiteLike): boolean =>\n !!c &&\n c.lineNumber === null &&\n c.columnNumber === null &&\n c.this === undefined &&\n c.evalOrigin === undefined &&\n c.function === undefined &&\n c.typeName === null &&\n c.methodName === null &&\n (typeof c.functionName === 'string' || !c.functionName) &&\n c.isEval === false &&\n c.isNative === false &&\n c.isToplevel === false &&\n c.isConstructor === false &&\n c.generated === undefined\n\nconst filter = (c: CallSiteLike): boolean => {\n const s = c.fileName\n // technically this is possible, but super unlikely\n /* c8 ignore start */\n if (!s) return true\n /* c8 ignore stop */\n if (dirty && filterIgnoredPackages) {\n ignoredPackagesRE = buildIgnoredPackages()\n dirty = false\n }\n return (\n (!filterNodeInternals ||\n !(s.startsWith('node:') || builtinModules.includes(s))) &&\n (!filterIgnoredPackages || !ignoredPackagesRE?.test(s))\n )\n}\n\nconst clean = (c: CallSiteLike[]): CallSiteLike[] => {\n const filtered = c.filter(filter)\n while (isErrorStackHead(filtered[0])) filtered.shift()\n if (cwd !== undefined) {\n for (const c of filtered) {\n c.cwd = cwd\n }\n }\n return filtered\n}\n\nlet capturing = false\n/**\n * Get an array of {@link @tapjs/stack!call-site-like.CallSiteLike} objects for\n * the current location, from the call to the `fn` argument supplied, limited\n * to the number of frames specified by `limit`.\n *\n * If the `limit` argument is 0, then the current `Error.stackTraceLimit`\n * value will be used.\n *\n * This method is not re-entry safe, due to the fact that it relies on\n * temporarily overriding the global Error.prepareStackTrace. As a result,\n * if a capture() is triggered in any of the methods used by the\n * CallSiteLike constructor (for example, if `@tapjs/intercept` is used to\n * capture the process.cwd() method, which is used by path.resolve()),\n * then that will cause problems. To work around this, if a re-entry is\n * detected, then an empty stack of [] is returned.\n *\n * Even if it was made re-entry safe, it would be easy to accidentally\n * trigger an infinite recursion and stack overflow in such a scenario, so\n * returning an empty stack in the case of re-entry is the best workaround.\n */\nexport function capture(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(limit: number): CallSiteLike[]\nexport function capture(\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(): CallSiteLike[]\nexport function capture(\n limit: number | Function | ((...a: any[]) => any) = 0,\n fn: Function | ((...a: any[]) => any) = capture,\n): CallSiteLike[] {\n // should be impossible to hit, but can if we have to look up\n // a sourcemap for a file we haven't seen before, and the filename\n // happens to come through as a url or relative path.\n /* c8 ignore start */\n if (capturing) return []\n /* c8 ignore stop */\n capturing = true\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const { prepareStackTrace, stackTraceLimit } = Error\n Error.prepareStackTrace = CallSiteLike.prepareStackTrace\n if (limit) {\n // we always get an extra few frames to account for internals\n // or proxy frames that might be filtered out of the top.\n Error.stackTraceLimit = limit + 10\n }\n const obj: { stack: CallSiteLike[] } = { stack: [] }\n Error.captureStackTrace(obj, fn)\n const { stack } = obj\n Object.assign(Error, { prepareStackTrace, stackTraceLimit })\n const st = clean(stack)\n capturing = false\n return limit === 0 ? st : st.slice(0, limit)\n}\n\n/**\n * Get the call site in the stack either where `at()` is called, or\n * where the supplied `fn` function is called.\n *\n * If `fn` is provided, and is not in the current call stack, then\n * `undefined` will be returned.\n */\nexport const at: (\n fn?: Function | ((...a: any[]) => any),\n) => CallSiteLike | undefined = (fn = at) => {\n const [site] = capture(1, fn)\n return site\n}\n\n/**\n * Same as {@link @tapjs/stack!index.capture}, but return the `toString()`\n * values of the {@link @tapjs/stack!call-site-like.CallSiteLike} objects\n */\nexport function captureString(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): string\nexport function captureString(limit: number): string\nexport function captureString(\n fn?: Function | ((...a: any[]) => any),\n): string\nexport function captureString(): string\nexport function captureString(\n limit: number | Function | ((...a: any[]) => any) = Infinity,\n fn: Function | ((...a: any[]) => any) = captureString,\n): string {\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const stack = capture(limit, fn)\n return (limit === 0 ? stack : stack.slice(0, limit))\n .map(c => String(c) + '\\n')\n .join('')\n}\n\n/**\n * Get an array of {@link CallSiteLike} objects corresponding to the stack\n * trace of the Error object provided.\n *\n * This does _not_ actually look at the current call site, or do anything\n * magical with the V8 engine. It's just parsing a string.\n *\n * While some effort is made to interpret stacks correctly when an Error\n * contains a `name` and `message`, remember that the `Error.stack` property in\n * JavaScript is remarkably sloppy. In some cases, if the `Error.message`\n * contains `\\n` and some lines after the first look like stack trace lines,\n * incorrect data may result. It's only as good as the stack you pass to it.\n */\nexport const captureError = (\n e: Error | NodeJS.ErrnoException,\n): CallSiteLike[] => {\n // errors almost always have these fields\n const { message = '', name = '', code } = e as NodeJS.ErrnoException\n const stack = typeof e.stack === 'string' ? e.stack : ''\n const head = name && message ? `${name}: ${message}\\n` : ''\n const errnoHead =\n name && message && code ? `${name} [${code}]: ${message}` : ''\n const cleanHead = !!head && stack.startsWith(head)\n const cleanErrnoHead = !!errnoHead && stack.startsWith(errnoHead)\n\n const s =\n cleanHead ? stack.substring(head.length)\n : cleanErrnoHead ? stack.substring(errnoHead.length)\n : stack\n const cleaned = clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l)\n .map(line => new CallSiteLike(e, line)),\n )\n\n // if we didn't clean the header cleanly, then sweep the stack for\n // any weird junk it might contain\n return cleanHead ? cleaned : cleaned.filter(c => !isErrorStackHead(c))\n}\n\n/**\n * Get a processed string stack corresponding to the stack trace of the Error\n * object provided.\n *\n * This method has all the same caveats as {@link captureError}. If the\n * object provided has a weird looking `stack` property, then you might get\n * weird results.\n */\nexport const captureErrorString = (e: Error): string =>\n captureError(e)\n .map(c => String(c) + '\\n')\n .join('')\n\n/**\n * Parse a stack string and return an array of CallSiteLike objects\n *\n * We use this to get the `at` diagnostic callsite when all we have is\n * a stack, either from a native Error object, or a stringified CallSiteLike\n * stack.\n */\nexport const parseStack = (s: string): CallSiteLike[] =>\n clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l.trim())\n .map(line => new CallSiteLike(null, line)),\n )\n\nexport const expandStack = (s?: string | CallSiteLike[]): string => {\n if (!s) return ''\n if (typeof s === 'string') return expandStack(parseStack(s))\n return clean(s)\n .map(c => c.toString(true) + '\\n')\n .join('')\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"call-site-like.d.ts","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EAGT,MAAM,YAAY,CAAA;AAInB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAKD,qBAAa,YAAY;;IACvB,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;IAMvD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;IACrD,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,eAAe,CAAA;IAI3B,IAAI,QAAQ,8BAEX;IAED,IAAI,gBAAgB,8BAOnB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAiB9B;gBAGC,CAAC,EAAE,KAAK,GAAG,IAAI,EACf,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,QAAQ;IA0LxC,QAAQ,CAAC,OAAO,UAAQ,GAAG,MAAM;IA+HjC,MAAM,IAAI,gBAAgB;CAoD3B"} | ||
| {"version":3,"file":"call-site-like.d.ts","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EAGT,MAAM,YAAY,CAAA;AAInB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAKD,qBAAa,YAAY;;IACvB,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE;IAMvD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACpD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC5D,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;IACrD,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,eAAe,CAAA;IAI3B,IAAI,QAAQ,8BAEX;IAED,IAAI,gBAAgB,8BAOnB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAiB9B;gBAEW,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,QAAQ;IAwLnE,QAAQ,CAAC,OAAO,UAAQ,GAAG,MAAM;IA+HjC,MAAM,IAAI,gBAAgB;CAmD3B"} |
@@ -89,4 +89,3 @@ import { findSourceMap } from 'module'; | ||
| } | ||
| this.lineNumber = | ||
| c.lineNumber === undefined ? null : c.lineNumber; | ||
| this.lineNumber = c.lineNumber === undefined ? null : c.lineNumber; | ||
| this.columnNumber = | ||
@@ -93,0 +92,0 @@ c.columnNumber === undefined ? null : c.columnNumber; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"call-site-like.js","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"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","sourcesContent":["import { findSourceMap, SourceMap } from 'module'\nimport type { SourceMapping } from 'module'\nimport { isAbsolute, relative, resolve } from 'path'\nimport { fileURLToPath } from 'url'\nimport {\n Compiled,\n isCompiledCallSiteLine,\n parseCallSiteLine,\n} from './parse.js'\n\nconst methodRe = /^(.*?) \\[as (.*?)\\]$/\n\nexport interface CallSiteLikeJSON {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n evalOrigin?: CallSiteLikeJSON\n typeName?: string\n methodName?: string\n functionName?: string\n isEval?: true\n isNative?: true\n isToplevel?: true\n isConstructor?: true\n generated?: {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n }\n}\n\nexport interface GeneratedResult {\n fileName?: string | null\n lineNumber?: number | null\n columnNumber?: number | null\n}\n\nconst isCallSite = (c: any): c is NodeJS.CallSite =>\n !!c && typeof c === 'object' && c.constructor?.name === 'CallSite'\n\nexport class CallSiteLike {\n static prepareStackTrace(e: Error, c: NodeJS.CallSite[]) {\n return c.map(c => new CallSiteLike(e, c))\n }\n\n #fileName?: string | null\n #cwd?: string\n lineNumber: ReturnType<NodeJS.CallSite['getLineNumber']>\n columnNumber: ReturnType<NodeJS.CallSite['getColumnNumber']>\n this: ReturnType<NodeJS.CallSite['getThis']>\n evalOrigin?: CallSiteLike\n function: ReturnType<NodeJS.CallSite['getFunction']>\n typeName: ReturnType<NodeJS.CallSite['getTypeName']>\n methodName: ReturnType<NodeJS.CallSite['getMethodName']>\n functionName: ReturnType<NodeJS.CallSite['getFunctionName']>\n isEval: ReturnType<NodeJS.CallSite['isEval']>\n isNative: ReturnType<NodeJS.CallSite['isNative']>\n isToplevel: ReturnType<NodeJS.CallSite['isToplevel']>\n isConstructor: ReturnType<NodeJS.CallSite['isConstructor']>\n generated?: GeneratedResult\n #sourceMap?: SourceMap\n\n // normalize and relativize filename if cwd is set\n get fileName() {\n return this.#relativize(this.#fileName)\n }\n\n get absoluteFileName() {\n if (!this.#fileName) return this.#fileName\n else if (this.#fileName.startsWith('file://')) {\n return fileURLToPath(this.#fileName)\n } else {\n return this.#fileName\n }\n }\n\n get cwd(): string | undefined {\n return this.#cwd\n }\n\n set cwd(cwd: string | undefined) {\n if (cwd === undefined) {\n if (this.generated) {\n this.generated.fileName = this.#derelativize(\n this.generated?.fileName,\n )\n }\n }\n this.#cwd = cwd?.replace(/\\\\/g, '/')\n if (cwd !== undefined) {\n if (this.generated) {\n this.generated.fileName = this.#relativize(\n this.generated?.fileName,\n )\n }\n }\n if (this.evalOrigin) this.evalOrigin.cwd = cwd\n }\n\n constructor(\n e: Error | null,\n c: NodeJS.CallSite | string | Compiled,\n ) {\n if (typeof c === 'string') {\n c = parseCallSiteLine(c)\n }\n\n if (isCallSite(c)) {\n const fileName = c.getFileName()\n this.#fileName = typeof fileName === 'string' ? fileName : null\n this.lineNumber = c.getLineNumber()\n this.columnNumber = c.getColumnNumber()\n this.this = c.getThis()\n const evalOrigin = c.getEvalOrigin()\n if (evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, evalOrigin)\n }\n this.function = c.getFunction()\n this.typeName = c.getTypeName()\n this.methodName = c.getMethodName()\n this.functionName = c.getFunctionName()\n this.isEval = c.isEval()\n this.isNative = c.isNative()\n this.isToplevel = c.isToplevel()\n this.isConstructor = c.isConstructor()\n } else if (isCompiledCallSiteLine(c)) {\n // compiled object from stack line\n this.isEval = !!c.isEval\n this.isToplevel = false\n if (c.evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, c.evalOrigin)\n }\n\n this.lineNumber =\n c.lineNumber === undefined ? null : c.lineNumber\n this.columnNumber =\n c.columnNumber === undefined ? null : c.columnNumber\n const fileName = c.fileName\n this.#fileName = typeof fileName === 'string' ? fileName : null\n const { generated } = c\n if (generated) {\n this.generated = generated\n this.generated.fileName = this.#relativize(generated.fileName)\n }\n let fname = c.fname?.trim()\n let method: null | string = null\n this.isNative = !!c.isNative\n\n if (fname) {\n if (fname.startsWith('new ')) {\n this.isConstructor = true\n fname = fname.substring('new '.length).trim()\n } else {\n this.isConstructor = false\n }\n this.methodName = null\n const methodMatch = fname.match(methodRe) as [\n string,\n string,\n string,\n ]\n if (methodMatch) {\n fname = methodMatch[1]\n method = methodMatch[2]\n }\n const dots = fname.split('.')\n const m = dots.pop()\n if (m !== undefined) {\n this.typeName = dots.join('.').trim() || null\n this.methodName = method || m\n if (this.methodName.match(/^get |set /)) {\n this.methodName = this.methodName.substring(4)\n }\n this.functionName = m\n // we know it's not undefined, but TS is afraid of pop()\n /* c8 ignore start */\n } else {\n this.functionName = null\n this.typeName = null\n }\n /* c8 ignore stop */\n } else {\n this.isConstructor = false\n this.typeName = null\n this.functionName = null\n this.methodName = null\n }\n } else {\n throw new Error('invalid call site information provided')\n }\n\n // This is a slight deviation from the CallSite API, but it's very useful\n // to have a field that's the actual function with type and method name.\n if (\n this.typeName &&\n this.functionName &&\n !this.functionName.startsWith(this.typeName)\n ) {\n this.functionName = `${this.typeName}.${this.functionName}`\n } else if (this.functionName === this.methodName) {\n this.methodName = null\n }\n\n // We only do the sourcemap lookup if we're parsing from a CallSite\n // If we get it from an Error stack line, then Node has already done\n // the mapping for us, and when ts-node (and other in-place\n // transpilers) create JavaScript, they use the same filename, leading\n // to an incorrect double offset,.\n if (\n this.#fileName &&\n isCallSite(c) &&\n !this.#sourceMap &&\n !this.#fileName.startsWith('node:')\n ) {\n // Passing an object that isn't an actual Error object to\n // findSourceMap causes problems in node 16\n this.#sourceMap = findSourceMap(this.#fileName)\n if (this.#sourceMap && typeof this.lineNumber === 'number') {\n // SourceMap.findEntry doesn't actually return the line/column\n // number, despite the property names, but rather the zero-indexed\n // line/column start of a mapping range, and must be looked up\n // using the zero-indexed line and column.\n // To find the mapping, we look it up with the zero-indexed\n // line/col, then figure out how far our line/col is from the\n // mapping, and apply that same offset to the start of the origin\n // in the mapping.\n const payload = this.#sourceMap.findEntry(\n // safety bounds around numbers here, impossible to hit\n // if we're looking up actual call sites though.\n /* c8 ignore start */\n Math.max(0, this.lineNumber - 1),\n Math.max(0, (this.columnNumber || 0) - 1),\n /* c8 ignore stop */\n ) as undefined | SourceMapping\n if (payload) {\n const offset: [number, number] = [\n this.lineNumber - payload.generatedLine,\n /* c8 ignore start */\n (this.columnNumber || 1) - payload.generatedColumn,\n /* c8 ignore stop */\n ]\n const originalLine = payload.originalLine + offset[0]\n const originalColumn = payload.originalColumn + offset[1]\n const genFilename = this.#relativize(this.#fileName)\n this.generated = {\n /* c8 ignore start */\n fileName: this.#relativize(genFilename || null),\n /* c8 ignore stop */\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n }\n\n this.#fileName = payload.originalSource\n this.lineNumber = originalLine\n this.columnNumber = originalColumn\n }\n }\n }\n }\n\n #relativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n else f = f.replace(/\\\\/g, '/')\n try {\n const rel = relative(this.#cwd, f)\n return rel.length < f.length ? rel : f\n } catch {\n return f\n }\n }\n #derelativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n try {\n return resolve(this.#cwd, f)\n } catch {\n return f\n }\n }\n\n toString(jsStyle = false): string {\n // in js style mode, use the origin source file if it is within\n // our cwd. Otherwise, use the generated source location.\n const useGen =\n jsStyle &&\n this.generated?.fileName &&\n this.fileName &&\n this.generated.fileName !== this.fileName &&\n (isAbsolute(this.fileName) || this.fileName.startsWith('..'))\n const { fileName, lineNumber, columnNumber, generated } =\n useGen && this.generated ?\n {\n fileName: this.#derelativize(this.generated.fileName),\n lineNumber: this.generated.lineNumber,\n columnNumber: this.generated.columnNumber,\n generated: undefined,\n }\n : jsStyle ?\n {\n fileName: this.#derelativize(this.fileName),\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n generated: undefined,\n }\n : this\n const loc = { fileName, lineNumber, columnNumber, generated }\n for (const l of [loc, loc.generated]) {\n if (l?.fileName) {\n l.fileName =\n jsStyle ?\n this.#derelativize(l.fileName)\n : this.#relativize(l.fileName)\n }\n }\n\n let fname = this.functionName || ''\n let tn = ''\n let tnGet = ''\n let tnSet = ''\n if (this.typeName) {\n const mn = this.methodName || '<anonymous>'\n tn = this.typeName + '.' + mn\n tnGet = this.typeName + '.get ' + mn\n tnSet = this.typeName + '.set ' + mn\n }\n if (!fname && tn) {\n fname = tn\n }\n const mn = this.methodName\n if (\n fname &&\n tn &&\n mn &&\n fname !== tn &&\n fname !== tnGet &&\n fname !== tnSet\n ) {\n fname += ` [as ${mn}]`\n }\n if (this.isConstructor && fname) {\n fname = `new ${fname}`\n }\n let ev = ''\n const nat = this.isNative ? 'native' : ''\n let file = loc.fileName || ''\n const hasLC = loc.lineNumber && loc.columnNumber\n if (this.evalOrigin) {\n ev = `eval at ${this.evalOrigin.toString(jsStyle)}`\n if (hasLC) {\n const f = loc.fileName || '<anonymous>'\n let lr = `${f}:${loc.lineNumber}:${loc.columnNumber}`\n if (loc.generated && loc.generated.fileName) {\n const f = loc.generated.fileName\n const { lineNumber: l, columnNumber: c } = loc.generated\n lr = `${f}:${l}:${c} (${lr})`\n }\n ev += `, ${lr}`\n }\n // should always have an fname at this point\n /* c8 ignore start */\n ev = fname ? ` (${ev})` : ev\n /* c8 ignore stop */\n return `${fname}${ev}`\n }\n\n if (file || hasLC) {\n if (hasLC) {\n /* c8 ignore start */\n file = file || '<anonymous>'\n /* c8 ignore stop */\n file += `:${loc.lineNumber}:${loc.columnNumber}`\n }\n } else if (nat) {\n file = 'native'\n // impossible in normal cases\n /* c8 ignore start */\n } else {\n file = ''\n }\n /* c8 ignore stop */\n let g = ''\n if (loc.generated && loc.generated.fileName) {\n const { fileName, lineNumber, columnNumber } = loc.generated\n g = fileName\n /* c8 ignore start */\n if (!g) g = ''\n /* c8 ignore stop */\n if (g === loc.fileName) g = ''\n if (g) {\n if (\n typeof lineNumber === 'number' &&\n typeof columnNumber === 'number'\n ) {\n g += `:${lineNumber}:${columnNumber}`\n }\n if (ev || fname) {\n g = ` (${g})`\n }\n }\n }\n if (file && (ev || fname || g)) {\n file = ` (${file})`\n }\n const pre = jsStyle ? ' at ' : ''\n return `${pre}${fname}${ev}${g}${file}`\n }\n\n toJSON(): CallSiteLikeJSON {\n const {\n fileName,\n lineNumber,\n columnNumber,\n evalOrigin,\n typeName,\n methodName,\n functionName,\n isEval,\n isNative,\n isToplevel,\n isConstructor,\n generated,\n } = this\n const json: CallSiteLikeJSON = {}\n if (fileName !== null) json.fileName = fileName\n if (lineNumber || lineNumber === 0) json.lineNumber = lineNumber\n if (columnNumber || columnNumber === 0)\n json.columnNumber = columnNumber\n if (evalOrigin) json.evalOrigin = evalOrigin.toJSON()\n\n if (typeName !== null) {\n json.typeName = typeName\n }\n\n if (methodName !== null) json.methodName = methodName\n if (functionName !== null) json.functionName = functionName\n if (isEval) json.isEval = isEval\n if (isNative) json.isNative = isNative\n if (isToplevel) json.isToplevel = isToplevel\n if (isConstructor) json.isConstructor = isConstructor\n if (generated && generated.fileName) {\n const f = this.#relativize(generated.fileName)\n if (\n f &&\n typeof f === 'string' &&\n (f !== json.fileName || f === '<anonymous>')\n ) {\n const gen: Record<string, string | number> = {}\n gen.fileName = f\n if (generated.lineNumber)\n gen.lineNumber = generated.lineNumber\n if (generated.columnNumber)\n gen.columnNumber = generated.columnNumber\n if (Object.keys(gen).length > 0) {\n json.generated = gen\n }\n }\n }\n return json\n }\n}\n"]} | ||
| {"version":3,"file":"call-site-like.js","sourceRoot":"","sources":["../../src/call-site-like.ts"],"names":[],"mappings":"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","sourcesContent":["import { findSourceMap, SourceMap } from 'module'\nimport type { SourceMapping } from 'module'\nimport { isAbsolute, relative, resolve } from 'path'\nimport { fileURLToPath } from 'url'\nimport {\n Compiled,\n isCompiledCallSiteLine,\n parseCallSiteLine,\n} from './parse.js'\n\nconst methodRe = /^(.*?) \\[as (.*?)\\]$/\n\nexport interface CallSiteLikeJSON {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n evalOrigin?: CallSiteLikeJSON\n typeName?: string\n methodName?: string\n functionName?: string\n isEval?: true\n isNative?: true\n isToplevel?: true\n isConstructor?: true\n generated?: {\n fileName?: string\n lineNumber?: number\n columnNumber?: number\n }\n}\n\nexport interface GeneratedResult {\n fileName?: string | null\n lineNumber?: number | null\n columnNumber?: number | null\n}\n\nconst isCallSite = (c: any): c is NodeJS.CallSite =>\n !!c && typeof c === 'object' && c.constructor?.name === 'CallSite'\n\nexport class CallSiteLike {\n static prepareStackTrace(e: Error, c: NodeJS.CallSite[]) {\n return c.map(c => new CallSiteLike(e, c))\n }\n\n #fileName?: string | null\n #cwd?: string\n lineNumber: ReturnType<NodeJS.CallSite['getLineNumber']>\n columnNumber: ReturnType<NodeJS.CallSite['getColumnNumber']>\n this: ReturnType<NodeJS.CallSite['getThis']>\n evalOrigin?: CallSiteLike\n function: ReturnType<NodeJS.CallSite['getFunction']>\n typeName: ReturnType<NodeJS.CallSite['getTypeName']>\n methodName: ReturnType<NodeJS.CallSite['getMethodName']>\n functionName: ReturnType<NodeJS.CallSite['getFunctionName']>\n isEval: ReturnType<NodeJS.CallSite['isEval']>\n isNative: ReturnType<NodeJS.CallSite['isNative']>\n isToplevel: ReturnType<NodeJS.CallSite['isToplevel']>\n isConstructor: ReturnType<NodeJS.CallSite['isConstructor']>\n generated?: GeneratedResult\n #sourceMap?: SourceMap\n\n // normalize and relativize filename if cwd is set\n get fileName() {\n return this.#relativize(this.#fileName)\n }\n\n get absoluteFileName() {\n if (!this.#fileName) return this.#fileName\n else if (this.#fileName.startsWith('file://')) {\n return fileURLToPath(this.#fileName)\n } else {\n return this.#fileName\n }\n }\n\n get cwd(): string | undefined {\n return this.#cwd\n }\n\n set cwd(cwd: string | undefined) {\n if (cwd === undefined) {\n if (this.generated) {\n this.generated.fileName = this.#derelativize(\n this.generated?.fileName,\n )\n }\n }\n this.#cwd = cwd?.replace(/\\\\/g, '/')\n if (cwd !== undefined) {\n if (this.generated) {\n this.generated.fileName = this.#relativize(\n this.generated?.fileName,\n )\n }\n }\n if (this.evalOrigin) this.evalOrigin.cwd = cwd\n }\n\n constructor(e: Error | null, c: NodeJS.CallSite | string | Compiled) {\n if (typeof c === 'string') {\n c = parseCallSiteLine(c)\n }\n\n if (isCallSite(c)) {\n const fileName = c.getFileName()\n this.#fileName = typeof fileName === 'string' ? fileName : null\n this.lineNumber = c.getLineNumber()\n this.columnNumber = c.getColumnNumber()\n this.this = c.getThis()\n const evalOrigin = c.getEvalOrigin()\n if (evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, evalOrigin)\n }\n this.function = c.getFunction()\n this.typeName = c.getTypeName()\n this.methodName = c.getMethodName()\n this.functionName = c.getFunctionName()\n this.isEval = c.isEval()\n this.isNative = c.isNative()\n this.isToplevel = c.isToplevel()\n this.isConstructor = c.isConstructor()\n } else if (isCompiledCallSiteLine(c)) {\n // compiled object from stack line\n this.isEval = !!c.isEval\n this.isToplevel = false\n if (c.evalOrigin) {\n this.evalOrigin = new CallSiteLike(e, c.evalOrigin)\n }\n\n this.lineNumber = c.lineNumber === undefined ? null : c.lineNumber\n this.columnNumber =\n c.columnNumber === undefined ? null : c.columnNumber\n const fileName = c.fileName\n this.#fileName = typeof fileName === 'string' ? fileName : null\n const { generated } = c\n if (generated) {\n this.generated = generated\n this.generated.fileName = this.#relativize(generated.fileName)\n }\n let fname = c.fname?.trim()\n let method: null | string = null\n this.isNative = !!c.isNative\n\n if (fname) {\n if (fname.startsWith('new ')) {\n this.isConstructor = true\n fname = fname.substring('new '.length).trim()\n } else {\n this.isConstructor = false\n }\n this.methodName = null\n const methodMatch = fname.match(methodRe) as [\n string,\n string,\n string,\n ]\n if (methodMatch) {\n fname = methodMatch[1]\n method = methodMatch[2]\n }\n const dots = fname.split('.')\n const m = dots.pop()\n if (m !== undefined) {\n this.typeName = dots.join('.').trim() || null\n this.methodName = method || m\n if (this.methodName.match(/^get |set /)) {\n this.methodName = this.methodName.substring(4)\n }\n this.functionName = m\n // we know it's not undefined, but TS is afraid of pop()\n /* c8 ignore start */\n } else {\n this.functionName = null\n this.typeName = null\n }\n /* c8 ignore stop */\n } else {\n this.isConstructor = false\n this.typeName = null\n this.functionName = null\n this.methodName = null\n }\n } else {\n throw new Error('invalid call site information provided')\n }\n\n // This is a slight deviation from the CallSite API, but it's very useful\n // to have a field that's the actual function with type and method name.\n if (\n this.typeName &&\n this.functionName &&\n !this.functionName.startsWith(this.typeName)\n ) {\n this.functionName = `${this.typeName}.${this.functionName}`\n } else if (this.functionName === this.methodName) {\n this.methodName = null\n }\n\n // We only do the sourcemap lookup if we're parsing from a CallSite\n // If we get it from an Error stack line, then Node has already done\n // the mapping for us, and when ts-node (and other in-place\n // transpilers) create JavaScript, they use the same filename, leading\n // to an incorrect double offset,.\n if (\n this.#fileName &&\n isCallSite(c) &&\n !this.#sourceMap &&\n !this.#fileName.startsWith('node:')\n ) {\n // Passing an object that isn't an actual Error object to\n // findSourceMap causes problems in node 16\n this.#sourceMap = findSourceMap(this.#fileName)\n if (this.#sourceMap && typeof this.lineNumber === 'number') {\n // SourceMap.findEntry doesn't actually return the line/column\n // number, despite the property names, but rather the zero-indexed\n // line/column start of a mapping range, and must be looked up\n // using the zero-indexed line and column.\n // To find the mapping, we look it up with the zero-indexed\n // line/col, then figure out how far our line/col is from the\n // mapping, and apply that same offset to the start of the origin\n // in the mapping.\n const payload = this.#sourceMap.findEntry(\n // safety bounds around numbers here, impossible to hit\n // if we're looking up actual call sites though.\n /* c8 ignore start */\n Math.max(0, this.lineNumber - 1),\n Math.max(0, (this.columnNumber || 0) - 1),\n /* c8 ignore stop */\n ) as undefined | SourceMapping\n if (payload) {\n const offset: [number, number] = [\n this.lineNumber - payload.generatedLine,\n /* c8 ignore start */\n (this.columnNumber || 1) - payload.generatedColumn,\n /* c8 ignore stop */\n ]\n const originalLine = payload.originalLine + offset[0]\n const originalColumn = payload.originalColumn + offset[1]\n const genFilename = this.#relativize(this.#fileName)\n this.generated = {\n /* c8 ignore start */\n fileName: this.#relativize(genFilename || null),\n /* c8 ignore stop */\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n }\n\n this.#fileName = payload.originalSource\n this.lineNumber = originalLine\n this.columnNumber = originalColumn\n }\n }\n }\n }\n\n #relativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n else f = f.replace(/\\\\/g, '/')\n try {\n const rel = relative(this.#cwd, f)\n return rel.length < f.length ? rel : f\n } catch {\n return f\n }\n }\n #derelativize(fileName?: string | null) {\n let f = fileName\n if (!f) return f\n if (f.startsWith('node:')) return f\n if (f.startsWith('file://')) f = fileURLToPath(f)\n if (this.#cwd === undefined) return f\n try {\n return resolve(this.#cwd, f)\n } catch {\n return f\n }\n }\n\n toString(jsStyle = false): string {\n // in js style mode, use the origin source file if it is within\n // our cwd. Otherwise, use the generated source location.\n const useGen =\n jsStyle &&\n this.generated?.fileName &&\n this.fileName &&\n this.generated.fileName !== this.fileName &&\n (isAbsolute(this.fileName) || this.fileName.startsWith('..'))\n const { fileName, lineNumber, columnNumber, generated } =\n useGen && this.generated ?\n {\n fileName: this.#derelativize(this.generated.fileName),\n lineNumber: this.generated.lineNumber,\n columnNumber: this.generated.columnNumber,\n generated: undefined,\n }\n : jsStyle ?\n {\n fileName: this.#derelativize(this.fileName),\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n generated: undefined,\n }\n : this\n const loc = { fileName, lineNumber, columnNumber, generated }\n for (const l of [loc, loc.generated]) {\n if (l?.fileName) {\n l.fileName =\n jsStyle ?\n this.#derelativize(l.fileName)\n : this.#relativize(l.fileName)\n }\n }\n\n let fname = this.functionName || ''\n let tn = ''\n let tnGet = ''\n let tnSet = ''\n if (this.typeName) {\n const mn = this.methodName || '<anonymous>'\n tn = this.typeName + '.' + mn\n tnGet = this.typeName + '.get ' + mn\n tnSet = this.typeName + '.set ' + mn\n }\n if (!fname && tn) {\n fname = tn\n }\n const mn = this.methodName\n if (\n fname &&\n tn &&\n mn &&\n fname !== tn &&\n fname !== tnGet &&\n fname !== tnSet\n ) {\n fname += ` [as ${mn}]`\n }\n if (this.isConstructor && fname) {\n fname = `new ${fname}`\n }\n let ev = ''\n const nat = this.isNative ? 'native' : ''\n let file = loc.fileName || ''\n const hasLC = loc.lineNumber && loc.columnNumber\n if (this.evalOrigin) {\n ev = `eval at ${this.evalOrigin.toString(jsStyle)}`\n if (hasLC) {\n const f = loc.fileName || '<anonymous>'\n let lr = `${f}:${loc.lineNumber}:${loc.columnNumber}`\n if (loc.generated && loc.generated.fileName) {\n const f = loc.generated.fileName\n const { lineNumber: l, columnNumber: c } = loc.generated\n lr = `${f}:${l}:${c} (${lr})`\n }\n ev += `, ${lr}`\n }\n // should always have an fname at this point\n /* c8 ignore start */\n ev = fname ? ` (${ev})` : ev\n /* c8 ignore stop */\n return `${fname}${ev}`\n }\n\n if (file || hasLC) {\n if (hasLC) {\n /* c8 ignore start */\n file = file || '<anonymous>'\n /* c8 ignore stop */\n file += `:${loc.lineNumber}:${loc.columnNumber}`\n }\n } else if (nat) {\n file = 'native'\n // impossible in normal cases\n /* c8 ignore start */\n } else {\n file = ''\n }\n /* c8 ignore stop */\n let g = ''\n if (loc.generated && loc.generated.fileName) {\n const { fileName, lineNumber, columnNumber } = loc.generated\n g = fileName\n /* c8 ignore start */\n if (!g) g = ''\n /* c8 ignore stop */\n if (g === loc.fileName) g = ''\n if (g) {\n if (\n typeof lineNumber === 'number' &&\n typeof columnNumber === 'number'\n ) {\n g += `:${lineNumber}:${columnNumber}`\n }\n if (ev || fname) {\n g = ` (${g})`\n }\n }\n }\n if (file && (ev || fname || g)) {\n file = ` (${file})`\n }\n const pre = jsStyle ? ' at ' : ''\n return `${pre}${fname}${ev}${g}${file}`\n }\n\n toJSON(): CallSiteLikeJSON {\n const {\n fileName,\n lineNumber,\n columnNumber,\n evalOrigin,\n typeName,\n methodName,\n functionName,\n isEval,\n isNative,\n isToplevel,\n isConstructor,\n generated,\n } = this\n const json: CallSiteLikeJSON = {}\n if (fileName !== null) json.fileName = fileName\n if (lineNumber || lineNumber === 0) json.lineNumber = lineNumber\n if (columnNumber || columnNumber === 0)\n json.columnNumber = columnNumber\n if (evalOrigin) json.evalOrigin = evalOrigin.toJSON()\n\n if (typeName !== null) {\n json.typeName = typeName\n }\n\n if (methodName !== null) json.methodName = methodName\n if (functionName !== null) json.functionName = functionName\n if (isEval) json.isEval = isEval\n if (isNative) json.isNative = isNative\n if (isToplevel) json.isToplevel = isToplevel\n if (isConstructor) json.isConstructor = isConstructor\n if (generated && generated.fileName) {\n const f = this.#relativize(generated.fileName)\n if (\n f &&\n typeof f === 'string' &&\n (f !== json.fileName || f === '<anonymous>')\n ) {\n const gen: Record<string, string | number> = {}\n gen.fileName = f\n if (generated.lineNumber) gen.lineNumber = generated.lineNumber\n if (generated.columnNumber)\n gen.columnNumber = generated.columnNumber\n if (Object.keys(gen).length > 0) {\n json.generated = gen\n }\n }\n }\n return json\n }\n}\n"]} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAiBnD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,GAAG,SAAS,uBAAc,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,MAAM,0BAAY,CAAA;AAG/B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,eAA4B,CAAA;AAC/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,GAAG,OAAO,YACtB,CAAA;AAgB3B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,SAM1C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,SAM7C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yBACU,CAAA;AAkCzC;;GAEG;AACH,eAAO,MAAM,oBAAoB,0BAG9B,CAAA;AAKH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,GAAG,OAAO,YACtB,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAA8B,CAAA;AAgDnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAAA;AACtD,wBAAgB,OAAO,CACrB,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,IAAI,YAAY,EAAE,CAAA;AAgCzC;;;;;;GAMG;AACH,eAAO,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KACnC,YAAY,GAAG,SAGnB,CAAA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,MAAM,CAAA;AACT,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;AACpD,wBAAgB,aAAa,CAC3B,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACrC,MAAM,CAAA;AACT,wBAAgB,aAAa,IAAI,MAAM,CAAA;AAevC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GACvB,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,KAC/B,YAAY,EA2Bd,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,KAAK,KAAG,MAGjC,CAAA;AAEb;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,YAAY,EAOhD,CAAA;AAEH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,GAAG,YAAY,EAAE,KAAG,MAMzD,CAAA"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAiBnD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,GAAG,SAAS,uBAAc,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,MAAM,0BAAY,CAAA;AAG/B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,eAA4B,CAAA;AAC/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,GAAG,OAAO,YACtB,CAAA;AAgB3B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,SAM1C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,SAM7C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yBACU,CAAA;AAkCzC;;GAEG;AACH,eAAO,MAAM,oBAAoB,0BAC0C,CAAA;AAK3E;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,GAAG,OAAO,YACtB,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAA8B,CAAA;AAgDnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAAA;AACtD,wBAAgB,OAAO,CACrB,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,YAAY,EAAE,CAAA;AACjB,wBAAgB,OAAO,IAAI,YAAY,EAAE,CAAA;AAgCzC;;;;;;GAMG;AACH,eAAO,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,KACnC,YAAY,GAAG,SAGnB,CAAA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACpC,MAAM,CAAA;AACT,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;AACpD,wBAAgB,aAAa,CAC3B,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACrC,MAAM,CAAA;AACT,wBAAgB,aAAa,IAAI,MAAM,CAAA;AAevC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GACvB,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,KAC/B,YAAY,EAyBd,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,KAAK,KAAG,MAGjC,CAAA;AAEb;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,YAAY,EAOhD,CAAA;AAEH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,GAAG,YAAY,EAAE,KAAG,MAMzD,CAAA"} |
@@ -107,3 +107,3 @@ import { builtinModules } from 'node:module'; | ||
| */ | ||
| export const getIgnoredPackagesRE = () => !dirty ? ignoredPackagesRE : ((ignoredPackagesRE = buildIgnoredPackages())); | ||
| export const getIgnoredPackagesRE = () => !dirty ? ignoredPackagesRE : (ignoredPackagesRE = buildIgnoredPackages()); | ||
| let ignoredPackagesRE = buildIgnoredPackages(); | ||
@@ -243,3 +243,3 @@ let filterIgnoredPackages = true; | ||
| // any weird junk it might contain | ||
| return cleanHead ? cleaned : (cleaned.filter(c => !isErrorStackHead(c))); | ||
| return cleanHead ? cleaned : cleaned.filter(c => !isErrorStackHead(c)); | ||
| }; | ||
@@ -246,0 +246,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules } from 'node:module'\nimport { resolve } from 'node:path'\nimport { CallSiteLike } from './call-site-like.js'\nimport { requireResolve } from './require-resolve.js'\nexport { CallSiteLike, CallSiteLikeJSON } from './call-site-like.js'\nexport type { GeneratedResult } from './call-site-like.js'\nexport type { Compiled, LineRef } from './parse.js'\n\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// platform portability accommodation\n/* c8 ignore start */\nlet cwd =\n (\n typeof process === 'object' &&\n process &&\n typeof process.cwd === 'function'\n ) ?\n process.cwd()\n : undefined\n/* c8 ignore stop */\n\n/**\n * Set the effective cwd for shortening filenames in stack traces\n * Set to `undefined` to show full absolute paths.\n */\nexport const setCwd = (c: string | undefined) => (cwd = c)\n\n/**\n * Get the effective cwd for shortening filenames in stack traces\n * If set to `undefined`, then will show full absolute paths.\n */\nexport const getCwd = () => cwd\n\nlet filterNodeInternals = true\n/**\n * Get the current value indicating whether node internals should be\n * filtered out. (Defaults to true)\n */\nexport const getFilterNodeInternals = () => filterNodeInternals\n/**\n * Set whether node internals should be filtered out.\n */\nexport const setFilterNodeInternals = (s: boolean) =>\n (filterNodeInternals = s)\n\n// these are packages that function somewhat like node internals,\n// for tap's purposes, and `@tapjs` packages themselves, when loaded\n// from node_modules.\nconst ignoredPackages: string[] = [\n '@tapjs',\n '@isaacs/ts-node-temp-fork-for-pr-2009',\n 'pirates',\n 'function-loop',\n '@cspotcode/source-map-support',\n 'signal-exit',\n 'async-hook-domain',\n]\nlet dirty: boolean = false\n\n/**\n * Add a package name to the list of deps that should be excluded\n * from stack traces.\n */\nexport const addIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i === -1) {\n ignoredPackages.push(s)\n dirty = true\n }\n}\n\n/**\n * Remove a package name from the list of deps that should be excluded\n * from stack traces.\n */\nexport const removeIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i !== -1) {\n ignoredPackages.splice(i, 1)\n dirty = true\n }\n}\n\n/**\n * Get a read-only copy of the list of deps that should be excluded\n * from stack traces.\n */\nexport const getIgnoredPackages = () =>\n Object.freeze(ignoredPackages.slice(0))\n\nconst getTestBuiltPath = () => {\n const p = requireResolve('@tapjs/test')\n // we'll always find the test class in this project\n /* c8 ignore start */\n if (!p) return ''\n /* c8 ignore stop */\n return resolve(p, '../../../test-built')\n}\n\nconst buildIgnoredPackages = () => {\n // just a safety precaution, no reason to ever do this\n /* c8 ignore start */\n if (!ignoredPackages.length) return undefined\n /* c8 ignore stop */\n const p = ignoredPackages.map(s => regExpEscape(s)).join('|')\n const nm = `[/\\\\\\\\]node_modules[/\\\\\\\\](?:${p})([/\\\\\\\\]|$)`\n // if we are ignoring @tapjs/test, then also ignore its built\n // plugged-in implementation. This is only relevant when developing\n // this project, or other cases where @tapjs/test may be linked,\n // because when it's loaded from node_modules, it'll be excluded\n // by virtue of being in that folder anyhow.\n const built =\n (\n ignoredPackages.includes('@tapjs') ||\n ignoredPackages.includes('@tapjs/test')\n ) ?\n getTestBuiltPath()\n : ''\n const re = built ? `${built}([/\\\\\\\\].*|$)|${nm}` : nm\n return new RegExp(re)\n}\n\n/**\n * exported for testing, no real purpose, but also no harm in looking\n */\nexport const getIgnoredPackagesRE = () =>\n !dirty ? ignoredPackagesRE : (\n (ignoredPackagesRE = buildIgnoredPackages())\n )\n\nlet ignoredPackagesRE: RegExp | undefined = buildIgnoredPackages()\nlet filterIgnoredPackages = true\n\n/**\n * Set whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const setFilterIgnoredPackages = (s: boolean) =>\n (filterIgnoredPackages = s)\n\n/**\n * Get whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const getFilterIgnoredPackages = () => filterIgnoredPackages\n\n// detect the first line of Error.stack, 'Error: blah'\nconst isErrorStackHead = (c?: CallSiteLike): boolean =>\n !!c &&\n c.lineNumber === null &&\n c.columnNumber === null &&\n c.this === undefined &&\n c.evalOrigin === undefined &&\n c.function === undefined &&\n c.typeName === null &&\n c.methodName === null &&\n (typeof c.functionName === 'string' || !c.functionName) &&\n c.isEval === false &&\n c.isNative === false &&\n c.isToplevel === false &&\n c.isConstructor === false &&\n c.generated === undefined\n\nconst filter = (c: CallSiteLike): boolean => {\n const s = c.fileName\n // technically this is possible, but super unlikely\n /* c8 ignore start */\n if (!s) return true\n /* c8 ignore stop */\n if (dirty && filterIgnoredPackages) {\n ignoredPackagesRE = buildIgnoredPackages()\n dirty = false\n }\n return (\n (!filterNodeInternals ||\n !(s.startsWith('node:') || builtinModules.includes(s))) &&\n (!filterIgnoredPackages || !ignoredPackagesRE?.test(s))\n )\n}\n\nconst clean = (c: CallSiteLike[]): CallSiteLike[] => {\n const filtered = c.filter(filter)\n while (isErrorStackHead(filtered[0])) filtered.shift()\n if (cwd !== undefined) {\n for (const c of filtered) {\n c.cwd = cwd\n }\n }\n return filtered\n}\n\nlet capturing = false\n/**\n * Get an array of {@link @tapjs/stack!call-site-like.CallSiteLike} objects for\n * the current location, from the call to the `fn` argument supplied, limited\n * to the number of frames specified by `limit`.\n *\n * If the `limit` argument is 0, then the current `Error.stackTraceLimit`\n * value will be used.\n *\n * This method is not re-entry safe, due to the fact that it relies on\n * temporarily overriding the global Error.prepareStackTrace. As a result,\n * if a capture() is triggered in any of the methods used by the\n * CallSiteLike constructor (for example, if `@tapjs/intercept` is used to\n * capture the process.cwd() method, which is used by path.resolve()),\n * then that will cause problems. To work around this, if a re-entry is\n * detected, then an empty stack of [] is returned.\n *\n * Even if it was made re-entry safe, it would be easy to accidentally\n * trigger an infinite recursion and stack overflow in such a scenario, so\n * returning an empty stack in the case of re-entry is the best workaround.\n */\nexport function capture(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(limit: number): CallSiteLike[]\nexport function capture(\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(): CallSiteLike[]\nexport function capture(\n limit: number | Function | ((...a: any[]) => any) = 0,\n fn: Function | ((...a: any[]) => any) = capture,\n): CallSiteLike[] {\n // should be impossible to hit, but can if we have to look up\n // a sourcemap for a file we haven't seen before, and the filename\n // happens to come through as a url or relative path.\n /* c8 ignore start */\n if (capturing) return []\n /* c8 ignore stop */\n capturing = true\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const { prepareStackTrace, stackTraceLimit } = Error\n Error.prepareStackTrace = CallSiteLike.prepareStackTrace\n if (limit) {\n // we always get an extra few frames to account for internals\n // or proxy frames that might be filtered out of the top.\n Error.stackTraceLimit = limit + 10\n }\n const obj: { stack: CallSiteLike[] } = { stack: [] }\n Error.captureStackTrace(obj, fn)\n const { stack } = obj\n Object.assign(Error, { prepareStackTrace, stackTraceLimit })\n const st = clean(stack)\n capturing = false\n return limit === 0 ? st : st.slice(0, limit)\n}\n\n/**\n * Get the call site in the stack either where `at()` is called, or\n * where the supplied `fn` function is called.\n *\n * If `fn` is provided, and is not in the current call stack, then\n * `undefined` will be returned.\n */\nexport const at: (\n fn?: Function | ((...a: any[]) => any),\n) => CallSiteLike | undefined = (fn = at) => {\n const [site] = capture(1, fn)\n return site\n}\n\n/**\n * Same as {@link @tapjs/stack!index.capture}, but return the `toString()`\n * values of the {@link @tapjs/stack!call-site-like.CallSiteLike} objects\n */\nexport function captureString(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): string\nexport function captureString(limit: number): string\nexport function captureString(\n fn?: Function | ((...a: any[]) => any),\n): string\nexport function captureString(): string\nexport function captureString(\n limit: number | Function | ((...a: any[]) => any) = Infinity,\n fn: Function | ((...a: any[]) => any) = captureString,\n): string {\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const stack = capture(limit, fn)\n return (limit === 0 ? stack : stack.slice(0, limit))\n .map(c => String(c) + '\\n')\n .join('')\n}\n\n/**\n * Get an array of {@link CallSiteLike} objects corresponding to the stack\n * trace of the Error object provided.\n *\n * This does _not_ actually look at the current call site, or do anything\n * magical with the V8 engine. It's just parsing a string.\n *\n * While some effort is made to interpret stacks correctly when an Error\n * contains a `name` and `message`, remember that the `Error.stack` property in\n * JavaScript is remarkably sloppy. In some cases, if the `Error.message`\n * contains `\\n` and some lines after the first look like stack trace lines,\n * incorrect data may result. It's only as good as the stack you pass to it.\n */\nexport const captureError = (\n e: Error | NodeJS.ErrnoException,\n): CallSiteLike[] => {\n // errors almost always have these fields\n const { message = '', name = '', code } = e as NodeJS.ErrnoException\n const stack = typeof e.stack === 'string' ? e.stack : ''\n const head = name && message ? `${name}: ${message}\\n` : ''\n const errnoHead =\n name && message && code ? `${name} [${code}]: ${message}` : ''\n const cleanHead = !!head && stack.startsWith(head)\n const cleanErrnoHead = !!errnoHead && stack.startsWith(errnoHead)\n\n const s =\n cleanHead ? stack.substring(head.length)\n : cleanErrnoHead ? stack.substring(errnoHead.length)\n : stack\n const cleaned = clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l)\n .map(line => new CallSiteLike(e, line)),\n )\n\n // if we didn't clean the header cleanly, then sweep the stack for\n // any weird junk it might contain\n return cleanHead ? cleaned : (\n cleaned.filter(c => !isErrorStackHead(c))\n )\n}\n\n/**\n * Get a processed string stack corresponding to the stack trace of the Error\n * object provided.\n *\n * This method has all the same caveats as {@link captureError}. If the\n * object provided has a weird looking `stack` property, then you might get\n * weird results.\n */\nexport const captureErrorString = (e: Error): string =>\n captureError(e)\n .map(c => String(c) + '\\n')\n .join('')\n\n/**\n * Parse a stack string and return an array of CallSiteLike objects\n *\n * We use this to get the `at` diagnostic callsite when all we have is\n * a stack, either from a native Error object, or a stringified CallSiteLike\n * stack.\n */\nexport const parseStack = (s: string): CallSiteLike[] =>\n clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l.trim())\n .map(line => new CallSiteLike(null, line)),\n )\n\nexport const expandStack = (s?: string | CallSiteLike[]): string => {\n if (!s) return ''\n if (typeof s === 'string') return expandStack(parseStack(s))\n return clean(s)\n .map(c => c.toString(true) + '\\n')\n .join('')\n}\n"]} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules } from 'node:module'\nimport { resolve } from 'node:path'\nimport { CallSiteLike } from './call-site-like.js'\nimport { requireResolve } from './require-resolve.js'\nexport { CallSiteLike, CallSiteLikeJSON } from './call-site-like.js'\nexport type { GeneratedResult } from './call-site-like.js'\nexport type { Compiled, LineRef } from './parse.js'\n\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// platform portability accommodation\n/* c8 ignore start */\nlet cwd =\n (\n typeof process === 'object' &&\n process &&\n typeof process.cwd === 'function'\n ) ?\n process.cwd()\n : undefined\n/* c8 ignore stop */\n\n/**\n * Set the effective cwd for shortening filenames in stack traces\n * Set to `undefined` to show full absolute paths.\n */\nexport const setCwd = (c: string | undefined) => (cwd = c)\n\n/**\n * Get the effective cwd for shortening filenames in stack traces\n * If set to `undefined`, then will show full absolute paths.\n */\nexport const getCwd = () => cwd\n\nlet filterNodeInternals = true\n/**\n * Get the current value indicating whether node internals should be\n * filtered out. (Defaults to true)\n */\nexport const getFilterNodeInternals = () => filterNodeInternals\n/**\n * Set whether node internals should be filtered out.\n */\nexport const setFilterNodeInternals = (s: boolean) =>\n (filterNodeInternals = s)\n\n// these are packages that function somewhat like node internals,\n// for tap's purposes, and `@tapjs` packages themselves, when loaded\n// from node_modules.\nconst ignoredPackages: string[] = [\n '@tapjs',\n '@isaacs/ts-node-temp-fork-for-pr-2009',\n 'pirates',\n 'function-loop',\n '@cspotcode/source-map-support',\n 'signal-exit',\n 'async-hook-domain',\n]\nlet dirty: boolean = false\n\n/**\n * Add a package name to the list of deps that should be excluded\n * from stack traces.\n */\nexport const addIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i === -1) {\n ignoredPackages.push(s)\n dirty = true\n }\n}\n\n/**\n * Remove a package name from the list of deps that should be excluded\n * from stack traces.\n */\nexport const removeIgnoredPackage = (s: string) => {\n const i = ignoredPackages.indexOf(s)\n if (i !== -1) {\n ignoredPackages.splice(i, 1)\n dirty = true\n }\n}\n\n/**\n * Get a read-only copy of the list of deps that should be excluded\n * from stack traces.\n */\nexport const getIgnoredPackages = () =>\n Object.freeze(ignoredPackages.slice(0))\n\nconst getTestBuiltPath = () => {\n const p = requireResolve('@tapjs/test')\n // we'll always find the test class in this project\n /* c8 ignore start */\n if (!p) return ''\n /* c8 ignore stop */\n return resolve(p, '../../../test-built')\n}\n\nconst buildIgnoredPackages = () => {\n // just a safety precaution, no reason to ever do this\n /* c8 ignore start */\n if (!ignoredPackages.length) return undefined\n /* c8 ignore stop */\n const p = ignoredPackages.map(s => regExpEscape(s)).join('|')\n const nm = `[/\\\\\\\\]node_modules[/\\\\\\\\](?:${p})([/\\\\\\\\]|$)`\n // if we are ignoring @tapjs/test, then also ignore its built\n // plugged-in implementation. This is only relevant when developing\n // this project, or other cases where @tapjs/test may be linked,\n // because when it's loaded from node_modules, it'll be excluded\n // by virtue of being in that folder anyhow.\n const built =\n (\n ignoredPackages.includes('@tapjs') ||\n ignoredPackages.includes('@tapjs/test')\n ) ?\n getTestBuiltPath()\n : ''\n const re = built ? `${built}([/\\\\\\\\].*|$)|${nm}` : nm\n return new RegExp(re)\n}\n\n/**\n * exported for testing, no real purpose, but also no harm in looking\n */\nexport const getIgnoredPackagesRE = () =>\n !dirty ? ignoredPackagesRE : (ignoredPackagesRE = buildIgnoredPackages())\n\nlet ignoredPackagesRE: RegExp | undefined = buildIgnoredPackages()\nlet filterIgnoredPackages = true\n\n/**\n * Set whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const setFilterIgnoredPackages = (s: boolean) =>\n (filterIgnoredPackages = s)\n\n/**\n * Get whether or not the list of ignored packages should\n * be excluded from stack traces.\n */\nexport const getFilterIgnoredPackages = () => filterIgnoredPackages\n\n// detect the first line of Error.stack, 'Error: blah'\nconst isErrorStackHead = (c?: CallSiteLike): boolean =>\n !!c &&\n c.lineNumber === null &&\n c.columnNumber === null &&\n c.this === undefined &&\n c.evalOrigin === undefined &&\n c.function === undefined &&\n c.typeName === null &&\n c.methodName === null &&\n (typeof c.functionName === 'string' || !c.functionName) &&\n c.isEval === false &&\n c.isNative === false &&\n c.isToplevel === false &&\n c.isConstructor === false &&\n c.generated === undefined\n\nconst filter = (c: CallSiteLike): boolean => {\n const s = c.fileName\n // technically this is possible, but super unlikely\n /* c8 ignore start */\n if (!s) return true\n /* c8 ignore stop */\n if (dirty && filterIgnoredPackages) {\n ignoredPackagesRE = buildIgnoredPackages()\n dirty = false\n }\n return (\n (!filterNodeInternals ||\n !(s.startsWith('node:') || builtinModules.includes(s))) &&\n (!filterIgnoredPackages || !ignoredPackagesRE?.test(s))\n )\n}\n\nconst clean = (c: CallSiteLike[]): CallSiteLike[] => {\n const filtered = c.filter(filter)\n while (isErrorStackHead(filtered[0])) filtered.shift()\n if (cwd !== undefined) {\n for (const c of filtered) {\n c.cwd = cwd\n }\n }\n return filtered\n}\n\nlet capturing = false\n/**\n * Get an array of {@link @tapjs/stack!call-site-like.CallSiteLike} objects for\n * the current location, from the call to the `fn` argument supplied, limited\n * to the number of frames specified by `limit`.\n *\n * If the `limit` argument is 0, then the current `Error.stackTraceLimit`\n * value will be used.\n *\n * This method is not re-entry safe, due to the fact that it relies on\n * temporarily overriding the global Error.prepareStackTrace. As a result,\n * if a capture() is triggered in any of the methods used by the\n * CallSiteLike constructor (for example, if `@tapjs/intercept` is used to\n * capture the process.cwd() method, which is used by path.resolve()),\n * then that will cause problems. To work around this, if a re-entry is\n * detected, then an empty stack of [] is returned.\n *\n * Even if it was made re-entry safe, it would be easy to accidentally\n * trigger an infinite recursion and stack overflow in such a scenario, so\n * returning an empty stack in the case of re-entry is the best workaround.\n */\nexport function capture(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(limit: number): CallSiteLike[]\nexport function capture(\n fn: Function | ((...a: any[]) => any),\n): CallSiteLike[]\nexport function capture(): CallSiteLike[]\nexport function capture(\n limit: number | Function | ((...a: any[]) => any) = 0,\n fn: Function | ((...a: any[]) => any) = capture,\n): CallSiteLike[] {\n // should be impossible to hit, but can if we have to look up\n // a sourcemap for a file we haven't seen before, and the filename\n // happens to come through as a url or relative path.\n /* c8 ignore start */\n if (capturing) return []\n /* c8 ignore stop */\n capturing = true\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const { prepareStackTrace, stackTraceLimit } = Error\n Error.prepareStackTrace = CallSiteLike.prepareStackTrace\n if (limit) {\n // we always get an extra few frames to account for internals\n // or proxy frames that might be filtered out of the top.\n Error.stackTraceLimit = limit + 10\n }\n const obj: { stack: CallSiteLike[] } = { stack: [] }\n Error.captureStackTrace(obj, fn)\n const { stack } = obj\n Object.assign(Error, { prepareStackTrace, stackTraceLimit })\n const st = clean(stack)\n capturing = false\n return limit === 0 ? st : st.slice(0, limit)\n}\n\n/**\n * Get the call site in the stack either where `at()` is called, or\n * where the supplied `fn` function is called.\n *\n * If `fn` is provided, and is not in the current call stack, then\n * `undefined` will be returned.\n */\nexport const at: (\n fn?: Function | ((...a: any[]) => any),\n) => CallSiteLike | undefined = (fn = at) => {\n const [site] = capture(1, fn)\n return site\n}\n\n/**\n * Same as {@link @tapjs/stack!index.capture}, but return the `toString()`\n * values of the {@link @tapjs/stack!call-site-like.CallSiteLike} objects\n */\nexport function captureString(\n limit: number,\n fn: Function | ((...a: any[]) => any),\n): string\nexport function captureString(limit: number): string\nexport function captureString(\n fn?: Function | ((...a: any[]) => any),\n): string\nexport function captureString(): string\nexport function captureString(\n limit: number | Function | ((...a: any[]) => any) = Infinity,\n fn: Function | ((...a: any[]) => any) = captureString,\n): string {\n if (typeof limit === 'function') {\n fn = limit\n limit = 0\n }\n const stack = capture(limit, fn)\n return (limit === 0 ? stack : stack.slice(0, limit))\n .map(c => String(c) + '\\n')\n .join('')\n}\n\n/**\n * Get an array of {@link CallSiteLike} objects corresponding to the stack\n * trace of the Error object provided.\n *\n * This does _not_ actually look at the current call site, or do anything\n * magical with the V8 engine. It's just parsing a string.\n *\n * While some effort is made to interpret stacks correctly when an Error\n * contains a `name` and `message`, remember that the `Error.stack` property in\n * JavaScript is remarkably sloppy. In some cases, if the `Error.message`\n * contains `\\n` and some lines after the first look like stack trace lines,\n * incorrect data may result. It's only as good as the stack you pass to it.\n */\nexport const captureError = (\n e: Error | NodeJS.ErrnoException,\n): CallSiteLike[] => {\n // errors almost always have these fields\n const { message = '', name = '', code } = e as NodeJS.ErrnoException\n const stack = typeof e.stack === 'string' ? e.stack : ''\n const head = name && message ? `${name}: ${message}\\n` : ''\n const errnoHead =\n name && message && code ? `${name} [${code}]: ${message}` : ''\n const cleanHead = !!head && stack.startsWith(head)\n const cleanErrnoHead = !!errnoHead && stack.startsWith(errnoHead)\n\n const s =\n cleanHead ? stack.substring(head.length)\n : cleanErrnoHead ? stack.substring(errnoHead.length)\n : stack\n const cleaned = clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l)\n .map(line => new CallSiteLike(e, line)),\n )\n\n // if we didn't clean the header cleanly, then sweep the stack for\n // any weird junk it might contain\n return cleanHead ? cleaned : cleaned.filter(c => !isErrorStackHead(c))\n}\n\n/**\n * Get a processed string stack corresponding to the stack trace of the Error\n * object provided.\n *\n * This method has all the same caveats as {@link captureError}. If the\n * object provided has a weird looking `stack` property, then you might get\n * weird results.\n */\nexport const captureErrorString = (e: Error): string =>\n captureError(e)\n .map(c => String(c) + '\\n')\n .join('')\n\n/**\n * Parse a stack string and return an array of CallSiteLike objects\n *\n * We use this to get the `at` diagnostic callsite when all we have is\n * a stack, either from a native Error object, or a stringified CallSiteLike\n * stack.\n */\nexport const parseStack = (s: string): CallSiteLike[] =>\n clean(\n s\n .trimEnd()\n .split('\\n')\n .filter(l => !!l.trim())\n .map(line => new CallSiteLike(null, line)),\n )\n\nexport const expandStack = (s?: string | CallSiteLike[]): string => {\n if (!s) return ''\n if (typeof s === 'string') return expandStack(parseStack(s))\n return clean(s)\n .map(c => c.toString(true) + '\\n')\n .join('')\n}\n"]} |
+1
-1
| { | ||
| "name": "@tapjs/stack", | ||
| "version": "4.0.2", | ||
| "version": "4.0.3", | ||
| "description": "Utility for working with stack traces", | ||
@@ -5,0 +5,0 @@ "tshy": { |
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
228971
-0.09%2194
-0.09%