@zuplo/cli 6.14.0 → 6.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- export default StackTracey;
2
- declare class StackTracey {
1
+ export default class StackTracey {
2
+ static resetCache(): void;
3
3
  static locationsEqual(a: any, b: any): boolean;
4
4
  constructor(input: any, offset: any);
5
5
  items: any[];
@@ -21,7 +21,6 @@ declare class StackTracey {
21
21
  cleanAsync(): Promise<any>;
22
22
  isClean(entry: any, index: any): boolean;
23
23
  at(i: any): any;
24
- asTable(opts: any): string;
25
24
  maxColumnWidths(): {
26
25
  callee: number;
27
26
  file: number;
@@ -1 +1 @@
1
- {"version":3,"file":"stacktracy.d.ts","sourceRoot":"","sources":["../../../src/common/errors/stacktracy.js"],"names":[],"mappings":";AA6CA;IAoTE,+CAEC;IArTD,qCAkDC;IAJG,aAAkB;IAMtB,kCAaC;IAED,oCAKC;IAED,oCAeC;IAED,0DAQC;IAED,wBAoDC;IAED,0BAEC;IAED,+BAEC;IAED,0BAYC;IAED,wCAWC;IAED,mCAIC;IAED,iDAmBC;IAED,mBAEC;IAED,yCAIC;IAED,kCAmBC;IAED,aAGC;IAED,2BAKC;IAED,yCAEC;IAED,gBAaC;IAED,2BAkBC;IAED;;;;MAMC;CAKF"}
1
+ {"version":3,"file":"stacktracy.d.ts","sourceRoot":"","sources":["../../../src/common/errors/stacktracy.js"],"names":[],"mappings":"AAyCA;IAqSE,0BAGC;IAED,+CAEC;IA3SD,qCAkDC;IAJG,aAAkB;IAMtB,kCAaC;IAED,oCAKC;IAED,oCAiBC;IAED,0DAQC;IAED,wBAoDC;IAED,0BAEC;IAED,+BAEC;IAED,0BAYC;IAED,wCAcC;IAED,mCAIC;IAED,iDAmBC;IAED,mBAEC;IAED,yCAIC;IAED,kCAmBC;IAED,aAGC;IAED,2BAKC;IAED,yCAEC;IAED,gBAaC;IAED;;;;MAMC;CAUF"}
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  const partition = (arr_, pred) => {
2
3
  const arr = arr_ || [], spans = [];
3
4
  let span = { label: undefined, items: [arr.first] };
@@ -12,13 +13,14 @@ const partition = (arr_, pred) => {
12
13
  });
13
14
  return spans;
14
15
  };
16
+ import getSource from "get-source";
17
+ import path from "node:path";
18
+ import util from "node:util";
15
19
  const O = Object;
16
20
  const lastOf = (x) => x[x.length - 1];
17
- import asTable from "as-table";
18
- import getSource, { async } from "get-source";
19
21
  const nixSlashes = (x) => x.replace(/\\/g, "/");
20
22
  const pathRoot = nixSlashes(process.cwd()) + "/";
21
- class StackTracey {
23
+ export default class StackTracey {
22
24
  constructor(input, offset) {
23
25
  const originalInput = input, isParseableSyntaxError = input && input instanceof SyntaxError;
24
26
  if (!input) {
@@ -35,7 +37,7 @@ class StackTracey {
35
37
  }
36
38
  if (Array.isArray(input)) {
37
39
  if (isParseableSyntaxError) {
38
- const rawLines = nodeRequire("util").inspect(originalInput).split("\n"), fileLine = rawLines[0].split(":"), line = fileLine.pop(), file = fileLine.join(":");
40
+ const rawLines = util.inspect(originalInput).split("\n"), fileLine = rawLines[0].split(":"), line = fileLine.pop(), file = fileLine.join(":");
39
41
  if (file) {
40
42
  input.unshift({
41
43
  file: nixSlashes(file),
@@ -79,6 +81,7 @@ class StackTracey {
79
81
  ? externalDomainMatch[2]
80
82
  : undefined;
81
83
  result = externalDomainMatch ? externalDomainMatch[3] : result;
84
+ result = path.relative(pathRoot, result);
82
85
  return [
83
86
  nixSlashes(result).replace(/^.*\:\/\/?\/?/, ""),
84
87
  externalDomain,
@@ -120,7 +123,7 @@ class StackTracey {
120
123
  return {
121
124
  beforeParse: line,
122
125
  callee: callee || "",
123
- index: false,
126
+ index: fileLineColumn[0] === "/",
124
127
  native: native || false,
125
128
  file: nixSlashes(fileLineColumn[0] || ""),
126
129
  line: parseInt(fileLineColumn[1] || "", 10) || undefined,
@@ -152,10 +155,14 @@ class StackTracey {
152
155
  return Promise.resolve(loc);
153
156
  }
154
157
  else {
155
- return async(loc.file || "")
158
+ const fsPath = (loc.file || "").replace("file://", "");
159
+ return getSource
160
+ .async(fsPath)
156
161
  .then((x) => x.resolve(loc))
157
162
  .then((resolved) => this.withSourceResolved(loc, resolved))
158
- .catch((e) => this.withSourceResolved(loc, { error: e, sourceLine: "" }));
163
+ .catch((e) => {
164
+ this.withSourceResolved(loc, { error: e, sourceLine: "" });
165
+ });
159
166
  }
160
167
  }
161
168
  shouldSkipResolving(loc) {
@@ -221,17 +228,6 @@ class StackTracey {
221
228
  column: 0,
222
229
  }, this.items[i]);
223
230
  }
224
- asTable(opts) {
225
- const maxColumnWidths = (opts && opts.maxColumnWidths) || this.maxColumnWidths();
226
- const trimEnd = (s, n) => s && (s.length > n ? s.slice(0, n - 1) + "…" : s);
227
- const trimStart = (s, n) => s && (s.length > n ? "…" + s.slice(-(n - 1)) : s);
228
- const trimmed = this.map((e) => [
229
- "at " + trimEnd(e.calleeShort, maxColumnWidths.callee),
230
- trimStart((e.fileShort && e.fileShort + ":" + e.line) || "", maxColumnWidths.file),
231
- trimEnd((e.sourceLine || "").trim() || "", maxColumnWidths.sourceLine),
232
- ]);
233
- return asTable(trimmed.items);
234
- }
235
231
  maxColumnWidths() {
236
232
  return {
237
233
  callee: 30,
@@ -239,6 +235,10 @@ class StackTracey {
239
235
  sourceLine: 80,
240
236
  };
241
237
  }
238
+ static resetCache() {
239
+ getSource.resetCache();
240
+ getSource.async.resetCache();
241
+ }
242
242
  static locationsEqual(a, b) {
243
243
  return a.file === b.file && a.line === b.line && a.column === b.column;
244
244
  }
@@ -248,5 +248,4 @@ class StackTracey {
248
248
  return new StackTracey(this.items[method].apply(this.items, arguments));
249
249
  };
250
250
  });
251
- export default StackTracey;
252
251
  //# sourceMappingURL=stacktracy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stacktracy.js","sourceRoot":"","sources":["../../../src/common/errors/stacktracy.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\n/*\n * youch\n *\n * (c) Harminder Virk <virk@adonisjs.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n *\n * Source: https://github.com/xpl/stacktracey\n */\n\nconst partition = (arr_, pred) => {\n const arr = arr_ || [],\n spans = [];\n\n let span = { label: undefined, items: [arr.first] };\n\n arr.forEach((x) => {\n const label = pred(x);\n\n if (span.label !== label && span.items.length) {\n spans.push((span = { label: label, items: [x] }));\n } else {\n span.items.push(x);\n }\n });\n\n return spans;\n};\n\n/* ------------------------------------------------------------------------ */\n\nconst O = Object;\n\nconst // to prevent bundlers from expanding the require call\n lastOf = (x) => x[x.length - 1];\nimport asTable from \"as-table\";\nimport getSource, { async } from \"get-source\";\nconst nixSlashes = (x) => x.replace(/\\\\/g, \"/\");\nconst pathRoot = nixSlashes(process.cwd()) + \"/\";\n\n/* ------------------------------------------------------------------------ */\n\nclass StackTracey {\n constructor(input, offset) {\n const originalInput = input,\n isParseableSyntaxError = input && input instanceof SyntaxError;\n\n /* new StackTracey () */\n\n if (!input) {\n input = new Error();\n offset = offset === undefined ? 1 : offset;\n }\n\n /* new StackTracey (Error) */\n\n if (input instanceof Error) {\n input = input.stack || \"\";\n }\n\n /* new StackTracey (string) */\n\n if (typeof input === \"string\") {\n input = this.rawParse(input)\n .slice(offset)\n .map((x) => this.extractEntryMetadata(x));\n }\n\n /* new StackTracey (array) */\n\n if (Array.isArray(input)) {\n if (isParseableSyntaxError) {\n const rawLines = nodeRequire(\"util\").inspect(originalInput).split(\"\\n\"),\n fileLine = rawLines[0].split(\":\"),\n line = fileLine.pop(),\n file = fileLine.join(\":\");\n\n if (file) {\n input.unshift({\n file: nixSlashes(file),\n line: line,\n column: (rawLines[2] || \"\").indexOf(\"^\") + 1,\n sourceLine: rawLines[1],\n callee: \"(syntax error)\",\n syntaxError: true,\n });\n }\n }\n\n this.items = input;\n } else {\n this.items = [];\n }\n }\n\n extractEntryMetadata(e) {\n const decomposedPath = this.decomposePath(e.file || \"\");\n const fileRelative = decomposedPath[0];\n const externalDomain = decomposedPath[1];\n\n return O.assign(e, {\n calleeShort: e.calleeShort || lastOf((e.callee || \"\").split(\".\")),\n fileRelative: fileRelative,\n fileShort: this.shortenPath(fileRelative),\n fileName: lastOf((e.file || \"\").split(\"/\")),\n thirdParty: this.isThirdParty(fileRelative, externalDomain) && !e.index,\n externalDomain: externalDomain,\n });\n }\n\n shortenPath(relativePath) {\n return relativePath\n .replace(/^node_modules\\//, \"\")\n .replace(/^webpack\\/bootstrap\\//, \"\")\n .replace(/^__parcel_source_root\\//, \"\");\n }\n\n decomposePath(fullPath) {\n let result = fullPath;\n\n const externalDomainMatch = result.match(\n /^(http|https)\\:\\/\\/?([^\\/]+)\\/(.*)/\n );\n const externalDomain = externalDomainMatch\n ? externalDomainMatch[2]\n : undefined;\n result = externalDomainMatch ? externalDomainMatch[3] : result;\n\n return [\n nixSlashes(result).replace(/^.*\\:\\/\\/?\\/?/, \"\"), // cut webpack:/// and webpack:/ things\n externalDomain,\n ];\n }\n\n isThirdParty(relativePath, externalDomain) {\n return (\n externalDomain ||\n relativePath[0] === \"~\" || // webpack-specific heuristic\n relativePath[0] === \"/\" || // external source\n relativePath.indexOf(\"node_modules\") === 0 ||\n relativePath.indexOf(\"webpack/bootstrap\") === 0\n );\n }\n\n rawParse(str) {\n const lines = (str || \"\").split(\"\\n\");\n\n const entries = lines.map((line) => {\n line = line.trim();\n\n let callee,\n fileLineColumn = [],\n native,\n planA,\n planB;\n\n if (\n (planA = line.match(/at (.+) \\(eval at .+ \\((.+)\\), .+\\)/)) || // eval calls\n (planA = line.match(/at (.+) \\((.+)\\)/)) ||\n (line.slice(0, 3) !== \"at \" && (planA = line.match(/(.*)@(.*)/)))\n ) {\n callee = planA[1];\n native = planA[2] === \"native\";\n fileLineColumn = (\n planA[2].match(/(.*):(\\d+):(\\d+)/) ||\n planA[2].match(/(.*):(\\d+)/) ||\n []\n ).slice(1);\n } else if ((planB = line.match(/^(at\\s+)*(.+):(\\d+):(\\d+)/))) {\n fileLineColumn = planB.slice(2);\n } else {\n return undefined;\n }\n\n /* Detect things like Array.reduce\n TODO: detect more built-in types */\n\n if (callee && !fileLineColumn[0]) {\n const type = callee.split(\".\")[0];\n if (type === \"Array\") {\n native = true;\n }\n }\n\n return {\n beforeParse: line,\n callee: callee || \"\",\n index: false,\n native: native || false,\n file: nixSlashes(fileLineColumn[0] || \"\"),\n line: parseInt(fileLineColumn[1] || \"\", 10) || undefined,\n column: parseInt(fileLineColumn[2] || \"\", 10) || undefined,\n };\n });\n\n return entries.filter((x) => x !== undefined);\n }\n\n withSourceAt(i) {\n return this.items[i] && this.withSource(this.items[i]);\n }\n\n withSourceAsyncAt(i) {\n return this.items[i] && this.withSourceAsync(this.items[i]);\n }\n\n withSource(loc) {\n if (this.shouldSkipResolving(loc)) {\n return loc;\n } else {\n let resolved = getSource(loc.file || \"\").resolve(loc);\n\n if (!resolved.sourceFile) {\n return loc;\n }\n\n return this.withSourceResolved(loc, resolved);\n }\n }\n\n withSourceAsync(loc) {\n if (this.shouldSkipResolving(loc)) {\n return Promise.resolve(loc);\n } else {\n return async(loc.file || \"\")\n .then((x) => x.resolve(loc))\n .then((resolved) => this.withSourceResolved(loc, resolved))\n .catch((e) =>\n this.withSourceResolved(loc, { error: e, sourceLine: \"\" })\n );\n }\n }\n\n shouldSkipResolving(loc) {\n return (\n loc.sourceFile || loc.error || (loc.file && loc.file.indexOf(\"<\") >= 0)\n ); // skip things like <anonymous> and stuff that was already fetched\n }\n\n withSourceResolved(loc, resolved) {\n if (resolved.sourceFile && !resolved.sourceFile.error) {\n resolved.file = nixSlashes(resolved.sourceFile.path);\n resolved = this.extractEntryMetadata(resolved);\n }\n\n if (resolved.sourceLine.includes(\"// @hide\")) {\n resolved.sourceLine = resolved.sourceLine.replace(\"// @hide\", \"\");\n resolved.hide = true;\n }\n\n if (\n resolved.sourceLine.includes(\"__webpack_require__\") || // webpack-specific heuristics\n resolved.sourceLine.includes(\"/******/ ({\")\n ) {\n resolved.thirdParty = true;\n }\n\n return O.assign({ sourceLine: \"\" }, loc, resolved);\n }\n\n withSources() {\n return this.map((x) => this.withSource(x));\n }\n\n withSourcesAsync() {\n return Promise.all(this.items.map((x) => this.withSourceAsync(x))).then(\n (items) => new StackTracey(items)\n );\n }\n\n mergeRepeatedLines() {\n return new StackTracey(\n partition(this.items, (e) => e.file + e.line).map((group) => {\n return group.items.slice(1).reduce(\n (memo, entry) => {\n memo.callee =\n (memo.callee || \"<anonymous>\") +\n \" → \" +\n (entry.callee || \"<anonymous>\");\n memo.calleeShort =\n (memo.calleeShort || \"<anonymous>\") +\n \" → \" +\n (entry.calleeShort || \"<anonymous>\");\n return memo;\n },\n O.assign({}, group.items[0])\n );\n })\n );\n }\n\n clean() {\n const s = this.withSources().mergeRepeatedLines();\n return s.filter(s.isClean.bind(s));\n }\n\n cleanAsync() {\n return this.withSourcesAsync().then((s) => {\n s = s.mergeRepeatedLines();\n return s.filter(s.isClean.bind(s));\n });\n }\n\n isClean(entry, index) {\n return index === 0 || !(entry.thirdParty || entry.hide || entry.native);\n }\n\n at(i) {\n return O.assign(\n {\n beforeParse: \"\",\n callee: \"<???>\",\n index: false,\n native: false,\n file: \"<???>\",\n line: 0,\n column: 0,\n },\n this.items[i]\n );\n }\n\n asTable(opts) {\n const maxColumnWidths =\n (opts && opts.maxColumnWidths) || this.maxColumnWidths();\n\n const trimEnd = (s, n) => s && (s.length > n ? s.slice(0, n - 1) + \"…\" : s);\n const trimStart = (s, n) =>\n s && (s.length > n ? \"…\" + s.slice(-(n - 1)) : s);\n\n const trimmed = this.map((e) => [\n \"at \" + trimEnd(e.calleeShort, maxColumnWidths.callee),\n trimStart(\n (e.fileShort && e.fileShort + \":\" + e.line) || \"\",\n maxColumnWidths.file\n ),\n trimEnd((e.sourceLine || \"\").trim() || \"\", maxColumnWidths.sourceLine),\n ]);\n\n return asTable(trimmed.items);\n }\n\n maxColumnWidths() {\n return {\n callee: 30,\n file: 60,\n sourceLine: 80,\n };\n }\n\n static locationsEqual(a, b) {\n return a.file === b.file && a.line === b.line && a.column === b.column;\n }\n}\n\n/* Array methods\n ------------------------------------------------------------------------ */\n\n[\"map\", \"filter\", \"slice\", \"concat\"].forEach((method) => {\n StackTracey.prototype[method] = function (/*...args */) {\n // no support for ...args in Node v4 :(\n return new StackTracey(this.items[method].apply(this.items, arguments));\n };\n});\n\n/* ------------------------------------------------------------------------ */\n\nexport default StackTracey;\n"]}
1
+ {"version":3,"file":"stacktracy.js","sourceRoot":"","sources":["../../../src/common/errors/stacktracy.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\n\n\"use strict\";\n\n/**\n * Adapted from Stacktracey (https://github.com/xpl/stacktracey).\n *\n * For the original license, see https://github.com/xpl/stacktracey/blob/master/LICENSE\n *\n */\nconst partition = (arr_, pred) => {\n const arr = arr_ || [],\n spans = [];\n\n let span = { label: undefined, items: [arr.first] };\n\n arr.forEach((x) => {\n const label = pred(x);\n\n if (span.label !== label && span.items.length) {\n spans.push((span = { label: label, items: [x] }));\n } else {\n span.items.push(x);\n }\n });\n\n return spans;\n};\n\nimport getSource from \"get-source\";\nimport path from \"node:path\";\nimport util from \"node:util\";\n\nconst O = Object;\nconst // to prevent bundlers from expanding the require call\n lastOf = (x) => x[x.length - 1];\nconst nixSlashes = (x) => x.replace(/\\\\/g, \"/\");\n\nconst pathRoot = nixSlashes(process.cwd()) + \"/\";\n/* ------------------------------------------------------------------------ */\n\nexport default class StackTracey {\n constructor(input, offset) {\n const originalInput = input,\n isParseableSyntaxError = input && input instanceof SyntaxError;\n\n /* new StackTracey () */\n\n if (!input) {\n input = new Error();\n offset = offset === undefined ? 1 : offset;\n }\n\n /* new StackTracey (Error) */\n\n if (input instanceof Error) {\n input = input.stack || \"\";\n }\n\n /* new StackTracey (string) */\n\n if (typeof input === \"string\") {\n input = this.rawParse(input)\n .slice(offset)\n .map((x) => this.extractEntryMetadata(x));\n }\n\n /* new StackTracey (array) */\n\n if (Array.isArray(input)) {\n if (isParseableSyntaxError) {\n const rawLines = util.inspect(originalInput).split(\"\\n\"),\n fileLine = rawLines[0].split(\":\"),\n line = fileLine.pop(),\n file = fileLine.join(\":\");\n\n if (file) {\n input.unshift({\n file: nixSlashes(file),\n line: line,\n column: (rawLines[2] || \"\").indexOf(\"^\") + 1,\n sourceLine: rawLines[1],\n callee: \"(syntax error)\",\n syntaxError: true,\n });\n }\n }\n\n this.items = input;\n } else {\n this.items = [];\n }\n }\n\n extractEntryMetadata(e) {\n const decomposedPath = this.decomposePath(e.file || \"\");\n const fileRelative = decomposedPath[0];\n const externalDomain = decomposedPath[1];\n\n return O.assign(e, {\n calleeShort: e.calleeShort || lastOf((e.callee || \"\").split(\".\")),\n fileRelative: fileRelative,\n fileShort: this.shortenPath(fileRelative),\n fileName: lastOf((e.file || \"\").split(\"/\")),\n thirdParty: this.isThirdParty(fileRelative, externalDomain) && !e.index,\n externalDomain: externalDomain,\n });\n }\n\n shortenPath(relativePath) {\n return relativePath\n .replace(/^node_modules\\//, \"\")\n .replace(/^webpack\\/bootstrap\\//, \"\")\n .replace(/^__parcel_source_root\\//, \"\");\n }\n\n decomposePath(fullPath) {\n let result = fullPath;\n\n const externalDomainMatch = result.match(\n /^(http|https)\\:\\/\\/?([^\\/]+)\\/(.*)/\n );\n const externalDomain = externalDomainMatch\n ? externalDomainMatch[2]\n : undefined;\n result = externalDomainMatch ? externalDomainMatch[3] : result;\n\n result = path.relative(pathRoot, result);\n\n return [\n nixSlashes(result).replace(/^.*\\:\\/\\/?\\/?/, \"\"), // cut webpack:/// and webpack:/ things\n externalDomain,\n ];\n }\n\n isThirdParty(relativePath, externalDomain) {\n return (\n externalDomain ||\n relativePath[0] === \"~\" || // webpack-specific heuristic\n relativePath[0] === \"/\" || // external source\n relativePath.indexOf(\"node_modules\") === 0 ||\n relativePath.indexOf(\"webpack/bootstrap\") === 0\n );\n }\n\n rawParse(str) {\n const lines = (str || \"\").split(\"\\n\");\n\n const entries = lines.map((line) => {\n line = line.trim();\n\n let callee,\n fileLineColumn = [],\n native,\n planA,\n planB;\n\n if (\n (planA = line.match(/at (.+) \\(eval at .+ \\((.+)\\), .+\\)/)) || // eval calls\n (planA = line.match(/at (.+) \\((.+)\\)/)) ||\n (line.slice(0, 3) !== \"at \" && (planA = line.match(/(.*)@(.*)/)))\n ) {\n callee = planA[1];\n native = planA[2] === \"native\";\n fileLineColumn = (\n planA[2].match(/(.*):(\\d+):(\\d+)/) ||\n planA[2].match(/(.*):(\\d+)/) ||\n []\n ).slice(1);\n } else if ((planB = line.match(/^(at\\s+)*(.+):(\\d+):(\\d+)/))) {\n fileLineColumn = planB.slice(2);\n } else {\n return undefined;\n }\n\n /* Detect things like Array.reduce\n TODO: detect more built-in types */\n\n if (callee && !fileLineColumn[0]) {\n const type = callee.split(\".\")[0];\n if (type === \"Array\") {\n native = true;\n }\n }\n\n return {\n beforeParse: line,\n callee: callee || \"\",\n index: fileLineColumn[0] === \"/\",\n native: native || false,\n file: nixSlashes(fileLineColumn[0] || \"\"),\n line: parseInt(fileLineColumn[1] || \"\", 10) || undefined,\n column: parseInt(fileLineColumn[2] || \"\", 10) || undefined,\n };\n });\n\n return entries.filter((x) => x !== undefined);\n }\n\n withSourceAt(i) {\n return this.items[i] && this.withSource(this.items[i]);\n }\n\n withSourceAsyncAt(i) {\n return this.items[i] && this.withSourceAsync(this.items[i]);\n }\n\n withSource(loc) {\n if (this.shouldSkipResolving(loc)) {\n return loc;\n } else {\n let resolved = getSource(loc.file || \"\").resolve(loc);\n\n if (!resolved.sourceFile) {\n return loc;\n }\n\n return this.withSourceResolved(loc, resolved);\n }\n }\n\n withSourceAsync(loc) {\n if (this.shouldSkipResolving(loc)) {\n return Promise.resolve(loc);\n } else {\n // Fix file path\n const fsPath = (loc.file || \"\").replace(\"file://\", \"\");\n return getSource\n .async(fsPath)\n .then((x) => x.resolve(loc))\n .then((resolved) => this.withSourceResolved(loc, resolved))\n .catch((e) => {\n this.withSourceResolved(loc, { error: e, sourceLine: \"\" });\n });\n }\n }\n\n shouldSkipResolving(loc) {\n return (\n loc.sourceFile || loc.error || (loc.file && loc.file.indexOf(\"<\") >= 0)\n ); // skip things like <anonymous> and stuff that was already fetched\n }\n\n withSourceResolved(loc, resolved) {\n if (resolved.sourceFile && !resolved.sourceFile.error) {\n resolved.file = nixSlashes(resolved.sourceFile.path);\n resolved = this.extractEntryMetadata(resolved);\n }\n\n if (resolved.sourceLine.includes(\"// @hide\")) {\n resolved.sourceLine = resolved.sourceLine.replace(\"// @hide\", \"\");\n resolved.hide = true;\n }\n\n if (\n resolved.sourceLine.includes(\"__webpack_require__\") || // webpack-specific heuristics\n resolved.sourceLine.includes(\"/******/ ({\")\n ) {\n resolved.thirdParty = true;\n }\n\n return O.assign({ sourceLine: \"\" }, loc, resolved);\n }\n\n withSources() {\n return this.map((x) => this.withSource(x));\n }\n\n withSourcesAsync() {\n return Promise.all(this.items.map((x) => this.withSourceAsync(x))).then(\n (items) => new StackTracey(items)\n );\n }\n\n mergeRepeatedLines() {\n return new StackTracey(\n partition(this.items, (e) => e.file + e.line).map((group) => {\n return group.items.slice(1).reduce(\n (memo, entry) => {\n memo.callee =\n (memo.callee || \"<anonymous>\") +\n \" → \" +\n (entry.callee || \"<anonymous>\");\n memo.calleeShort =\n (memo.calleeShort || \"<anonymous>\") +\n \" → \" +\n (entry.calleeShort || \"<anonymous>\");\n return memo;\n },\n O.assign({}, group.items[0])\n );\n })\n );\n }\n\n clean() {\n const s = this.withSources().mergeRepeatedLines();\n return s.filter(s.isClean.bind(s));\n }\n\n cleanAsync() {\n return this.withSourcesAsync().then((s) => {\n s = s.mergeRepeatedLines();\n return s.filter(s.isClean.bind(s));\n });\n }\n\n isClean(entry, index) {\n return index === 0 || !(entry.thirdParty || entry.hide || entry.native);\n }\n\n at(i) {\n return O.assign(\n {\n beforeParse: \"\",\n callee: \"<???>\",\n index: false,\n native: false,\n file: \"<???>\",\n line: 0,\n column: 0,\n },\n this.items[i]\n );\n }\n\n maxColumnWidths() {\n return {\n callee: 30,\n file: 60,\n sourceLine: 80,\n };\n }\n\n static resetCache() {\n getSource.resetCache();\n getSource.async.resetCache();\n }\n\n static locationsEqual(a, b) {\n return a.file === b.file && a.line === b.line && a.column === b.column;\n }\n}\n\n/* Array methods\n ------------------------------------------------------------------------ */\n\n[\"map\", \"filter\", \"slice\", \"concat\"].forEach((method) => {\n StackTracey.prototype[method] = function (/*...args */) {\n // no support for ...args in Node v4 :(\n return new StackTracey(this.items[method].apply(this.items, arguments));\n };\n});\n\n/* ------------------------------------------------------------------------ */\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-output.d.ts","sourceRoot":"","sources":["../../src/common/worker-output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAKpD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,QAoIpE;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,QA2CxD;AAGD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,iBAqBjB"}
1
+ {"version":3,"file":"worker-output.d.ts","sourceRoot":"","sources":["../../src/common/worker-output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAKpD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,QAoIpE;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,QA2CxD;AAGD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,iBAqBjB"}
@@ -161,10 +161,11 @@ async function formatMessage(message) {
161
161
  : String(message);
162
162
  }
163
163
  async function formatError(error) {
164
- const stack = new StackTracey(error);
164
+ const stack = await new StackTracey(error).cleanAsync();
165
165
  const jsonResponse = await new Youch(stack, {}).toJSON();
166
166
  const options = {
167
167
  displayShortPath: false,
168
+ fileShort: true,
168
169
  prefix: " ",
169
170
  hideErrorTitle: false,
170
171
  hideMessage: true,
@@ -1 +1 @@
1
- {"version":3,"file":"worker-output.js","sourceRoot":"","sources":["../../src/common/worker-output.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport chalk from \"chalk\";\nimport { Readable } from \"node:stream\";\nimport StackTracey from \"./errors/stacktracy.js\";\nimport forTerminal from \"./errors/youch-terminal.js\";\nimport Youch from \"./errors/youch.js\";\n\ntype LogLevel = \"error\" | \"warn\" | \"info\" | \"debug\";\n\n/**\n * This is the structure of the runtime console log transport log entry\n */\nexport interface ConsoleLogEntry {\n logId: string;\n logOwner: string;\n logSource: string;\n level: LogLevel;\n timestamp: string;\n loggingId: string;\n buildId: string;\n rayId: string | null;\n messages: unknown[];\n requestId: string;\n vectorClock: number;\n url: string;\n route: string;\n method: string;\n}\n\n// /**\n// * Handler worker stdout and stderr streams.\n// */\n// export const handleRuntimeStdio = (stdout: Readable, stderr: Readable) => {\n// rl.createInterface(stdout).on(\"line\", (data) => {\n// try {\n// const logEntry: ConsoleLogEntry = JSON.parse(data);\n// const messages = logEntry.messages;\n\n// messages.forEach((msg) => void logStructured(logEntry, msg));\n// } catch (e) {\n// void logConsole(\"info\", data);\n// }\n// });\n// rl.createInterface(stderr).on(\"line\", (data) => {\n// void logConsole(\"error\", data);\n// });\n// };\n\nexport function handleRuntimeStdio(stdout: Readable, stderr: Readable) {\n // ASSUMPTION: each chunk is a whole message from workerd\n // This may not hold across OSes/architectures, but it seems to work on macOS M-line\n // I'm going with this simple approach to avoid complicating this too early\n // We can iterate on this heuristic in the future if it causes issues\n const classifiers = {\n // Is this chunk a big chonky barf from workerd that we want to hijack to cleanup/ignore?\n isBarf(chunk: string) {\n const containsLlvmSymbolizerWarning = chunk.includes(\n \"Not symbolizing stack traces because $LLVM_SYMBOLIZER is not set\"\n );\n const containsRecursiveIsolateLockWarning = chunk.includes(\n \"took recursive isolate lock\"\n );\n // Matches stack traces from workerd\n // - on unix: groups of 9 hex digits separated by spaces\n // - on windows: groups of 12 hex digits, or a single digit 0, separated by spaces\n const containsHexStack = /stack:( (0|[a-f\\d]{4,})){3,}/.test(chunk);\n\n return (\n containsLlvmSymbolizerWarning ||\n containsRecursiveIsolateLockWarning ||\n containsHexStack\n );\n },\n // Is this chunk an Address In Use error?\n isAddressInUse(chunk: string) {\n return chunk.includes(\"Address already in use; toString() = \");\n },\n isWarning(chunk: string) {\n return /\\.c\\+\\+:\\d+: warning:/.test(chunk);\n },\n isCodeMovedWarning(chunk: string) {\n return /CODE_MOVED for unknown code block/.test(chunk);\n },\n isAccessViolation(chunk: string) {\n return chunk.includes(\"access violation;\");\n },\n };\n\n stdout.on(\"data\", (chunk: Buffer | string) => {\n chunk = chunk.toString().trim();\n\n if (classifiers.isBarf(chunk)) {\n // this is a big chonky barf from workerd that we want to hijack to cleanup/ignore\n\n // CLEANABLE:\n // there are no known cases to cleanup yet\n // but, as they are identified, we will do that here\n\n // IGNORABLE:\n // anything else not handled above is considered ignorable\n // so send it to the debug logs which are discarded unless\n // the user explicitly sets a logLevel indicating they care\n logConsole(\"debug\", chunk);\n }\n\n // known case: warnings are not info, log them as such\n else if (classifiers.isWarning(chunk)) {\n logConsole(\"warn\", chunk);\n }\n\n // anything not explicitly handled above should be logged as info (via stdout)\n else {\n //logger.info(getSourceMappedString(chunk));\n logConsole(\"error\", chunk);\n }\n });\n\n stderr.on(\"data\", (chunk: Buffer | string) => {\n chunk = chunk.toString().trim();\n\n if (classifiers.isBarf(chunk)) {\n // this is a big chonky barf from workerd that we want to hijack to cleanup/ignore\n\n // CLEANABLE:\n // known case to cleanup: Address in use errors\n if (classifiers.isAddressInUse(chunk)) {\n const address = chunk.match(\n /Address already in use; toString\\(\\) = (.+)\\n/\n )?.[1];\n\n logConsole(\n \"error\",\n `Address already in use (${address}). Please check that you are not already running a server on this address or specify a different port with --port.`\n );\n\n // Log the original error to the debug logs.\n logConsole(\"debug\", chunk);\n }\n // In the past we have seen Access Violation errors on Windows, which may be caused by an outdated\n // version of the Windows OS or the Microsoft Visual C++ Redistributable.\n // See https://github.com/cloudflare/workers-sdk/issues/6170#issuecomment-2245209918\n else if (classifiers.isAccessViolation(chunk)) {\n let error = \"There was an access violation in the runtime.\";\n if (process.platform === \"win32\") {\n error +=\n \"\\nOn Windows, this may be caused by an outdated Microsoft Visual C++ Redistributable library.\\n\" +\n \"Check that you have the latest version installed.\\n\" +\n \"See https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist.\";\n }\n logConsole(\"error\", error);\n\n // Log the original error to the debug logs.\n logConsole(\"debug\", chunk);\n }\n\n // IGNORABLE:\n // anything else not handled above is considered ignorable\n // so send it to the debug logs which are discarded unless\n // the user explicitly sets a logLevel indicating they care\n else {\n logConsole(\"debug\", chunk);\n }\n }\n\n // known case: warnings are not errors, log them as such\n else if (classifiers.isWarning(chunk)) {\n logConsole(\"warn\", chunk);\n }\n\n // known case: \"error: CODE_MOVED for unknown code block?\", warning for workerd devs, not application devs\n else if (classifiers.isCodeMovedWarning(chunk)) {\n // ignore entirely, don't even send it to the debug log file\n }\n\n // anything not explicitly handled above should be logged as an error (via stderr)\n else {\n //logConsole(\"error\", getSourceMappedString(chunk));\n logConsole(\"error\", chunk);\n }\n });\n}\n\n/**\n * This is what is logged when the runtime calls console.log, etc.\n */\nexport function logConsole(level: LogLevel, data: unknown) {\n void (async () => {\n try {\n if (!data) {\n return;\n }\n\n // This shouldn't happen, but just in case\n if (typeof data !== \"string\") {\n console[level](data);\n return;\n }\n\n let message = data?.trim();\n if (!message || message?.length === 0) {\n return;\n }\n\n if (message.startsWith(`{\"logId\":\"`)) {\n let logEntry: ConsoleLogEntry;\n try {\n logEntry = JSON.parse(message);\n } catch (e) {\n // We might have multiple log entries in a single chunk\n // so split them and log each one\n const lines = message.split(\"\\n\");\n lines.forEach((line) => void logConsole(level, line));\n return;\n }\n const messages = logEntry.messages;\n messages.forEach((msg) => void logStructured(logEntry, msg));\n } else {\n message = await formatMessage(message);\n\n const line = `${getTimestamp()} ${levelFormats[level]} ${message}`;\n\n console[level](line);\n }\n } catch (err) {\n console.log(err);\n console[level](data);\n }\n })();\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function logStructured(\n logEntry: ConsoleLogEntry,\n message: unknown\n) {\n if (\n typeof message === \"object\" &&\n message &&\n Object.keys(message).length === 0\n ) {\n return;\n }\n\n // Get the log properties we care about\n const { level, route, method, timestamp } = logEntry;\n\n const routeStr = route.endsWith(\"{/}?\") ? route.slice(0, -4) : route;\n\n const msg = await formatMessage(message);\n\n const line = `${getTimestamp(timestamp)} ${levelFormats[level]} [${methodFormats[method.toUpperCase() as HttpMethod]} ${chalk.blue(routeStr)}] ${msg}`;\n\n // Log the line\n console[level](line);\n}\n\ntype HttpMethod =\n | \"GET\"\n | \"POST\"\n | \"PUT\"\n | \"DELETE\"\n | \"PATCH\"\n | \"HEAD\"\n | \"OPTIONS\";\nconst methodFormats: Record<HttpMethod, string> = {\n GET: chalk.green(chalk.bold(\"GET\")),\n POST: chalk.blue(chalk.bold(\"POST\")),\n PUT: chalk.yellow(chalk.bold(\"PUT\")),\n DELETE: chalk.red(chalk.bold(\"DELETE\")),\n PATCH: chalk.magenta(chalk.bold(\"PATCH\")),\n HEAD: chalk.cyan(chalk.bold(\"HEAD\")),\n OPTIONS: chalk.gray(chalk.bold(\"OPTIONS\")),\n};\n\nconst levelFormats: Record<LogLevel, string> = {\n error: chalk.red(chalk.bold(\"ERROR\".padEnd(5))),\n warn: chalk.yellow(chalk.bold(\"WARN\".padEnd(5))),\n info: chalk.blue(chalk.bold(\"INFO\".padEnd(5))),\n debug: chalk.gray(chalk.bold(\"DEBUG\".padEnd(5))),\n};\n\n// Only initialize the timeFormatter when the timestamp option is used, and\n// reuse it across all loggers\nlet timeFormatter: Intl.DateTimeFormat;\nfunction getTimeFormatter() {\n timeFormatter ??= new Intl.DateTimeFormat(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: false,\n fractionalSecondDigits: 3,\n });\n return timeFormatter;\n}\n\nfunction getTimestamp(timestamp?: string) {\n return chalk.white(\n chalk.dim(\n `[${getTimeFormatter().format(timestamp ? new Date(timestamp) : new Date())}]`\n )\n );\n}\n\nasync function formatMessage(message: unknown): Promise<string> {\n if (typeof message === \"string\" && isJavaScriptStackTrace(message)) {\n const lines = message.split(\"\\n\");\n const title = lines.shift();\n return title + \"\\n\" + (await formatError(lines.join(\"\\n\")));\n }\n\n return typeof message === \"object\"\n ? JSON.stringify(message)\n : String(message);\n}\n\nasync function formatError(error: string) {\n const stack = new StackTracey(error);\n\n const jsonResponse = await new Youch(stack, {}).toJSON();\n\n const options = {\n // Defaults to false\n displayShortPath: false,\n\n // Defaults to single whitspace\n prefix: \" \",\n\n // Defaults to false\n hideErrorTitle: false,\n\n // Defaults to false\n hideMessage: true,\n\n // Defaults to false\n displayMainFrameOnly: true,\n\n // Defaults to 3\n framesMaxLimit: 3,\n };\n\n return forTerminal(jsonResponse, options);\n}\n\nfunction isJavaScriptStackTrace(str: string): boolean {\n const stackTraceRegex =\n /at\\s+(.*?)\\s+\\((.*?):(\\d+):(\\d+)\\)|at\\s+(.*?):(\\d+):(\\d+)/;\n return stackTraceRegex.test(str);\n}\n"]}
1
+ {"version":3,"file":"worker-output.js","sourceRoot":"","sources":["../../src/common/worker-output.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport chalk from \"chalk\";\nimport { Readable } from \"node:stream\";\nimport StackTracey from \"./errors/stacktracy.js\";\nimport forTerminal from \"./errors/youch-terminal.js\";\nimport Youch from \"./errors/youch.js\";\n\ntype LogLevel = \"error\" | \"warn\" | \"info\" | \"debug\";\n\n/**\n * This is the structure of the runtime console log transport log entry\n */\nexport interface ConsoleLogEntry {\n logId: string;\n logOwner: string;\n logSource: string;\n level: LogLevel;\n timestamp: string;\n loggingId: string;\n buildId: string;\n rayId: string | null;\n messages: unknown[];\n requestId: string;\n vectorClock: number;\n url: string;\n route: string;\n method: string;\n}\n\nexport function handleRuntimeStdio(stdout: Readable, stderr: Readable) {\n // ASSUMPTION: each chunk is a whole message from workerd\n // This may not hold across OSes/architectures, but it seems to work on macOS M-line\n // I'm going with this simple approach to avoid complicating this too early\n // We can iterate on this heuristic in the future if it causes issues\n const classifiers = {\n // Is this chunk a big chonky barf from workerd that we want to hijack to cleanup/ignore?\n isBarf(chunk: string) {\n const containsLlvmSymbolizerWarning = chunk.includes(\n \"Not symbolizing stack traces because $LLVM_SYMBOLIZER is not set\"\n );\n const containsRecursiveIsolateLockWarning = chunk.includes(\n \"took recursive isolate lock\"\n );\n // Matches stack traces from workerd\n // - on unix: groups of 9 hex digits separated by spaces\n // - on windows: groups of 12 hex digits, or a single digit 0, separated by spaces\n const containsHexStack = /stack:( (0|[a-f\\d]{4,})){3,}/.test(chunk);\n\n return (\n containsLlvmSymbolizerWarning ||\n containsRecursiveIsolateLockWarning ||\n containsHexStack\n );\n },\n // Is this chunk an Address In Use error?\n isAddressInUse(chunk: string) {\n return chunk.includes(\"Address already in use; toString() = \");\n },\n isWarning(chunk: string) {\n return /\\.c\\+\\+:\\d+: warning:/.test(chunk);\n },\n isCodeMovedWarning(chunk: string) {\n return /CODE_MOVED for unknown code block/.test(chunk);\n },\n isAccessViolation(chunk: string) {\n return chunk.includes(\"access violation;\");\n },\n };\n\n stdout.on(\"data\", (chunk: Buffer | string) => {\n chunk = chunk.toString().trim();\n\n if (classifiers.isBarf(chunk)) {\n // this is a big chonky barf from workerd that we want to hijack to cleanup/ignore\n\n // CLEANABLE:\n // there are no known cases to cleanup yet\n // but, as they are identified, we will do that here\n\n // IGNORABLE:\n // anything else not handled above is considered ignorable\n // so send it to the debug logs which are discarded unless\n // the user explicitly sets a logLevel indicating they care\n logConsole(\"debug\", chunk);\n }\n\n // known case: warnings are not info, log them as such\n else if (classifiers.isWarning(chunk)) {\n logConsole(\"warn\", chunk);\n }\n\n // anything not explicitly handled above should be logged as info (via stdout)\n else {\n //logger.info(getSourceMappedString(chunk));\n logConsole(\"error\", chunk);\n }\n });\n\n stderr.on(\"data\", (chunk: Buffer | string) => {\n chunk = chunk.toString().trim();\n\n if (classifiers.isBarf(chunk)) {\n // this is a big chonky barf from workerd that we want to hijack to cleanup/ignore\n\n // CLEANABLE:\n // known case to cleanup: Address in use errors\n if (classifiers.isAddressInUse(chunk)) {\n const address = chunk.match(\n /Address already in use; toString\\(\\) = (.+)\\n/\n )?.[1];\n\n logConsole(\n \"error\",\n `Address already in use (${address}). Please check that you are not already running a server on this address or specify a different port with --port.`\n );\n\n // Log the original error to the debug logs.\n logConsole(\"debug\", chunk);\n }\n // In the past we have seen Access Violation errors on Windows, which may be caused by an outdated\n // version of the Windows OS or the Microsoft Visual C++ Redistributable.\n // See https://github.com/cloudflare/workers-sdk/issues/6170#issuecomment-2245209918\n else if (classifiers.isAccessViolation(chunk)) {\n let error = \"There was an access violation in the runtime.\";\n if (process.platform === \"win32\") {\n error +=\n \"\\nOn Windows, this may be caused by an outdated Microsoft Visual C++ Redistributable library.\\n\" +\n \"Check that you have the latest version installed.\\n\" +\n \"See https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist.\";\n }\n logConsole(\"error\", error);\n\n // Log the original error to the debug logs.\n logConsole(\"debug\", chunk);\n }\n\n // IGNORABLE:\n // anything else not handled above is considered ignorable\n // so send it to the debug logs which are discarded unless\n // the user explicitly sets a logLevel indicating they care\n else {\n logConsole(\"debug\", chunk);\n }\n }\n\n // known case: warnings are not errors, log them as such\n else if (classifiers.isWarning(chunk)) {\n logConsole(\"warn\", chunk);\n }\n\n // known case: \"error: CODE_MOVED for unknown code block?\", warning for workerd devs, not application devs\n else if (classifiers.isCodeMovedWarning(chunk)) {\n // ignore entirely, don't even send it to the debug log file\n }\n\n // anything not explicitly handled above should be logged as an error (via stderr)\n else {\n //logConsole(\"error\", getSourceMappedString(chunk));\n logConsole(\"error\", chunk);\n }\n });\n}\n\n/**\n * This is what is logged when the runtime calls console.log, etc.\n */\nexport function logConsole(level: LogLevel, data: unknown) {\n void (async () => {\n try {\n if (!data) {\n return;\n }\n\n // This shouldn't happen, but just in case\n if (typeof data !== \"string\") {\n console[level](data);\n return;\n }\n\n let message = data?.trim();\n if (!message || message?.length === 0) {\n return;\n }\n\n if (message.startsWith(`{\"logId\":\"`)) {\n let logEntry: ConsoleLogEntry;\n try {\n logEntry = JSON.parse(message);\n } catch (e) {\n // We might have multiple log entries in a single chunk\n // so split them and log each one\n const lines = message.split(\"\\n\");\n lines.forEach((line) => void logConsole(level, line));\n return;\n }\n const messages = logEntry.messages;\n messages.forEach((msg) => void logStructured(logEntry, msg));\n } else {\n message = await formatMessage(message);\n\n const line = `${getTimestamp()} ${levelFormats[level]} ${message}`;\n\n console[level](line);\n }\n } catch (err) {\n console.log(err);\n console[level](data);\n }\n })();\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function logStructured(\n logEntry: ConsoleLogEntry,\n message: unknown\n) {\n if (\n typeof message === \"object\" &&\n message &&\n Object.keys(message).length === 0\n ) {\n return;\n }\n\n // Get the log properties we care about\n const { level, route, method, timestamp } = logEntry;\n\n const routeStr = route.endsWith(\"{/}?\") ? route.slice(0, -4) : route;\n\n const msg = await formatMessage(message);\n\n const line = `${getTimestamp(timestamp)} ${levelFormats[level]} [${methodFormats[method.toUpperCase() as HttpMethod]} ${chalk.blue(routeStr)}] ${msg}`;\n\n // Log the line\n console[level](line);\n}\n\ntype HttpMethod =\n | \"GET\"\n | \"POST\"\n | \"PUT\"\n | \"DELETE\"\n | \"PATCH\"\n | \"HEAD\"\n | \"OPTIONS\";\nconst methodFormats: Record<HttpMethod, string> = {\n GET: chalk.green(chalk.bold(\"GET\")),\n POST: chalk.blue(chalk.bold(\"POST\")),\n PUT: chalk.yellow(chalk.bold(\"PUT\")),\n DELETE: chalk.red(chalk.bold(\"DELETE\")),\n PATCH: chalk.magenta(chalk.bold(\"PATCH\")),\n HEAD: chalk.cyan(chalk.bold(\"HEAD\")),\n OPTIONS: chalk.gray(chalk.bold(\"OPTIONS\")),\n};\n\nconst levelFormats: Record<LogLevel, string> = {\n error: chalk.red(chalk.bold(\"ERROR\".padEnd(5))),\n warn: chalk.yellow(chalk.bold(\"WARN\".padEnd(5))),\n info: chalk.blue(chalk.bold(\"INFO\".padEnd(5))),\n debug: chalk.gray(chalk.bold(\"DEBUG\".padEnd(5))),\n};\n\n// Only initialize the timeFormatter when the timestamp option is used, and\n// reuse it across all loggers\nlet timeFormatter: Intl.DateTimeFormat;\nfunction getTimeFormatter() {\n timeFormatter ??= new Intl.DateTimeFormat(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: false,\n fractionalSecondDigits: 3,\n });\n return timeFormatter;\n}\n\nfunction getTimestamp(timestamp?: string) {\n return chalk.white(\n chalk.dim(\n `[${getTimeFormatter().format(timestamp ? new Date(timestamp) : new Date())}]`\n )\n );\n}\n\nasync function formatMessage(message: unknown): Promise<string> {\n if (typeof message === \"string\" && isJavaScriptStackTrace(message)) {\n const lines = message.split(\"\\n\");\n const title = lines.shift();\n return title + \"\\n\" + (await formatError(lines.join(\"\\n\")));\n }\n\n return typeof message === \"object\"\n ? JSON.stringify(message)\n : String(message);\n}\n\nasync function formatError(error: string) {\n const stack = await new StackTracey(error).cleanAsync();\n\n const jsonResponse = await new Youch(stack, {}).toJSON();\n\n const options = {\n // Defaults to false\n displayShortPath: false,\n\n fileShort: true,\n\n // Defaults to single whitspace\n prefix: \" \",\n\n // Defaults to false\n hideErrorTitle: false,\n\n // Defaults to false\n hideMessage: true,\n\n // Defaults to false\n displayMainFrameOnly: true,\n\n // Defaults to 3\n framesMaxLimit: 3,\n };\n\n return forTerminal(jsonResponse, options);\n}\n\nfunction isJavaScriptStackTrace(str: string): boolean {\n const stackTraceRegex =\n /at\\s+(.*?)\\s+\\((.*?):(\\d+):(\\d+)\\)|at\\s+(.*?):(\\d+):(\\d+)/;\n return stackTraceRegex.test(str);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/cli",
3
- "version": "6.14.0",
3
+ "version": "6.15.1",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -29,9 +29,9 @@
29
29
  "@opentelemetry/api": "^1.8.0",
30
30
  "@sentry/node": "^7.119.2",
31
31
  "@swc/core": "1.7.6",
32
- "@zuplo/core": "^6.14.0",
32
+ "@zuplo/core": "^6.15.1",
33
33
  "@zuplo/pino-pretty-configurations": "^1.5.0",
34
- "@zuplo/runtime": "^6.14.0",
34
+ "@zuplo/runtime": "^6.15.1",
35
35
  "as-table": "^1.0.55",
36
36
  "chalk": "^5.3.0",
37
37
  "chokidar": "^3.5.3",
@@ -57,6 +57,7 @@
57
57
  "rimraf": "^6.0.1",
58
58
  "semver": "^7.5.4",
59
59
  "simple-git": "^3.22.0",
60
+ "source-map": "^0.7.4",
60
61
  "string-width": "^7.2.0",
61
62
  "strip-ansi": "^7.1.0",
62
63
  "tar": "^7.4.3",