squally-reporter 0.6.0 → 0.8.0

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.
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ const promises_1 = require("node:fs/promises");
11
11
  const node_os_1 = require("node:os");
12
12
  const node_path_1 = __importDefault(require("node:path"));
13
13
  const undici_1 = require("undici");
14
+ const trace_console_1 = require("./trace-console");
14
15
  // Mirrors squally-app's ingest contract (lib/ingest-contract.ts,
15
16
  // FIELD_LIMITS). Kept as a copy on purpose - the reporter ships independently
16
17
  // of the app and cannot import from it - which means this table has to be
@@ -412,6 +413,14 @@ function resolveBrowserName(test) {
412
413
  // test" - testedRevision fills that gap.
413
414
  // Applied to every resolved revision value before it's sent, regardless of
414
415
  // which pattern below produced it.
416
+ // Warned about ONCE per process, not per call (D5). The three rewrites below
417
+ // are deliberate and stay - what the finding was about is that they happened
418
+ // SILENTLY: a customer whose release tag is "V2.1" sees "2.1" arrive in the
419
+ // dashboard with nothing anywhere saying who changed it, and the natural
420
+ // conclusion is that Squally lost the value. One line on the first rewrite is
421
+ // enough to make it findable; repeating it per test would bury the run's real
422
+ // output under a rewrite that is the same every time.
423
+ let warnedAboutRevisionRewrite = false;
415
424
  function normalizeRevision(raw) {
416
425
  let value = raw.toLowerCase();
417
426
  if (value.startsWith("refs/heads/")) {
@@ -420,6 +429,12 @@ function normalizeRevision(raw) {
420
429
  if (/^v\d/.test(value)) {
421
430
  value = value.slice(1);
422
431
  }
432
+ if (value !== raw && !warnedAboutRevisionRewrite) {
433
+ warnedAboutRevisionRewrite = true;
434
+ console.warn(`[squally-reporter] Normalised the tested revision for comparison: ` +
435
+ `'${raw}' -> '${value}' (lowercased, and any 'refs/heads/' prefix or ` +
436
+ `leading 'v' removed). The original is not what gets stored.`);
437
+ }
423
438
  return value;
424
439
  }
425
440
  // Fallback chain:
@@ -478,9 +493,22 @@ function toPosixPath(p) {
478
493
  // file has to stay plain, readable ASCII - a raw ESC byte pasted into source
479
494
  // code is invisible in most editors/diffs and easy to mistake for empty
480
495
  // content.
496
+ // TWO PATTERNS SINCE THIS RELEASE (T2-T5's stripAnsi item), because terminal
497
+ // escapes come in two shapes and only one was handled. CSI is the familiar
498
+ // colour/cursor form. OSC - "operating system command" - is ESC ] followed by
499
+ // a body and terminated by BEL or by ESC backslash; hyperlinks (OSC 8) and
500
+ // window-title changes use it, and CI tooling emits them often enough that
501
+ // they were reaching stored console output intact.
502
+ //
503
+ // The escape characters are built from char codes rather than written as
504
+ // literals, the way the original did, so this file stays free of raw control
505
+ // bytes - a lesson this codebase has already paid for once.
506
+ const ESC = String.fromCharCode(27);
507
+ const BEL = String.fromCharCode(7);
508
+ const CSI_PATTERN = new RegExp(ESC + "\\[[0-9;]*[a-zA-Z]", "g");
509
+ const OSC_PATTERN = new RegExp(ESC + "\\][^" + BEL + ESC + "]*(?:" + BEL + "|" + ESC + "\\\\)", "g");
481
510
  function stripAnsi(value) {
482
- const ansiPattern = new RegExp(String.fromCharCode(27) + "\\[[0-9;]*[a-zA-Z]", "g");
483
- return value.replace(ansiPattern, "");
511
+ return value.replace(CSI_PATTERN, "").replace(OSC_PATTERN, "");
484
512
  }
485
513
  // Playwright captures stdout/stderr as two separate arrays (each internally
486
514
  // chronological, but not merged with each other), so a true byte-accurate
@@ -539,15 +567,41 @@ function maskSecrets(value) {
539
567
  // server enforces this regardless of what the reporter already did, but
540
568
  // doing it here too means a run never sends more than it needs to).
541
569
  const CONSOLE_OUTPUT_MAX_BYTES = 16 * 1024;
570
+ /**
571
+ * The console output to send, and the size it had before the cut.
572
+ *
573
+ * RETURNS A PAIR SINCE 17.09., the same shape squally-app's own
574
+ * prepareConsoleOutput returns (lib/ingest-v2-core.ts). The reason is a gap
575
+ * nobody could see from either side alone: the app records
576
+ * consoleOutputOriginalBytes so a truncated capture says so on the page, and
577
+ * it derives that number from the text it RECEIVES - which this reporter has
578
+ * already cut to 16 KiB. The app therefore records NULL for every
579
+ * reporter-sent row and the page says nothing was cut, while something was.
580
+ *
581
+ * `truncatedFromBytes` is the masked size before the cut, null when nothing
582
+ * was cut - the optional-field shape the wire uses for expectedFailure.
583
+ *
584
+ * NOT SENT YET, and deliberately not: squally-app's v2 result schema has no
585
+ * field for it (checked in lib/ingest-v2-contract.ts, resultSchema), and that
586
+ * schema does not use .strict(), so zod would silently STRIP an unknown key.
587
+ * Sending it today would look done and change nothing. The receiving side goes
588
+ * first in this project - that is how the console artifact itself shipped -
589
+ * so the value is computed and available here, and the wire field is a
590
+ * squally-app change this release reports rather than pre-empts.
591
+ */
542
592
  function prepareConsoleOutput(value) {
543
593
  if (value === null)
544
- return null;
594
+ return { text: null, truncatedFromBytes: null };
545
595
  const masked = maskSecrets(value);
546
596
  const bytes = Buffer.from(masked, "utf8");
547
- if (bytes.byteLength <= CONSOLE_OUTPUT_MAX_BYTES)
548
- return masked;
597
+ if (bytes.byteLength <= CONSOLE_OUTPUT_MAX_BYTES) {
598
+ return { text: masked, truncatedFromBytes: null };
599
+ }
549
600
  const cut = bytes.subarray(0, CONSOLE_OUTPUT_MAX_BYTES).toString("utf8");
550
- return cut.endsWith("�") ? cut.slice(0, -1) : cut;
601
+ return {
602
+ text: cut.endsWith("�") ? cut.slice(0, -1) : cut,
603
+ truncatedFromBytes: bytes.byteLength,
604
+ };
551
605
  }
552
606
  // --- errors[] (spec section 1.3) --------------------------------------------
553
607
  //
@@ -683,6 +737,102 @@ async function runWithConcurrencyLimit(items, limit, worker) {
683
737
  // (mapStatus above collapses those down) - retryCount > 0 additionally
684
738
  // covers a passed-on-retry attempt, since seeing what an earlier, failing
685
739
  // attempt looked like is still useful even if the test eventually passed.
740
+ /**
741
+ * Detail that is only interesting when something looks wrong, off by default.
742
+ *
743
+ * ADDED WITH THE CONSOLE ARTIFACT (17.09.), because that path has one outcome
744
+ * that is both completely ordinary and worth being able to see: an attempt
745
+ * whose page printed nothing uploads nothing, and a customer asking "where is
746
+ * my browser console" needs a way to tell that from a failure. Everything that
747
+ * is NOT ordinary on that path warns unconditionally instead.
748
+ *
749
+ * One variable, no levels: this package logs almost nothing by design, and a
750
+ * level system would be more machinery than it has output.
751
+ */
752
+ function debugLog(message) {
753
+ if (process.env.SQUALLY_DEBUG)
754
+ console.log(`[squally-reporter] ${message}`);
755
+ }
756
+ /** Traces above this size are left unread rather than inflated in onTestEnd. */
757
+ const MAX_TRACE_BYTES_FOR_CONSOLE = 64 * 1024 * 1024;
758
+ /** The console file is written beside the trace, so Playwright's own output-dir
759
+ * cleanup removes it with everything else that test produced. */
760
+ const CONSOLE_ARTIFACT_FILENAME = "browser-console.txt";
761
+ /**
762
+ * Turns one trace into a console artifact on disk, or says why it did not.
763
+ *
764
+ * SYNCHRONOUS, like the statSync beside it and for the same reason: Playwright
765
+ * does not await onTestEnd, so anything async here would race onEnd() reading
766
+ * this.artifacts. Measured on a real 1.62 trace: 7 KB zip, inflate and parse
767
+ * under a millisecond; the cap above is what keeps a pathological 50 MB trace
768
+ * from turning that into a pause the customer notices.
769
+ *
770
+ * FAILURE MODES, and what each one does. None of them can be a skipReason sent
771
+ * to presign: that route decides its own reasons (not_found, file_too_large,
772
+ * cap_exceeded) and takes none from the client - checked in squally-app's
773
+ * presignPayloadSchema, not assumed. So every failure here is a LOCAL skip,
774
+ * and the difference between them is what gets logged:
775
+ *
776
+ * zip unreadable / no .trace -> warn. Something produced a trace this
777
+ * cannot open, and that is worth a line in
778
+ * the customer's log even though their run is
779
+ * unaffected.
780
+ * version unsupported -> warn ONCE per run, naming the version. The
781
+ * loudest case on purpose: it means this
782
+ * reporter is too old for the Playwright that
783
+ * produced the trace, and the silent
784
+ * alternative - uploading nothing and saying
785
+ * nothing - is the exact shape of the outage
786
+ * that cost six days in September.
787
+ * no console events -> debug only. An attempt whose page printed
788
+ * nothing is ordinary; the app already words
789
+ * the absence.
790
+ */
791
+ function consoleArtifactFor(tracePath, warnedVersions) {
792
+ let zip;
793
+ try {
794
+ const size = (0, node_fs_1.statSync)(tracePath).size;
795
+ if (size > MAX_TRACE_BYTES_FOR_CONSOLE) {
796
+ console.warn(`[squally-reporter] Trace is ${Math.round(size / 1024 / 1024)} MB - skipping browser console extraction for this attempt.`);
797
+ return null;
798
+ }
799
+ zip = (0, node_fs_1.readFileSync)(tracePath);
800
+ }
801
+ catch (err) {
802
+ console.warn(`[squally-reporter] Could not read the trace for browser console extraction: ${err?.message ?? err}`);
803
+ return null;
804
+ }
805
+ const extraction = (0, trace_console_1.extractBrowserConsole)(zip);
806
+ if (extraction.status === "unsupported-version") {
807
+ if (!warnedVersions.has(extraction.version)) {
808
+ warnedVersions.add(extraction.version);
809
+ console.warn(`[squally-reporter] Playwright trace schema version ${extraction.version} is outside the range this reporter ` +
810
+ `has been verified against (${trace_console_1.TRACE_VERSION_MIN}-${trace_console_1.TRACE_VERSION_MAX}) - the browser console is NOT being ` +
811
+ "uploaded for this run. Screenshots and traces are unaffected. Upgrading squally-reporter should resolve it.");
812
+ }
813
+ return null;
814
+ }
815
+ if (extraction.status === "unreadable") {
816
+ console.warn(`[squally-reporter] Could not read the browser console out of the trace (${extraction.reason}) - ` +
817
+ "screenshot and trace are unaffected.");
818
+ return null;
819
+ }
820
+ if (extraction.status === "empty") {
821
+ // Not a warning: the page simply printed nothing.
822
+ debugLog(`browser console: no messages in ${tracePath}`);
823
+ return null;
824
+ }
825
+ const consolePath = node_path_1.default.join(node_path_1.default.dirname(tracePath), CONSOLE_ARTIFACT_FILENAME);
826
+ try {
827
+ (0, node_fs_1.writeFileSync)(consolePath, extraction.text, "utf8");
828
+ }
829
+ catch (err) {
830
+ console.warn(`[squally-reporter] Could not write the browser console file: ${err?.message ?? err}`);
831
+ return null;
832
+ }
833
+ debugLog(`browser console: ${extraction.messageCount} message(s) -> ${consolePath}`);
834
+ return consolePath;
835
+ }
686
836
  function attemptQualifiesForArtifacts(mappedStatus, retryCount) {
687
837
  return mappedStatus === "failed" || retryCount > 0;
688
838
  }
@@ -692,8 +842,15 @@ function attemptQualifiesForArtifacts(mappedStatus, retryCount) {
692
842
  // back to the local CollectedArtifact once the server round-trips these
693
843
  // identity fields). Unchanged from v1 - see the CollectedArtifact comment
694
844
  // above for why this stays a 4-part key under v2.
695
- function artifactKey(testName, filePath, retryCount, type) {
696
- return [testName, filePath, String(retryCount), type].join(String.fromCharCode(1));
845
+ // FIVE PARTS SINCE THIS RELEASE, matching the tuple the app resolves by. The
846
+ // four-part version collided under `repeatEach`: two repetitions of one test
847
+ // share testName, filePath, retryCount and type, so the map kept only the last
848
+ // of them and the presign result for the first was matched to the wrong local
849
+ // file - or, once both mapped to the same entry, one upload was silently
850
+ // dropped. The app echoes repeatIndex back on every result for exactly this
851
+ // purpose (squally-app/app/api/artifacts/presign/route.ts says so at the type).
852
+ function artifactKey(testName, filePath, retryCount, repeatIndex, type) {
853
+ return [testName, filePath, String(retryCount), String(repeatIndex), type].join(String.fromCharCode(1));
697
854
  }
698
855
  function skipReasonMessage(reason) {
699
856
  if (reason === "file_too_large")
@@ -813,6 +970,11 @@ class SquallyReporter {
813
970
  this.projectName = null;
814
971
  this.buffer = [];
815
972
  this.artifacts = [];
973
+ /** Trace schema versions already warned about - ONCE per run, not per
974
+ * attempt. A suite failing 200 tests under a Playwright this reporter does
975
+ * not know would otherwise print 200 identical paragraphs and teach the
976
+ * reader to scroll past the one thing worth reading. */
977
+ this.warnedTraceVersions = new Set();
816
978
  /**
817
979
  * Every result this shard produced, counted where it is produced (0.6.0).
818
980
  *
@@ -899,7 +1061,18 @@ class SquallyReporter {
899
1061
  // This wait exists precisely to keep the process alive while sockets
900
1062
  // finish closing - see delay(), and test/exit-code's failing-suite
901
1063
  // scenario, which is what catches it if the unref ever comes back.
902
- await delay(EXIT_DRAIN_MS);
1064
+ //
1065
+ // WINDOWS ONLY SINCE THIS RELEASE. The race it mitigates is a libuv
1066
+ // assertion in src/win/async.c; it has never been observed on Linux, and
1067
+ // the CI matrix was built specifically to answer whether Linux is
1068
+ // affected - both jobs have been green throughout, so the 250 ms was
1069
+ // being spent on Ubuntu for nothing, on every run of every customer.
1070
+ //
1071
+ // The matrix stays as it is: if this ever has to come back for Linux,
1072
+ // the job that would show it is the one that already runs.
1073
+ if (process.platform === "win32") {
1074
+ await delay(EXIT_DRAIN_MS);
1075
+ }
903
1076
  }
904
1077
  };
905
1078
  const apiUrl = options.apiUrl ?? process.env.SQUALLY_API_URL;
@@ -1057,16 +1230,35 @@ class SquallyReporter {
1057
1230
  // may not have this field at all.
1058
1231
  const repeatIndex = typeof test.repeatEachIndex === "number" ? test.repeatEachIndex : 0;
1059
1232
  const testTags = Array.isArray(test.tags) ? test.tags : [];
1233
+ // Playwright's `test.fail()` marker (spec section 1.3.1). `expectedStatus`
1234
+ // is "failed" for exactly this and for nothing else: test.skip() and
1235
+ // test.fixme() both make it "skipped", which is a different statement and
1236
+ // deliberately not sent.
1237
+ //
1238
+ // Guarded like runTags and repeatEachIndex above - an older installed
1239
+ // Playwright may not carry the field, and `undefined === "failed"` is
1240
+ // false, which is the right answer for a runner that cannot tell us.
1241
+ const expectedFailure = test.expectedStatus === "failed";
1060
1242
  const errorContextAttachment = result.attachments.find((attachment) => attachment.name === "error-context");
1243
+ // Computed once, here: the text goes on the wire and the pre-cut size is
1244
+ // logged at debug. The size has no wire field yet - see the function.
1245
+ const preparedConsole = prepareConsoleOutput(formatConsoleOutput(result));
1246
+ if (preparedConsole.truncatedFromBytes !== null) {
1247
+ debugLog(`console output cut to ${CONSOLE_OUTPUT_MAX_BYTES} bytes (was ${preparedConsole.truncatedFromBytes}) for "${testName}"`);
1248
+ }
1061
1249
  this.buffer.push({
1062
1250
  testName,
1063
1251
  filePath,
1064
1252
  status,
1065
1253
  retryCount: result.retry,
1066
1254
  repeatIndex,
1255
+ // Omitted rather than sent as false: the field is optional on the wire
1256
+ // and absent means "not marked", so an ordinary suite sends nothing at
1257
+ // all rather than a false on every single result.
1258
+ ...(expectedFailure ? { expectedFailure: true } : {}),
1067
1259
  durationMs: result.duration,
1068
1260
  errors: mapErrors(result.errors),
1069
- consoleOutput: prepareConsoleOutput(formatConsoleOutput(result)),
1261
+ consoleOutput: preparedConsole.text,
1070
1262
  tags: testTags.length > 0
1071
1263
  ? testTags.slice(0, MAX_TAGS).map((tag) => truncate(tag, V2_FIELD_LIMITS.tag))
1072
1264
  : undefined,
@@ -1083,6 +1275,11 @@ class SquallyReporter {
1083
1275
  }
1084
1276
  if (!attemptQualifiesForArtifacts(status, result.retry))
1085
1277
  return;
1278
+ // The trace of THIS attempt, remembered while walking the attachments so
1279
+ // the console can be derived from it afterwards. Derived after the loop
1280
+ // rather than inside it, because the console artifact has to be pushed
1281
+ // with the same identity tuple and there is no reason to do that twice.
1282
+ let tracePath = null;
1086
1283
  for (const attachment of result.attachments) {
1087
1284
  if (attachment.name !== "screenshot" && attachment.name !== "trace")
1088
1285
  continue;
@@ -1109,11 +1306,44 @@ class SquallyReporter {
1109
1306
  testName,
1110
1307
  filePath,
1111
1308
  retryCount: result.retry,
1309
+ // THE SAME `repeatIndex` the result entry above was pushed with, not a
1310
+ // second derivation - the app resolves an artifact back to that exact
1311
+ // row, so the two have to be the same value by construction.
1312
+ repeatIndex,
1112
1313
  type: attachment.name,
1113
1314
  localPath: attachment.path,
1114
1315
  sizeBytes,
1115
1316
  });
1317
+ if (attachment.name === "trace")
1318
+ tracePath = attachment.path;
1319
+ }
1320
+ // THE CONSOLE, DERIVED FROM THE TRACE, and only when there is one. No
1321
+ // trace means no source: the browser console exists nowhere else, and
1322
+ // squally-app renders the reason rather than an empty section. Extraction
1323
+ // happens HERE, before presign, so that a trace this reporter cannot read
1324
+ // becomes a logged local skip instead of an artifact that presign was
1325
+ // promised and never got.
1326
+ if (tracePath === null)
1327
+ return;
1328
+ const consolePath = consoleArtifactFor(tracePath, this.warnedTraceVersions);
1329
+ if (consolePath === null)
1330
+ return;
1331
+ let consoleSize;
1332
+ try {
1333
+ consoleSize = (0, node_fs_1.statSync)(consolePath).size;
1334
+ }
1335
+ catch {
1336
+ return;
1116
1337
  }
1338
+ this.artifacts.push({
1339
+ testName,
1340
+ filePath,
1341
+ retryCount: result.retry,
1342
+ repeatIndex,
1343
+ type: "console",
1344
+ localPath: consolePath,
1345
+ sizeBytes: consoleSize,
1346
+ });
1117
1347
  }
1118
1348
  // (decision, spec section 3.2, closes 8.7) At onEnd: flush the remaining
1119
1349
  // buffer, wait for in-flight batches, then call /complete - bounded by
@@ -1474,6 +1704,7 @@ class SquallyReporter {
1474
1704
  testName: artifact.testName,
1475
1705
  filePath: artifact.filePath,
1476
1706
  retryCount: artifact.retryCount,
1707
+ repeatIndex: artifact.repeatIndex,
1477
1708
  type: artifact.type,
1478
1709
  sizeBytes: artifact.sizeBytes,
1479
1710
  }));
@@ -1507,12 +1738,15 @@ class SquallyReporter {
1507
1738
  // guaranteed to match one of this.artifacts (barring a server bug),
1508
1739
  // but a missing lookup is handled defensively below instead of assumed.
1509
1740
  const artifactsByKey = new Map(this.artifacts.map((artifact) => [
1510
- artifactKey(artifact.testName, artifact.filePath, artifact.retryCount, artifact.type),
1741
+ artifactKey(artifact.testName, artifact.filePath, artifact.retryCount, artifact.repeatIndex, artifact.type),
1511
1742
  artifact,
1512
1743
  ]));
1513
1744
  const uploads = [];
1514
1745
  for (const item of presignResults) {
1515
- const local = artifactsByKey.get(artifactKey(item.testName, item.filePath ?? "", item.retryCount, item.type));
1746
+ // `?? 0` mirrors what the app stores: v2 rows carry an int, and a
1747
+ // reporter this old cannot produce a v1 row. It is a type guard for the
1748
+ // echoed field, not a fallback anything relies on.
1749
+ const local = artifactsByKey.get(artifactKey(item.testName, item.filePath ?? "", item.retryCount, item.repeatIndex ?? 0, item.type));
1516
1750
  if (!local)
1517
1751
  continue;
1518
1752
  if (item.skip) {
@@ -1555,6 +1789,10 @@ class SquallyReporter {
1555
1789
  testName: artifact.testName,
1556
1790
  filePath: artifact.filePath,
1557
1791
  retryCount: artifact.retryCount,
1792
+ // Confirm resolves by the SAME five fields as presign
1793
+ // (squally-app/app/api/artifacts/confirm/route.ts) - sending four here
1794
+ // would move the outage from the upload to the confirmation.
1795
+ repeatIndex: artifact.repeatIndex,
1558
1796
  type: artifact.type,
1559
1797
  }));
1560
1798
  try {
@@ -1608,3 +1846,4 @@ exports.__internal = {
1608
1846
  attemptQualifiesForArtifacts,
1609
1847
  artifactKey,
1610
1848
  };
1849
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * The trace schema versions this extractor has been verified against.
3
+ *
4
+ * VERIFIED means: the console event shape above was checked in that version's
5
+ * writer. V5 through V10 carry it unchanged; 1.62 writes V8. The upper bound
6
+ * is deliberately the highest VERIFIED one and not Infinity - a future version
7
+ * that renames the event would otherwise be read as "this attempt had no
8
+ * console messages", which is silence, and silence in exactly the shape of the
9
+ * artifact outage this project spent six days not noticing.
10
+ */
11
+ export declare const TRACE_VERSION_MIN = 5;
12
+ export declare const TRACE_VERSION_MAX = 10;
13
+ export type ConsoleExtraction =
14
+ /** Messages found and formatted. */
15
+ {
16
+ status: "ok";
17
+ text: string;
18
+ messageCount: number;
19
+ }
20
+ /** The trace was read, the version is known, there were no console events. */
21
+ | {
22
+ status: "empty";
23
+ }
24
+ /** A version outside the verified range - the extractor refuses to guess. */
25
+ | {
26
+ status: "unsupported-version";
27
+ version: number;
28
+ }
29
+ /** The zip could not be opened, or holds no .trace entry at all. */
30
+ | {
31
+ status: "unreadable";
32
+ reason: string;
33
+ };
34
+ /**
35
+ * The browser console of a trace zip, or why there is none.
36
+ *
37
+ * NEVER THROWS. This runs inside onTestEnd on a customer's CI machine, and
38
+ * this package's first rule is that it cannot break their run - so every
39
+ * failure becomes a `status` the caller can log and carry on from.
40
+ */
41
+ export declare function extractBrowserConsole(zip: Buffer): ConsoleExtraction;
42
+ //# sourceMappingURL=trace-console.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-console.d.ts","sourceRoot":"","sources":["../src/trace-console.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,MAAM,iBAAiB;AAC3B,oCAAoC;AAClC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;AACtD,8EAA8E;GAC5E;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE;AACrB,6EAA6E;GAC3E;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACpD,oEAAoE;GAClE;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA8D7C;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CA+DpE"}