From 5715b47a417088e82a3fc0bc64529a745f2ac946 Mon Sep 17 00:00:00 2001 From: Abby010 Date: Wed, 19 Feb 2025 17:12:11 +1100 Subject: [PATCH 1/7] feat: implement tracing visualisation with cli --- package-lock.json | 806 +++++++++++++++++++++++++++++++++- package.json | 4 + spans.json | 143 ++++++ src/Logger.ts | 119 +++-- src/tracing/cli.tsx | 53 +++ src/tracing/span.ts | 38 ++ src/tracing/tracingManager.ts | 67 +++ tests/asciinemaTest.ts | 15 + tsconfig.json | 3 +- 9 files changed, 1176 insertions(+), 72 deletions(-) create mode 100644 spans.json create mode 100644 src/tracing/cli.tsx create mode 100644 src/tracing/span.ts create mode 100644 src/tracing/tracingManager.ts create mode 100644 tests/asciinemaTest.ts diff --git a/package-lock.json b/package-lock.json index b6c542a..7818bdf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "@matrixai/logger", "version": "4.0.3", "license": "Apache-2.0", + "dependencies": { + "ink": "^5.1.0" + }, "devDependencies": { "@swc/core": "1.3.82", "@swc/jest": "^0.2.29", @@ -27,6 +30,7 @@ "prettier": "^3.0.0", "shx": "^0.3.4", "systeminformation": "^5.18.5", + "ts-node": "^10.9.2", "tsx": "^3.12.7", "typedoc": "^0.24.8", "typescript": "^5.1.6" @@ -41,6 +45,43 @@ "node": ">=0.10.0" } }, + "node_modules/@alcalzone/ansi-tokenize": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz", + "integrity": "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=14.13.1" + } + }, + "node_modules/@alcalzone/ansi-tokenize/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@alcalzone/ansi-tokenize/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -751,6 +792,30 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@esbuild-kit/cjs-loader": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz", @@ -2183,6 +2248,34 @@ "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", "dev": true }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.1", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", @@ -2504,10 +2597,11 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -2524,6 +2618,19 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2610,6 +2717,13 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2741,6 +2855,18 @@ "node": ">=8" } }, + "node_modules/auto-bind": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz", + "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -3082,6 +3208,18 @@ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -3094,6 +3232,112 @@ "node": ">=8" } }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -3135,6 +3379,18 @@ "node": ">= 0.12.0" } }, + "node_modules/code-excerpt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", + "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", + "license": "MIT", + "dependencies": { + "convert-to-spaces": "^2.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", @@ -3189,6 +3445,22 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/convert-to-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", + "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3430,6 +3702,16 @@ "node": ">=8" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.4.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", @@ -3487,6 +3769,18 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -3589,6 +3883,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-toolkit": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.32.0.tgz", + "integrity": "sha512-ZfSfHP1l6ubgW/B/FRtqb9bYdMvI6jizbOSfbwwJNcOQ1QE6TFsC3jpQkZ900uUPSR3t3SU5Ds7UWKnYz+uP8Q==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, "node_modules/esbuild": { "version": "0.17.19", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", @@ -4262,6 +4566,18 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -4581,6 +4897,18 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4597,6 +4925,234 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/ink": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ink/-/ink-5.1.0.tgz", + "integrity": "sha512-3vIO+CU4uSg167/dZrg4wHy75llUINYXxN4OsdaCkE40q4zyOTPwNc2VEpLnnWsIvIQeo6x6lilAhuaSt+rIsA==", + "license": "MIT", + "dependencies": { + "@alcalzone/ansi-tokenize": "^0.1.3", + "ansi-escapes": "^7.0.0", + "ansi-styles": "^6.2.1", + "auto-bind": "^5.0.1", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "cli-cursor": "^4.0.0", + "cli-truncate": "^4.0.0", + "code-excerpt": "^4.0.0", + "es-toolkit": "^1.22.0", + "indent-string": "^5.0.0", + "is-in-ci": "^1.0.0", + "patch-console": "^2.0.0", + "react-reconciler": "^0.29.0", + "scheduler": "^0.23.0", + "signal-exit": "^3.0.7", + "slice-ansi": "^7.1.0", + "stack-utils": "^2.0.6", + "string-width": "^7.2.0", + "type-fest": "^4.27.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0", + "ws": "^8.18.0", + "yoga-wasm-web": "~0.3.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0", + "react-devtools-core": "^4.19.1" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-devtools-core": { + "optional": true + } + } + }, + "node_modules/ink/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ink/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ink/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ink/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/ink/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/ink/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/ink/node_modules/type-fest": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz", + "integrity": "sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", @@ -4761,6 +5317,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ci": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-1.0.0.tgz", + "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==", + "license": "MIT", + "bin": { + "is-in-ci": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -6019,8 +6590,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -6210,6 +6780,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -6240,6 +6822,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -6293,7 +6882,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -6477,7 +7065,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -6592,6 +7179,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/patch-console": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz", + "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -6860,12 +7456,41 @@ } ] }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/react-reconciler": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", + "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -7077,6 +7702,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -7193,8 +7827,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sisteransi": { "version": "1.0.5", @@ -7257,7 +7890,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -7269,7 +7901,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, "engines": { "node": ">=8" } @@ -7513,6 +8144,50 @@ "node": ">=8.0" } }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -7833,6 +8508,13 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", @@ -7924,6 +8606,71 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "license": "MIT", + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -7957,6 +8704,27 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", @@ -8005,6 +8773,16 @@ "node": ">=12" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -8016,6 +8794,12 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/yoga-wasm-web": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", + "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==", + "license": "MIT" } } } diff --git a/package.json b/package.json index a64b749..0d3ac34 100644 --- a/package.json +++ b/package.json @@ -55,8 +55,12 @@ "prettier": "^3.0.0", "shx": "^0.3.4", "systeminformation": "^5.18.5", + "ts-node": "^10.9.2", "tsx": "^3.12.7", "typedoc": "^0.24.8", "typescript": "^5.1.6" + }, + "dependencies": { + "ink": "^5.1.0" } } diff --git a/spans.json b/spans.json new file mode 100644 index 0000000..8edd2d9 --- /dev/null +++ b/spans.json @@ -0,0 +1,143 @@ +[ + { + "spanId": "span-1739940930333-7m6gy", + "name": "User Request", + "startTime": 1739940930333, + "endTime": 1739940930336, + "parentSpanId": null, + "isCompleted": true, + "children": [ + { + "spanId": "span-1739940930336-f00p2", + "name": "Order Processing", + "startTime": 1739940930336, + "endTime": 1739940930336, + "parentSpanId": "span-1739940930333-7m6gy", + "isCompleted": true, + "children": [ + { + "spanId": "span-1739940930336-9b868", + "name": "Payment Processing", + "startTime": 1739940930336, + "endTime": 1739940930337, + "parentSpanId": "span-1739940930336-f00p2", + "isCompleted": true, + "children": [ + { + "spanId": "span-1739940933340-k80y3", + "name": "Payment Completed", + "startTime": 1739940933340, + "endTime": 1739940933341, + "parentSpanId": "span-1739940930336-9b868", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1739940935340-zcywd", + "name": "Order Completed", + "startTime": 1739940935340, + "endTime": 1739940935341, + "parentSpanId": "span-1739940930336-f00p2", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1739940937338-xgx5l", + "name": "User Request Completed", + "startTime": 1739940937338, + "endTime": 1739940937340, + "parentSpanId": "span-1739940930333-7m6gy", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1739940930336-f00p2", + "name": "Order Processing", + "startTime": 1739940930336, + "endTime": 1739940930336, + "parentSpanId": "span-1739940930333-7m6gy", + "isCompleted": true, + "children": [ + { + "spanId": "span-1739940930336-9b868", + "name": "Payment Processing", + "startTime": 1739940930336, + "endTime": 1739940930337, + "parentSpanId": "span-1739940930336-f00p2", + "isCompleted": true, + "children": [ + { + "spanId": "span-1739940933340-k80y3", + "name": "Payment Completed", + "startTime": 1739940933340, + "endTime": 1739940933341, + "parentSpanId": "span-1739940930336-9b868", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1739940935340-zcywd", + "name": "Order Completed", + "startTime": 1739940935340, + "endTime": 1739940935341, + "parentSpanId": "span-1739940930336-f00p2", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1739940930336-9b868", + "name": "Payment Processing", + "startTime": 1739940930336, + "endTime": 1739940930337, + "parentSpanId": "span-1739940930336-f00p2", + "isCompleted": true, + "children": [ + { + "spanId": "span-1739940933340-k80y3", + "name": "Payment Completed", + "startTime": 1739940933340, + "endTime": 1739940933341, + "parentSpanId": "span-1739940930336-9b868", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1739940933340-k80y3", + "name": "Payment Completed", + "startTime": 1739940933340, + "endTime": 1739940933341, + "parentSpanId": "span-1739940930336-9b868", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1739940935340-zcywd", + "name": "Order Completed", + "startTime": 1739940935340, + "endTime": 1739940935341, + "parentSpanId": "span-1739940930336-f00p2", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1739940937338-xgx5l", + "name": "User Request Completed", + "startTime": 1739940937338, + "endTime": 1739940937340, + "parentSpanId": "span-1739940930333-7m6gy", + "isCompleted": true, + "children": [] + } +] \ No newline at end of file diff --git a/src/Logger.ts b/src/Logger.ts index 8281bb4..fa049c7 100644 --- a/src/Logger.ts +++ b/src/Logger.ts @@ -3,6 +3,8 @@ import type Handler from './Handler.js'; import { LogLevel } from './types.js'; import ConsoleErrHandler from './handlers/ConsoleErrHandler.js'; import * as utils from './utils.js'; +import { openSpan, closeSpan } from "./tracing/tracingManager.js"; + class Logger { public readonly key: string; @@ -107,89 +109,86 @@ class Logger { delete this.filter; } - public debug(msg?: ToString, format?: LogFormatter): void; - public debug( - msg: ToString | undefined, - data: LogData, - format?: LogFormatter, - ): void; - public debug( - msg?: ToString, - formatOrData?: LogFormatter | LogData, - format?: LogFormatter, - ): void { - if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.DEBUG, formatOrData as LogFormatter); - } else { - return this.log(msg, formatOrData, LogLevel.DEBUG, format); - } + public debug( + msg?: ToString, + formatOrData?: LogFormatter | LogData, + format?: LogFormatter, + parentSpanId?: string | undefined + ): string { + if (formatOrData == null || typeof formatOrData === 'function') { + return this.log(msg, {}, LogLevel.DEBUG, formatOrData as LogFormatter, parentSpanId); + } else { + return this.log(msg, formatOrData, LogLevel.DEBUG, format, parentSpanId); + } } - public info(msg?: ToString, format?: LogFormatter): void; - public info( - msg: ToString | undefined, - data: LogData, - format?: LogFormatter, - ): void; + public info( msg?: ToString, formatOrData?: LogFormatter | LogData, format?: LogFormatter, - ): void { + parentSpanId?: string | undefined + ): string { if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.INFO, formatOrData as LogFormatter); + return this.log(msg, {}, LogLevel.INFO, formatOrData as LogFormatter, parentSpanId); } else { - return this.log(msg, formatOrData, LogLevel.INFO, format); + return this.log(msg, formatOrData, LogLevel.INFO, format, parentSpanId); } } - public warn(msg?: ToString, format?: LogFormatter): void; - public warn( - msg: ToString | undefined, - data: LogData, - format?: LogFormatter, - ): void; - public warn( - msg?: ToString, - formatOrData?: LogFormatter | LogData, - format?: LogFormatter, - ): void { - if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.WARN, formatOrData as LogFormatter); - } else { - return this.log(msg, formatOrData, LogLevel.WARN, format); - } + + + public warn( + msg?: ToString, + formatOrData?: LogFormatter | LogData, + format?: LogFormatter, + parentSpanId?: string | undefined + ): string { + if (formatOrData == null || typeof formatOrData === 'function') { + return this.log(msg, {}, LogLevel.WARN, formatOrData as LogFormatter, parentSpanId); + } else { + return this.log(msg, formatOrData, LogLevel.WARN, format, parentSpanId); + } } - public error(msg?: ToString, format?: LogFormatter): void; - public error( - msg: ToString | undefined, - data: LogData, - format?: LogFormatter, - ): void; - public error( - msg?: ToString, - formatOrData?: LogFormatter | LogData, - format?: LogFormatter, - ): void { - if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.ERROR, formatOrData as LogFormatter); - } else { - return this.log(msg, formatOrData, LogLevel.ERROR, format); - } + + + public error( + msg?: ToString, + formatOrData?: LogFormatter | LogData, + format?: LogFormatter, + parentSpanId?: string | undefined + ): string { + if (formatOrData == null || typeof formatOrData === 'function') { + return this.log(msg, {}, LogLevel.ERROR, formatOrData as LogFormatter, parentSpanId); + } else { + return this.log(msg, formatOrData, LogLevel.ERROR, format, parentSpanId); + } } + + protected log( msg: ToString | undefined, data: LogData, level: LogLevel, format?: LogFormatter, - ): void { + parentSpanId?: string // Optional parent span +): string { // Filter on level before making a record - if (level < this.getEffectiveLevel()) return; + if (level < this.getEffectiveLevel()) return ""; + + // 🌟 Open a span, linking it to a parent if provided + const spanId = openSpan(msg?.toString() || 'Log Event', parentSpanId); + const record = this.makeRecord(msg, data, level); this.callHandlers(record, level, format); - } + + // 🌟 Close the span + closeSpan(spanId); + return spanId +} + /** * Constructs a `LogRecord` diff --git a/src/tracing/cli.tsx b/src/tracing/cli.tsx new file mode 100644 index 0000000..c57625c --- /dev/null +++ b/src/tracing/cli.tsx @@ -0,0 +1,53 @@ +import React, { useEffect, useState } from 'react'; +import { render, Box, Text } from 'ink'; +import { getActiveSpans } from './tracingManager.js'; +import fs from "fs"; + +const SPAN_FILE = "spans.json"; + +// Function to fetch active spans +const fetchSpanData = () => { + if (!fs.existsSync(SPAN_FILE)) return []; // If file doesn't exist, return empty + const fileData = fs.readFileSync(SPAN_FILE, "utf8"); + return JSON.parse(fileData); +}; + + +/** + * Recursively renders spans in a hierarchical structure. + */ +const SpanTree = ({ spans, depth = 0 }) => { + return spans.map(span => ( + + + {span.endTime ? `[✓ Completed]` : `[Running]`} {span.name} + + {span.children.length > 0 && } + + )); +}; + +/** + * Main React-Ink CLI component. + */ +const App = () => { + const [spans, setSpans] = useState([]); + + useEffect(() => { + const interval = setInterval(() => { + setSpans([...fetchSpanData()]); + }, 1000); + return () => clearInterval(interval); + }, []); + + + return ( + + 🚀 Real-Time Span Visualization: + + + ); +}; + +// Start the CLI application +render(); diff --git a/src/tracing/span.ts b/src/tracing/span.ts new file mode 100644 index 0000000..a7bd4cf --- /dev/null +++ b/src/tracing/span.ts @@ -0,0 +1,38 @@ +export class Span { + spanId: string; + name: string; + startTime: number; + endTime: number | null; + parentSpanId: string | null; + children: Span[]; + + constructor(name: string, parentSpanId: string | null = null) { + this.spanId = `span-${Date.now()}-${Math.random().toString(36).substr(2, 5)}`; + this.name = name; + this.startTime = Date.now(); + this.endTime = null; + this.parentSpanId = parentSpanId; + this.children = []; + } + + close(): void { + this.endTime = Date.now(); + } + + isCompleted(): boolean { + return this.endTime !== null; + } + + // Convert span object to JSON-friendly format + toJSON(): Record { + return { + spanId: this.spanId, + name: this.name, + startTime: this.startTime, + endTime: this.endTime, + parentSpanId: this.parentSpanId, + isCompleted: this.isCompleted(), + children: this.children.map(child => child.toJSON()) // Serialize children + }; + } +} diff --git a/src/tracing/tracingManager.ts b/src/tracing/tracingManager.ts new file mode 100644 index 0000000..cf1de7e --- /dev/null +++ b/src/tracing/tracingManager.ts @@ -0,0 +1,67 @@ +import { Span } from "./span.js"; +import fs from "fs"; + +const SPAN_FILE = "spans.json"; + +// Store all active spans in a dictionary +const activeSpans: Record = {}; + +/** + * Opens a new span and associates it with a parent (if provided). + * @param name - Name of the span. + * @param parentSpanId - (Optional) ID of the parent span. + * @returns The unique ID of the created span. + */ + +function saveSpansToFile() { + fs.writeFileSync(SPAN_FILE, JSON.stringify(Object.values(activeSpans), null, 2)); +} + +export function openSpan(name: string, parentSpanId: string | null = null): string { + const newSpan = new Span(name, parentSpanId); + activeSpans[newSpan.spanId] = newSpan; + + saveSpansToFile(); + + console.log("Opened span:", newSpan); + + // If it's a child span, add it to the parent + if (parentSpanId && activeSpans[parentSpanId]) { + activeSpans[parentSpanId].children.push(newSpan); + } + + return newSpan.spanId; +} + +/** + * Closes a span by marking its end time. + * @param spanId - The ID of the span to close. + * @returns The completed span or null if the span doesn't exist. + */ +export function closeSpan(spanId: string): Span | null { + if (activeSpans[spanId]) { + activeSpans[spanId].close(); + saveSpansToFile(); + console.log("Closed span:", activeSpans[spanId]); + return activeSpans[spanId]; + } + return null; +} + +/** + * Retrieves all active spans. + * @returns An array of active spans. + */ +export function getActiveSpans(): Span[] { + console.log("📢 Checking Active Spans at Time:", Date.now()); + console.log("📢 Stored Active Spans:", Object.values(activeSpans)); + return Object.values(activeSpans); +} + +/** + * Retrieves the entire trace structure as JSON. + * @returns JSON representation of all spans. + */ +export function getTraceJSON(): string { + return JSON.stringify(getActiveSpans().map(span => span.toJSON()), null, 2); +} diff --git a/tests/asciinemaTest.ts b/tests/asciinemaTest.ts new file mode 100644 index 0000000..342c544 --- /dev/null +++ b/tests/asciinemaTest.ts @@ -0,0 +1,15 @@ +import Logger from "../src/Logger.js"; + +const logger = new Logger(); + +console.log("\nStarting Tracing & CLI Test...\n"); + +// Now correctly assigning the returned spanId +const rootSpan: string = logger.info("User Request"); +const span1: string = logger.info("Order Processing", undefined, undefined, rootSpan); +const span2: string = logger.info("Payment Processing", undefined, undefined, span1); + +// Simulate Completion at Different Intervals +setTimeout(() => logger.info("Payment Completed", undefined, undefined, span2), 3000); +setTimeout(() => logger.info("Order Completed", undefined, undefined, span1), 5000); +setTimeout(() => logger.info("User Request Completed", undefined, undefined, rootSpan), 7000); diff --git a/tsconfig.json b/tsconfig.json index 0eeb862..28138ae 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "jsx": "react-jsx", "outDir": "./dist", "tsBuildInfoFile": "./dist/tsbuildinfo", "incremental": true, @@ -13,7 +14,7 @@ "resolveJsonModule": true, "isolatedModules": true, "moduleResolution": "NodeNext", - "module": "ESNext", + "module": "NodeNext", "target": "ES2022", "baseUrl": "./src", "paths": { From 9d1054ab6b568a7621027cbea52aae692dd3ba1a Mon Sep 17 00:00:00 2001 From: Abby010 Date: Tue, 25 Feb 2025 10:06:45 +1100 Subject: [PATCH 2/7] feat: create library for tracing --- asciinemaTests.cast | 34 +++++ cli_simple.cast | 184 +++++++++++++++++++++++++ cli_tracing.cast | 6 + cli_tracing_2.cast | 44 ++++++ package.json | 53 +------ spans.json | 118 ++++++++-------- src/Logger.ts | 2 +- src/{tracing => bin}/cli.tsx | 34 ++++- src/bin/simple-cli.tsx | 7 + src/index.ts | 3 + src/{tracing => lib}/span.ts | 0 src/{tracing => lib}/tracingManager.ts | 51 ++++++- tracing_demo.cast | 45 ++++++ 13 files changed, 467 insertions(+), 114 deletions(-) create mode 100644 asciinemaTests.cast create mode 100644 cli_simple.cast create mode 100644 cli_tracing.cast create mode 100644 cli_tracing_2.cast rename src/{tracing => bin}/cli.tsx (61%) create mode 100644 src/bin/simple-cli.tsx rename src/{tracing => lib}/span.ts (100%) rename src/{tracing => lib}/tracingManager.ts (56%) create mode 100644 tracing_demo.cast diff --git a/asciinemaTests.cast b/asciinemaTests.cast new file mode 100644 index 0000000..4fa6604 --- /dev/null +++ b/asciinemaTests.cast @@ -0,0 +1,34 @@ +{"version": 2, "width": 56, "height": 41, "timestamp": 1740361111, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} +[0.039924, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] +[2.151069, "o", "asciinema rec asciinemaTests.cast\u001b[K"] +[3.664674, "o", "\u001b[A\u001b[33Cupload cli_simple\u001b[P\u001b[39C\u001b[K\u001b[34D"] +[4.60517, "o", "\u001b[11Dtracing_2.cast"] +[4.941395, "o", "\u001b[18DLibraryterminal1.cast\r\r\n\u001b[K"] +[5.652507, "o", "\u001b[K\u001b[A\u001b[A\u001b[45C"] +[6.039915, "o", "clear\u001b[K\u001b[1B\r\u001b[K\u001b[1B\u001b[K\u001b[A\u001b[A\u001b[50C"] +[6.423926, "o", "\b\b\b\b\bNODE_OPTIONS=\"--loader ts-node/esm\" npx ts-node tests/asciinemaTest.ts\u001b[K\r\r\n\u001b[K"] +[8.614349, "o", "\u001b[K"] +[8.614407, "o", "\u001b[?1l\u001b>"] +[8.6145, "o", "\u001b[?2004l\r\r\n"] +[8.732635, "o", "(node:703961) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[8.902543, "o", "\u001b[1G\u001b[0K"] +[9.026296, "o", "(node:703978) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[9.744792, "o", "\r\nStarting Tracing & CLI Test...\r\n\r\n"] +[9.74588, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740361121687\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: []\r\n}\r\n"] +[9.746058, "o", "INFO:root:User Request\r\n"] +[9.746209, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740361121687\u001b[39m,\r\n endTime: \u001b[33m1740361121688\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: []\r\n}\r\n"] +[9.746298, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\n"] +[9.746328, "o", "INFO:root:Order Processing\r\n"] +[9.746625, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[33m1740361121689\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\nOpened span: Span {\r\n spanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:Payment Processing\r\n"] +[9.746851, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[33m1740361121689\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\n"] +[12.751841, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361124693-xz0na'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361124693\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:Payment Completed\r\n"] +[12.752391, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361124693-xz0na'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361124693\u001b[39m,\r\n endTime: \u001b[33m1740361124694\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n children: []\r\n}\r\n"] +[14.750206, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361126691-0xa25'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361126691\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:Order Completed\r\n"] +[14.751294, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361126691-0xa25'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361126691\u001b[39m,\r\n endTime: \u001b[33m1740361126693\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\n"] +[16.750164, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361128691-qftpd'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361128691\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:User Request Completed\r\n"] +[16.750408, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361128691-qftpd'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361128691\u001b[39m,\r\n endTime: \u001b[33m1740361128693\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\n"] +[16.767394, "o", "\u001b[1G\u001b[0K⠙"] +[16.769462, "o", "\u001b[1G\u001b[0K"] +[16.777481, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K"] +[16.777733, "o", "\u001b[?1h\u001b=\u001b[?2004h"] +[18.736266, "o", "\u001b[?2004l\r\r\n"] diff --git a/cli_simple.cast b/cli_simple.cast new file mode 100644 index 0000000..2349ab8 --- /dev/null +++ b/cli_simple.cast @@ -0,0 +1,184 @@ +{"version": 2, "width": 56, "height": 27, "timestamp": 1740360830, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} +[0.042524, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] +[1.021851, "o", "c"] +[1.188685, "o", "\bcl"] +[1.54646, "o", "e"] +[1.633173, "o", "a"] +[1.797043, "o", "r"] +[1.9703, "o", "\u001b[?1l\u001b>"] +[1.970326, "o", "\u001b[?2004l\r\r\n"] +[1.971491, "o", "\u001b[H\u001b[2J\u001b[3J"] +[1.971585, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[1.971657, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b="] +[1.971741, "o", "\u001b[?2004h"] +[20.959889, "o", "\u001b[7mNODE_OPTION\u001b[7mS\u001b[7m=\"--loader ts-node/esm\" npx ts-node src/bin/simple-cli.\u001b[7mt\u001b[7msx\u001b[27m\u001b[K\r\r\n\u001b[K"] +[21.997951, "o", "\u001b[3A\u001b[45C\u001b[27mN\u001b[27mO\u001b[27mD\u001b[27mE\u001b[27m_\u001b[27mO\u001b[27mP\u001b[27mT\u001b[27mI\u001b[27mO\u001b[27mNS\u001b[27m=\u001b[27m\"\u001b[27m-\u001b[27m-\u001b[27ml\u001b[27mo\u001b[27ma\u001b[27md\u001b[27me\u001b[27mr\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m/\u001b[27me\u001b[27ms\u001b[27mm\u001b[27m\"\u001b[27m \u001b[27mn\u001b[27mp\u001b[27mx\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m \u001b[27ms\u001b[27mr\u001b[27mc\u001b[27m/\u001b[27mb\u001b[27mi\u001b[27mn\u001b[27m/\u001b[27ms\u001b[27mi\u001b[27mm\u001b[27mp\u001b[27ml\u001b[27me\u001b[27m-\u001b[27mc\u001b[27ml\u001b[27mi\u001b[27m.t\u001b[27ms\u001b[27mx\u001b[1B\r\u001b[K\u001b[A\u001b[3C"] +[22.522488, "o", "\u001b[?1l\u001b>"] +[22.522569, "o", "\u001b[?2004l\u001b[1B\r\r\n"] +[22.647245, "o", "(node:692645) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[22.813832, "o", "\u001b[1G\u001b[0K"] +[22.940414, "o", "(node:692686) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[24.590923, "o", "\u001b[1;1H\u001b[0J"] +[24.590975, "o", "🚀 Live Spans (Tail Mode):\r\n\r\n"] +[24.59145, "o", "Checking Active Spans at Time: \u001b[33m1740360854613\u001b[39m\r\n"] +[24.592139, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n"] +[24.592208, "o", "[]\r\n"] +[25.592019, "o", "\u001b[1;1H"] +[25.59229, "o", "\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360855614\u001b[39m\r\n"] +[25.59282, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] +[26.592991, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[26.593418, "o", "Checking Active Spans at Time: \u001b[33m1740360856615\u001b[39m\r\n"] +[26.593499, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n"] +[26.593704, "o", "[]\r\n"] +[27.593587, "o", "\u001b[1;1H"] +[27.593691, "o", "\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[27.593821, "o", "Checking Active Spans at Time: \u001b[33m1740360857615\u001b[39m\r\nStored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] +[28.594846, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[28.594937, "o", "Checking Active Spans at Time: \u001b[33m1740360858616\u001b[39m\r\n"] +[28.595179, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] +[29.596577, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[29.596608, "o", "Checking Active Spans at Time: \u001b[33m1740360859618\u001b[39m\r\n"] +[29.596629, "o", "Stored Active Spans: []\r\n"] +[29.59671, "o", "Debug: Active Spans Before JSON Conversion: []\r\n"] +[29.596788, "o", "[]\r\n"] +[30.598151, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[30.598221, "o", "Checking Active Spans at Time: \u001b[33m1740360860620\u001b[39m\r\nStored Active Spans: []\r\n"] +[30.598509, "o", "Debug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] +[31.598642, "o", "\u001b[1;1H\u001b[0J"] +[31.598673, "o", "🚀 Live Spans (Tail Mode):\r\n\r\n"] +[31.598799, "o", "Checking Active Spans at Time: \u001b[33m1740360861620\u001b[39m\r\nStored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] +[32.600248, "o", "\u001b[1;1H\u001b[0J"] +[32.600347, "o", "🚀 Live Spans (Tail Mode):\r\n\r\n"] +[32.600689, "o", "Checking Active Spans at Time: \u001b[33m1740360862622\u001b[39m\r\n"] +[32.600901, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] +[33.600725, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360863622\u001b[39m\r\nStored Active Spans: []\r\n"] +[33.600756, "o", "Debug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] +[34.601983, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[34.602098, "o", "Checking Active Spans at Time: \u001b[33m1740360864624\u001b[39m\r\n"] +[34.603339, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[34.603386, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n"] +[34.603403, "o", " ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[35.602975, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[35.603527, "o", "Checking Active Spans at Time: \u001b[33m1740360865625\u001b[39m\r\n"] +[35.60517, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[35.605441, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n"] +[35.605667, "o", " \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[36.603649, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360866625\u001b[39m\r\n"] +[36.604043, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[36.604104, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[37.220807, "r", "56x28"] +[37.244295, "r", "56x30"] +[37.2633, "r", "56x32"] +[37.282516, "r", "56x33"] +[37.29945, "r", "56x34"] +[37.314485, "r", "56x35"] +[37.331841, "r", "56x36"] +[37.34964, "r", "56x37"] +[37.362778, "r", "56x38"] +[37.378573, "r", "56x39"] +[37.393484, "r", "56x40"] +[37.413878, "r", "56x41"] +[37.60477, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[37.60491, "o", "Checking Active Spans at Time: \u001b[33m1740360867626\u001b[39m\r\n"] +[37.606953, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[37.607218, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n"] +[37.607276, "o", " \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[38.605512, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[38.605617, "o", "Checking Active Spans at Time: \u001b[33m1740360868627\u001b[39m\r\n"] +[38.605946, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[38.606045, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[39.607699, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[39.607867, "o", "Checking Active Spans at Time: \u001b[33m1740360869629\u001b[39m\r\n"] +[39.609117, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[39.609409, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []"] +[39.609474, "o", "\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[40.60792, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[40.608028, "o", "Checking Active Spans at Time: \u001b[33m1740360870629\u001b[39m\r\n"] +[40.609349, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[40.609621, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n"] +[40.609762, "o", " \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[41.609102, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360871631\u001b[39m\r\n"] +[41.609406, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n "] +[41.609561, "o", " \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[42.610192, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[42.610404, "o", "Checking Active Spans at Time: \u001b[33m1740360872632\u001b[39m\r\n"] +[42.611619, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[42.611928, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,"] +[42.612105, "o", "\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[43.611298, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360873633\u001b[39m\r\n"] +[43.611643, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[43.611796, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] +[43.61188, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[44.612286, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[44.612405, "o", "Checking Active Spans at Time: \u001b[33m1740360874634\u001b[39m\r\n"] +[44.613587, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n "] +[44.613674, "o", " \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[45.613701, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[45.613832, "o", "Checking Active Spans at Time: \u001b[33m1740360875635\u001b[39m\r\n"] +[45.614665, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[45.614952, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[46.614645, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[46.614749, "o", "Checking Active Spans at Time: \u001b[33m1740360876636\u001b[39m\r\n"] +[46.616122, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[47.615496, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[47.615569, "o", "Checking Active Spans at Time: \u001b[33m1740360877637\u001b[39m\r\n"] +[47.616161, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[47.616293, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\","] +[47.616427, "o", "\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[48.616489, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[48.616583, "o", "Checking Active Spans at Time: \u001b[33m1740360878638\u001b[39m\r\n"] +[48.616817, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n"] +[48.616833, "o", " startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[48.616897, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \""] +[48.616935, "o", "name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[49.618153, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[49.618277, "o", "Checking Active Spans at Time: \u001b[33m1740360879640\u001b[39m\r\n"] +[49.62055, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[49.62072, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] +[49.620777, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[50.618941, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360880641\u001b[39m\r\n"] +[50.619198, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n"] +[50.619208, "o", " parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[50.619237, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n"] +[50.61925, "o", " \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n"] +[50.619302, "o", " },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\","] +[50.619314, "o", "\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[51.620928, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[51.621065, "o", "Checking Active Spans at Time: \u001b[33m1740360881642\u001b[39m\r\n"] +[51.622182, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n"] +[51.622329, "o", " spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[51.622473, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\","] +[51.622581, "o", "\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n"] +[51.622643, "o", " \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,"] +[51.622702, "o", "\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\","] +[51.623005, "o", "\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[52.622023, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360882644\u001b[39m\r\n"] +[52.622299, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[52.622339, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,"] +[52.62237, "o", "\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n"] +[52.622382, "o", " \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[53.623127, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[53.62328, "o", "Checking Active Spans at Time: \u001b[33m1740360883645\u001b[39m\r\n"] +[53.624743, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[53.625015, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[54.623618, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[54.62377, "o", "Checking Active Spans at Time: \u001b[33m1740360884645\u001b[39m\r\n"] +[54.624299, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[54.62447, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] +[54.624616, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[55.624619, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360885646\u001b[39m\r\n"] +[55.62485, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[56.625766, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[56.625855, "o", "Checking Active Spans at Time: \u001b[33m1740360886647\u001b[39m\r\n"] +[56.626683, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] +[56.626895, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] +[56.627003, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[57.626996, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] +[57.627049, "o", "Checking Active Spans at Time: \u001b[33m1740360887649\u001b[39m\r\n"] +[57.627199, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n"] +[57.627245, "o", " \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] +[57.706542, "o", "^C"] +[57.719162, "o", "\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[57.719196, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K"] +[57.719374, "o", "\u001b[?1h\u001b=\u001b[?2004h"] +[58.263205, "o", "\u001b[?2004l\r\r\n"] diff --git a/cli_tracing.cast b/cli_tracing.cast new file mode 100644 index 0000000..77f6819 --- /dev/null +++ b/cli_tracing.cast @@ -0,0 +1,6 @@ +{"version": 2, "width": 56, "height": 27, "timestamp": 1740360541, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} +[0.04433, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b="] +[0.044899, "o", "\u001b[?2004h"] +[8.840486, "r", "86x27"] +[8.840726, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > "] +[10.797705, "o", "\u001b[?2004l\r\r\n"] diff --git a/cli_tracing_2.cast b/cli_tracing_2.cast new file mode 100644 index 0000000..7e54ac6 --- /dev/null +++ b/cli_tracing_2.cast @@ -0,0 +1,44 @@ +{"version": 2, "width": 56, "height": 27, "timestamp": 1740360826, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} +[0.041814, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] +[1.173467, "o", "c"] +[1.306564, "o", "\bcl"] +[1.389045, "o", "e"] +[1.472877, "o", "a"] +[1.544899, "o", "r"] +[1.648254, "o", "\u001b[?1l\u001b>"] +[1.648306, "o", "\u001b[?2004l\r\r\n"] +[1.649624, "o", "\u001b[H\u001b[2J\u001b[3J"] +[1.649868, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[1.649931, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] +[12.294991, "o", "\u001b[7mNODE_OPTION\u001b[7mS\u001b[7m=\"--loader ts-node/esm\" npx ts-node src/bin/cli.tsx\u001b[27m\u001b[K\r\r\n\u001b[K"] +[13.474605, "o", "\u001b[A\u001b[A\u001b[45C\u001b[27mN\u001b[27mO\u001b[27mD\u001b[27mE\u001b[27m_\u001b[27mO\u001b[27mP\u001b[27mT\u001b[27mI\u001b[27mO\u001b[27mNS\u001b[27m=\u001b[27m\"\u001b[27m-\u001b[27m-\u001b[27ml\u001b[27mo\u001b[27ma\u001b[27md\u001b[27me\u001b[27mr\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m/\u001b[27me\u001b[27ms\u001b[27mm\u001b[27m\"\u001b[27m \u001b[27mn\u001b[27mp\u001b[27mx\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m \u001b[27ms\u001b[27mr\u001b[27mc\u001b[27m/\u001b[27mb\u001b[27mi\u001b[27mn\u001b[27m/\u001b[27mc\u001b[27ml\u001b[27mi\u001b[27m.\u001b[27mt\u001b[27ms\u001b[27mx\u001b[1B\r\u001b[K\u001b[A\u001b[52C"] +[14.695841, "o", "\u001b[?1l\u001b>\u001b[?2004l\u001b[1B\r\r\n"] +[14.830836, "o", "(node:692095) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[14.985364, "o", "\u001b[1G\u001b[0K"] +[15.107438, "o", "(node:692108) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[16.131898, "o", "\u001b[?25l \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n"] +[16.132524, "o", "\u001b[?25l"] +[38.154343, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[40.528585, "r", "56x28"] +[40.552133, "r", "56x30"] +[40.571095, "r", "56x32"] +[40.590189, "r", "56x33"] +[40.607252, "r", "56x34"] +[40.622308, "r", "56x35"] +[40.63968, "r", "56x36"] +[40.657427, "r", "56x37"] +[40.670632, "r", "56x38"] +[40.686494, "r", "56x39"] +[40.701533, "r", "56x40"] +[40.721595, "r", "56x41"] +[41.159754, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[43.158509, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[45.160545, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request Completed\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[57.892925, "o", "^C"] +[57.895388, "o", "\u001b[?25h"] +[57.896048, "o", "\u001b[?25h"] +[57.897094, "o", "\u001b[?25h"] +[57.914169, "o", "\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[57.914268, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K"] +[57.914419, "o", "\u001b[?1h\u001b=\u001b[?2004h"] +[59.005111, "o", "\u001b[?2004l\r\r\n"] diff --git a/package.json b/package.json index 0d3ac34..bc9f2c6 100644 --- a/package.json +++ b/package.json @@ -4,61 +4,20 @@ "author": "Roger Qiu", "description": "Python-like JavaScript Logger", "license": "Apache-2.0", - "repository": { - "type": "git", - "url": "https://github.com/MatrixAI/js-logger.git" - }, "type": "module", - "exports": { - "./package.json": "./package.json", - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./*.js": { - "types": "./dist/*.d.ts", - "import": "./dist/*.js" - }, - "./*": "./dist/*" - }, - "imports": { - "#*": "./dist/*" + "bin": { + "js-logger": "./src/bin/cli.tsx", + "js-logger-simple": "./src/bin/simple-cli.ts" }, "scripts": { "prepare": "tsc -p ./tsconfig.build.json", "build": "shx rm -rf ./dist && tsc -p ./tsconfig.build.json", - "postversion": "npm install --package-lock-only --ignore-scripts --silent", - "tsx": "tsx", + "start": "npx ts-node src/bin/cli.tsx", + "start:simple": "npx ts-node src/bin/simple-cli.ts", "test": "node ./scripts/test.mjs", "lint": "eslint '{src,tests,scripts,benches}/**/*.{js,mjs,ts,mts,jsx,tsx}'", "lintfix": "eslint '{src,tests,scripts,benches}/**/*.{js,mjs,ts,mts,jsx,tsx}' --fix", - "lint-shell": "find ./src ./tests ./scripts -type f -regextype posix-extended -regex '.*\\.(sh)' -exec shellcheck {} +", - "docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src", - "bench": "tsc -p ./tsconfig.build.json && shx rm -rf ./benches/results && tsx ./benches/index.ts" - }, - "devDependencies": { - "@swc/core": "1.3.82", - "@swc/jest": "^0.2.29", - "@types/jest": "^29.5.2", - "@types/node": "^20.5.7", - "@typescript-eslint/eslint-plugin": "^5.61.0", - "@typescript-eslint/parser": "^5.61.0", - "benny": "^3.7.1", - "common-tags": "^1.8.2", - "eslint": "^8.44.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-prettier": "^5.0.0-alpha.2", - "jest": "^29.6.2", - "jest-extended": "^4.0.0", - "jest-junit": "^16.0.0", - "prettier": "^3.0.0", - "shx": "^0.3.4", - "systeminformation": "^5.18.5", - "ts-node": "^10.9.2", - "tsx": "^3.12.7", - "typedoc": "^0.24.8", - "typescript": "^5.1.6" + "docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src" }, "dependencies": { "ink": "^5.1.0" diff --git a/spans.json b/spans.json index 8edd2d9..c5629bb 100644 --- a/spans.json +++ b/spans.json @@ -1,142 +1,142 @@ [ { - "spanId": "span-1739940930333-7m6gy", + "spanId": "span-1740361121687-afa3r", "name": "User Request", - "startTime": 1739940930333, - "endTime": 1739940930336, + "startTime": 1740361121687, + "endTime": 1740361121688, "parentSpanId": null, "isCompleted": true, "children": [ { - "spanId": "span-1739940930336-f00p2", + "spanId": "span-1740361121689-eim4b", "name": "Order Processing", - "startTime": 1739940930336, - "endTime": 1739940930336, - "parentSpanId": "span-1739940930333-7m6gy", + "startTime": 1740361121689, + "endTime": 1740361121689, + "parentSpanId": "span-1740361121687-afa3r", "isCompleted": true, "children": [ { - "spanId": "span-1739940930336-9b868", + "spanId": "span-1740361121689-hh2n7", "name": "Payment Processing", - "startTime": 1739940930336, - "endTime": 1739940930337, - "parentSpanId": "span-1739940930336-f00p2", + "startTime": 1740361121689, + "endTime": 1740361121689, + "parentSpanId": "span-1740361121689-eim4b", "isCompleted": true, "children": [ { - "spanId": "span-1739940933340-k80y3", + "spanId": "span-1740361124693-xz0na", "name": "Payment Completed", - "startTime": 1739940933340, - "endTime": 1739940933341, - "parentSpanId": "span-1739940930336-9b868", + "startTime": 1740361124693, + "endTime": 1740361124694, + "parentSpanId": "span-1740361121689-hh2n7", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1739940935340-zcywd", + "spanId": "span-1740361126691-0xa25", "name": "Order Completed", - "startTime": 1739940935340, - "endTime": 1739940935341, - "parentSpanId": "span-1739940930336-f00p2", + "startTime": 1740361126691, + "endTime": 1740361126693, + "parentSpanId": "span-1740361121689-eim4b", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1739940937338-xgx5l", + "spanId": "span-1740361128691-qftpd", "name": "User Request Completed", - "startTime": 1739940937338, - "endTime": 1739940937340, - "parentSpanId": "span-1739940930333-7m6gy", + "startTime": 1740361128691, + "endTime": 1740361128693, + "parentSpanId": "span-1740361121687-afa3r", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1739940930336-f00p2", + "spanId": "span-1740361121689-eim4b", "name": "Order Processing", - "startTime": 1739940930336, - "endTime": 1739940930336, - "parentSpanId": "span-1739940930333-7m6gy", + "startTime": 1740361121689, + "endTime": 1740361121689, + "parentSpanId": "span-1740361121687-afa3r", "isCompleted": true, "children": [ { - "spanId": "span-1739940930336-9b868", + "spanId": "span-1740361121689-hh2n7", "name": "Payment Processing", - "startTime": 1739940930336, - "endTime": 1739940930337, - "parentSpanId": "span-1739940930336-f00p2", + "startTime": 1740361121689, + "endTime": 1740361121689, + "parentSpanId": "span-1740361121689-eim4b", "isCompleted": true, "children": [ { - "spanId": "span-1739940933340-k80y3", + "spanId": "span-1740361124693-xz0na", "name": "Payment Completed", - "startTime": 1739940933340, - "endTime": 1739940933341, - "parentSpanId": "span-1739940930336-9b868", + "startTime": 1740361124693, + "endTime": 1740361124694, + "parentSpanId": "span-1740361121689-hh2n7", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1739940935340-zcywd", + "spanId": "span-1740361126691-0xa25", "name": "Order Completed", - "startTime": 1739940935340, - "endTime": 1739940935341, - "parentSpanId": "span-1739940930336-f00p2", + "startTime": 1740361126691, + "endTime": 1740361126693, + "parentSpanId": "span-1740361121689-eim4b", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1739940930336-9b868", + "spanId": "span-1740361121689-hh2n7", "name": "Payment Processing", - "startTime": 1739940930336, - "endTime": 1739940930337, - "parentSpanId": "span-1739940930336-f00p2", + "startTime": 1740361121689, + "endTime": 1740361121689, + "parentSpanId": "span-1740361121689-eim4b", "isCompleted": true, "children": [ { - "spanId": "span-1739940933340-k80y3", + "spanId": "span-1740361124693-xz0na", "name": "Payment Completed", - "startTime": 1739940933340, - "endTime": 1739940933341, - "parentSpanId": "span-1739940930336-9b868", + "startTime": 1740361124693, + "endTime": 1740361124694, + "parentSpanId": "span-1740361121689-hh2n7", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1739940933340-k80y3", + "spanId": "span-1740361124693-xz0na", "name": "Payment Completed", - "startTime": 1739940933340, - "endTime": 1739940933341, - "parentSpanId": "span-1739940930336-9b868", + "startTime": 1740361124693, + "endTime": 1740361124694, + "parentSpanId": "span-1740361121689-hh2n7", "isCompleted": true, "children": [] }, { - "spanId": "span-1739940935340-zcywd", + "spanId": "span-1740361126691-0xa25", "name": "Order Completed", - "startTime": 1739940935340, - "endTime": 1739940935341, - "parentSpanId": "span-1739940930336-f00p2", + "startTime": 1740361126691, + "endTime": 1740361126693, + "parentSpanId": "span-1740361121689-eim4b", "isCompleted": true, "children": [] }, { - "spanId": "span-1739940937338-xgx5l", + "spanId": "span-1740361128691-qftpd", "name": "User Request Completed", - "startTime": 1739940937338, - "endTime": 1739940937340, - "parentSpanId": "span-1739940930333-7m6gy", + "startTime": 1740361128691, + "endTime": 1740361128693, + "parentSpanId": "span-1740361121687-afa3r", "isCompleted": true, "children": [] } diff --git a/src/Logger.ts b/src/Logger.ts index fa049c7..e8f9a48 100644 --- a/src/Logger.ts +++ b/src/Logger.ts @@ -3,7 +3,7 @@ import type Handler from './Handler.js'; import { LogLevel } from './types.js'; import ConsoleErrHandler from './handlers/ConsoleErrHandler.js'; import * as utils from './utils.js'; -import { openSpan, closeSpan } from "./tracing/tracingManager.js"; +import { openSpan, closeSpan } from "./lib/tracingManager.js"; class Logger { diff --git a/src/tracing/cli.tsx b/src/bin/cli.tsx similarity index 61% rename from src/tracing/cli.tsx rename to src/bin/cli.tsx index c57625c..33bdacf 100644 --- a/src/tracing/cli.tsx +++ b/src/bin/cli.tsx @@ -1,7 +1,9 @@ import React, { useEffect, useState } from 'react'; import { render, Box, Text } from 'ink'; -import { getActiveSpans } from './tracingManager.js'; +import { getActiveSpans } from "../lib/tracingManager.js"; import fs from "fs"; +import { Span } from "../lib/span.js"; + const SPAN_FILE = "spans.json"; @@ -9,24 +11,50 @@ const SPAN_FILE = "spans.json"; const fetchSpanData = () => { if (!fs.existsSync(SPAN_FILE)) return []; // If file doesn't exist, return empty const fileData = fs.readFileSync(SPAN_FILE, "utf8"); - return JSON.parse(fileData); + + // Explicitly type `flatSpans` + const flatSpans: Span[] = JSON.parse(fileData); + + // Build a map of spans by ID + const spanMap = new Map(); + flatSpans.forEach(span => { + span.children = []; // Initialize empty children array + spanMap.set(span.spanId, span); + }); + + const rootSpans: Span[] = []; + + // Assign children to their respective parent spans + flatSpans.forEach(span => { + if (span.parentSpanId && spanMap.has(span.parentSpanId)) { + spanMap.get(span.parentSpanId)?.children.push(span); + } else { + rootSpans.push(span); + } + }); + + return rootSpans; }; + /** * Recursively renders spans in a hierarchical structure. */ const SpanTree = ({ spans, depth = 0 }) => { return spans.map(span => ( + {/* Render children spans first */} + {span.children.length > 0 && } + {/* Render the parent span after all children */} {span.endTime ? `[✓ Completed]` : `[Running]`} {span.name} - {span.children.length > 0 && } )); }; + /** * Main React-Ink CLI component. */ diff --git a/src/bin/simple-cli.tsx b/src/bin/simple-cli.tsx new file mode 100644 index 0000000..70c0a08 --- /dev/null +++ b/src/bin/simple-cli.tsx @@ -0,0 +1,7 @@ +import { getTraceJSON } from "../lib/tracingManager.js"; + +setInterval(() => { + console.clear(); + console.log("🚀 Live Spans (Tail Mode):\n"); + console.log(getTraceJSON()); +}, 1000); diff --git a/src/index.ts b/src/index.ts index 2bb7f2e..e880460 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,3 +4,6 @@ export * as formatting from './formatting.js'; export * from './handlers/index.js'; export * from './utils.js'; export * from './types.js'; +export { Span } from "./lib/span.js"; +export { openSpan, closeSpan, getTraceJSON } from "./lib/tracingManager.js"; + diff --git a/src/tracing/span.ts b/src/lib/span.ts similarity index 100% rename from src/tracing/span.ts rename to src/lib/span.ts diff --git a/src/tracing/tracingManager.ts b/src/lib/tracingManager.ts similarity index 56% rename from src/tracing/tracingManager.ts rename to src/lib/tracingManager.ts index cf1de7e..ac2296e 100644 --- a/src/tracing/tracingManager.ts +++ b/src/lib/tracingManager.ts @@ -1,4 +1,4 @@ -import { Span } from "./span.js"; +import { Span } from "../lib/span.js"; import fs from "fs"; const SPAN_FILE = "spans.json"; @@ -52,16 +52,59 @@ export function closeSpan(spanId: string): Span | null { * Retrieves all active spans. * @returns An array of active spans. */ +// export function getActiveSpans(): Span[] { +// console.log("Checking Active Spans at Time:", Date.now()); +// console.log("Stored Active Spans:", Object.values(activeSpans)); +// return Object.values(activeSpans); +// } + export function getActiveSpans(): Span[] { - console.log("📢 Checking Active Spans at Time:", Date.now()); - console.log("📢 Stored Active Spans:", Object.values(activeSpans)); + console.log("Checking Active Spans at Time:", Date.now()); + + if (fs.existsSync(SPAN_FILE)) { + const fileData = fs.readFileSync(SPAN_FILE, "utf8"); + const rawSpans = JSON.parse(fileData); + + function reconstructSpan(spanData: any): Span { + + delete spanData.isCompleted; + + const reconstructedSpan = Object.assign( + new Span(spanData.name, spanData.parentSpanId), + spanData + ); + reconstructedSpan.children = (spanData.children || []).map(reconstructSpan); + return reconstructedSpan; + } + + return rawSpans.map(reconstructSpan); + } + + console.log("Stored Active Spans:", Object.values(activeSpans)); return Object.values(activeSpans); } + + /** * Retrieves the entire trace structure as JSON. * @returns JSON representation of all spans. */ export function getTraceJSON(): string { - return JSON.stringify(getActiveSpans().map(span => span.toJSON()), null, 2); + const activeSpans = getActiveSpans(); + + console.log("Debug: Active Spans Before JSON Conversion:", activeSpans); + + return JSON.stringify( + activeSpans.map(span => span.toJSON()), // ✅ `toJSON()` will now work correctly + null, + 2 + ); } + + + + + + + diff --git a/tracing_demo.cast b/tracing_demo.cast new file mode 100644 index 0000000..ffdfe70 --- /dev/null +++ b/tracing_demo.cast @@ -0,0 +1,45 @@ +{"version": 2, "width": 86, "height": 26, "timestamp": 1740352526, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} +[0.049143, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] +[3.705528, "o", "asciinema rec tracing_demo.cast\r\r\n\u001b[K"] +[3.9475, "o", "\u001b[K\u001b[A\u001b[45C"] +[4.378556, "o", "clear \u001b[1B\r\u001b[K\u001b[A\u001b[50C"] +[4.69985, "o", "\b\b\b\b\brm spans.json"] +[4.93306, "o", "\u001b[13Dclear \u001b[8D"] +[5.2448, "o", "\b\b\b\b\bpolykey agent status"] +[5.557493, "o", "\u001b[12Did\u001b[3Cities authenticate github.com\u001b[K"] +[5.891863, "o", "\u001b[A\u001b[44Cclear\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[50C"] +[6.22836, "o", "\b\b\b\b\bhome-manager switch --flake ~/.config/home-manager/flake.nix --update-input polykey\u001b[K"] +[6.978965, "o", "\u001b[A\u001b[3Cpolykey -V\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[55C"] +[7.687957, "o", "\u001b[10Dnano home.nix"] +[7.865046, "o", "\u001b[13Dls \u001b[11D"] +[8.116207, "o", "\b\bpolykey identities authenticate github.com\u001b[K"] +[8.554976, "o", "\u001b[A\u001b[44Chome-manager switch --flake .\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[74C"] +[8.729845, "o", "\u001b[29Dnix flake update \u001b[13D"] +[9.09044, "o", "\u001b[16Dclear \u001b[11D"] +[9.273132, "o", "\b\b\b\b\bcd home-manager"] +[9.432291, "o", "\u001b[15Dls \u001b[13D"] +[9.601217, "o", "\b\bhome-manager switch --flake ~/.config/home-manager/flake.nix --update-input polykey\u001b[K"] +[9.774874, "o", "\u001b[A\u001b[3Cclear\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[50C"] +[10.382547, "o", "\b\b\b\b\bpolykey identities authenticate github.com\u001b[K"] +[10.570751, "o", "\u001b[A\u001b[52Cag\u001b[3C status\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[65C"] +[10.911508, "o", "\u001b[20Dclear \u001b[15D"] +[11.244494, "o", "\b\b\b\b\bNODE_OPTIONS=\"--loader ts-node/esm\" npx ts-node tests/asciinemaTest.ts\u001b[K\r\r\n\u001b[K"] +[12.10418, "o", "\u001b[K\u001b[A\u001b[A\u001b[45C"] +[12.333501, "o", "\u001b[1B\u001b[38Dsrc/tracing/cli.tsx \u001b[1B\r"] +[13.244159, "o", "\u001b[?1l\u001b>\u001b[?2004l\r\r\n"] +[13.408371, "o", "(node:346093) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[13.587509, "o", "\u001b[1G\u001b[0K"] +[13.726304, "o", "(node:346135) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] +[14.753172, "o", "\u001b[?25l \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n"] +[14.753358, "o", "\u001b[?25l"] +[18.761264, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[21.768844, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[23.768129, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[25.766747, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request Completed\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] +[35.587709, "o", "^X"] +[37.505576, "o", "^C"] +[37.508734, "o", "\u001b[?25h"] +[37.50944, "o", "\u001b[?25h"] +[37.510707, "o", "\u001b[?25h"] +[37.532139, "o", "\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] +[38.409249, "o", "\u001b[?2004l\r\r\n"] From 0d7310145f86e32d7c482c179fb5674cbbb5f1e0 Mon Sep 17 00:00:00 2001 From: Abby010 Date: Mon, 17 Mar 2025 16:39:42 +1100 Subject: [PATCH 3/7] feat: improve visualizing by using box characters fix: logical mode fix: time based mode chore: removed unnecessary comments fix: package-lock.json chore: deleted unnecessary asciinema recordings fix: package.json --- asciinemaTests.cast | 34 ------- cli_simple.cast | 184 -------------------------------------- cli_tracing.cast | 6 -- cli_tracing_2.cast | 44 --------- package-lock.json | 2 +- package.json | 55 ++++++++++-- spans.json | 144 ++++++----------------------- src/Logger.ts | 2 - src/bin/SpanTree.tsx | 112 +++++++++++++++++++++++ src/bin/TimeLineView.tsx | 111 +++++++++++++++++++++++ src/bin/cli.tsx | 115 ++++++++++-------------- src/lib/span.ts | 2 +- src/lib/tracingManager.ts | 8 +- tests/asciinemaTest.ts | 51 ++++++++--- tracing_demo.cast | 45 ---------- 15 files changed, 388 insertions(+), 527 deletions(-) delete mode 100644 asciinemaTests.cast delete mode 100644 cli_simple.cast delete mode 100644 cli_tracing.cast delete mode 100644 cli_tracing_2.cast create mode 100644 src/bin/SpanTree.tsx create mode 100644 src/bin/TimeLineView.tsx delete mode 100644 tracing_demo.cast diff --git a/asciinemaTests.cast b/asciinemaTests.cast deleted file mode 100644 index 4fa6604..0000000 --- a/asciinemaTests.cast +++ /dev/null @@ -1,34 +0,0 @@ -{"version": 2, "width": 56, "height": 41, "timestamp": 1740361111, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} -[0.039924, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] -[2.151069, "o", "asciinema rec asciinemaTests.cast\u001b[K"] -[3.664674, "o", "\u001b[A\u001b[33Cupload cli_simple\u001b[P\u001b[39C\u001b[K\u001b[34D"] -[4.60517, "o", "\u001b[11Dtracing_2.cast"] -[4.941395, "o", "\u001b[18DLibraryterminal1.cast\r\r\n\u001b[K"] -[5.652507, "o", "\u001b[K\u001b[A\u001b[A\u001b[45C"] -[6.039915, "o", "clear\u001b[K\u001b[1B\r\u001b[K\u001b[1B\u001b[K\u001b[A\u001b[A\u001b[50C"] -[6.423926, "o", "\b\b\b\b\bNODE_OPTIONS=\"--loader ts-node/esm\" npx ts-node tests/asciinemaTest.ts\u001b[K\r\r\n\u001b[K"] -[8.614349, "o", "\u001b[K"] -[8.614407, "o", "\u001b[?1l\u001b>"] -[8.6145, "o", "\u001b[?2004l\r\r\n"] -[8.732635, "o", "(node:703961) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[8.902543, "o", "\u001b[1G\u001b[0K"] -[9.026296, "o", "(node:703978) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[9.744792, "o", "\r\nStarting Tracing & CLI Test...\r\n\r\n"] -[9.74588, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740361121687\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: []\r\n}\r\n"] -[9.746058, "o", "INFO:root:User Request\r\n"] -[9.746209, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740361121687\u001b[39m,\r\n endTime: \u001b[33m1740361121688\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: []\r\n}\r\n"] -[9.746298, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\n"] -[9.746328, "o", "INFO:root:Order Processing\r\n"] -[9.746625, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[33m1740361121689\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\nOpened span: Span {\r\n spanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:Payment Processing\r\n"] -[9.746851, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740361121689\u001b[39m,\r\n endTime: \u001b[33m1740361121689\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\n"] -[12.751841, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361124693-xz0na'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361124693\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:Payment Completed\r\n"] -[12.752391, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361124693-xz0na'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361124693\u001b[39m,\r\n endTime: \u001b[33m1740361124694\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121689-hh2n7'\u001b[39m,\r\n children: []\r\n}\r\n"] -[14.750206, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361126691-0xa25'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361126691\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:Order Completed\r\n"] -[14.751294, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361126691-0xa25'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361126691\u001b[39m,\r\n endTime: \u001b[33m1740361126693\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121689-eim4b'\u001b[39m,\r\n children: []\r\n}\r\n"] -[16.750164, "o", "Opened span: Span {\r\n spanId: \u001b[32m'span-1740361128691-qftpd'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361128691\u001b[39m,\r\n endTime: \u001b[1mnull\u001b[22m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\nINFO:root:User Request Completed\r\n"] -[16.750408, "o", "Closed span: Span {\r\n spanId: \u001b[32m'span-1740361128691-qftpd'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740361128691\u001b[39m,\r\n endTime: \u001b[33m1740361128693\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740361121687-afa3r'\u001b[39m,\r\n children: []\r\n}\r\n"] -[16.767394, "o", "\u001b[1G\u001b[0K⠙"] -[16.769462, "o", "\u001b[1G\u001b[0K"] -[16.777481, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K"] -[16.777733, "o", "\u001b[?1h\u001b=\u001b[?2004h"] -[18.736266, "o", "\u001b[?2004l\r\r\n"] diff --git a/cli_simple.cast b/cli_simple.cast deleted file mode 100644 index 2349ab8..0000000 --- a/cli_simple.cast +++ /dev/null @@ -1,184 +0,0 @@ -{"version": 2, "width": 56, "height": 27, "timestamp": 1740360830, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} -[0.042524, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] -[1.021851, "o", "c"] -[1.188685, "o", "\bcl"] -[1.54646, "o", "e"] -[1.633173, "o", "a"] -[1.797043, "o", "r"] -[1.9703, "o", "\u001b[?1l\u001b>"] -[1.970326, "o", "\u001b[?2004l\r\r\n"] -[1.971491, "o", "\u001b[H\u001b[2J\u001b[3J"] -[1.971585, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[1.971657, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b="] -[1.971741, "o", "\u001b[?2004h"] -[20.959889, "o", "\u001b[7mNODE_OPTION\u001b[7mS\u001b[7m=\"--loader ts-node/esm\" npx ts-node src/bin/simple-cli.\u001b[7mt\u001b[7msx\u001b[27m\u001b[K\r\r\n\u001b[K"] -[21.997951, "o", "\u001b[3A\u001b[45C\u001b[27mN\u001b[27mO\u001b[27mD\u001b[27mE\u001b[27m_\u001b[27mO\u001b[27mP\u001b[27mT\u001b[27mI\u001b[27mO\u001b[27mNS\u001b[27m=\u001b[27m\"\u001b[27m-\u001b[27m-\u001b[27ml\u001b[27mo\u001b[27ma\u001b[27md\u001b[27me\u001b[27mr\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m/\u001b[27me\u001b[27ms\u001b[27mm\u001b[27m\"\u001b[27m \u001b[27mn\u001b[27mp\u001b[27mx\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m \u001b[27ms\u001b[27mr\u001b[27mc\u001b[27m/\u001b[27mb\u001b[27mi\u001b[27mn\u001b[27m/\u001b[27ms\u001b[27mi\u001b[27mm\u001b[27mp\u001b[27ml\u001b[27me\u001b[27m-\u001b[27mc\u001b[27ml\u001b[27mi\u001b[27m.t\u001b[27ms\u001b[27mx\u001b[1B\r\u001b[K\u001b[A\u001b[3C"] -[22.522488, "o", "\u001b[?1l\u001b>"] -[22.522569, "o", "\u001b[?2004l\u001b[1B\r\r\n"] -[22.647245, "o", "(node:692645) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[22.813832, "o", "\u001b[1G\u001b[0K"] -[22.940414, "o", "(node:692686) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[24.590923, "o", "\u001b[1;1H\u001b[0J"] -[24.590975, "o", "🚀 Live Spans (Tail Mode):\r\n\r\n"] -[24.59145, "o", "Checking Active Spans at Time: \u001b[33m1740360854613\u001b[39m\r\n"] -[24.592139, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n"] -[24.592208, "o", "[]\r\n"] -[25.592019, "o", "\u001b[1;1H"] -[25.59229, "o", "\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360855614\u001b[39m\r\n"] -[25.59282, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] -[26.592991, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[26.593418, "o", "Checking Active Spans at Time: \u001b[33m1740360856615\u001b[39m\r\n"] -[26.593499, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n"] -[26.593704, "o", "[]\r\n"] -[27.593587, "o", "\u001b[1;1H"] -[27.593691, "o", "\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[27.593821, "o", "Checking Active Spans at Time: \u001b[33m1740360857615\u001b[39m\r\nStored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] -[28.594846, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[28.594937, "o", "Checking Active Spans at Time: \u001b[33m1740360858616\u001b[39m\r\n"] -[28.595179, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] -[29.596577, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[29.596608, "o", "Checking Active Spans at Time: \u001b[33m1740360859618\u001b[39m\r\n"] -[29.596629, "o", "Stored Active Spans: []\r\n"] -[29.59671, "o", "Debug: Active Spans Before JSON Conversion: []\r\n"] -[29.596788, "o", "[]\r\n"] -[30.598151, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[30.598221, "o", "Checking Active Spans at Time: \u001b[33m1740360860620\u001b[39m\r\nStored Active Spans: []\r\n"] -[30.598509, "o", "Debug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] -[31.598642, "o", "\u001b[1;1H\u001b[0J"] -[31.598673, "o", "🚀 Live Spans (Tail Mode):\r\n\r\n"] -[31.598799, "o", "Checking Active Spans at Time: \u001b[33m1740360861620\u001b[39m\r\nStored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] -[32.600248, "o", "\u001b[1;1H\u001b[0J"] -[32.600347, "o", "🚀 Live Spans (Tail Mode):\r\n\r\n"] -[32.600689, "o", "Checking Active Spans at Time: \u001b[33m1740360862622\u001b[39m\r\n"] -[32.600901, "o", "Stored Active Spans: []\r\nDebug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] -[33.600725, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360863622\u001b[39m\r\nStored Active Spans: []\r\n"] -[33.600756, "o", "Debug: Active Spans Before JSON Conversion: []\r\n[]\r\n"] -[34.601983, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[34.602098, "o", "Checking Active Spans at Time: \u001b[33m1740360864624\u001b[39m\r\n"] -[34.603339, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[34.603386, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n"] -[34.603403, "o", " ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[35.602975, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[35.603527, "o", "Checking Active Spans at Time: \u001b[33m1740360865625\u001b[39m\r\n"] -[35.60517, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[35.605441, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n"] -[35.605667, "o", " \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[36.603649, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360866625\u001b[39m\r\n"] -[36.604043, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[36.604104, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[37.220807, "r", "56x28"] -[37.244295, "r", "56x30"] -[37.2633, "r", "56x32"] -[37.282516, "r", "56x33"] -[37.29945, "r", "56x34"] -[37.314485, "r", "56x35"] -[37.331841, "r", "56x36"] -[37.34964, "r", "56x37"] -[37.362778, "r", "56x38"] -[37.378573, "r", "56x39"] -[37.393484, "r", "56x40"] -[37.413878, "r", "56x41"] -[37.60477, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[37.60491, "o", "Checking Active Spans at Time: \u001b[33m1740360867626\u001b[39m\r\n"] -[37.606953, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[37.607218, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n"] -[37.607276, "o", " \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[38.605512, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[38.605617, "o", "Checking Active Spans at Time: \u001b[33m1740360868627\u001b[39m\r\n"] -[38.605946, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[38.606045, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[39.607699, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[39.607867, "o", "Checking Active Spans at Time: \u001b[33m1740360869629\u001b[39m\r\n"] -[39.609117, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[39.609409, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []"] -[39.609474, "o", "\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[40.60792, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[40.608028, "o", "Checking Active Spans at Time: \u001b[33m1740360870629\u001b[39m\r\n"] -[40.609349, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[40.609621, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n"] -[40.609762, "o", " \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[41.609102, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360871631\u001b[39m\r\n"] -[41.609406, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n "] -[41.609561, "o", " \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[42.610192, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[42.610404, "o", "Checking Active Spans at Time: \u001b[33m1740360872632\u001b[39m\r\n"] -[42.611619, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[42.611928, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,"] -[42.612105, "o", "\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[43.611298, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360873633\u001b[39m\r\n"] -[43.611643, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[43.611796, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] -[43.61188, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[44.612286, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[44.612405, "o", "Checking Active Spans at Time: \u001b[33m1740360874634\u001b[39m\r\n"] -[44.613587, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n "] -[44.613674, "o", " \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[45.613701, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[45.613832, "o", "Checking Active Spans at Time: \u001b[33m1740360875635\u001b[39m\r\n"] -[45.614665, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[45.614952, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[46.614645, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[46.614749, "o", "Checking Active Spans at Time: \u001b[33m1740360876636\u001b[39m\r\n"] -[46.616122, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[47.615496, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[47.615569, "o", "Checking Active Spans at Time: \u001b[33m1740360877637\u001b[39m\r\n"] -[47.616161, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[47.616293, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\","] -[47.616427, "o", "\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[48.616489, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[48.616583, "o", "Checking Active Spans at Time: \u001b[33m1740360878638\u001b[39m\r\n"] -[48.616817, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n"] -[48.616833, "o", " startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[48.616897, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \""] -[48.616935, "o", "name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[49.618153, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[49.618277, "o", "Checking Active Spans at Time: \u001b[33m1740360879640\u001b[39m\r\n"] -[49.62055, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[49.62072, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] -[49.620777, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[50.618941, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360880641\u001b[39m\r\n"] -[50.619198, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n"] -[50.619208, "o", " parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[50.619237, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n"] -[50.61925, "o", " \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n"] -[50.619302, "o", " },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\","] -[50.619314, "o", "\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[51.620928, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[51.621065, "o", "Checking Active Spans at Time: \u001b[33m1740360881642\u001b[39m\r\n"] -[51.622182, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n"] -[51.622329, "o", " spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[51.622473, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\","] -[51.622581, "o", "\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n"] -[51.622643, "o", " \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,"] -[51.622702, "o", "\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\","] -[51.623005, "o", "\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[52.622023, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360882644\u001b[39m\r\n"] -[52.622299, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[52.622339, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,"] -[52.62237, "o", "\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n"] -[52.622382, "o", " \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[53.623127, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[53.62328, "o", "Checking Active Spans at Time: \u001b[33m1740360883645\u001b[39m\r\n"] -[53.624743, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[53.625015, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[54.623618, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[54.62377, "o", "Checking Active Spans at Time: \u001b[33m1740360884645\u001b[39m\r\n"] -[54.624299, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[54.62447, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] -[54.624616, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[55.624619, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\nChecking Active Spans at Time: \u001b[33m1740360885646\u001b[39m\r\n"] -[55.62485, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[56.625766, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[56.625855, "o", "Checking Active Spans at Time: \u001b[33m1740360886647\u001b[39m\r\n"] -[56.626683, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n"] -[56.626895, "o", "[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360"] -[56.627003, "o", "870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[57.626996, "o", "\u001b[1;1H\u001b[0J🚀 Live Spans (Tail Mode):\r\n\r\n"] -[57.627049, "o", "Checking Active Spans at Time: \u001b[33m1740360887649\u001b[39m\r\n"] -[57.627199, "o", "Debug: Active Spans Before JSON Conversion: [\r\n Span {\r\n spanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n name: \u001b[32m'User Request'\u001b[39m,\r\n startTime: \u001b[33m1740360863969\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[1mnull\u001b[22m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n name: \u001b[32m'Order Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863970\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m, \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n name: \u001b[32m'Payment Processing'\u001b[39m,\r\n startTime: \u001b[33m1740360863970\u001b[39m,\r\n endTime: \u001b[33m1740360863971\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: [ \u001b[36m[Span]\u001b[39m ]\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360866973-slksw'\u001b[39m,\r\n name: \u001b[32m'Payment Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360866973\u001b[39m,\r\n endTime: \u001b[33m1740360866974\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-dcmbg'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360868973-297k7'\u001b[39m,\r\n name: \u001b[32m'Order Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360868973\u001b[39m,\r\n endTime: \u001b[33m1740360868975\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863970-6pwtf'\u001b[39m,\r\n children: []\r\n },\r\n Span {\r\n spanId: \u001b[32m'span-1740360870973-avnpe'\u001b[39m,\r\n name: \u001b[32m'User Request Completed'\u001b[39m,\r\n startTime: \u001b[33m1740360870973\u001b[39m,\r\n endTime: \u001b[33m1740360870976\u001b[39m,\r\n parentSpanId: \u001b[32m'span-1740360863969-tll27'\u001b[39m,\r\n children: []\r\n }\r\n]\r\n[\r\n {\r\n \"spanId\": \"span-1740360863969-tll27\",\r\n \"name\": \"User Request\",\r\n \"startTime\": 1740360863969,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": null,\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-6pwtf\",\r\n \"name\": \"Order Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863970,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360863970-dcmbg\",\r\n \"name\": \"Payment Processing\",\r\n \"startTime\": 1740360863970,\r\n \"endTime\": 1740360863971,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": [\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"spanId\": \"span-1740360866973-slksw\",\r\n \"name\": \"Payment Completed\",\r\n \"startTime\": 1740360866973,\r\n \"endTime\": 1740360866974,\r\n \"parentSpanId\": \"span-1740360863970-dcmbg\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360868973-297k7\",\r\n \"name\": \"Order Completed\",\r\n"] -[57.627245, "o", " \"startTime\": 1740360868973,\r\n \"endTime\": 1740360868975,\r\n \"parentSpanId\": \"span-1740360863970-6pwtf\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n },\r\n {\r\n \"spanId\": \"span-1740360870973-avnpe\",\r\n \"name\": \"User Request Completed\",\r\n \"startTime\": 1740360870973,\r\n \"endTime\": 1740360870976,\r\n \"parentSpanId\": \"span-1740360863969-tll27\",\r\n \"isCompleted\": true,\r\n \"children\": []\r\n }\r\n]\r\n"] -[57.706542, "o", "^C"] -[57.719162, "o", "\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[57.719196, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K"] -[57.719374, "o", "\u001b[?1h\u001b=\u001b[?2004h"] -[58.263205, "o", "\u001b[?2004l\r\r\n"] diff --git a/cli_tracing.cast b/cli_tracing.cast deleted file mode 100644 index 77f6819..0000000 --- a/cli_tracing.cast +++ /dev/null @@ -1,6 +0,0 @@ -{"version": 2, "width": 56, "height": 27, "timestamp": 1740360541, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} -[0.04433, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b="] -[0.044899, "o", "\u001b[?2004h"] -[8.840486, "r", "86x27"] -[8.840726, "o", "\r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > "] -[10.797705, "o", "\u001b[?2004l\r\r\n"] diff --git a/cli_tracing_2.cast b/cli_tracing_2.cast deleted file mode 100644 index 7e54ac6..0000000 --- a/cli_tracing_2.cast +++ /dev/null @@ -1,44 +0,0 @@ -{"version": 2, "width": 56, "height": 27, "timestamp": 1740360826, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} -[0.041814, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] -[1.173467, "o", "c"] -[1.306564, "o", "\bcl"] -[1.389045, "o", "e"] -[1.472877, "o", "a"] -[1.544899, "o", "r"] -[1.648254, "o", "\u001b[?1l\u001b>"] -[1.648306, "o", "\u001b[?2004l\r\r\n"] -[1.649624, "o", "\u001b[H\u001b[2J\u001b[3J"] -[1.649868, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[1.649931, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] -[12.294991, "o", "\u001b[7mNODE_OPTION\u001b[7mS\u001b[7m=\"--loader ts-node/esm\" npx ts-node src/bin/cli.tsx\u001b[27m\u001b[K\r\r\n\u001b[K"] -[13.474605, "o", "\u001b[A\u001b[A\u001b[45C\u001b[27mN\u001b[27mO\u001b[27mD\u001b[27mE\u001b[27m_\u001b[27mO\u001b[27mP\u001b[27mT\u001b[27mI\u001b[27mO\u001b[27mNS\u001b[27m=\u001b[27m\"\u001b[27m-\u001b[27m-\u001b[27ml\u001b[27mo\u001b[27ma\u001b[27md\u001b[27me\u001b[27mr\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m/\u001b[27me\u001b[27ms\u001b[27mm\u001b[27m\"\u001b[27m \u001b[27mn\u001b[27mp\u001b[27mx\u001b[27m \u001b[27mt\u001b[27ms\u001b[27m-\u001b[27mn\u001b[27mo\u001b[27md\u001b[27me\u001b[27m \u001b[27ms\u001b[27mr\u001b[27mc\u001b[27m/\u001b[27mb\u001b[27mi\u001b[27mn\u001b[27m/\u001b[27mc\u001b[27ml\u001b[27mi\u001b[27m.\u001b[27mt\u001b[27ms\u001b[27mx\u001b[1B\r\u001b[K\u001b[A\u001b[52C"] -[14.695841, "o", "\u001b[?1l\u001b>\u001b[?2004l\u001b[1B\r\r\n"] -[14.830836, "o", "(node:692095) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[14.985364, "o", "\u001b[1G\u001b[0K"] -[15.107438, "o", "(node:692108) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[16.131898, "o", "\u001b[?25l \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n"] -[16.132524, "o", "\u001b[?25l"] -[38.154343, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[40.528585, "r", "56x28"] -[40.552133, "r", "56x30"] -[40.571095, "r", "56x32"] -[40.590189, "r", "56x33"] -[40.607252, "r", "56x34"] -[40.622308, "r", "56x35"] -[40.63968, "r", "56x36"] -[40.657427, "r", "56x37"] -[40.670632, "r", "56x38"] -[40.686494, "r", "56x39"] -[40.701533, "r", "56x40"] -[40.721595, "r", "56x41"] -[41.159754, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[43.158509, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[45.160545, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request Completed\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[57.892925, "o", "^C"] -[57.895388, "o", "\u001b[?25h"] -[57.896048, "o", "\u001b[?25h"] -[57.897094, "o", "\u001b[?25h"] -[57.914169, "o", "\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[57.914268, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K"] -[57.914419, "o", "\u001b[?1h\u001b=\u001b[?2004h"] -[59.005111, "o", "\u001b[?2004l\r\r\n"] diff --git a/package-lock.json b/package-lock.json index 7818bdf..7bef7bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8802,4 +8802,4 @@ "license": "MIT" } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index bc9f2c6..00712b6 100644 --- a/package.json +++ b/package.json @@ -4,22 +4,59 @@ "author": "Roger Qiu", "description": "Python-like JavaScript Logger", "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/MatrixAI/js-logger.git" + }, "type": "module", - "bin": { - "js-logger": "./src/bin/cli.tsx", - "js-logger-simple": "./src/bin/simple-cli.ts" + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./*.js": { + "types": "./dist/*.d.ts", + "import": "./dist/*.js" + }, + "./*": "./dist/*" + }, + "imports": { + "#*": "./dist/*" }, "scripts": { "prepare": "tsc -p ./tsconfig.build.json", "build": "shx rm -rf ./dist && tsc -p ./tsconfig.build.json", - "start": "npx ts-node src/bin/cli.tsx", - "start:simple": "npx ts-node src/bin/simple-cli.ts", + "postversion": "npm install --package-lock-only --ignore-scripts --silent", + "tsx": "tsx", "test": "node ./scripts/test.mjs", "lint": "eslint '{src,tests,scripts,benches}/**/*.{js,mjs,ts,mts,jsx,tsx}'", "lintfix": "eslint '{src,tests,scripts,benches}/**/*.{js,mjs,ts,mts,jsx,tsx}' --fix", - "docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src" + "lint-shell": "find ./src ./tests ./scripts -type f -regextype posix-extended -regex '.*\\.(sh)' -exec shellcheck {} +", + "docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src", + "bench": "tsc -p ./tsconfig.build.json && shx rm -rf ./benches/results && tsx ./benches/index.ts" }, - "dependencies": { - "ink": "^5.1.0" + "devDependencies": { + "@swc/core": "1.3.82", + "@swc/jest": "^0.2.29", + "@types/jest": "^29.5.2", + "@types/node": "^20.5.7", + "@typescript-eslint/eslint-plugin": "^5.61.0", + "@typescript-eslint/parser": "^5.61.0", + "benny": "^3.7.1", + "common-tags": "^1.8.2", + "eslint": "^8.44.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-prettier": "^5.0.0-alpha.2", + "jest": "^29.6.2", + "jest-extended": "^4.0.0", + "jest-junit": "^16.0.0", + "prettier": "^3.0.0", + "shx": "^0.3.4", + "systeminformation": "^5.18.5", + "tsx": "^3.12.7", + "typedoc": "^0.24.8", + "typescript": "^5.1.6" } -} +} \ No newline at end of file diff --git a/spans.json b/spans.json index c5629bb..4cf022c 100644 --- a/spans.json +++ b/spans.json @@ -1,142 +1,56 @@ [ { - "spanId": "span-1740361121687-afa3r", - "name": "User Request", - "startTime": 1740361121687, - "endTime": 1740361121688, + "spanId": "span-1740997147711-c4j4n", + "name": "Root Span", + "startTime": 1740997147711, + "endTime": 1740997155715, "parentSpanId": null, "isCompleted": true, "children": [ { - "spanId": "span-1740361121689-eim4b", - "name": "Order Processing", - "startTime": 1740361121689, - "endTime": 1740361121689, - "parentSpanId": "span-1740361121687-afa3r", - "isCompleted": true, - "children": [ - { - "spanId": "span-1740361121689-hh2n7", - "name": "Payment Processing", - "startTime": 1740361121689, - "endTime": 1740361121689, - "parentSpanId": "span-1740361121689-eim4b", - "isCompleted": true, - "children": [ - { - "spanId": "span-1740361124693-xz0na", - "name": "Payment Completed", - "startTime": 1740361124693, - "endTime": 1740361124694, - "parentSpanId": "span-1740361121689-hh2n7", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1740361126691-0xa25", - "name": "Order Completed", - "startTime": 1740361126691, - "endTime": 1740361126693, - "parentSpanId": "span-1740361121689-eim4b", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1740361128691-qftpd", - "name": "User Request Completed", - "startTime": 1740361128691, - "endTime": 1740361128693, - "parentSpanId": "span-1740361121687-afa3r", + "spanId": "span-1740997148715-wle8c", + "name": "Parent span ends earlier", + "startTime": 1740997148715, + "endTime": 1740997150717, + "parentSpanId": "span-1740997147711-c4j4n", "isCompleted": true, "children": [] - } - ] - }, - { - "spanId": "span-1740361121689-eim4b", - "name": "Order Processing", - "startTime": 1740361121689, - "endTime": 1740361121689, - "parentSpanId": "span-1740361121687-afa3r", - "isCompleted": true, - "children": [ - { - "spanId": "span-1740361121689-hh2n7", - "name": "Payment Processing", - "startTime": 1740361121689, - "endTime": 1740361121689, - "parentSpanId": "span-1740361121689-eim4b", - "isCompleted": true, - "children": [ - { - "spanId": "span-1740361124693-xz0na", - "name": "Payment Completed", - "startTime": 1740361124693, - "endTime": 1740361124694, - "parentSpanId": "span-1740361121689-hh2n7", - "isCompleted": true, - "children": [] - } - ] }, { - "spanId": "span-1740361126691-0xa25", - "name": "Order Completed", - "startTime": 1740361126691, - "endTime": 1740361126693, - "parentSpanId": "span-1740361121689-eim4b", + "spanId": "span-1740997149716-2u7wc", + "name": "Forking", + "startTime": 1740997149716, + "endTime": 1740997153718, + "parentSpanId": "span-1740997147711-c4j4n", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1740361121689-hh2n7", - "name": "Payment Processing", - "startTime": 1740361121689, - "endTime": 1740361121689, - "parentSpanId": "span-1740361121689-eim4b", - "isCompleted": true, - "children": [ - { - "spanId": "span-1740361124693-xz0na", - "name": "Payment Completed", - "startTime": 1740361124693, - "endTime": 1740361124694, - "parentSpanId": "span-1740361121689-hh2n7", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1740361124693-xz0na", - "name": "Payment Completed", - "startTime": 1740361124693, - "endTime": 1740361124694, - "parentSpanId": "span-1740361121689-hh2n7", + "spanId": "span-1740997148715-wle8c", + "name": "Parent span ends earlier", + "startTime": 1740997148715, + "endTime": 1740997150717, + "parentSpanId": "span-1740997147711-c4j4n", "isCompleted": true, "children": [] }, { - "spanId": "span-1740361126691-0xa25", - "name": "Order Completed", - "startTime": 1740361126691, - "endTime": 1740361126693, - "parentSpanId": "span-1740361121689-eim4b", + "spanId": "span-1740997149716-2u7wc", + "name": "Forking", + "startTime": 1740997149716, + "endTime": 1740997153718, + "parentSpanId": "span-1740997147711-c4j4n", "isCompleted": true, "children": [] }, { - "spanId": "span-1740361128691-qftpd", - "name": "User Request Completed", - "startTime": 1740361128691, - "endTime": 1740361128693, - "parentSpanId": "span-1740361121687-afa3r", + "spanId": "span-1740997150715-7a1qz", + "name": "Orphan", + "startTime": 1740997150715, + "endTime": 1740997154717, + "parentSpanId": null, "isCompleted": true, "children": [] } diff --git a/src/Logger.ts b/src/Logger.ts index e8f9a48..118b282 100644 --- a/src/Logger.ts +++ b/src/Logger.ts @@ -178,13 +178,11 @@ class Logger { // Filter on level before making a record if (level < this.getEffectiveLevel()) return ""; - // 🌟 Open a span, linking it to a parent if provided const spanId = openSpan(msg?.toString() || 'Log Event', parentSpanId); const record = this.makeRecord(msg, data, level); this.callHandlers(record, level, format); - // 🌟 Close the span closeSpan(spanId); return spanId } diff --git a/src/bin/SpanTree.tsx b/src/bin/SpanTree.tsx new file mode 100644 index 0000000..6da8b5c --- /dev/null +++ b/src/bin/SpanTree.tsx @@ -0,0 +1,112 @@ +import React, { FC } from 'react'; +import { Box, Text } from 'ink'; +import { Span } from "../lib/span.js"; + +// Props for handling both root and child spans +interface SpanTreeProps { + spans: Span[]; + sampleMode: string; +} + +/** + * Sort spans based on the selected sampling mode. + */ +const sortSpans = (spans: Span[], mode: string): Span[] => { + if (mode === "logical") { + const spanMap = new Map(); + + // Step 1: Convert raw objects to Span instances + spans.forEach(span => { + if (!spanMap.has(span.spanId)) { + const newSpan = new Span(span.name, span.parentSpanId); + Object.assign(newSpan, span); + newSpan.children = []; + spanMap.set(span.spanId, newSpan); + } + }); + + const rootSpans: Span[] = []; + + // Step 2: Link children to parents + spans.forEach(span => { + if (span.parentSpanId && spanMap.has(span.parentSpanId)) { + spanMap.get(span.parentSpanId)!.children.push(spanMap.get(span.spanId)!); + } + }); + + // Step 3: Collect only true root spans (avoiding duplicates) + spans.forEach(span => { + if (!span.parentSpanId) { + const rootSpan = spanMap.get(span.spanId); + if (rootSpan) { + rootSpans.push(rootSpan); + } + } + }); + + return rootSpans; + } else { + return spans + .map(span => new Span(span.name, span.parentSpanId)) // Convert to Span instances + .sort((a, b) => a.startTime - b.startTime); // Sort purely by start time + } +}; + + +/** + * **Recursive Renderer** + * - Uses box-drawing characters (│ ├ └) for structured layout. + */ +const RecursiveSpanTree: FC<{ span: Span; prefix: string; isLastChild: boolean }> = ({ + span, + prefix, + isLastChild, +}) => { + const connector = isLastChild ? '└── ' : '├── '; + const newPrefix = prefix + (isLastChild ? ' ' : '│ '); // Maintain vertical structure + + return ( + + + {prefix} + {connector} + {span.name} + + + {span.children.map((child, idx) => ( + + ))} + + ); +}; + +/** + * **Main Component** (Sorts & Passes Data) + */ +const SpanTree: FC = ({ spans, sampleMode }) => { + const sortedSpans = sortSpans(spans, sampleMode); + + return ( + + {sortedSpans.length === 0 ? ( + No spans to display + ) : ( + sortedSpans.map((span, idx) => ( + + )) + )} + + ); +}; + +export default SpanTree; diff --git a/src/bin/TimeLineView.tsx b/src/bin/TimeLineView.tsx new file mode 100644 index 0000000..e709d27 --- /dev/null +++ b/src/bin/TimeLineView.tsx @@ -0,0 +1,111 @@ +// TimelineView.tsx +import React, { FC } from 'react'; +import { Box, Text } from 'ink'; + +interface Span { + spanId: string; + name: string; + parentSpanId: string | null; + startTime: number; + endTime: number | null; +} + +// We make each row = 1000 ms +const TIME_STEP_MS = 1000; + +function timeToRow(timeMs: number, baseTimeMs: number) { + return Math.floor((timeMs - baseTimeMs) / TIME_STEP_MS); +} + +function assignLanes(spans: Span[]): Map { + // Sort spans by startTime ascending + const sorted = [...spans].sort((a, b) => a.startTime - b.startTime); + const laneMap = new Map(); + const laneEndTime: number[] = []; + + for (const span of sorted) { + let assignedLane = -1; + for (let i = 0; i < laneEndTime.length; i++) { + if (laneEndTime[i] <= span.startTime) { + assignedLane = i; + break; + } + } + if (assignedLane < 0) { + assignedLane = laneEndTime.length; + laneEndTime.push(0); + } + laneMap.set(span.spanId, assignedLane); + + const realEnd = span.endTime ?? (span.startTime + 3000); + laneEndTime[assignedLane] = Math.max(laneEndTime[assignedLane], realEnd); + } + return laneMap; +} + +const TimelineView: FC<{ spans: Span[] }> = ({ spans }) => { + if (!spans.length) { + return No spans; + } + + const laneMap = assignLanes(spans); + let earliest = Math.min(...spans.map(s => s.startTime)); + let latest = Math.max(...spans.map(s => s.endTime ?? (s.startTime + 3000))); + + // Round earliest down + earliest = Math.floor(earliest / TIME_STEP_MS) * TIME_STEP_MS; + const maxLane = Math.max(...laneMap.values()); + const rowCount = 1 + timeToRow(latest, earliest); + + // Initialize a 2D grid: rowCount rows x (maxLane+1) lanes + const grid: string[][] = Array.from({ length: rowCount }, () => + Array(maxLane + 1).fill(' ') + ); + + // Fill each lane with vertical bars and optional slash + for (const span of spans) { + const lane = laneMap.get(span.spanId)!; + const startRow = timeToRow(span.startTime, earliest); + const endRow = timeToRow(span.endTime ?? span.startTime + 3000, earliest); + + // Vertical bars + for (let r = startRow; r <= endRow; r++) { + grid[r][lane] = ' | '; + } + + // Insert the span name at the start row + grid[startRow][lane] = grid[startRow][lane].replace(' | ', ` | (${span.name})`); + + // If parent ended earlier, place a slash + if (span.parentSpanId) { + const parent = spans.find(s => s.spanId === span.parentSpanId); + if (parent) { + const parentLane = laneMap.get(parent.spanId)!; + const parentEnd = timeToRow(parent.endTime ?? parent.startTime, earliest); + + if (parentLane !== lane || parentEnd < endRow) { + if (parentLane < lane) { + grid[parentEnd][parentLane] = ' \\'; + } else if (parentLane > lane) { + grid[parentEnd][parentLane] = ' / '; + } + } + } + } + } + + const lines = grid.map(cols => cols.join('')); + + return ( + + {lines.map((line, idx) => ( + + {line} + + ))} + + ); +}; + +export default TimelineView; + diff --git a/src/bin/cli.tsx b/src/bin/cli.tsx index 33bdacf..4bb6af3 100644 --- a/src/bin/cli.tsx +++ b/src/bin/cli.tsx @@ -1,81 +1,60 @@ import React, { useEffect, useState } from 'react'; import { render, Box, Text } from 'ink'; -import { getActiveSpans } from "../lib/tracingManager.js"; -import fs from "fs"; -import { Span } from "../lib/span.js"; +import fs from 'fs'; +import SpanTree from './SpanTree.js'; +import { Span } from '../lib/span.js'; +const SPAN_FILE = 'spans.json'; -const SPAN_FILE = "spans.json"; -// Function to fetch active spans -const fetchSpanData = () => { - if (!fs.existsSync(SPAN_FILE)) return []; // If file doesn't exist, return empty - const fileData = fs.readFileSync(SPAN_FILE, "utf8"); - - // Explicitly type `flatSpans` - const flatSpans: Span[] = JSON.parse(fileData); +const sampleArgIndex = process.argv.indexOf("--sample"); +const sampleMode = + sampleArgIndex !== -1 && process.argv.length > sampleArgIndex + 1 + ? process.argv[sampleArgIndex + 1].trim() === "logical" + ? "logical" + : "time" + : "time"; - // Build a map of spans by ID - const spanMap = new Map(); - flatSpans.forEach(span => { - span.children = []; // Initialize empty children array - spanMap.set(span.spanId, span); - }); +console.log(`Received CLI arguments: ${process.argv.join(" ")}`); +console.log(`Running in ${sampleMode} mode`); - const rootSpans: Span[] = []; - // Assign children to their respective parent spans - flatSpans.forEach(span => { - if (span.parentSpanId && spanMap.has(span.parentSpanId)) { - spanMap.get(span.parentSpanId)?.children.push(span); - } else { - rootSpans.push(span); - } - }); +function loadSpans(): Span[] { + if (!fs.existsSync(SPAN_FILE)) return []; + return JSON.parse(fs.readFileSync(SPAN_FILE, 'utf8')); +} - return rootSpans; -}; - - - -/** - * Recursively renders spans in a hierarchical structure. - */ -const SpanTree = ({ spans, depth = 0 }) => { - return spans.map(span => ( - - {/* Render children spans first */} - {span.children.length > 0 && } - {/* Render the parent span after all children */} - - {span.endTime ? `[✓ Completed]` : `[Running]`} {span.name} - - - )); -}; - - -/** - * Main React-Ink CLI component. - */ const App = () => { - const [spans, setSpans] = useState([]); - - useEffect(() => { - const interval = setInterval(() => { - setSpans([...fetchSpanData()]); - }, 1000); - return () => clearInterval(interval); - }, []); - - - return ( - - 🚀 Real-Time Span Visualization: - - - ); + const [spans, setSpans] = useState([]); + + useEffect(() => { + const id = setInterval(() => { + setSpans(loadSpans()); + }, 1000); + + const handleExit = () => { + console.log("Stopping CLI..."); + clearInterval(id); + process.exit(0); + }; + + process.on("SIGINT", handleExit); + process.on("SIGTERM", handleExit); + + return () => clearInterval(id); + }, []); + + return ( + + Real-Time Concurrency Timeline ({sampleMode}-based) + + {spans.length > 0 ? ( + + ) : ( + No spans available + )} + + ); }; -// Start the CLI application render(); diff --git a/src/lib/span.ts b/src/lib/span.ts index a7bd4cf..a1a6cf2 100644 --- a/src/lib/span.ts +++ b/src/lib/span.ts @@ -32,7 +32,7 @@ export class Span { endTime: this.endTime, parentSpanId: this.parentSpanId, isCompleted: this.isCompleted(), - children: this.children.map(child => child.toJSON()) // Serialize children + children: this.children.map(child => child.toJSON()) }; } } diff --git a/src/lib/tracingManager.ts b/src/lib/tracingManager.ts index ac2296e..a167d7a 100644 --- a/src/lib/tracingManager.ts +++ b/src/lib/tracingManager.ts @@ -3,7 +3,6 @@ import fs from "fs"; const SPAN_FILE = "spans.json"; -// Store all active spans in a dictionary const activeSpans: Record = {}; /** @@ -52,11 +51,6 @@ export function closeSpan(spanId: string): Span | null { * Retrieves all active spans. * @returns An array of active spans. */ -// export function getActiveSpans(): Span[] { -// console.log("Checking Active Spans at Time:", Date.now()); -// console.log("Stored Active Spans:", Object.values(activeSpans)); -// return Object.values(activeSpans); -// } export function getActiveSpans(): Span[] { console.log("Checking Active Spans at Time:", Date.now()); @@ -96,7 +90,7 @@ export function getTraceJSON(): string { console.log("Debug: Active Spans Before JSON Conversion:", activeSpans); return JSON.stringify( - activeSpans.map(span => span.toJSON()), // ✅ `toJSON()` will now work correctly + activeSpans.map(span => span.toJSON()), null, 2 ); diff --git a/tests/asciinemaTest.ts b/tests/asciinemaTest.ts index 342c544..992132e 100644 --- a/tests/asciinemaTest.ts +++ b/tests/asciinemaTest.ts @@ -1,15 +1,44 @@ -import Logger from "../src/Logger.js"; +import { openSpan, closeSpan } from '../src/lib/tracingManager.js'; -const logger = new Logger(); +// 1) Root Span: starts at t=0, ends at t=8000ms +const rootSpanId = openSpan('Root Span'); +console.log('Opened Root Span:', rootSpanId); -console.log("\nStarting Tracing & CLI Test...\n"); +// 2) Start a child “Parent span ends earlier” at t=1000ms, end at t=3000ms +setTimeout(() => { + const earlyChildId = openSpan('Parent span ends earlier', rootSpanId); + console.log('Opened early child:', earlyChildId); -// Now correctly assigning the returned spanId -const rootSpan: string = logger.info("User Request"); -const span1: string = logger.info("Order Processing", undefined, undefined, rootSpan); -const span2: string = logger.info("Payment Processing", undefined, undefined, span1); + setTimeout(() => { + closeSpan(earlyChildId); + console.log('Closed early child:', earlyChildId); + }, 2000); +}, 1000); -// Simulate Completion at Different Intervals -setTimeout(() => logger.info("Payment Completed", undefined, undefined, span2), 3000); -setTimeout(() => logger.info("Order Completed", undefined, undefined, span1), 5000); -setTimeout(() => logger.info("User Request Completed", undefined, undefined, rootSpan), 7000); +// 3) Another child “Forking” at t=2000ms, ends at t=6000ms +setTimeout(() => { + const forkingId = openSpan('Forking', rootSpanId); + console.log('Opened Forking child:', forkingId); + + setTimeout(() => { + closeSpan(forkingId); + console.log('Closed Forking child:', forkingId); + }, 4000); +}, 2000); + +// 4) An “Orphan” (no parent) at t=3000ms, ends at t=7000ms +setTimeout(() => { + const orphanId = openSpan('Orphan', null); + console.log('Opened Orphan:', orphanId); + + setTimeout(() => { + closeSpan(orphanId); + console.log('Closed Orphan:', orphanId); + }, 4000); +}, 3000); + +// Finally, close root at t=8000ms +setTimeout(() => { + closeSpan(rootSpanId); + console.log('Closed Root Span:', rootSpanId); +}, 8000); diff --git a/tracing_demo.cast b/tracing_demo.cast deleted file mode 100644 index ffdfe70..0000000 --- a/tracing_demo.cast +++ /dev/null @@ -1,45 +0,0 @@ -{"version": 2, "width": 86, "height": 26, "timestamp": 1740352526, "env": {"SHELL": "/run/current-system/sw/bin/zsh", "TERM": "xterm-256color"}} -[0.049143, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] -[3.705528, "o", "asciinema rec tracing_demo.cast\r\r\n\u001b[K"] -[3.9475, "o", "\u001b[K\u001b[A\u001b[45C"] -[4.378556, "o", "clear \u001b[1B\r\u001b[K\u001b[A\u001b[50C"] -[4.69985, "o", "\b\b\b\b\brm spans.json"] -[4.93306, "o", "\u001b[13Dclear \u001b[8D"] -[5.2448, "o", "\b\b\b\b\bpolykey agent status"] -[5.557493, "o", "\u001b[12Did\u001b[3Cities authenticate github.com\u001b[K"] -[5.891863, "o", "\u001b[A\u001b[44Cclear\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[50C"] -[6.22836, "o", "\b\b\b\b\bhome-manager switch --flake ~/.config/home-manager/flake.nix --update-input polykey\u001b[K"] -[6.978965, "o", "\u001b[A\u001b[3Cpolykey -V\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[55C"] -[7.687957, "o", "\u001b[10Dnano home.nix"] -[7.865046, "o", "\u001b[13Dls \u001b[11D"] -[8.116207, "o", "\b\bpolykey identities authenticate github.com\u001b[K"] -[8.554976, "o", "\u001b[A\u001b[44Chome-manager switch --flake .\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[74C"] -[8.729845, "o", "\u001b[29Dnix flake update \u001b[13D"] -[9.09044, "o", "\u001b[16Dclear \u001b[11D"] -[9.273132, "o", "\b\b\b\b\bcd home-manager"] -[9.432291, "o", "\u001b[15Dls \u001b[13D"] -[9.601217, "o", "\b\bhome-manager switch --flake ~/.config/home-manager/flake.nix --update-input polykey\u001b[K"] -[9.774874, "o", "\u001b[A\u001b[3Cclear\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[50C"] -[10.382547, "o", "\b\b\b\b\bpolykey identities authenticate github.com\u001b[K"] -[10.570751, "o", "\u001b[A\u001b[52Cag\u001b[3C status\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[65C"] -[10.911508, "o", "\u001b[20Dclear \u001b[15D"] -[11.244494, "o", "\b\b\b\b\bNODE_OPTIONS=\"--loader ts-node/esm\" npx ts-node tests/asciinemaTest.ts\u001b[K\r\r\n\u001b[K"] -[12.10418, "o", "\u001b[K\u001b[A\u001b[A\u001b[45C"] -[12.333501, "o", "\u001b[1B\u001b[38Dsrc/tracing/cli.tsx \u001b[1B\r"] -[13.244159, "o", "\u001b[?1l\u001b>\u001b[?2004l\r\r\n"] -[13.408371, "o", "(node:346093) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[13.587509, "o", "\u001b[1G\u001b[0K"] -[13.726304, "o", "(node:346135) ExperimentalWarning: `--experimental-loader` may be removed in the future; instead use `register()`:\r\n--import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'\r\n(Use `node --trace-warnings ...` to show where the warning was created)\r\n"] -[14.753172, "o", "\u001b[?25l \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n"] -[14.753358, "o", "\u001b[?25l"] -[18.761264, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[21.768844, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[23.768129, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[25.766747, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G \u001b[36m🚀 Real-Time Span Visualization:\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Payment Processing\u001b[39m\r\n \u001b[90m[✓ Completed] Order Completed\u001b[39m\r\n \u001b[90m[✓ Completed] Order Processing\u001b[39m\r\n \u001b[90m[✓ Completed] User Request Completed\u001b[39m\r\n \u001b[90m[✓ Completed] User Request\u001b[39m\r\n"] -[35.587709, "o", "^X"] -[37.505576, "o", "^C"] -[37.508734, "o", "\u001b[?25h"] -[37.50944, "o", "\u001b[?25h"] -[37.510707, "o", "\u001b[?25h"] -[37.532139, "o", "\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\r\u001b[0m\u001b[27m\u001b[24m\u001b[Jabby@matrix-dell-34xx:~/tracing/js-logger/ > \u001b[K\u001b[?1h\u001b=\u001b[?2004h"] -[38.409249, "o", "\u001b[?2004l\r\r\n"] From 08d6cd7037868be1c4d41c076e69b85214637930 Mon Sep 17 00:00:00 2001 From: Abby010 Date: Tue, 25 Mar 2025 12:59:19 +1100 Subject: [PATCH 4/7] chore: making tests randomized chore: addressed PR comments --- jest.config.mjs | 73 +- package-lock.json | 3328 ++++++++++++++----------------------- package.json | 15 +- spans.json | 779 ++++++++- src/Logger.ts | 125 +- src/bin/SpanTree.tsx | 44 +- src/bin/TimeLineView.tsx | 41 +- src/bin/cli.tsx | 37 +- src/bin/simple-cli.tsx | 7 - src/index.ts | 5 +- src/lib/Span.ts | 51 + src/lib/span.ts | 38 - src/lib/tracingManager.ts | 130 +- tests/asciinemaTest.ts | 197 ++- tests/index.test.ts | 5 +- tsconfig.build.json | 2 + tsconfig.json | 1 + 17 files changed, 2466 insertions(+), 2412 deletions(-) delete mode 100644 src/bin/simple-cli.tsx create mode 100644 src/lib/Span.ts delete mode 100644 src/lib/span.ts diff --git a/jest.config.mjs b/jest.config.mjs index b3e3b3f..481446b 100644 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -1,27 +1,16 @@ import path from 'node:path'; import url from 'node:url'; -import tsconfigJSON from './tsconfig.json' assert { type: "json" }; +import tsconfigJSON from './tsconfig.json' assert { type: 'json' }; const projectPath = path.dirname(url.fileURLToPath(import.meta.url)); -// Global variables that are shared across the jest worker pool -// These variables must be static and serializable const globals = { - // Absolute directory to the project root projectDir: projectPath, - // Absolute directory to the test root testDir: path.join(projectPath, 'tests'), - // Default asynchronous test timeout defaultTimeout: 20000, - // Timeouts rely on setTimeout which takes 32 bit numbers maxTimeout: Math.pow(2, 31) - 1, }; -// The `globalSetup` and `globalTeardown` cannot access the `globals` -// They run in their own process context -// They can however receive the process environment -// Use `process.env` to set variables - const config = { testEnvironment: 'node', verbose: true, @@ -30,13 +19,15 @@ const config = { coverageDirectory: '/tmp/coverage', roots: ['/tests'], testMatch: ['**/?(*.)+(spec|test|unit.test).+(ts|tsx|js|jsx)'], + + // Use SWC to transpile TS/JS/TSX transform: { - "^.+\\.(t|j)sx?$": [ - "@swc/jest", + '^.+\\.(t|j)sx?$': [ + '@swc/jest', { jsc: { parser: { - syntax: "typescript", + syntax: 'typescript', tsx: true, decorators: tsconfigJSON.compilerOptions.experimentalDecorators, dynamicImport: true, @@ -44,41 +35,45 @@ const config = { target: tsconfigJSON.compilerOptions.target.toLowerCase(), keepClassNames: true, }, - } + module: { + type: 'es6', // Crucial for ESM-style imports + }, + }, ], }, + + // Required to treat TS/TSX as ESM in Jest + extensionsToTreatAsEsm: ['.ts', '.tsx', '.mts'], + + moduleNameMapper: { + // Remove `.js` extension from relative imports in source like `./foo.js` → `./foo` + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + reporters: [ 'default', - ['jest-junit', { - outputDirectory: '/tmp/junit', - classNameTemplate: '{classname}', - ancestorSeparator: ' > ', - titleTemplate: '{title}', - addFileAttribute: 'true', - reportTestSuiteErrors: 'true', - }], + [ + 'jest-junit', + { + outputDirectory: '/tmp/junit', + classNameTemplate: '{classname}', + ancestorSeparator: ' > ', + titleTemplate: '{title}', + addFileAttribute: 'true', + reportTestSuiteErrors: 'true', + }, + ], ], + collectCoverageFrom: ['src/**/*.{ts,tsx,js,jsx}', '!src/**/*.d.ts'], coverageReporters: ['text', 'cobertura'], + globals, - // Global setup script executed once before all test files + globalSetup: '/tests/globalSetup.ts', - // Global teardown script executed once after all test files globalTeardown: '/tests/globalTeardown.ts', - // Setup files are executed before each test file - // Can access globals setupFiles: ['/tests/setup.ts'], - // Setup files after env are executed before each test file - // after the jest test environment is installed - // Can access globals - setupFilesAfterEnv: [ - 'jest-extended/all', - '/tests/setupAfterEnv.ts' - ], - moduleNameMapper: { - "^(\\.{1,2}/.*)\\.js$": "$1", - }, - extensionsToTreatAsEsm: ['.ts', '.tsx', '.mts'], + setupFilesAfterEnv: ['jest-extended/all', '/tests/setupAfterEnv.ts'], }; export default config; diff --git a/package-lock.json b/package-lock.json index 7bef7bd..b0181fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,18 @@ "version": "4.0.3", "license": "Apache-2.0", "dependencies": { - "ink": "^5.1.0" + "ink": "^3.2.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" }, "devDependencies": { "@swc/core": "1.3.82", "@swc/jest": "^0.2.29", - "@types/jest": "^29.5.2", + "@types/ink": "^0.5.2", + "@types/jest": "^29.5.14", "@types/node": "^20.5.7", + "@types/react": "^19.0.12", + "@types/react-dom": "^19.0.4", "@typescript-eslint/eslint-plugin": "^5.61.0", "@typescript-eslint/parser": "^5.61.0", "benny": "^3.7.1", @@ -24,13 +29,13 @@ "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^5.0.0-alpha.2", - "jest": "^29.6.2", + "jest": "^29.7.0", "jest-extended": "^4.0.0", "jest-junit": "^16.0.0", "prettier": "^3.0.0", "shx": "^0.3.4", "systeminformation": "^5.18.5", - "ts-node": "^10.9.2", + "ts-jest": "^29.3.1", "tsx": "^3.12.7", "typedoc": "^0.24.8", "typescript": "^5.1.6" @@ -45,51 +50,15 @@ "node": ">=0.10.0" } }, - "node_modules/@alcalzone/ansi-tokenize": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz", - "integrity": "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=14.13.1" - } - }, - "node_modules/@alcalzone/ansi-tokenize/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@alcalzone/ansi-tokenize/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -138,118 +107,51 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", - "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.10", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", - "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.10", - "@babel/parser": "^7.22.10", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -260,45 +162,43 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", - "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.10", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", - "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", + "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.26.8", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -311,67 +211,35 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -381,169 +249,68 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", - "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", - "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.27.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", - "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -556,6 +323,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -568,6 +336,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -580,6 +349,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -587,11 +357,44 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -604,6 +407,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -612,12 +416,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -631,6 +436,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -643,6 +449,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -655,6 +462,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -667,6 +475,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -679,6 +488,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -691,6 +501,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -698,11 +509,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -714,12 +542,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -729,34 +558,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", - "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.10", - "@babel/types": "^7.22.10", - "debug": "^4.1.0", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -768,19 +596,20 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", - "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -790,31 +619,8 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } + "license": "MIT" }, "node_modules/@esbuild-kit/cjs-loader": { "version": "2.4.2", @@ -1302,6 +1108,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -1318,6 +1125,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -1327,6 +1135,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -1340,6 +1149,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1353,6 +1163,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -1365,6 +1176,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -1380,6 +1192,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -1392,6 +1205,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1401,85 +1215,62 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.2.tgz", - "integrity": "sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/console/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/console/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/core": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.2.tgz", - "integrity": "sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==", - "dev": true, - "dependencies": { - "@jest/console": "^29.6.2", - "@jest/reporters": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.6.2", - "jest-haste-map": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.2", - "jest-resolve-dependencies": "^29.6.2", - "jest-runner": "^29.6.2", - "jest-runtime": "^29.6.2", - "jest-snapshot": "^29.6.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", - "jest-watcher": "^29.6.2", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -1495,32 +1286,6 @@ } } }, - "node_modules/@jest/core/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/@jest/create-cache-key-function": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz", @@ -1533,167 +1298,122 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/environment": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.2.tgz", - "integrity": "sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.6.2", - "@jest/types": "^29.6.1", - "@types/node": "*", - "jest-mock": "^29.6.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/environment/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "node_modules/@jest/create-cache-key-function/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^17.0.8", + "@types/yargs": "^16.0.0", "chalk": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/environment/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, - "node_modules/@jest/expect": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.2.tgz", - "integrity": "sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "license": "MIT", "dependencies": { - "expect": "^29.6.2", - "jest-snapshot": "^29.6.2" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect-utils": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.2.tgz", - "integrity": "sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/fake-timers": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.2.tgz", - "integrity": "sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.6.2", - "jest-mock": "^29.6.2", - "jest-util": "^29.6.2" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/fake-timers/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/fake-timers/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/@jest/globals": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.2.tgz", - "integrity": "sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/expect": "^29.6.2", - "@jest/types": "^29.6.1", - "jest-mock": "^29.6.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/globals/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/@jest/reporters": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.2.tgz", - "integrity": "sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", @@ -1702,13 +1422,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2", - "jest-worker": "^29.6.2", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -1726,37 +1446,12 @@ } } }, - "node_modules/@jest/reporters/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/@jest/schemas": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", - "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -1765,10 +1460,11 @@ } }, "node_modules/@jest/source-map": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", - "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -1779,13 +1475,14 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.2.tgz", - "integrity": "sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -1793,41 +1490,16 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/test-result/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/@jest/test-sequencer": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz", - "integrity": "sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.6.2", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -1835,22 +1507,23 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.2.tgz", - "integrity": "sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.2", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -1860,13 +1533,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -1877,74 +1551,54 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2012,10 +1666,11 @@ "dev": true }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } @@ -2025,6 +1680,7 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } @@ -2248,39 +1904,12 @@ "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", "dev": true }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -2290,42 +1919,57 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/ink": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/ink/-/ink-0.5.2.tgz", + "integrity": "sha512-yEuhWTRMXJkIWiaM58c5kuRot5HFccv9kjjgy0fBZG0+tYb+sMBaxHNPVqyZXspGGlmwDOQ1d3BsygWpWlW17w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/prop-types": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -2351,10 +1995,11 @@ } }, "node_modules/@types/jest": { - "version": "29.5.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.3.tgz", - "integrity": "sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -2381,6 +2026,33 @@ "undici-types": "~5.26.4" } }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.0.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz", + "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, "node_modules/@types/semver": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", @@ -2394,19 +2066,27 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yoga-layout": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", + "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==", + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", @@ -2618,19 +2298,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2651,7 +2318,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -2666,7 +2332,6 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, "engines": { "node": ">=10" }, @@ -2678,7 +2343,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -2693,7 +2357,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2709,6 +2372,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2717,13 +2381,6 @@ "node": ">= 8" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2850,18 +2507,24 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, "node_modules/auto-bind": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz", - "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2880,15 +2543,16 @@ } }, "node_modules/babel-jest": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.2.tgz", - "integrity": "sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/transform": "^29.6.2", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -2905,6 +2569,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -2916,51 +2581,84 @@ "node": ">=8" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -3050,9 +2748,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -3068,11 +2766,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -3081,11 +2780,25 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } @@ -3138,14 +2851,15 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001519", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", - "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", + "version": "1.0.30001707", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", + "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", "dev": true, "funding": [ { @@ -3160,13 +2874,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3183,6 +2897,7 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -3203,18 +2918,19 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" }, "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3224,7 +2940,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, @@ -3233,109 +2948,33 @@ } }, "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "license": "MIT" - }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/cliui": { @@ -3343,6 +2982,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3357,6 +2997,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3374,34 +3015,35 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" } }, "node_modules/code-excerpt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", - "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", + "integrity": "sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==", "license": "MIT", "dependencies": { - "convert-to-spaces": "^2.0.1" + "convert-to-spaces": "^1.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" } }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3412,8 +3054,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/commander": { "version": "6.2.1", @@ -3443,23 +3084,39 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-to-spaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", - "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==", "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 4" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -3475,6 +3132,13 @@ "node": ">= 8" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3493,10 +3157,11 @@ } }, "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, + "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -3517,6 +3182,7 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3698,25 +3364,17 @@ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -3745,17 +3403,35 @@ "node": ">=6.0.0" } }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { - "version": "1.4.490", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz", - "integrity": "sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==", - "dev": true + "version": "1.5.129", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.129.tgz", + "integrity": "sha512-JlXUemX4s0+9f8mLqib/bHH8gOHf5elKS6KeWG3sk3xozb/JTq/RLXIv8OKUWiK4Ah00Wm88EFj5PYkFr4RUPA==", + "dev": true, + "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3766,26 +3442,14 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -3883,16 +3547,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-toolkit": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.32.0.tgz", - "integrity": "sha512-ZfSfHP1l6ubgW/B/FRtqb9bYdMvI6jizbOSfbwwJNcOQ1QE6TFsC3jpQkZ900uUPSR3t3SU5Ds7UWKnYz+uP8Q==", - "license": "MIT", - "workspaces": [ - "docs", - "benchmarks" - ] - }, "node_modules/esbuild": { "version": "0.17.19", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", @@ -3931,10 +3585,11 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -4226,6 +3881,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4327,17 +3983,17 @@ } }, "node_modules/expect": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.2.tgz", - "integrity": "sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.6.2", - "@types/node": "*", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4409,6 +4065,7 @@ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } @@ -4425,6 +4082,39 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -4553,6 +4243,7 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -4562,22 +4253,11 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -4598,6 +4278,7 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -4773,7 +4454,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -4833,7 +4513,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/human-signals": { "version": "2.1.0", @@ -4870,10 +4551,11 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -4898,15 +4580,12 @@ } }, "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/inflight": { @@ -4926,233 +4605,91 @@ "dev": true }, "node_modules/ink": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ink/-/ink-5.1.0.tgz", - "integrity": "sha512-3vIO+CU4uSg167/dZrg4wHy75llUINYXxN4OsdaCkE40q4zyOTPwNc2VEpLnnWsIvIQeo6x6lilAhuaSt+rIsA==", - "license": "MIT", - "dependencies": { - "@alcalzone/ansi-tokenize": "^0.1.3", - "ansi-escapes": "^7.0.0", - "ansi-styles": "^6.2.1", - "auto-bind": "^5.0.1", - "chalk": "^5.3.0", - "cli-boxes": "^3.0.0", - "cli-cursor": "^4.0.0", - "cli-truncate": "^4.0.0", - "code-excerpt": "^4.0.0", - "es-toolkit": "^1.22.0", - "indent-string": "^5.0.0", - "is-in-ci": "^1.0.0", - "patch-console": "^2.0.0", - "react-reconciler": "^0.29.0", - "scheduler": "^0.23.0", - "signal-exit": "^3.0.7", - "slice-ansi": "^7.1.0", - "stack-utils": "^2.0.6", - "string-width": "^7.2.0", - "type-fest": "^4.27.0", - "widest-line": "^5.0.0", - "wrap-ansi": "^9.0.0", - "ws": "^8.18.0", - "yoga-wasm-web": "~0.3.3" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ink/-/ink-3.2.0.tgz", + "integrity": "sha512-firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "auto-bind": "4.0.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "indent-string": "^4.0.0", + "is-ci": "^2.0.0", + "lodash": "^4.17.20", + "patch-console": "^1.0.0", + "react-devtools-core": "^4.19.1", + "react-reconciler": "^0.26.2", + "scheduler": "^0.20.2", + "signal-exit": "^3.0.2", + "slice-ansi": "^3.0.0", + "stack-utils": "^2.0.2", + "string-width": "^4.2.2", + "type-fest": "^0.12.0", + "widest-line": "^3.1.0", + "wrap-ansi": "^6.2.0", + "ws": "^7.5.5", + "yoga-layout-prebuilt": "^1.9.6" }, "engines": { - "node": ">=18" + "node": ">=10" }, "peerDependencies": { - "@types/react": ">=18.0.0", - "react": ">=18.0.0", - "react-devtools-core": "^4.19.1" + "@types/react": ">=16.8.0", + "react": ">=16.8.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "react-devtools-core": { - "optional": true } } }, - "node_modules/ink/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "node_modules/ink/node_modules/react-reconciler": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.26.2.tgz", + "integrity": "sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==", "license": "MIT", "dependencies": { - "environment": "^1.0.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" }, "engines": { - "node": ">=18" + "node": ">=0.10.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "react": "^17.0.2" } }, - "node_modules/ink/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ink/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ink/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ink/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ink/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "license": "MIT" - }, - "node_modules/ink/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ink/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "node_modules/ink/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ink/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/ink/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ink/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/ink/node_modules/type-fest": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz", - "integrity": "sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ink/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", @@ -5194,7 +4731,8 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -5236,6 +4774,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT" + }, "node_modules/is-core-module": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", @@ -5291,7 +4847,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -5301,6 +4856,7 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5317,21 +4873,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-in-ci": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-1.0.0.tgz", - "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==", - "license": "MIT", - "bin": { - "is-in-ci": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -5532,37 +5073,30 @@ "dev": true }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "semver": "^7.5.4" }, "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=10" } }, "node_modules/istanbul-lib-report": { @@ -5570,6 +5104,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -5584,6 +5119,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -5594,10 +5130,11 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -5606,16 +5143,36 @@ "node": ">=8" } }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.2.tgz", - "integrity": "sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.6.2" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -5633,12 +5190,14 @@ } }, "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -5646,28 +5205,29 @@ } }, "node_modules/jest-circus": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.2.tgz", - "integrity": "sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/expect": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.2", - "jest-matcher-utils": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-runtime": "^29.6.2", - "jest-snapshot": "^29.6.2", - "jest-util": "^29.6.2", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -5676,49 +5236,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-cli": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.2.tgz", - "integrity": "sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -5736,58 +5270,33 @@ } } }, - "node_modules/jest-cli/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-config": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.2.tgz", - "integrity": "sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.2", - "@jest/types": "^29.6.1", - "babel-jest": "^29.6.2", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.2", - "jest-environment-node": "^29.6.2", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.2", - "jest-runner": "^29.6.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -5807,52 +5316,28 @@ } } }, - "node_modules/jest-config/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-config/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-diff": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.2.tgz", - "integrity": "sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.2" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -5861,90 +5346,40 @@ } }, "node_modules/jest-each": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.2.tgz", - "integrity": "sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.6.2", - "pretty-format": "^29.6.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-environment-node": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.2.tgz", - "integrity": "sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/fake-timers": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.2", - "jest-util": "^29.6.2" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-environment-node/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-extended": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.1.tgz", @@ -5967,29 +5402,31 @@ } }, "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.2.tgz", - "integrity": "sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.2", - "jest-worker": "^29.6.2", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -6000,32 +5437,6 @@ "fsevents": "^2.3.2" } }, - "node_modules/jest-haste-map/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-junit": { "version": "16.0.0", "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-16.0.0.tgz", @@ -6042,46 +5453,49 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz", - "integrity": "sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.2" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz", - "integrity": "sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.6.2", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.2" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.2.tgz", - "integrity": "sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -6089,77 +5503,27 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-mock": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.2.tgz", - "integrity": "sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.1", - "@types/node": "*", - "jest-util": "^29.6.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-mock/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -6173,26 +5537,28 @@ } }, "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.2.tgz", - "integrity": "sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -6202,43 +5568,45 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz", - "integrity": "sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.6.2" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.2.tgz", - "integrity": "sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.6.2", - "@jest/environment": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.6.2", - "jest-haste-map": "^29.6.2", - "jest-leak-detector": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-resolve": "^29.6.2", - "jest-runtime": "^29.6.2", - "jest-util": "^29.6.2", - "jest-watcher": "^29.6.2", - "jest-worker": "^29.6.2", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -6246,58 +5614,33 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-runtime": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.2.tgz", - "integrity": "sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/fake-timers": "^29.6.2", - "@jest/globals": "^29.6.2", - "@jest/source-map": "^29.6.0", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-mock": "^29.6.2", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.2", - "jest-snapshot": "^29.6.2", - "jest-util": "^29.6.2", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -6305,173 +5648,72 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-snapshot": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.2.tgz", - "integrity": "sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.2", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.2", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-util": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.2.tgz", - "integrity": "sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-validate": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", - "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "leven": "^3.1.0", - "pretty-format": "^29.6.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/yargs-parser": "*" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-validate/node_modules/camelcase": { @@ -6479,6 +5721,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6487,58 +5730,34 @@ } }, "node_modules/jest-watcher": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.2.tgz", - "integrity": "sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.2", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-watcher/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/jest-worker": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.2.tgz", - "integrity": "sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", - "jest-util": "^29.6.2", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -6551,6 +5770,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6561,32 +5781,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jest/node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest/node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6605,22 +5799,24 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -6658,6 +5854,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -6706,6 +5903,7 @@ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6727,7 +5925,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", @@ -6747,8 +5946,7 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.get": { "version": "4.4.2", @@ -6756,6 +5954,13 @@ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -6797,6 +6002,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -6812,6 +6018,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -6834,6 +6041,7 @@ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } @@ -6941,19 +6149,22 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6970,6 +6181,15 @@ "node": ">=8" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -7145,6 +6365,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7166,6 +6387,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -7180,12 +6402,12 @@ } }, "node_modules/patch-console": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz", - "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-1.0.0.tgz", + "integrity": "sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==", "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" } }, "node_modules/path-exists": { @@ -7231,10 +6453,11 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -7249,10 +6472,11 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -7262,6 +6486,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -7274,6 +6499,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -7287,6 +6513,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -7299,6 +6526,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -7314,6 +6542,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -7364,12 +6593,13 @@ } }, "node_modules/pretty-format": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.2.tgz", - "integrity": "sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -7394,6 +6624,7 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -7407,6 +6638,7 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7421,9 +6653,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -7434,7 +6666,8 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -7457,40 +6690,48 @@ ] }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "license": "MIT", - "peer": true, "dependencies": { - "loose-envify": "^1.1.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "node_modules/react-devtools-core": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz", + "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==", + "license": "MIT", + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } }, - "node_modules/react-reconciler": { - "version": "0.29.2", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", - "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "engines": { - "node": ">=0.10.0" + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" }, "peerDependencies": { - "react": "^18.3.1" + "react": "17.0.2" } }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -7525,6 +6766,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7551,6 +6793,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -7563,6 +6806,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7586,10 +6830,11 @@ } }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -7598,7 +6843,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -7703,12 +6947,13 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "node_modules/semver": { @@ -7765,6 +7010,18 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -7833,7 +7090,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", @@ -7875,6 +7133,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -7884,7 +7143,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stack-utils": { "version": "2.0.6", @@ -7910,6 +7170,7 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -7922,7 +7183,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7981,7 +7241,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7994,6 +7253,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8023,7 +7283,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8090,6 +7349,7 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -8121,16 +7381,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "engines": { - "node": ">=4" - } + "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -8144,50 +7396,82 @@ "node": ">=8.0" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "node_modules/ts-jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.1.tgz", + "integrity": "sha512-FT2PIRtZABwl6+ZCry8IY7JZ3xMuppsEV9qFVHOVe8jDzggwUZ9TsM4chyJxL9yi6LvkqcZYU3LmapEE454zBQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.1", + "type-fest": "^4.38.0", + "yargs-parser": "^21.1.1" }, "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { - "@swc/core": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { "optional": true }, - "@swc/wasm": { + "esbuild": { "optional": true } } }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.38.0.tgz", + "integrity": "sha512-2dBz5D5ycHIoliLYLi0Q2V7KRaDlH0uWIvmk7TYlAg5slqwiPv1ezJdZm1QEM0xgk29oYWMCbIG7E6gHpvChlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -8282,6 +7566,7 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8461,9 +7746,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -8479,9 +7764,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -8508,33 +7794,21 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT" - }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", @@ -8552,6 +7826,7 @@ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } @@ -8607,75 +7882,21 @@ } }, "node_modules/widest-line": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", - "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", - "license": "MIT", - "dependencies": { - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "license": "MIT" - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "string-width": "^4.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8696,6 +7917,7 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -8705,16 +7927,16 @@ } }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -8736,6 +7958,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -8744,13 +7967,15 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -8769,20 +7994,11 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -8795,11 +8011,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yoga-wasm-web": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", - "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==", - "license": "MIT" + "node_modules/yoga-layout-prebuilt": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.10.0.tgz", + "integrity": "sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==", + "license": "MIT", + "dependencies": { + "@types/yoga-layout": "1.9.2" + }, + "engines": { + "node": ">=8" + } } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 00712b6..7037adb 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,11 @@ "devDependencies": { "@swc/core": "1.3.82", "@swc/jest": "^0.2.29", - "@types/jest": "^29.5.2", + "@types/ink": "^0.5.2", + "@types/jest": "^29.5.14", "@types/node": "^20.5.7", + "@types/react": "^19.0.12", + "@types/react-dom": "^19.0.4", "@typescript-eslint/eslint-plugin": "^5.61.0", "@typescript-eslint/parser": "^5.61.0", "benny": "^3.7.1", @@ -49,14 +52,20 @@ "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^5.0.0-alpha.2", - "jest": "^29.6.2", + "jest": "^29.7.0", "jest-extended": "^4.0.0", "jest-junit": "^16.0.0", "prettier": "^3.0.0", "shx": "^0.3.4", "systeminformation": "^5.18.5", + "ts-jest": "^29.3.1", "tsx": "^3.12.7", "typedoc": "^0.24.8", "typescript": "^5.1.6" + }, + "dependencies": { + "ink": "^3.2.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" } -} \ No newline at end of file +} diff --git a/spans.json b/spans.json index 4cf022c..2bafd49 100644 --- a/spans.json +++ b/spans.json @@ -1,56 +1,775 @@ [ { - "spanId": "span-1740997147711-c4j4n", - "name": "Root Span", - "startTime": 1740997147711, - "endTime": 1740997155715, - "parentSpanId": null, + "spanId": "span-1743479766707-mlqut", + "name": "Parent-0", + "startTime": 1743479766707, + "endTime": 1743479769715, "isCompleted": true, "children": [ { - "spanId": "span-1740997148715-wle8c", - "name": "Parent span ends earlier", - "startTime": 1740997148715, - "endTime": 1740997150717, - "parentSpanId": "span-1740997147711-c4j4n", + "spanId": "span-1743479766907-jc8cv", + "name": "Parent-0-Fork-A", + "startTime": 1743479766907, + "endTime": 1743479767510, + "parentSpanId": "span-1743479766707-mlqut", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479767108-v1m71", + "name": "Fork-A-Span-1", + "startTime": 1743479767108, + "endTime": 1743479767109, + "parentSpanId": "span-1743479766907-jc8cv", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479767309-4fx70", + "name": "Fork-A-Span-2", + "startTime": 1743479767309, + "endTime": 1743479767309, + "parentSpanId": "span-1743479766907-jc8cv", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479767710-xjjvc", + "name": "Parent-0-Fork-B", + "startTime": 1743479767710, + "endTime": 1743479768312, + "parentSpanId": "span-1743479766707-mlqut", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479767911-v9lbc", + "name": "Fork-B-Span-1", + "startTime": 1743479767911, + "endTime": 1743479767911, + "parentSpanId": "span-1743479767710-xjjvc", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479768111-9hdno", + "name": "Fork-B-Span-2", + "startTime": 1743479768112, + "endTime": 1743479768112, + "parentSpanId": "span-1743479767710-xjjvc", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743479766907-jc8cv", + "name": "Parent-0-Fork-A", + "startTime": 1743479766907, + "endTime": 1743479767510, + "parentSpanId": "span-1743479766707-mlqut", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479767108-v1m71", + "name": "Fork-A-Span-1", + "startTime": 1743479767108, + "endTime": 1743479767109, + "parentSpanId": "span-1743479766907-jc8cv", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479767309-4fx70", + "name": "Fork-A-Span-2", + "startTime": 1743479767309, + "endTime": 1743479767309, + "parentSpanId": "span-1743479766907-jc8cv", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479767108-v1m71", + "name": "Fork-A-Span-1", + "startTime": 1743479767108, + "endTime": 1743479767109, + "parentSpanId": "span-1743479766907-jc8cv", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479767309-4fx70", + "name": "Fork-A-Span-2", + "startTime": 1743479767309, + "endTime": 1743479767309, + "parentSpanId": "span-1743479766907-jc8cv", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479767710-xjjvc", + "name": "Parent-0-Fork-B", + "startTime": 1743479767710, + "endTime": 1743479768312, + "parentSpanId": "span-1743479766707-mlqut", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479767911-v9lbc", + "name": "Fork-B-Span-1", + "startTime": 1743479767911, + "endTime": 1743479767911, + "parentSpanId": "span-1743479767710-xjjvc", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479768111-9hdno", + "name": "Fork-B-Span-2", + "startTime": 1743479768112, + "endTime": 1743479768112, + "parentSpanId": "span-1743479767710-xjjvc", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479767911-v9lbc", + "name": "Fork-B-Span-1", + "startTime": 1743479767911, + "endTime": 1743479767911, + "parentSpanId": "span-1743479767710-xjjvc", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479768111-9hdno", + "name": "Fork-B-Span-2", + "startTime": 1743479768112, + "endTime": 1743479768112, + "parentSpanId": "span-1743479767710-xjjvc", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479770116-ytgly", + "name": "Parent-1", + "startTime": 1743479770116, + "endTime": 1743479773119, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479770315-wbhin", + "name": "Parent-1-Fork-A", + "startTime": 1743479770315, + "endTime": 1743479770915, + "parentSpanId": "span-1743479770116-ytgly", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479770515-zrqhp", + "name": "Fork-A-Span-1", + "startTime": 1743479770515, + "endTime": 1743479770516, + "parentSpanId": "span-1743479770315-wbhin", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479770715-vhndu", + "name": "Fork-A-Span-2", + "startTime": 1743479770716, + "endTime": 1743479770716, + "parentSpanId": "span-1743479770315-wbhin", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479771115-y1spq", + "name": "Parent-1-Fork-B", + "startTime": 1743479771115, + "endTime": 1743479771716, + "parentSpanId": "span-1743479770116-ytgly", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479771315-5t3p1", + "name": "Fork-B-Span-1", + "startTime": 1743479771315, + "endTime": 1743479771316, + "parentSpanId": "span-1743479771115-y1spq", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479771516-gn7wt", + "name": "Fork-B-Span-2", + "startTime": 1743479771516, + "endTime": 1743479771516, + "parentSpanId": "span-1743479771115-y1spq", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479771916-n97cr", + "name": "Async-Job-1", + "startTime": 1743479771916, + "endTime": 1743479772318, + "parentSpanId": "span-1743479770116-ytgly", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479771917-6q5mk", + "name": "Async-Job-2", + "startTime": 1743479771917, + "endTime": 1743479772117, + "parentSpanId": "span-1743479771916-n97cr", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743479770315-wbhin", + "name": "Parent-1-Fork-A", + "startTime": 1743479770315, + "endTime": 1743479770915, + "parentSpanId": "span-1743479770116-ytgly", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479770515-zrqhp", + "name": "Fork-A-Span-1", + "startTime": 1743479770515, + "endTime": 1743479770516, + "parentSpanId": "span-1743479770315-wbhin", "isCompleted": true, "children": [] }, { - "spanId": "span-1740997149716-2u7wc", - "name": "Forking", - "startTime": 1740997149716, - "endTime": 1740997153718, - "parentSpanId": "span-1740997147711-c4j4n", + "spanId": "span-1743479770715-vhndu", + "name": "Fork-A-Span-2", + "startTime": 1743479770716, + "endTime": 1743479770716, + "parentSpanId": "span-1743479770315-wbhin", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1740997148715-wle8c", - "name": "Parent span ends earlier", - "startTime": 1740997148715, - "endTime": 1740997150717, - "parentSpanId": "span-1740997147711-c4j4n", + "spanId": "span-1743479770515-zrqhp", + "name": "Fork-A-Span-1", + "startTime": 1743479770515, + "endTime": 1743479770516, + "parentSpanId": "span-1743479770315-wbhin", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479770715-vhndu", + "name": "Fork-A-Span-2", + "startTime": 1743479770716, + "endTime": 1743479770716, + "parentSpanId": "span-1743479770315-wbhin", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479771115-y1spq", + "name": "Parent-1-Fork-B", + "startTime": 1743479771115, + "endTime": 1743479771716, + "parentSpanId": "span-1743479770116-ytgly", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479771315-5t3p1", + "name": "Fork-B-Span-1", + "startTime": 1743479771315, + "endTime": 1743479771316, + "parentSpanId": "span-1743479771115-y1spq", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479771516-gn7wt", + "name": "Fork-B-Span-2", + "startTime": 1743479771516, + "endTime": 1743479771516, + "parentSpanId": "span-1743479771115-y1spq", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479771315-5t3p1", + "name": "Fork-B-Span-1", + "startTime": 1743479771315, + "endTime": 1743479771316, + "parentSpanId": "span-1743479771115-y1spq", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479771516-gn7wt", + "name": "Fork-B-Span-2", + "startTime": 1743479771516, + "endTime": 1743479771516, + "parentSpanId": "span-1743479771115-y1spq", "isCompleted": true, "children": [] }, { - "spanId": "span-1740997149716-2u7wc", - "name": "Forking", - "startTime": 1740997149716, - "endTime": 1740997153718, - "parentSpanId": "span-1740997147711-c4j4n", + "spanId": "span-1743479771916-n97cr", + "name": "Async-Job-1", + "startTime": 1743479771916, + "endTime": 1743479772318, + "parentSpanId": "span-1743479770116-ytgly", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479771917-6q5mk", + "name": "Async-Job-2", + "startTime": 1743479771917, + "endTime": 1743479772117, + "parentSpanId": "span-1743479771916-n97cr", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479771917-6q5mk", + "name": "Async-Job-2", + "startTime": 1743479771917, + "endTime": 1743479772117, + "parentSpanId": "span-1743479771916-n97cr", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479772919-vp73l", + "name": "Orphan-1", + "startTime": 1743479772919, + "endTime": 1743479772920, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479773520-t2x1x", + "name": "Parent-2", + "startTime": 1743479773520, + "endTime": 1743479776528, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479773721-2co66", + "name": "Parent-2-Fork-A", + "startTime": 1743479773721, + "endTime": 1743479774321, + "parentSpanId": "span-1743479773520-t2x1x", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479773921-7z5ki", + "name": "Fork-A-Span-1", + "startTime": 1743479773921, + "endTime": 1743479773922, + "parentSpanId": "span-1743479773721-2co66", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479774121-izy4a", + "name": "Fork-A-Span-2", + "startTime": 1743479774122, + "endTime": 1743479774122, + "parentSpanId": "span-1743479773721-2co66", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479774522-kbzbe", + "name": "Parent-2-Fork-B", + "startTime": 1743479774522, + "endTime": 1743479775124, + "parentSpanId": "span-1743479773520-t2x1x", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479774723-606o9", + "name": "Fork-B-Span-1", + "startTime": 1743479774723, + "endTime": 1743479774724, + "parentSpanId": "span-1743479774522-kbzbe", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479776127-nrhwp", + "name": "[Rejoins-Fork-2]", + "startTime": 1743479776127, + "endTime": 1743479776128, + "parentSpanId": "span-1743479773520-t2x1x", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479773721-2co66", + "name": "Parent-2-Fork-A", + "startTime": 1743479773721, + "endTime": 1743479774321, + "parentSpanId": "span-1743479773520-t2x1x", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479773921-7z5ki", + "name": "Fork-A-Span-1", + "startTime": 1743479773921, + "endTime": 1743479773922, + "parentSpanId": "span-1743479773721-2co66", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479774121-izy4a", + "name": "Fork-A-Span-2", + "startTime": 1743479774122, + "endTime": 1743479774122, + "parentSpanId": "span-1743479773721-2co66", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479773921-7z5ki", + "name": "Fork-A-Span-1", + "startTime": 1743479773921, + "endTime": 1743479773922, + "parentSpanId": "span-1743479773721-2co66", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479774121-izy4a", + "name": "Fork-A-Span-2", + "startTime": 1743479774122, + "endTime": 1743479774122, + "parentSpanId": "span-1743479773721-2co66", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479774522-kbzbe", + "name": "Parent-2-Fork-B", + "startTime": 1743479774522, + "endTime": 1743479775124, + "parentSpanId": "span-1743479773520-t2x1x", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479774723-606o9", + "name": "Fork-B-Span-1", + "startTime": 1743479774723, + "endTime": 1743479774724, + "parentSpanId": "span-1743479774522-kbzbe", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479774723-606o9", + "name": "Fork-B-Span-1", + "startTime": 1743479774723, + "endTime": 1743479774724, + "parentSpanId": "span-1743479774522-kbzbe", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479776127-nrhwp", + "name": "[Rejoins-Fork-2]", + "startTime": 1743479776127, + "endTime": 1743479776128, + "parentSpanId": "span-1743479773520-t2x1x", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479776929-4pfs3", + "name": "Parent-3", + "startTime": 1743479776929, + "endTime": 1743479779933, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479777129-pisgp", + "name": "Parent-3-Fork-A", + "startTime": 1743479777129, + "endTime": 1743479777729, + "parentSpanId": "span-1743479776929-4pfs3", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479777329-yot2w", + "name": "Fork-A-Span-1", + "startTime": 1743479777329, + "endTime": 1743479777330, + "parentSpanId": "span-1743479777129-pisgp", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479777529-ik5it", + "name": "Fork-A-Span-2", + "startTime": 1743479777529, + "endTime": 1743479777530, + "parentSpanId": "span-1743479777129-pisgp", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479778731-ju1kx", + "name": "Async-Job-1", + "startTime": 1743479778731, + "endTime": 1743479778931, + "parentSpanId": "span-1743479776929-4pfs3", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479777129-pisgp", + "name": "Parent-3-Fork-A", + "startTime": 1743479777129, + "endTime": 1743479777729, + "parentSpanId": "span-1743479776929-4pfs3", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479777329-yot2w", + "name": "Fork-A-Span-1", + "startTime": 1743479777329, + "endTime": 1743479777330, + "parentSpanId": "span-1743479777129-pisgp", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479777529-ik5it", + "name": "Fork-A-Span-2", + "startTime": 1743479777529, + "endTime": 1743479777530, + "parentSpanId": "span-1743479777129-pisgp", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479777329-yot2w", + "name": "Fork-A-Span-1", + "startTime": 1743479777329, + "endTime": 1743479777330, + "parentSpanId": "span-1743479777129-pisgp", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479777529-ik5it", + "name": "Fork-A-Span-2", + "startTime": 1743479777529, + "endTime": 1743479777530, + "parentSpanId": "span-1743479777129-pisgp", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479778731-ju1kx", + "name": "Async-Job-1", + "startTime": 1743479778731, + "endTime": 1743479778931, + "parentSpanId": "span-1743479776929-4pfs3", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479780335-2t15c", + "name": "Parent-4", + "startTime": 1743479780335, + "isCompleted": false, + "children": [ + { + "spanId": "span-1743479780534-9ccdj", + "name": "Parent-4-Fork-A", + "startTime": 1743479780534, + "endTime": 1743479781134, + "parentSpanId": "span-1743479780335-2t15c", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479780735-67zqb", + "name": "Fork-A-Span-1", + "startTime": 1743479780735, + "endTime": 1743479780735, + "parentSpanId": "span-1743479780534-9ccdj", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479780934-d7qtu", + "name": "Fork-A-Span-2", + "startTime": 1743479780934, + "endTime": 1743479780935, + "parentSpanId": "span-1743479780534-9ccdj", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479781334-raxbw", + "name": "Parent-4-Fork-B", + "startTime": 1743479781334, + "endTime": 1743479781934, + "parentSpanId": "span-1743479780335-2t15c", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479781534-rorno", + "name": "Fork-B-Span-1", + "startTime": 1743479781534, + "endTime": 1743479781535, + "parentSpanId": "span-1743479781334-raxbw", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479781734-k83qs", + "name": "Fork-B-Span-2", + "startTime": 1743479781734, + "endTime": 1743479781735, + "parentSpanId": "span-1743479781334-raxbw", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743479780534-9ccdj", + "name": "Parent-4-Fork-A", + "startTime": 1743479780534, + "endTime": 1743479781134, + "parentSpanId": "span-1743479780335-2t15c", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479780735-67zqb", + "name": "Fork-A-Span-1", + "startTime": 1743479780735, + "endTime": 1743479780735, + "parentSpanId": "span-1743479780534-9ccdj", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479780934-d7qtu", + "name": "Fork-A-Span-2", + "startTime": 1743479780934, + "endTime": 1743479780935, + "parentSpanId": "span-1743479780534-9ccdj", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479780735-67zqb", + "name": "Fork-A-Span-1", + "startTime": 1743479780735, + "endTime": 1743479780735, + "parentSpanId": "span-1743479780534-9ccdj", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479780934-d7qtu", + "name": "Fork-A-Span-2", + "startTime": 1743479780934, + "endTime": 1743479780935, + "parentSpanId": "span-1743479780534-9ccdj", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479781334-raxbw", + "name": "Parent-4-Fork-B", + "startTime": 1743479781334, + "endTime": 1743479781934, + "parentSpanId": "span-1743479780335-2t15c", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743479781534-rorno", + "name": "Fork-B-Span-1", + "startTime": 1743479781534, + "endTime": 1743479781535, + "parentSpanId": "span-1743479781334-raxbw", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743479781734-k83qs", + "name": "Fork-B-Span-2", + "startTime": 1743479781734, + "endTime": 1743479781735, + "parentSpanId": "span-1743479781334-raxbw", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743479781534-rorno", + "name": "Fork-B-Span-1", + "startTime": 1743479781534, + "endTime": 1743479781535, + "parentSpanId": "span-1743479781334-raxbw", "isCompleted": true, "children": [] }, { - "spanId": "span-1740997150715-7a1qz", - "name": "Orphan", - "startTime": 1740997150715, - "endTime": 1740997154717, - "parentSpanId": null, + "spanId": "span-1743479781734-k83qs", + "name": "Fork-B-Span-2", + "startTime": 1743479781734, + "endTime": 1743479781735, + "parentSpanId": "span-1743479781334-raxbw", "isCompleted": true, "children": [] } diff --git a/src/Logger.ts b/src/Logger.ts index 118b282..51a8c06 100644 --- a/src/Logger.ts +++ b/src/Logger.ts @@ -3,8 +3,7 @@ import type Handler from './Handler.js'; import { LogLevel } from './types.js'; import ConsoleErrHandler from './handlers/ConsoleErrHandler.js'; import * as utils from './utils.js'; -import { openSpan, closeSpan } from "./lib/tracingManager.js"; - +import { openSpan, closeSpan } from './lib/tracingManager.js'; class Logger { public readonly key: string; @@ -27,7 +26,7 @@ class Logger { this.level = level; this.handlers = new Set(handlers); this.parent = parent; - this.keys = parent != null ? `${parent.keys}.${key}` : key; + this.keys = parent !== undefined ? `${parent.keys}.${key}` : key; this.loggersRegistry = new FinalizationRegistry((key: string) => { this._loggers.delete(key); }); @@ -38,20 +37,20 @@ class Logger { [...this._loggers.entries()] .map(([key, loggerRef]) => { const logger = loggerRef.deref(); - if (logger != null) { + if (logger !== undefined) { return [key, logger]; } else { return undefined; } }) - .filter((e) => e != null) as Array<[string, Logger]>, + .filter((e) => e !== undefined) as Array<[string, Logger]>, ); } public getChild(key: string): Logger { let loggerRef = this._loggers.get(key); let logger = loggerRef?.deref(); - if (logger != null) return logger; + if (logger !== undefined) return logger; logger = new Logger(key, LogLevel.NOTSET, [], this); loggerRef = new WeakRef(logger); this._loggers.set(key, loggerRef); @@ -109,74 +108,91 @@ class Logger { delete this.filter; } - public debug( - msg?: ToString, - formatOrData?: LogFormatter | LogData, - format?: LogFormatter, - parentSpanId?: string | undefined + public debug( + msg?: ToString, + formatOrData?: LogFormatter | LogData, + format?: LogFormatter, + parentSpanId?: string, ): string { - if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.DEBUG, formatOrData as LogFormatter, parentSpanId); - } else { - return this.log(msg, formatOrData, LogLevel.DEBUG, format, parentSpanId); - } + if (formatOrData === undefined || typeof formatOrData === 'function') { + return this.log( + msg, + {}, + LogLevel.DEBUG, + formatOrData as LogFormatter, + parentSpanId, + ); + } else { + return this.log(msg, formatOrData, LogLevel.DEBUG, format, parentSpanId); + } } - public info( msg?: ToString, formatOrData?: LogFormatter | LogData, format?: LogFormatter, - parentSpanId?: string | undefined + parentSpanId?: string, ): string { - if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.INFO, formatOrData as LogFormatter, parentSpanId); + if (formatOrData === undefined || typeof formatOrData === 'function') { + return this.log( + msg, + {}, + LogLevel.INFO, + formatOrData as LogFormatter, + parentSpanId, + ); } else { - return this.log(msg, formatOrData, LogLevel.INFO, format, parentSpanId); + return this.log(msg, formatOrData, LogLevel.INFO, format, parentSpanId); } } - - - public warn( - msg?: ToString, - formatOrData?: LogFormatter | LogData, - format?: LogFormatter, - parentSpanId?: string | undefined + public warn( + msg?: ToString, + formatOrData?: LogFormatter | LogData, + format?: LogFormatter, + parentSpanId?: string, ): string { - if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.WARN, formatOrData as LogFormatter, parentSpanId); - } else { - return this.log(msg, formatOrData, LogLevel.WARN, format, parentSpanId); - } + if (formatOrData === undefined || typeof formatOrData === 'function') { + return this.log( + msg, + {}, + LogLevel.WARN, + formatOrData as LogFormatter, + parentSpanId, + ); + } else { + return this.log(msg, formatOrData, LogLevel.WARN, format, parentSpanId); + } } - - - public error( - msg?: ToString, - formatOrData?: LogFormatter | LogData, - format?: LogFormatter, - parentSpanId?: string | undefined + public error( + msg?: ToString, + formatOrData?: LogFormatter | LogData, + format?: LogFormatter, + parentSpanId?: string, ): string { - if (formatOrData == null || typeof formatOrData === 'function') { - return this.log(msg, {}, LogLevel.ERROR, formatOrData as LogFormatter, parentSpanId); - } else { - return this.log(msg, formatOrData, LogLevel.ERROR, format, parentSpanId); - } + if (formatOrData === undefined || typeof formatOrData === 'function') { + return this.log( + msg, + {}, + LogLevel.ERROR, + formatOrData as LogFormatter, + parentSpanId, + ); + } else { + return this.log(msg, formatOrData, LogLevel.ERROR, format, parentSpanId); + } } - - protected log( msg: ToString | undefined, data: LogData, level: LogLevel, format?: LogFormatter, - parentSpanId?: string // Optional parent span -): string { + parentSpanId?: string, // Optional parent span + ): string { // Filter on level before making a record - if (level < this.getEffectiveLevel()) return ""; + if (level < this.getEffectiveLevel()) return ''; const spanId = openSpan(msg?.toString() || 'Log Event', parentSpanId); @@ -184,9 +200,8 @@ class Logger { this.callHandlers(record, level, format); closeSpan(spanId); - return spanId -} - + return spanId; + } /** * Constructs a `LogRecord` @@ -215,7 +230,7 @@ class Logger { Error.captureStackTrace(error, Logger.prototype.log); Error.stackTraceLimit--; stack = error.stack; - // Remove the stack title and the first stack line for `Logger.prototype.log` + // Remove the stack title and the first stack line stack = stack.slice(stack.indexOf('\n', stack.indexOf('\n') + 1) + 1); } else { stack = new Error().stack ?? ''; @@ -236,7 +251,7 @@ class Logger { // This is also called when traversing up the parent if (level < this.getEffectiveLevel()) return; keys = `${this.key}.${keys}`; - if (this.filter != null && !this.filter.test(keys)) return; + if (this.filter !== undefined && !this.filter.test(keys)) return; for (const handler of this.handlers) { handler.handle(record, format); } diff --git a/src/bin/SpanTree.tsx b/src/bin/SpanTree.tsx index 6da8b5c..e3f0319 100644 --- a/src/bin/SpanTree.tsx +++ b/src/bin/SpanTree.tsx @@ -1,22 +1,23 @@ -import React, { FC } from 'react'; +import type { FC } from 'react'; +import React from 'react'; import { Box, Text } from 'ink'; -import { Span } from "../lib/span.js"; +import Span from '../lib/Span.js'; // Props for handling both root and child spans interface SpanTreeProps { - spans: Span[]; - sampleMode: string; + spans: Array; + mode: 'logical' | 'time'; } /** * Sort spans based on the selected sampling mode. */ const sortSpans = (spans: Span[], mode: string): Span[] => { - if (mode === "logical") { + if (mode === 'logical') { const spanMap = new Map(); // Step 1: Convert raw objects to Span instances - spans.forEach(span => { + spans.forEach((span) => { if (!spanMap.has(span.spanId)) { const newSpan = new Span(span.name, span.parentSpanId); Object.assign(newSpan, span); @@ -25,17 +26,19 @@ const sortSpans = (spans: Span[], mode: string): Span[] => { } }); - const rootSpans: Span[] = []; + const rootSpans: Array = []; // Step 2: Link children to parents - spans.forEach(span => { + spans.forEach((span) => { if (span.parentSpanId && spanMap.has(span.parentSpanId)) { - spanMap.get(span.parentSpanId)!.children.push(spanMap.get(span.spanId)!); + spanMap + .get(span.parentSpanId)! + .children.push(spanMap.get(span.spanId)!); } }); // Step 3: Collect only true root spans (avoiding duplicates) - spans.forEach(span => { + spans.forEach((span) => { if (!span.parentSpanId) { const rootSpan = spanMap.get(span.spanId); if (rootSpan) { @@ -47,23 +50,22 @@ const sortSpans = (spans: Span[], mode: string): Span[] => { return rootSpans; } else { return spans - .map(span => new Span(span.name, span.parentSpanId)) // Convert to Span instances - .sort((a, b) => a.startTime - b.startTime); // Sort purely by start time + .map((span) => new Span(span.name, span.parentSpanId)) + .sort((a, b) => a.startTime - b.startTime); } }; - /** * **Recursive Renderer** * - Uses box-drawing characters (│ ├ └) for structured layout. */ -const RecursiveSpanTree: FC<{ span: Span; prefix: string; isLastChild: boolean }> = ({ - span, - prefix, - isLastChild, -}) => { +const RecursiveSpanTree: FC<{ + span: Span; + prefix: string; + isLastChild: boolean; +}> = ({ span, prefix, isLastChild }) => { const connector = isLastChild ? '└── ' : '├── '; - const newPrefix = prefix + (isLastChild ? ' ' : '│ '); // Maintain vertical structure + const newPrefix = prefix + (isLastChild ? ' ' : '│ '); return ( @@ -88,8 +90,8 @@ const RecursiveSpanTree: FC<{ span: Span; prefix: string; isLastChild: boolean } /** * **Main Component** (Sorts & Passes Data) */ -const SpanTree: FC = ({ spans, sampleMode }) => { - const sortedSpans = sortSpans(spans, sampleMode); +const SpanTree: FC = ({ spans, mode }) => { + const sortedSpans = sortSpans(spans, mode); return ( diff --git a/src/bin/TimeLineView.tsx b/src/bin/TimeLineView.tsx index e709d27..dd394ab 100644 --- a/src/bin/TimeLineView.tsx +++ b/src/bin/TimeLineView.tsx @@ -1,13 +1,13 @@ -// TimelineView.tsx -import React, { FC } from 'react'; +import type { FC } from 'react'; +import React from 'react'; import { Box, Text } from 'ink'; interface Span { spanId: string; name: string; - parentSpanId: string | null; + parentSpanId: string | undefined; startTime: number; - endTime: number | null; + endTime: number | undefined; } // We make each row = 1000 ms @@ -17,7 +17,7 @@ function timeToRow(timeMs: number, baseTimeMs: number) { return Math.floor((timeMs - baseTimeMs) / TIME_STEP_MS); } -function assignLanes(spans: Span[]): Map { +function assignLanes(spans: Array): Map { // Sort spans by startTime ascending const sorted = [...spans].sort((a, b) => a.startTime - b.startTime); const laneMap = new Map(); @@ -37,7 +37,7 @@ function assignLanes(spans: Span[]): Map { } laneMap.set(span.spanId, assignedLane); - const realEnd = span.endTime ?? (span.startTime + 3000); + const realEnd = span.endTime ?? span.startTime + 3000; laneEndTime[assignedLane] = Math.max(laneEndTime[assignedLane], realEnd); } return laneMap; @@ -49,17 +49,17 @@ const TimelineView: FC<{ spans: Span[] }> = ({ spans }) => { } const laneMap = assignLanes(spans); - let earliest = Math.min(...spans.map(s => s.startTime)); - let latest = Math.max(...spans.map(s => s.endTime ?? (s.startTime + 3000))); + const earliest = + Math.floor(Math.min(...spans.map((s) => s.startTime)) / TIME_STEP_MS) * + TIME_STEP_MS; - // Round earliest down - earliest = Math.floor(earliest / TIME_STEP_MS) * TIME_STEP_MS; + const latest = Math.max(...spans.map((s) => s.endTime ?? s.startTime + 3000)); const maxLane = Math.max(...laneMap.values()); const rowCount = 1 + timeToRow(latest, earliest); // Initialize a 2D grid: rowCount rows x (maxLane+1) lanes - const grid: string[][] = Array.from({ length: rowCount }, () => - Array(maxLane + 1).fill(' ') + const grid: Array> = Array.from({ length: rowCount }, () => + Array(maxLane + 1).fill(' '), ); // Fill each lane with vertical bars and optional slash @@ -74,14 +74,20 @@ const TimelineView: FC<{ spans: Span[] }> = ({ spans }) => { } // Insert the span name at the start row - grid[startRow][lane] = grid[startRow][lane].replace(' | ', ` | (${span.name})`); + grid[startRow][lane] = grid[startRow][lane].replace( + ' | ', + ` | (${span.name})`, + ); // If parent ended earlier, place a slash if (span.parentSpanId) { - const parent = spans.find(s => s.spanId === span.parentSpanId); + const parent = spans.find((s) => s.spanId === span.parentSpanId); if (parent) { const parentLane = laneMap.get(parent.spanId)!; - const parentEnd = timeToRow(parent.endTime ?? parent.startTime, earliest); + const parentEnd = timeToRow( + parent.endTime ?? parent.startTime, + earliest, + ); if (parentLane !== lane || parentEnd < endRow) { if (parentLane < lane) { @@ -94,7 +100,7 @@ const TimelineView: FC<{ spans: Span[] }> = ({ spans }) => { } } - const lines = grid.map(cols => cols.join('')); + const lines = grid.map((cols) => cols.join('')); return ( @@ -104,8 +110,7 @@ const TimelineView: FC<{ spans: Span[] }> = ({ spans }) => { ))} - ); + ); }; export default TimelineView; - diff --git a/src/bin/cli.tsx b/src/bin/cli.tsx index 4bb6af3..d31f41a 100644 --- a/src/bin/cli.tsx +++ b/src/bin/cli.tsx @@ -1,23 +1,20 @@ +import type Span from '../lib/Span.js'; +import fs from 'fs'; +import { Command } from 'commander'; import React, { useEffect, useState } from 'react'; import { render, Box, Text } from 'ink'; -import fs from 'fs'; import SpanTree from './SpanTree.js'; -import { Span } from '../lib/span.js'; const SPAN_FILE = 'spans.json'; +// Use commander to parse CLI options +const program = new Command(); +program + .option('--sample ', 'Sampling mode: logical or time', 'time') + .parse(); -const sampleArgIndex = process.argv.indexOf("--sample"); -const sampleMode = - sampleArgIndex !== -1 && process.argv.length > sampleArgIndex + 1 - ? process.argv[sampleArgIndex + 1].trim() === "logical" - ? "logical" - : "time" - : "time"; - -console.log(`Received CLI arguments: ${process.argv.join(" ")}`); -console.log(`Running in ${sampleMode} mode`); - +const options = program.opts(); +const sampleMode = options.sample; function loadSpans(): Span[] { if (!fs.existsSync(SPAN_FILE)) return []; @@ -33,23 +30,27 @@ const App = () => { }, 1000); const handleExit = () => { - console.log("Stopping CLI..."); + process.stdout.write('Stopping CLI...\n'); clearInterval(id); process.exit(0); }; - process.on("SIGINT", handleExit); - process.on("SIGTERM", handleExit); + process.on('SIGINT', handleExit); + process.on('SIGTERM', handleExit); + process.on('SIGHUP', handleExit); + process.on('SIGABRT', handleExit); return () => clearInterval(id); }, []); return ( - Real-Time Concurrency Timeline ({sampleMode}-based) + + Real-Time Concurrency Timeline ({sampleMode}-based) + {spans.length > 0 ? ( - + ) : ( No spans available )} diff --git a/src/bin/simple-cli.tsx b/src/bin/simple-cli.tsx deleted file mode 100644 index 70c0a08..0000000 --- a/src/bin/simple-cli.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { getTraceJSON } from "../lib/tracingManager.js"; - -setInterval(() => { - console.clear(); - console.log("🚀 Live Spans (Tail Mode):\n"); - console.log(getTraceJSON()); -}, 1000); diff --git a/src/index.ts b/src/index.ts index e880460..0c20751 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,8 @@ export { default } from './Logger.js'; export { default as Handler } from './Handler.js'; +export { openSpan, closeSpan, getTraceJSON } from './lib/tracingManager.js'; +export { default as Span } from './lib/Span.js'; export * as formatting from './formatting.js'; export * from './handlers/index.js'; export * from './utils.js'; export * from './types.js'; -export { Span } from "./lib/span.js"; -export { openSpan, closeSpan, getTraceJSON } from "./lib/tracingManager.js"; - diff --git a/src/lib/Span.ts b/src/lib/Span.ts new file mode 100644 index 0000000..03085cc --- /dev/null +++ b/src/lib/Span.ts @@ -0,0 +1,51 @@ +export interface SpanJSON { + spanId: string; + name: string; + startTime: number; + endTime: number | undefined; + parentSpanId: string | undefined; + isCompleted: boolean; + children: SpanJSON[]; +} + +class Span { + public spanId: string; + public name: string; + public startTime: number; + public endTime?: number; + public parentSpanId?: string; + public children: Array; + + constructor(name: string, parentSpanId: string | undefined = undefined) { + this.spanId = `span-${Date.now()}-${Math.random() + .toString(36) + .substr(2, 5)}`; + this.name = name; + this.startTime = Date.now(); + this.endTime = undefined; + this.parentSpanId = parentSpanId; + this.children = []; + } + + public close(): void { + this.endTime = Date.now(); + } + + public isCompleted(): boolean { + return this.endTime !== undefined; + } + + toJSON(): SpanJSON { + return { + spanId: this.spanId, + name: this.name, + startTime: this.startTime, + endTime: this.endTime, + parentSpanId: this.parentSpanId, + isCompleted: this.isCompleted(), + children: this.children.map((child) => child.toJSON()), + }; + } +} + +export default Span; diff --git a/src/lib/span.ts b/src/lib/span.ts deleted file mode 100644 index a1a6cf2..0000000 --- a/src/lib/span.ts +++ /dev/null @@ -1,38 +0,0 @@ -export class Span { - spanId: string; - name: string; - startTime: number; - endTime: number | null; - parentSpanId: string | null; - children: Span[]; - - constructor(name: string, parentSpanId: string | null = null) { - this.spanId = `span-${Date.now()}-${Math.random().toString(36).substr(2, 5)}`; - this.name = name; - this.startTime = Date.now(); - this.endTime = null; - this.parentSpanId = parentSpanId; - this.children = []; - } - - close(): void { - this.endTime = Date.now(); - } - - isCompleted(): boolean { - return this.endTime !== null; - } - - // Convert span object to JSON-friendly format - toJSON(): Record { - return { - spanId: this.spanId, - name: this.name, - startTime: this.startTime, - endTime: this.endTime, - parentSpanId: this.parentSpanId, - isCompleted: this.isCompleted(), - children: this.children.map(child => child.toJSON()) - }; - } -} diff --git a/src/lib/tracingManager.ts b/src/lib/tracingManager.ts index a167d7a..61e47be 100644 --- a/src/lib/tracingManager.ts +++ b/src/lib/tracingManager.ts @@ -1,104 +1,68 @@ -import { Span } from "../lib/span.js"; -import fs from "fs"; - -const SPAN_FILE = "spans.json"; +import fs from 'fs'; +import Span from './Span.js'; +const SPAN_FILE = 'spans.json'; const activeSpans: Record = {}; -/** - * Opens a new span and associates it with a parent (if provided). - * @param name - Name of the span. - * @param parentSpanId - (Optional) ID of the parent span. - * @returns The unique ID of the created span. - */ +function reconstructSpan(spanData: any): Span { + delete spanData.isCompleted; -function saveSpansToFile() { - fs.writeFileSync(SPAN_FILE, JSON.stringify(Object.values(activeSpans), null, 2)); + const reconstructedSpan = Object.assign( + new Span(spanData.name, spanData.parentSpanId), + spanData, + ); + reconstructedSpan.children = (spanData.children || []).map(reconstructSpan); + return reconstructedSpan; } -export function openSpan(name: string, parentSpanId: string | null = null): string { - const newSpan = new Span(name, parentSpanId); - activeSpans[newSpan.spanId] = newSpan; +function saveSpansToFile() { + fs.writeFileSync( + SPAN_FILE, + JSON.stringify(Object.values(activeSpans), undefined, 2), + ); +} - saveSpansToFile(); +export function openSpan( + name: string, + parentSpanId: string | undefined = undefined, +): string { + const newSpan = new Span(name, parentSpanId); + activeSpans[newSpan.spanId] = newSpan; - console.log("Opened span:", newSpan); + saveSpansToFile(); - // If it's a child span, add it to the parent - if (parentSpanId && activeSpans[parentSpanId]) { - activeSpans[parentSpanId].children.push(newSpan); - } + if (parentSpanId && activeSpans[parentSpanId]) { + activeSpans[parentSpanId].children.push(newSpan); + } - return newSpan.spanId; + return newSpan.spanId; } -/** - * Closes a span by marking its end time. - * @param spanId - The ID of the span to close. - * @returns The completed span or null if the span doesn't exist. - */ -export function closeSpan(spanId: string): Span | null { - if (activeSpans[spanId]) { - activeSpans[spanId].close(); - saveSpansToFile(); - console.log("Closed span:", activeSpans[spanId]); - return activeSpans[spanId]; - } - return null; +export function closeSpan(spanId: string): Span | undefined { + if (activeSpans[spanId]) { + activeSpans[spanId].close(); + saveSpansToFile(); + return activeSpans[spanId]; + } + return undefined; } -/** - * Retrieves all active spans. - * @returns An array of active spans. - */ - export function getActiveSpans(): Span[] { - console.log("Checking Active Spans at Time:", Date.now()); - - if (fs.existsSync(SPAN_FILE)) { - const fileData = fs.readFileSync(SPAN_FILE, "utf8"); - const rawSpans = JSON.parse(fileData); - - function reconstructSpan(spanData: any): Span { - - delete spanData.isCompleted; - - const reconstructedSpan = Object.assign( - new Span(spanData.name, spanData.parentSpanId), - spanData - ); - reconstructedSpan.children = (spanData.children || []).map(reconstructSpan); - return reconstructedSpan; - } - - return rawSpans.map(reconstructSpan); - } + if (fs.existsSync(SPAN_FILE)) { + const fileData = fs.readFileSync(SPAN_FILE, 'utf8'); + const rawSpans = JSON.parse(fileData); + return rawSpans.map(reconstructSpan); + } - console.log("Stored Active Spans:", Object.values(activeSpans)); - return Object.values(activeSpans); + return Object.values(activeSpans); } - - -/** - * Retrieves the entire trace structure as JSON. - * @returns JSON representation of all spans. - */ export function getTraceJSON(): string { - const activeSpans = getActiveSpans(); - - console.log("Debug: Active Spans Before JSON Conversion:", activeSpans); + const activeSpans = getActiveSpans(); - return JSON.stringify( - activeSpans.map(span => span.toJSON()), - null, - 2 - ); + return JSON.stringify( + activeSpans.map((span) => span.toJSON()), + undefined, + 2, + ); } - - - - - - - diff --git a/tests/asciinemaTest.ts b/tests/asciinemaTest.ts index 992132e..73fd011 100644 --- a/tests/asciinemaTest.ts +++ b/tests/asciinemaTest.ts @@ -1,44 +1,157 @@ import { openSpan, closeSpan } from '../src/lib/tracingManager.js'; -// 1) Root Span: starts at t=0, ends at t=8000ms -const rootSpanId = openSpan('Root Span'); -console.log('Opened Root Span:', rootSpanId); - -// 2) Start a child “Parent span ends earlier” at t=1000ms, end at t=3000ms -setTimeout(() => { - const earlyChildId = openSpan('Parent span ends earlier', rootSpanId); - console.log('Opened early child:', earlyChildId); - - setTimeout(() => { - closeSpan(earlyChildId); - console.log('Closed early child:', earlyChildId); - }, 2000); -}, 1000); - -// 3) Another child “Forking” at t=2000ms, ends at t=6000ms -setTimeout(() => { - const forkingId = openSpan('Forking', rootSpanId); - console.log('Opened Forking child:', forkingId); - - setTimeout(() => { - closeSpan(forkingId); - console.log('Closed Forking child:', forkingId); - }, 4000); -}, 2000); - -// 4) An “Orphan” (no parent) at t=3000ms, ends at t=7000ms -setTimeout(() => { - const orphanId = openSpan('Orphan', null); - console.log('Opened Orphan:', orphanId); - - setTimeout(() => { - closeSpan(orphanId); - console.log('Closed Orphan:', orphanId); - }, 4000); -}, 3000); - -// Finally, close root at t=8000ms -setTimeout(() => { - closeSpan(rootSpanId); - console.log('Closed Root Span:', rootSpanId); -}, 8000); +let parentIndex = 0; +let step = 0; +let nestedIds: string[] = []; + +const current = { + parentId: undefined as string | undefined, + forkAId: undefined as string | undefined, + forkBId: undefined as string | undefined, + flags: { + hasForkA: true, + hasForkB: true, + forkAChildren: 2, + forkBChildren: 2, + hasNested: true, + nestedDepth: 3, + hasRejoin: true, + hasOrphan: true, + }, +}; + +function randomBool(prob = 0.7) { + return Math.random() < prob; +} + +function randomInt(min: number, max: number) { + return Math.floor(Math.random() * (max - min + 1)) + min; +} + +setInterval(() => { + switch (step) { + case 0: { + current.flags = { + hasForkA: randomBool(0.9), + hasForkB: randomBool(0.7), + forkAChildren: randomInt(1, 2), + forkBChildren: randomInt(1, 2), + hasNested: randomBool(0.6), + nestedDepth: randomInt(1, 3), + hasRejoin: randomBool(0.5), + hasOrphan: randomBool(0.7), + }; + + current.parentId = openSpan(`Parent-${parentIndex}`); + nestedIds = []; // Reset nested tracking + break; + } + + case 1: + if (current.flags.hasForkA) { + current.forkAId = openSpan( + `Parent-${parentIndex}-Fork-A`, + current.parentId, + ); + } + break; + + case 2: + case 3: + if (current.flags.hasForkA && step - 2 < current.flags.forkAChildren) { + const id = openSpan(`Fork-A-Span-${step - 1}`, current.forkAId); + closeSpan(id); + } + break; + + case 4: + if (current.flags.hasForkA) closeSpan(current.forkAId!); + break; + + case 5: + if (current.flags.hasForkB) { + current.forkBId = openSpan( + `Parent-${parentIndex}-Fork-B`, + current.parentId, + ); + } + break; + + case 6: + case 7: + if (current.flags.hasForkB && step - 6 < current.flags.forkBChildren) { + const id = openSpan(`Fork-B-Span-${step - 5}`, current.forkBId); + closeSpan(id); + } + break; + + case 8: + if (current.flags.hasForkB) closeSpan(current.forkBId!); + break; + + // Dynamically open nested spans with randomized depth and better naming + case 9: { + if (current.flags.hasNested) { + let lastId = current.parentId!; + for (let i = 1; i <= current.flags.nestedDepth; i++) { + const label = `Async-Job-${i}`; + const id = openSpan(label, lastId); + nestedIds.push(id); + lastId = id; + } + } + break; + } + + // Close nested spans in reverse order + case 10: { + if (nestedIds.length > 0) { + const toClose = nestedIds.pop(); + if (toClose) closeSpan(toClose); + } + break; + } + + case 11: + if (nestedIds.length > 0) { + const toClose = nestedIds.pop(); + if (toClose) closeSpan(toClose); + } + break; + + case 12: + if (nestedIds.length > 0) { + const toClose = nestedIds.pop(); + if (toClose) closeSpan(toClose); + } + break; + + case 13: + if (current.flags.hasRejoin) { + const merge = openSpan( + `[Rejoins-Fork-${parentIndex}]`, + current.parentId, + ); + closeSpan(merge); + } + break; + + case 14: + if (current.flags.hasOrphan) { + const orphan = openSpan(`Orphan-${parentIndex}`); + closeSpan(orphan); + } + break; + + case 15: + closeSpan(current.parentId!); + break; + + case 16: + parentIndex++; + step = -1; + break; + } + + step++; +}, 200); diff --git a/tests/index.test.ts b/tests/index.test.ts index 12c6ba7..656c91b 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -1,11 +1,12 @@ import process from 'node:process'; -import Logger, { +import Logger from '../dist/index.js'; +import { LogLevel, ConsoleErrHandler, ConsoleOutHandler, StreamHandler, formatting, -} from '#index.js'; +} from '../dist/index.js'; describe('index', () => { beforeEach(() => { diff --git a/tsconfig.build.json b/tsconfig.build.json index 724de44..f71699f 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -2,7 +2,9 @@ "extends": "./tsconfig.json", "compilerOptions": { "rootDir": "./src", + "outDir": "./dist", "noEmit": false, + "allowImportingTsExtensions": false, "stripInternal": true }, "exclude": [ diff --git a/tsconfig.json b/tsconfig.json index 28138ae..2108c19 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ "noImplicitAny": false, "esModuleInterop": true, "allowSyntheticDefaultImports": true, + "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, "moduleResolution": "NodeNext", From 93e818f7c32108c0281338fa647931e4e1e8a23c Mon Sep 17 00:00:00 2001 From: Abby010 Date: Mon, 7 Apr 2025 12:24:18 +1000 Subject: [PATCH 5/7] feat: introduce tracer with JSONL and TUI support --- spans.json | 1032 ++++++++++++++++++++++--------------- spans.jsonl | 81 +++ src/bin/cli.tsx | 8 +- src/lib/Tracer.ts | 66 +++ src/lib/tracingManager.ts | 75 +-- 5 files changed, 769 insertions(+), 493 deletions(-) create mode 100644 spans.jsonl create mode 100644 src/lib/Tracer.ts diff --git a/spans.json b/spans.json index 2bafd49..5f15784 100644 --- a/spans.json +++ b/spans.json @@ -1,62 +1,144 @@ [ { - "spanId": "span-1743479766707-mlqut", + "spanId": "span-1743992195068-kl1k6", "name": "Parent-0", - "startTime": 1743479766707, - "endTime": 1743479769715, + "startTime": 1743992195068, + "endTime": 1743992198072, "isCompleted": true, "children": [ { - "spanId": "span-1743479766907-jc8cv", - "name": "Parent-0-Fork-A", - "startTime": 1743479766907, - "endTime": 1743479767510, - "parentSpanId": "span-1743479766707-mlqut", + "spanId": "span-1743992196070-4pboo", + "name": "Parent-0-Fork-B", + "startTime": 1743992196070, + "endTime": 1743992196670, + "parentSpanId": "span-1743992195068-kl1k6", "isCompleted": true, "children": [ { - "spanId": "span-1743479767108-v1m71", + "spanId": "span-1743992196269-bdang", + "name": "Fork-B-Span-1", + "startTime": 1743992196269, + "endTime": 1743992196270, + "parentSpanId": "span-1743992196070-4pboo", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743992197671-i1in7", + "name": "[Rejoins-Fork-0]", + "startTime": 1743992197671, + "endTime": 1743992197672, + "parentSpanId": "span-1743992195068-kl1k6", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743992196070-4pboo", + "name": "Parent-0-Fork-B", + "startTime": 1743992196070, + "endTime": 1743992196670, + "parentSpanId": "span-1743992195068-kl1k6", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992196269-bdang", + "name": "Fork-B-Span-1", + "startTime": 1743992196269, + "endTime": 1743992196270, + "parentSpanId": "span-1743992196070-4pboo", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743992196269-bdang", + "name": "Fork-B-Span-1", + "startTime": 1743992196269, + "endTime": 1743992196270, + "parentSpanId": "span-1743992196070-4pboo", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992197671-i1in7", + "name": "[Rejoins-Fork-0]", + "startTime": 1743992197671, + "endTime": 1743992197672, + "parentSpanId": "span-1743992195068-kl1k6", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992197872-pm27v", + "name": "Orphan-0", + "startTime": 1743992197872, + "endTime": 1743992197872, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992198473-svndh", + "name": "Parent-1", + "startTime": 1743992198473, + "endTime": 1743992201479, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992198674-xl6ox", + "name": "Parent-1-Fork-A", + "startTime": 1743992198674, + "endTime": 1743992199273, + "parentSpanId": "span-1743992198473-svndh", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992198873-r8ja1", "name": "Fork-A-Span-1", - "startTime": 1743479767108, - "endTime": 1743479767109, - "parentSpanId": "span-1743479766907-jc8cv", + "startTime": 1743992198873, + "endTime": 1743992198874, + "parentSpanId": "span-1743992198674-xl6ox", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479767309-4fx70", + "spanId": "span-1743992199073-1xz13", "name": "Fork-A-Span-2", - "startTime": 1743479767309, - "endTime": 1743479767309, - "parentSpanId": "span-1743479766907-jc8cv", + "startTime": 1743992199073, + "endTime": 1743992199074, + "parentSpanId": "span-1743992198674-xl6ox", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479767710-xjjvc", - "name": "Parent-0-Fork-B", - "startTime": 1743479767710, - "endTime": 1743479768312, - "parentSpanId": "span-1743479766707-mlqut", + "spanId": "span-1743992199474-v1782", + "name": "Parent-1-Fork-B", + "startTime": 1743992199474, + "endTime": 1743992200076, + "parentSpanId": "span-1743992198473-svndh", "isCompleted": true, "children": [ { - "spanId": "span-1743479767911-v9lbc", + "spanId": "span-1743992199675-4cw4h", "name": "Fork-B-Span-1", - "startTime": 1743479767911, - "endTime": 1743479767911, - "parentSpanId": "span-1743479767710-xjjvc", + "startTime": 1743992199675, + "endTime": 1743992199675, + "parentSpanId": "span-1743992199474-v1782", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479768111-9hdno", + "spanId": "span-1743992199875-m71og", "name": "Fork-B-Span-2", - "startTime": 1743479768112, - "endTime": 1743479768112, - "parentSpanId": "span-1743479767710-xjjvc", + "startTime": 1743992199875, + "endTime": 1743992199875, + "parentSpanId": "span-1743992199474-v1782", "isCompleted": true, "children": [] } @@ -65,711 +147,817 @@ ] }, { - "spanId": "span-1743479766907-jc8cv", - "name": "Parent-0-Fork-A", - "startTime": 1743479766907, - "endTime": 1743479767510, - "parentSpanId": "span-1743479766707-mlqut", + "spanId": "span-1743992198674-xl6ox", + "name": "Parent-1-Fork-A", + "startTime": 1743992198674, + "endTime": 1743992199273, + "parentSpanId": "span-1743992198473-svndh", "isCompleted": true, "children": [ { - "spanId": "span-1743479767108-v1m71", + "spanId": "span-1743992198873-r8ja1", "name": "Fork-A-Span-1", - "startTime": 1743479767108, - "endTime": 1743479767109, - "parentSpanId": "span-1743479766907-jc8cv", + "startTime": 1743992198873, + "endTime": 1743992198874, + "parentSpanId": "span-1743992198674-xl6ox", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479767309-4fx70", + "spanId": "span-1743992199073-1xz13", "name": "Fork-A-Span-2", - "startTime": 1743479767309, - "endTime": 1743479767309, - "parentSpanId": "span-1743479766907-jc8cv", + "startTime": 1743992199073, + "endTime": 1743992199074, + "parentSpanId": "span-1743992198674-xl6ox", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479767108-v1m71", + "spanId": "span-1743992198873-r8ja1", "name": "Fork-A-Span-1", - "startTime": 1743479767108, - "endTime": 1743479767109, - "parentSpanId": "span-1743479766907-jc8cv", + "startTime": 1743992198873, + "endTime": 1743992198874, + "parentSpanId": "span-1743992198674-xl6ox", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479767309-4fx70", + "spanId": "span-1743992199073-1xz13", "name": "Fork-A-Span-2", - "startTime": 1743479767309, - "endTime": 1743479767309, - "parentSpanId": "span-1743479766907-jc8cv", + "startTime": 1743992199073, + "endTime": 1743992199074, + "parentSpanId": "span-1743992198674-xl6ox", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479767710-xjjvc", - "name": "Parent-0-Fork-B", - "startTime": 1743479767710, - "endTime": 1743479768312, - "parentSpanId": "span-1743479766707-mlqut", + "spanId": "span-1743992199474-v1782", + "name": "Parent-1-Fork-B", + "startTime": 1743992199474, + "endTime": 1743992200076, + "parentSpanId": "span-1743992198473-svndh", "isCompleted": true, "children": [ { - "spanId": "span-1743479767911-v9lbc", + "spanId": "span-1743992199675-4cw4h", "name": "Fork-B-Span-1", - "startTime": 1743479767911, - "endTime": 1743479767911, - "parentSpanId": "span-1743479767710-xjjvc", + "startTime": 1743992199675, + "endTime": 1743992199675, + "parentSpanId": "span-1743992199474-v1782", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479768111-9hdno", + "spanId": "span-1743992199875-m71og", "name": "Fork-B-Span-2", - "startTime": 1743479768112, - "endTime": 1743479768112, - "parentSpanId": "span-1743479767710-xjjvc", + "startTime": 1743992199875, + "endTime": 1743992199875, + "parentSpanId": "span-1743992199474-v1782", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479767911-v9lbc", + "spanId": "span-1743992199675-4cw4h", "name": "Fork-B-Span-1", - "startTime": 1743479767911, - "endTime": 1743479767911, - "parentSpanId": "span-1743479767710-xjjvc", + "startTime": 1743992199675, + "endTime": 1743992199675, + "parentSpanId": "span-1743992199474-v1782", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479768111-9hdno", + "spanId": "span-1743992199875-m71og", "name": "Fork-B-Span-2", - "startTime": 1743479768112, - "endTime": 1743479768112, - "parentSpanId": "span-1743479767710-xjjvc", + "startTime": 1743992199875, + "endTime": 1743992199875, + "parentSpanId": "span-1743992199474-v1782", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479770116-ytgly", - "name": "Parent-1", - "startTime": 1743479770116, - "endTime": 1743479773119, + "spanId": "span-1743992201278-zq10b", + "name": "Orphan-1", + "startTime": 1743992201278, + "endTime": 1743992201279, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992201879-5xgi0", + "name": "Parent-2", + "startTime": 1743992201879, + "endTime": 1743992204882, "isCompleted": true, "children": [ { - "spanId": "span-1743479770315-wbhin", - "name": "Parent-1-Fork-A", - "startTime": 1743479770315, - "endTime": 1743479770915, - "parentSpanId": "span-1743479770116-ytgly", + "spanId": "span-1743992202079-eyaxj", + "name": "Parent-2-Fork-A", + "startTime": 1743992202079, + "endTime": 1743992202679, + "parentSpanId": "span-1743992201879-5xgi0", "isCompleted": true, "children": [ { - "spanId": "span-1743479770515-zrqhp", + "spanId": "span-1743992202278-991n8", "name": "Fork-A-Span-1", - "startTime": 1743479770515, - "endTime": 1743479770516, - "parentSpanId": "span-1743479770315-wbhin", + "startTime": 1743992202278, + "endTime": 1743992202278, + "parentSpanId": "span-1743992202079-eyaxj", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479770715-vhndu", + "spanId": "span-1743992202478-bsukb", "name": "Fork-A-Span-2", - "startTime": 1743479770716, - "endTime": 1743479770716, - "parentSpanId": "span-1743479770315-wbhin", + "startTime": 1743992202478, + "endTime": 1743992202479, + "parentSpanId": "span-1743992202079-eyaxj", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479771115-y1spq", - "name": "Parent-1-Fork-B", - "startTime": 1743479771115, - "endTime": 1743479771716, - "parentSpanId": "span-1743479770116-ytgly", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743479771315-5t3p1", - "name": "Fork-B-Span-1", - "startTime": 1743479771315, - "endTime": 1743479771316, - "parentSpanId": "span-1743479771115-y1spq", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743479771516-gn7wt", - "name": "Fork-B-Span-2", - "startTime": 1743479771516, - "endTime": 1743479771516, - "parentSpanId": "span-1743479771115-y1spq", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743479771916-n97cr", + "spanId": "span-1743992203679-tcm9f", "name": "Async-Job-1", - "startTime": 1743479771916, - "endTime": 1743479772318, - "parentSpanId": "span-1743479770116-ytgly", + "startTime": 1743992203679, + "endTime": 1743992204281, + "parentSpanId": "span-1743992201879-5xgi0", "isCompleted": true, "children": [ { - "spanId": "span-1743479771917-6q5mk", + "spanId": "span-1743992203680-c9p20", "name": "Async-Job-2", - "startTime": 1743479771917, - "endTime": 1743479772117, - "parentSpanId": "span-1743479771916-n97cr", + "startTime": 1743992203680, + "endTime": 1743992204080, + "parentSpanId": "span-1743992203679-tcm9f", "isCompleted": true, - "children": [] + "children": [ + { + "spanId": "span-1743992203680-at16t", + "name": "Async-Job-3", + "startTime": 1743992203680, + "endTime": 1743992203880, + "parentSpanId": "span-1743992203680-c9p20", + "isCompleted": true, + "children": [] + } + ] } ] } ] }, { - "spanId": "span-1743479770315-wbhin", - "name": "Parent-1-Fork-A", - "startTime": 1743479770315, - "endTime": 1743479770915, - "parentSpanId": "span-1743479770116-ytgly", + "spanId": "span-1743992202079-eyaxj", + "name": "Parent-2-Fork-A", + "startTime": 1743992202079, + "endTime": 1743992202679, + "parentSpanId": "span-1743992201879-5xgi0", "isCompleted": true, "children": [ { - "spanId": "span-1743479770515-zrqhp", + "spanId": "span-1743992202278-991n8", "name": "Fork-A-Span-1", - "startTime": 1743479770515, - "endTime": 1743479770516, - "parentSpanId": "span-1743479770315-wbhin", + "startTime": 1743992202278, + "endTime": 1743992202278, + "parentSpanId": "span-1743992202079-eyaxj", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479770715-vhndu", + "spanId": "span-1743992202478-bsukb", "name": "Fork-A-Span-2", - "startTime": 1743479770716, - "endTime": 1743479770716, - "parentSpanId": "span-1743479770315-wbhin", + "startTime": 1743992202478, + "endTime": 1743992202479, + "parentSpanId": "span-1743992202079-eyaxj", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479770515-zrqhp", + "spanId": "span-1743992202278-991n8", "name": "Fork-A-Span-1", - "startTime": 1743479770515, - "endTime": 1743479770516, - "parentSpanId": "span-1743479770315-wbhin", + "startTime": 1743992202278, + "endTime": 1743992202278, + "parentSpanId": "span-1743992202079-eyaxj", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479770715-vhndu", + "spanId": "span-1743992202478-bsukb", "name": "Fork-A-Span-2", - "startTime": 1743479770716, - "endTime": 1743479770716, - "parentSpanId": "span-1743479770315-wbhin", + "startTime": 1743992202478, + "endTime": 1743992202479, + "parentSpanId": "span-1743992202079-eyaxj", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479771115-y1spq", - "name": "Parent-1-Fork-B", - "startTime": 1743479771115, - "endTime": 1743479771716, - "parentSpanId": "span-1743479770116-ytgly", + "spanId": "span-1743992203679-tcm9f", + "name": "Async-Job-1", + "startTime": 1743992203679, + "endTime": 1743992204281, + "parentSpanId": "span-1743992201879-5xgi0", "isCompleted": true, "children": [ { - "spanId": "span-1743479771315-5t3p1", - "name": "Fork-B-Span-1", - "startTime": 1743479771315, - "endTime": 1743479771316, - "parentSpanId": "span-1743479771115-y1spq", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743479771516-gn7wt", - "name": "Fork-B-Span-2", - "startTime": 1743479771516, - "endTime": 1743479771516, - "parentSpanId": "span-1743479771115-y1spq", + "spanId": "span-1743992203680-c9p20", + "name": "Async-Job-2", + "startTime": 1743992203680, + "endTime": 1743992204080, + "parentSpanId": "span-1743992203679-tcm9f", "isCompleted": true, - "children": [] + "children": [ + { + "spanId": "span-1743992203680-at16t", + "name": "Async-Job-3", + "startTime": 1743992203680, + "endTime": 1743992203880, + "parentSpanId": "span-1743992203680-c9p20", + "isCompleted": true, + "children": [] + } + ] } ] }, { - "spanId": "span-1743479771315-5t3p1", - "name": "Fork-B-Span-1", - "startTime": 1743479771315, - "endTime": 1743479771316, - "parentSpanId": "span-1743479771115-y1spq", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743479771516-gn7wt", - "name": "Fork-B-Span-2", - "startTime": 1743479771516, - "endTime": 1743479771516, - "parentSpanId": "span-1743479771115-y1spq", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743479771916-n97cr", - "name": "Async-Job-1", - "startTime": 1743479771916, - "endTime": 1743479772318, - "parentSpanId": "span-1743479770116-ytgly", + "spanId": "span-1743992203680-c9p20", + "name": "Async-Job-2", + "startTime": 1743992203680, + "endTime": 1743992204080, + "parentSpanId": "span-1743992203679-tcm9f", "isCompleted": true, "children": [ { - "spanId": "span-1743479771917-6q5mk", - "name": "Async-Job-2", - "startTime": 1743479771917, - "endTime": 1743479772117, - "parentSpanId": "span-1743479771916-n97cr", + "spanId": "span-1743992203680-at16t", + "name": "Async-Job-3", + "startTime": 1743992203680, + "endTime": 1743992203880, + "parentSpanId": "span-1743992203680-c9p20", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479771917-6q5mk", - "name": "Async-Job-2", - "startTime": 1743479771917, - "endTime": 1743479772117, - "parentSpanId": "span-1743479771916-n97cr", + "spanId": "span-1743992203680-at16t", + "name": "Async-Job-3", + "startTime": 1743992203680, + "endTime": 1743992203880, + "parentSpanId": "span-1743992203680-c9p20", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479772919-vp73l", - "name": "Orphan-1", - "startTime": 1743479772919, - "endTime": 1743479772920, + "spanId": "span-1743992204681-vuuiz", + "name": "Orphan-2", + "startTime": 1743992204681, + "endTime": 1743992204681, "isCompleted": true, "children": [] }, { - "spanId": "span-1743479773520-t2x1x", - "name": "Parent-2", - "startTime": 1743479773520, - "endTime": 1743479776528, + "spanId": "span-1743992205283-1jsl5", + "name": "Parent-3", + "startTime": 1743992205283, + "endTime": 1743992208291, "isCompleted": true, "children": [ { - "spanId": "span-1743479773721-2co66", - "name": "Parent-2-Fork-A", - "startTime": 1743479773721, - "endTime": 1743479774321, - "parentSpanId": "span-1743479773520-t2x1x", + "spanId": "span-1743992205483-bygs3", + "name": "Parent-3-Fork-A", + "startTime": 1743992205483, + "endTime": 1743992206085, + "parentSpanId": "span-1743992205283-1jsl5", "isCompleted": true, "children": [ { - "spanId": "span-1743479773921-7z5ki", + "spanId": "span-1743992205684-kme5c", "name": "Fork-A-Span-1", - "startTime": 1743479773921, - "endTime": 1743479773922, - "parentSpanId": "span-1743479773721-2co66", + "startTime": 1743992205684, + "endTime": 1743992205684, + "parentSpanId": "span-1743992205483-bygs3", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479774121-izy4a", + "spanId": "span-1743992205884-n9ea4", "name": "Fork-A-Span-2", - "startTime": 1743479774122, - "endTime": 1743479774122, - "parentSpanId": "span-1743479773721-2co66", + "startTime": 1743992205884, + "endTime": 1743992205885, + "parentSpanId": "span-1743992205483-bygs3", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479774522-kbzbe", - "name": "Parent-2-Fork-B", - "startTime": 1743479774522, - "endTime": 1743479775124, - "parentSpanId": "span-1743479773520-t2x1x", + "spanId": "span-1743992206286-n5p1j", + "name": "Parent-3-Fork-B", + "startTime": 1743992206286, + "endTime": 1743992206888, + "parentSpanId": "span-1743992205283-1jsl5", "isCompleted": true, "children": [ { - "spanId": "span-1743479774723-606o9", + "spanId": "span-1743992206487-le9n8", "name": "Fork-B-Span-1", - "startTime": 1743479774723, - "endTime": 1743479774724, - "parentSpanId": "span-1743479774522-kbzbe", + "startTime": 1743992206487, + "endTime": 1743992206487, + "parentSpanId": "span-1743992206286-n5p1j", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479776127-nrhwp", - "name": "[Rejoins-Fork-2]", - "startTime": 1743479776127, - "endTime": 1743479776128, - "parentSpanId": "span-1743479773520-t2x1x", + "spanId": "span-1743992207088-fcctn", + "name": "Async-Job-1", + "startTime": 1743992207088, + "endTime": 1743992207289, + "parentSpanId": "span-1743992205283-1jsl5", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479773721-2co66", - "name": "Parent-2-Fork-A", - "startTime": 1743479773721, - "endTime": 1743479774321, - "parentSpanId": "span-1743479773520-t2x1x", + "spanId": "span-1743992205483-bygs3", + "name": "Parent-3-Fork-A", + "startTime": 1743992205483, + "endTime": 1743992206085, + "parentSpanId": "span-1743992205283-1jsl5", "isCompleted": true, "children": [ { - "spanId": "span-1743479773921-7z5ki", + "spanId": "span-1743992205684-kme5c", "name": "Fork-A-Span-1", - "startTime": 1743479773921, - "endTime": 1743479773922, - "parentSpanId": "span-1743479773721-2co66", + "startTime": 1743992205684, + "endTime": 1743992205684, + "parentSpanId": "span-1743992205483-bygs3", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479774121-izy4a", + "spanId": "span-1743992205884-n9ea4", "name": "Fork-A-Span-2", - "startTime": 1743479774122, - "endTime": 1743479774122, - "parentSpanId": "span-1743479773721-2co66", + "startTime": 1743992205884, + "endTime": 1743992205885, + "parentSpanId": "span-1743992205483-bygs3", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479773921-7z5ki", + "spanId": "span-1743992205684-kme5c", "name": "Fork-A-Span-1", - "startTime": 1743479773921, - "endTime": 1743479773922, - "parentSpanId": "span-1743479773721-2co66", + "startTime": 1743992205684, + "endTime": 1743992205684, + "parentSpanId": "span-1743992205483-bygs3", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479774121-izy4a", + "spanId": "span-1743992205884-n9ea4", "name": "Fork-A-Span-2", - "startTime": 1743479774122, - "endTime": 1743479774122, - "parentSpanId": "span-1743479773721-2co66", + "startTime": 1743992205884, + "endTime": 1743992205885, + "parentSpanId": "span-1743992205483-bygs3", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479774522-kbzbe", - "name": "Parent-2-Fork-B", - "startTime": 1743479774522, - "endTime": 1743479775124, - "parentSpanId": "span-1743479773520-t2x1x", + "spanId": "span-1743992206286-n5p1j", + "name": "Parent-3-Fork-B", + "startTime": 1743992206286, + "endTime": 1743992206888, + "parentSpanId": "span-1743992205283-1jsl5", "isCompleted": true, "children": [ { - "spanId": "span-1743479774723-606o9", + "spanId": "span-1743992206487-le9n8", "name": "Fork-B-Span-1", - "startTime": 1743479774723, - "endTime": 1743479774724, - "parentSpanId": "span-1743479774522-kbzbe", + "startTime": 1743992206487, + "endTime": 1743992206487, + "parentSpanId": "span-1743992206286-n5p1j", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479774723-606o9", + "spanId": "span-1743992206487-le9n8", "name": "Fork-B-Span-1", - "startTime": 1743479774723, - "endTime": 1743479774724, - "parentSpanId": "span-1743479774522-kbzbe", + "startTime": 1743992206487, + "endTime": 1743992206487, + "parentSpanId": "span-1743992206286-n5p1j", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479776127-nrhwp", - "name": "[Rejoins-Fork-2]", - "startTime": 1743479776127, - "endTime": 1743479776128, - "parentSpanId": "span-1743479773520-t2x1x", + "spanId": "span-1743992207088-fcctn", + "name": "Async-Job-1", + "startTime": 1743992207088, + "endTime": 1743992207289, + "parentSpanId": "span-1743992205283-1jsl5", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479776929-4pfs3", - "name": "Parent-3", - "startTime": 1743479776929, - "endTime": 1743479779933, + "spanId": "span-1743992208090-cwka7", + "name": "Orphan-3", + "startTime": 1743992208090, + "endTime": 1743992208090, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992208693-cca9a", + "name": "Parent-4", + "startTime": 1743992208693, + "endTime": 1743992211699, "isCompleted": true, "children": [ { - "spanId": "span-1743479777129-pisgp", - "name": "Parent-3-Fork-A", - "startTime": 1743479777129, - "endTime": 1743479777729, - "parentSpanId": "span-1743479776929-4pfs3", + "spanId": "span-1743992208893-3njyf", + "name": "Parent-4-Fork-A", + "startTime": 1743992208893, + "endTime": 1743992209495, + "parentSpanId": "span-1743992208693-cca9a", "isCompleted": true, "children": [ { - "spanId": "span-1743479777329-yot2w", + "spanId": "span-1743992209094-ywdm8", "name": "Fork-A-Span-1", - "startTime": 1743479777329, - "endTime": 1743479777330, - "parentSpanId": "span-1743479777129-pisgp", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743479777529-ik5it", - "name": "Fork-A-Span-2", - "startTime": 1743479777529, - "endTime": 1743479777530, - "parentSpanId": "span-1743479777129-pisgp", + "startTime": 1743992209094, + "endTime": 1743992209095, + "parentSpanId": "span-1743992208893-3njyf", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479778731-ju1kx", - "name": "Async-Job-1", - "startTime": 1743479778731, - "endTime": 1743479778931, - "parentSpanId": "span-1743479776929-4pfs3", + "spanId": "span-1743992209696-02gb5", + "name": "Parent-4-Fork-B", + "startTime": 1743992209696, + "endTime": 1743992210297, + "parentSpanId": "span-1743992208693-cca9a", "isCompleted": true, - "children": [] + "children": [ + { + "spanId": "span-1743992209896-jxv50", + "name": "Fork-B-Span-1", + "startTime": 1743992209896, + "endTime": 1743992209896, + "parentSpanId": "span-1743992209696-02gb5", + "isCompleted": true, + "children": [] + } + ] } ] }, { - "spanId": "span-1743479777129-pisgp", - "name": "Parent-3-Fork-A", - "startTime": 1743479777129, - "endTime": 1743479777729, - "parentSpanId": "span-1743479776929-4pfs3", + "spanId": "span-1743992208893-3njyf", + "name": "Parent-4-Fork-A", + "startTime": 1743992208893, + "endTime": 1743992209495, + "parentSpanId": "span-1743992208693-cca9a", "isCompleted": true, "children": [ { - "spanId": "span-1743479777329-yot2w", + "spanId": "span-1743992209094-ywdm8", "name": "Fork-A-Span-1", - "startTime": 1743479777329, - "endTime": 1743479777330, - "parentSpanId": "span-1743479777129-pisgp", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743479777529-ik5it", - "name": "Fork-A-Span-2", - "startTime": 1743479777529, - "endTime": 1743479777530, - "parentSpanId": "span-1743479777129-pisgp", + "startTime": 1743992209094, + "endTime": 1743992209095, + "parentSpanId": "span-1743992208893-3njyf", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479777329-yot2w", + "spanId": "span-1743992209094-ywdm8", "name": "Fork-A-Span-1", - "startTime": 1743479777329, - "endTime": 1743479777330, - "parentSpanId": "span-1743479777129-pisgp", + "startTime": 1743992209094, + "endTime": 1743992209095, + "parentSpanId": "span-1743992208893-3njyf", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479777529-ik5it", - "name": "Fork-A-Span-2", - "startTime": 1743479777529, - "endTime": 1743479777530, - "parentSpanId": "span-1743479777129-pisgp", + "spanId": "span-1743992209696-02gb5", + "name": "Parent-4-Fork-B", + "startTime": 1743992209696, + "endTime": 1743992210297, + "parentSpanId": "span-1743992208693-cca9a", "isCompleted": true, - "children": [] + "children": [ + { + "spanId": "span-1743992209896-jxv50", + "name": "Fork-B-Span-1", + "startTime": 1743992209896, + "endTime": 1743992209896, + "parentSpanId": "span-1743992209696-02gb5", + "isCompleted": true, + "children": [] + } + ] }, { - "spanId": "span-1743479778731-ju1kx", - "name": "Async-Job-1", - "startTime": 1743479778731, - "endTime": 1743479778931, - "parentSpanId": "span-1743479776929-4pfs3", + "spanId": "span-1743992209896-jxv50", + "name": "Fork-B-Span-1", + "startTime": 1743992209896, + "endTime": 1743992209896, + "parentSpanId": "span-1743992209696-02gb5", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479780335-2t15c", - "name": "Parent-4", - "startTime": 1743479780335, - "isCompleted": false, + "spanId": "span-1743992212100-xjnhq", + "name": "Parent-5", + "startTime": 1743992212100, + "endTime": 1743992215105, + "isCompleted": true, "children": [ { - "spanId": "span-1743479780534-9ccdj", - "name": "Parent-4-Fork-A", - "startTime": 1743479780534, - "endTime": 1743479781134, - "parentSpanId": "span-1743479780335-2t15c", + "spanId": "span-1743992212300-jrbxz", + "name": "Parent-5-Fork-A", + "startTime": 1743992212300, + "endTime": 1743992212900, + "parentSpanId": "span-1743992212100-xjnhq", "isCompleted": true, "children": [ { - "spanId": "span-1743479780735-67zqb", + "spanId": "span-1743992212500-75m4t", "name": "Fork-A-Span-1", - "startTime": 1743479780735, - "endTime": 1743479780735, - "parentSpanId": "span-1743479780534-9ccdj", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743479780934-d7qtu", - "name": "Fork-A-Span-2", - "startTime": 1743479780934, - "endTime": 1743479780935, - "parentSpanId": "span-1743479780534-9ccdj", + "startTime": 1743992212500, + "endTime": 1743992212500, + "parentSpanId": "span-1743992212300-jrbxz", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479781334-raxbw", - "name": "Parent-4-Fork-B", - "startTime": 1743479781334, - "endTime": 1743479781934, - "parentSpanId": "span-1743479780335-2t15c", + "spanId": "span-1743992213100-wijua", + "name": "Parent-5-Fork-B", + "startTime": 1743992213100, + "endTime": 1743992213701, + "parentSpanId": "span-1743992212100-xjnhq", "isCompleted": true, "children": [ { - "spanId": "span-1743479781534-rorno", + "spanId": "span-1743992213301-e1gvs", "name": "Fork-B-Span-1", - "startTime": 1743479781534, - "endTime": 1743479781535, - "parentSpanId": "span-1743479781334-raxbw", + "startTime": 1743992213301, + "endTime": 1743992213302, + "parentSpanId": "span-1743992213100-wijua", "isCompleted": true, "children": [] - }, + } + ] + }, + { + "spanId": "span-1743992213902-sncot", + "name": "Async-Job-1", + "startTime": 1743992213902, + "endTime": 1743992214503, + "parentSpanId": "span-1743992212100-xjnhq", + "isCompleted": true, + "children": [ { - "spanId": "span-1743479781734-k83qs", - "name": "Fork-B-Span-2", - "startTime": 1743479781734, - "endTime": 1743479781735, - "parentSpanId": "span-1743479781334-raxbw", + "spanId": "span-1743992213903-al99g", + "name": "Async-Job-2", + "startTime": 1743992213903, + "endTime": 1743992214303, + "parentSpanId": "span-1743992213902-sncot", "isCompleted": true, - "children": [] + "children": [ + { + "spanId": "span-1743992213904-o5rjl", + "name": "Async-Job-3", + "startTime": 1743992213904, + "endTime": 1743992214103, + "parentSpanId": "span-1743992213903-al99g", + "isCompleted": true, + "children": [] + } + ] } ] } ] }, { - "spanId": "span-1743479780534-9ccdj", - "name": "Parent-4-Fork-A", - "startTime": 1743479780534, - "endTime": 1743479781134, - "parentSpanId": "span-1743479780335-2t15c", + "spanId": "span-1743992212300-jrbxz", + "name": "Parent-5-Fork-A", + "startTime": 1743992212300, + "endTime": 1743992212900, + "parentSpanId": "span-1743992212100-xjnhq", "isCompleted": true, "children": [ { - "spanId": "span-1743479780735-67zqb", + "spanId": "span-1743992212500-75m4t", "name": "Fork-A-Span-1", - "startTime": 1743479780735, - "endTime": 1743479780735, - "parentSpanId": "span-1743479780534-9ccdj", + "startTime": 1743992212500, + "endTime": 1743992212500, + "parentSpanId": "span-1743992212300-jrbxz", "isCompleted": true, "children": [] - }, + } + ] + }, + { + "spanId": "span-1743992212500-75m4t", + "name": "Fork-A-Span-1", + "startTime": 1743992212500, + "endTime": 1743992212500, + "parentSpanId": "span-1743992212300-jrbxz", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992213100-wijua", + "name": "Parent-5-Fork-B", + "startTime": 1743992213100, + "endTime": 1743992213701, + "parentSpanId": "span-1743992212100-xjnhq", + "isCompleted": true, + "children": [ { - "spanId": "span-1743479780934-d7qtu", - "name": "Fork-A-Span-2", - "startTime": 1743479780934, - "endTime": 1743479780935, - "parentSpanId": "span-1743479780534-9ccdj", + "spanId": "span-1743992213301-e1gvs", + "name": "Fork-B-Span-1", + "startTime": 1743992213301, + "endTime": 1743992213302, + "parentSpanId": "span-1743992213100-wijua", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479780735-67zqb", - "name": "Fork-A-Span-1", - "startTime": 1743479780735, - "endTime": 1743479780735, - "parentSpanId": "span-1743479780534-9ccdj", + "spanId": "span-1743992213301-e1gvs", + "name": "Fork-B-Span-1", + "startTime": 1743992213301, + "endTime": 1743992213302, + "parentSpanId": "span-1743992213100-wijua", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479780934-d7qtu", - "name": "Fork-A-Span-2", - "startTime": 1743479780934, - "endTime": 1743479780935, - "parentSpanId": "span-1743479780534-9ccdj", + "spanId": "span-1743992213902-sncot", + "name": "Async-Job-1", + "startTime": 1743992213902, + "endTime": 1743992214503, + "parentSpanId": "span-1743992212100-xjnhq", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992213903-al99g", + "name": "Async-Job-2", + "startTime": 1743992213903, + "endTime": 1743992214303, + "parentSpanId": "span-1743992213902-sncot", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992213904-o5rjl", + "name": "Async-Job-3", + "startTime": 1743992213904, + "endTime": 1743992214103, + "parentSpanId": "span-1743992213903-al99g", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743992213903-al99g", + "name": "Async-Job-2", + "startTime": 1743992213903, + "endTime": 1743992214303, + "parentSpanId": "span-1743992213902-sncot", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992213904-o5rjl", + "name": "Async-Job-3", + "startTime": 1743992213904, + "endTime": 1743992214103, + "parentSpanId": "span-1743992213903-al99g", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743992213904-o5rjl", + "name": "Async-Job-3", + "startTime": 1743992213904, + "endTime": 1743992214103, + "parentSpanId": "span-1743992213903-al99g", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479781334-raxbw", - "name": "Parent-4-Fork-B", - "startTime": 1743479781334, - "endTime": 1743479781934, - "parentSpanId": "span-1743479780335-2t15c", + "spanId": "span-1743992214904-unlf7", + "name": "Orphan-5", + "startTime": 1743992214904, + "endTime": 1743992214904, "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992215506-jod4m", + "name": "Parent-6", + "startTime": 1743992215506, + "isCompleted": false, "children": [ { - "spanId": "span-1743479781534-rorno", - "name": "Fork-B-Span-1", - "startTime": 1743479781534, - "endTime": 1743479781535, - "parentSpanId": "span-1743479781334-raxbw", + "spanId": "span-1743992215706-sc2ou", + "name": "Parent-6-Fork-A", + "startTime": 1743992215706, + "endTime": 1743992216308, + "parentSpanId": "span-1743992215506-jod4m", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992215907-cmek8", + "name": "Fork-A-Span-1", + "startTime": 1743992215907, + "endTime": 1743992215907, + "parentSpanId": "span-1743992215706-sc2ou", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743992216107-d7no1", + "name": "Fork-A-Span-2", + "startTime": 1743992216107, + "endTime": 1743992216108, + "parentSpanId": "span-1743992215706-sc2ou", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743992215706-sc2ou", + "name": "Parent-6-Fork-A", + "startTime": 1743992215706, + "endTime": 1743992216308, + "parentSpanId": "span-1743992215506-jod4m", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743992215907-cmek8", + "name": "Fork-A-Span-1", + "startTime": 1743992215907, + "endTime": 1743992215907, + "parentSpanId": "span-1743992215706-sc2ou", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479781734-k83qs", - "name": "Fork-B-Span-2", - "startTime": 1743479781734, - "endTime": 1743479781735, - "parentSpanId": "span-1743479781334-raxbw", + "spanId": "span-1743992216107-d7no1", + "name": "Fork-A-Span-2", + "startTime": 1743992216107, + "endTime": 1743992216108, + "parentSpanId": "span-1743992215706-sc2ou", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743479781534-rorno", - "name": "Fork-B-Span-1", - "startTime": 1743479781534, - "endTime": 1743479781535, - "parentSpanId": "span-1743479781334-raxbw", + "spanId": "span-1743992215907-cmek8", + "name": "Fork-A-Span-1", + "startTime": 1743992215907, + "endTime": 1743992215907, + "parentSpanId": "span-1743992215706-sc2ou", "isCompleted": true, "children": [] }, { - "spanId": "span-1743479781734-k83qs", - "name": "Fork-B-Span-2", - "startTime": 1743479781734, - "endTime": 1743479781735, - "parentSpanId": "span-1743479781334-raxbw", + "spanId": "span-1743992216107-d7no1", + "name": "Fork-A-Span-2", + "startTime": 1743992216107, + "endTime": 1743992216108, + "parentSpanId": "span-1743992215706-sc2ou", "isCompleted": true, "children": [] } diff --git a/spans.jsonl b/spans.jsonl new file mode 100644 index 0000000..a0f1e87 --- /dev/null +++ b/spans.jsonl @@ -0,0 +1,81 @@ +{"spanId":"span-1743992109654-t170t","name":"Fork-A-Span-1","startTime":1743992109654,"endTime":1743992109654,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]} +{"spanId":"span-1743992109855-559f9","name":"Fork-A-Span-2","startTime":1743992109855,"endTime":1743992109855,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]} +{"spanId":"span-1743992109453-pcjv5","name":"Parent-0-Fork-A","startTime":1743992109453,"endTime":1743992110054,"parentSpanId":"span-1743992109252-fas1w","isCompleted":true,"children":[{"spanId":"span-1743992109654-t170t","name":"Fork-A-Span-1","startTime":1743992109654,"endTime":1743992109654,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]},{"spanId":"span-1743992109855-559f9","name":"Fork-A-Span-2","startTime":1743992109855,"endTime":1743992109855,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992109252-fas1w","name":"Parent-0","startTime":1743992109252,"endTime":1743992112258,"isCompleted":true,"children":[{"spanId":"span-1743992109453-pcjv5","name":"Parent-0-Fork-A","startTime":1743992109453,"endTime":1743992110054,"parentSpanId":"span-1743992109252-fas1w","isCompleted":true,"children":[{"spanId":"span-1743992109654-t170t","name":"Fork-A-Span-1","startTime":1743992109654,"endTime":1743992109654,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]},{"spanId":"span-1743992109855-559f9","name":"Fork-A-Span-2","startTime":1743992109855,"endTime":1743992109855,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743992113061-w76cq","name":"Fork-A-Span-1","startTime":1743992113061,"endTime":1743992113061,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]} +{"spanId":"span-1743992113262-0280q","name":"Fork-A-Span-2","startTime":1743992113262,"endTime":1743992113263,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]} +{"spanId":"span-1743992112860-jnh0z","name":"Parent-1-Fork-A","startTime":1743992112860,"endTime":1743992113463,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[{"spanId":"span-1743992113061-w76cq","name":"Fork-A-Span-1","startTime":1743992113061,"endTime":1743992113061,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]},{"spanId":"span-1743992113262-0280q","name":"Fork-A-Span-2","startTime":1743992113262,"endTime":1743992113263,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992114465-ozh8g","name":"Async-Job-1","startTime":1743992114465,"endTime":1743992114664,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[]} +{"spanId":"span-1743992115465-niqni","name":"Orphan-1","startTime":1743992115465,"endTime":1743992115466,"isCompleted":true,"children":[]} +{"spanId":"span-1743992112659-t13f1","name":"Parent-1","startTime":1743992112659,"endTime":1743992115665,"isCompleted":true,"children":[{"spanId":"span-1743992112860-jnh0z","name":"Parent-1-Fork-A","startTime":1743992112860,"endTime":1743992113463,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[{"spanId":"span-1743992113061-w76cq","name":"Fork-A-Span-1","startTime":1743992113061,"endTime":1743992113061,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]},{"spanId":"span-1743992113262-0280q","name":"Fork-A-Span-2","startTime":1743992113262,"endTime":1743992113263,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]}]},{"spanId":"span-1743992114465-ozh8g","name":"Async-Job-1","startTime":1743992114465,"endTime":1743992114664,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992116466-gp2xa","name":"Fork-A-Span-1","startTime":1743992116466,"endTime":1743992116467,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]} +{"spanId":"span-1743992116666-ilx68","name":"Fork-A-Span-2","startTime":1743992116666,"endTime":1743992116667,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]} +{"spanId":"span-1743992116267-yud3f","name":"Parent-2-Fork-A","startTime":1743992116267,"endTime":1743992116866,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992116466-gp2xa","name":"Fork-A-Span-1","startTime":1743992116466,"endTime":1743992116467,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]},{"spanId":"span-1743992116666-ilx68","name":"Fork-A-Span-2","startTime":1743992116666,"endTime":1743992116667,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992117266-yhwjv","name":"Fork-B-Span-1","startTime":1743992117266,"endTime":1743992117267,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]} +{"spanId":"span-1743992117467-6ri7u","name":"Fork-B-Span-2","startTime":1743992117467,"endTime":1743992117468,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]} +{"spanId":"span-1743992117066-q9hji","name":"Parent-2-Fork-B","startTime":1743992117066,"endTime":1743992117668,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992117266-yhwjv","name":"Fork-B-Span-1","startTime":1743992117266,"endTime":1743992117267,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]},{"spanId":"span-1743992117467-6ri7u","name":"Fork-B-Span-2","startTime":1743992117467,"endTime":1743992117468,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992118870-gawzu","name":"Orphan-2","startTime":1743992118870,"endTime":1743992118870,"isCompleted":true,"children":[]} +{"spanId":"span-1743992116066-xcf20","name":"Parent-2","startTime":1743992116066,"endTime":1743992119070,"isCompleted":true,"children":[{"spanId":"span-1743992116267-yud3f","name":"Parent-2-Fork-A","startTime":1743992116267,"endTime":1743992116866,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992116466-gp2xa","name":"Fork-A-Span-1","startTime":1743992116466,"endTime":1743992116467,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]},{"spanId":"span-1743992116666-ilx68","name":"Fork-A-Span-2","startTime":1743992116666,"endTime":1743992116667,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]}]},{"spanId":"span-1743992117066-q9hji","name":"Parent-2-Fork-B","startTime":1743992117066,"endTime":1743992117668,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992117266-yhwjv","name":"Fork-B-Span-1","startTime":1743992117266,"endTime":1743992117267,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]},{"spanId":"span-1743992117467-6ri7u","name":"Fork-B-Span-2","startTime":1743992117467,"endTime":1743992117468,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743992119871-gnja6","name":"Fork-A-Span-1","startTime":1743992119871,"endTime":1743992119872,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]} +{"spanId":"span-1743992120071-oc1ie","name":"Fork-A-Span-2","startTime":1743992120071,"endTime":1743992120072,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]} +{"spanId":"span-1743992119672-k1j5n","name":"Parent-3-Fork-A","startTime":1743992119672,"endTime":1743992120271,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992119871-gnja6","name":"Fork-A-Span-1","startTime":1743992119871,"endTime":1743992119872,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]},{"spanId":"span-1743992120071-oc1ie","name":"Fork-A-Span-2","startTime":1743992120071,"endTime":1743992120072,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992120672-l7vme","name":"Fork-B-Span-1","startTime":1743992120672,"endTime":1743992120673,"parentSpanId":"span-1743992120472-4256k","isCompleted":true,"children":[]} +{"spanId":"span-1743992120472-4256k","name":"Parent-3-Fork-B","startTime":1743992120472,"endTime":1743992121073,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992120672-l7vme","name":"Fork-B-Span-1","startTime":1743992120672,"endTime":1743992120673,"parentSpanId":"span-1743992120472-4256k","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992121274-my7mb","name":"Async-Job-1","startTime":1743992121274,"endTime":1743992121474,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]} +{"spanId":"span-1743992122075-ywiyg","name":"[Rejoins-Fork-3]","startTime":1743992122075,"endTime":1743992122076,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]} +{"spanId":"span-1743992122275-yf5w9","name":"Orphan-3","startTime":1743992122275,"endTime":1743992122275,"isCompleted":true,"children":[]} +{"spanId":"span-1743992119471-v6kz5","name":"Parent-3","startTime":1743992119471,"endTime":1743992122474,"isCompleted":true,"children":[{"spanId":"span-1743992119672-k1j5n","name":"Parent-3-Fork-A","startTime":1743992119672,"endTime":1743992120271,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992119871-gnja6","name":"Fork-A-Span-1","startTime":1743992119871,"endTime":1743992119872,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]},{"spanId":"span-1743992120071-oc1ie","name":"Fork-A-Span-2","startTime":1743992120071,"endTime":1743992120072,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]}]},{"spanId":"span-1743992120472-4256k","name":"Parent-3-Fork-B","startTime":1743992120472,"endTime":1743992121073,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992120672-l7vme","name":"Fork-B-Span-1","startTime":1743992120672,"endTime":1743992120673,"parentSpanId":"span-1743992120472-4256k","isCompleted":true,"children":[]}]},{"spanId":"span-1743992121274-my7mb","name":"Async-Job-1","startTime":1743992121274,"endTime":1743992121474,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]},{"spanId":"span-1743992122075-ywiyg","name":"[Rejoins-Fork-3]","startTime":1743992122075,"endTime":1743992122076,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992123276-s2pmm","name":"Fork-A-Span-1","startTime":1743992123276,"endTime":1743992123277,"parentSpanId":"span-1743992123075-oom37","isCompleted":true,"children":[]} +{"spanId":"span-1743992123075-oom37","name":"Parent-4-Fork-A","startTime":1743992123075,"endTime":1743992123677,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992123276-s2pmm","name":"Fork-A-Span-1","startTime":1743992123276,"endTime":1743992123277,"parentSpanId":"span-1743992123075-oom37","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992124078-u65cd","name":"Fork-B-Span-1","startTime":1743992124078,"endTime":1743992124079,"parentSpanId":"span-1743992123878-os4vf","isCompleted":true,"children":[]} +{"spanId":"span-1743992123878-os4vf","name":"Parent-4-Fork-B","startTime":1743992123878,"endTime":1743992124479,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992124078-u65cd","name":"Fork-B-Span-1","startTime":1743992124078,"endTime":1743992124079,"parentSpanId":"span-1743992123878-os4vf","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992125681-syrik","name":"Orphan-4","startTime":1743992125681,"endTime":1743992125681,"isCompleted":true,"children":[]} +{"spanId":"span-1743992122875-akzwr","name":"Parent-4","startTime":1743992122875,"endTime":1743992125882,"isCompleted":true,"children":[{"spanId":"span-1743992123075-oom37","name":"Parent-4-Fork-A","startTime":1743992123075,"endTime":1743992123677,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992123276-s2pmm","name":"Fork-A-Span-1","startTime":1743992123276,"endTime":1743992123277,"parentSpanId":"span-1743992123075-oom37","isCompleted":true,"children":[]}]},{"spanId":"span-1743992123878-os4vf","name":"Parent-4-Fork-B","startTime":1743992123878,"endTime":1743992124479,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992124078-u65cd","name":"Fork-B-Span-1","startTime":1743992124078,"endTime":1743992124079,"parentSpanId":"span-1743992123878-os4vf","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743992129088-udw8n","name":"Orphan-5","startTime":1743992129088,"endTime":1743992129089,"isCompleted":true,"children":[]} +{"spanId":"span-1743992126282-0pmcb","name":"Parent-5","startTime":1743992126282,"endTime":1743992129288,"isCompleted":true,"children":[]} +{"spanId":"span-1743992196269-bdang","name":"Fork-B-Span-1","startTime":1743992196269,"endTime":1743992196270,"parentSpanId":"span-1743992196070-4pboo","isCompleted":true,"children":[]} +{"spanId":"span-1743992196070-4pboo","name":"Parent-0-Fork-B","startTime":1743992196070,"endTime":1743992196670,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[{"spanId":"span-1743992196269-bdang","name":"Fork-B-Span-1","startTime":1743992196269,"endTime":1743992196270,"parentSpanId":"span-1743992196070-4pboo","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992197671-i1in7","name":"[Rejoins-Fork-0]","startTime":1743992197671,"endTime":1743992197672,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[]} +{"spanId":"span-1743992197872-pm27v","name":"Orphan-0","startTime":1743992197872,"endTime":1743992197872,"isCompleted":true,"children":[]} +{"spanId":"span-1743992195068-kl1k6","name":"Parent-0","startTime":1743992195068,"endTime":1743992198072,"isCompleted":true,"children":[{"spanId":"span-1743992196070-4pboo","name":"Parent-0-Fork-B","startTime":1743992196070,"endTime":1743992196670,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[{"spanId":"span-1743992196269-bdang","name":"Fork-B-Span-1","startTime":1743992196269,"endTime":1743992196270,"parentSpanId":"span-1743992196070-4pboo","isCompleted":true,"children":[]}]},{"spanId":"span-1743992197671-i1in7","name":"[Rejoins-Fork-0]","startTime":1743992197671,"endTime":1743992197672,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992198873-r8ja1","name":"Fork-A-Span-1","startTime":1743992198873,"endTime":1743992198874,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]} +{"spanId":"span-1743992199073-1xz13","name":"Fork-A-Span-2","startTime":1743992199073,"endTime":1743992199074,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]} +{"spanId":"span-1743992198674-xl6ox","name":"Parent-1-Fork-A","startTime":1743992198674,"endTime":1743992199273,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992198873-r8ja1","name":"Fork-A-Span-1","startTime":1743992198873,"endTime":1743992198874,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]},{"spanId":"span-1743992199073-1xz13","name":"Fork-A-Span-2","startTime":1743992199073,"endTime":1743992199074,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992199675-4cw4h","name":"Fork-B-Span-1","startTime":1743992199675,"endTime":1743992199675,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]} +{"spanId":"span-1743992199875-m71og","name":"Fork-B-Span-2","startTime":1743992199875,"endTime":1743992199875,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]} +{"spanId":"span-1743992199474-v1782","name":"Parent-1-Fork-B","startTime":1743992199474,"endTime":1743992200076,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992199675-4cw4h","name":"Fork-B-Span-1","startTime":1743992199675,"endTime":1743992199675,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]},{"spanId":"span-1743992199875-m71og","name":"Fork-B-Span-2","startTime":1743992199875,"endTime":1743992199875,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992201278-zq10b","name":"Orphan-1","startTime":1743992201278,"endTime":1743992201279,"isCompleted":true,"children":[]} +{"spanId":"span-1743992198473-svndh","name":"Parent-1","startTime":1743992198473,"endTime":1743992201479,"isCompleted":true,"children":[{"spanId":"span-1743992198674-xl6ox","name":"Parent-1-Fork-A","startTime":1743992198674,"endTime":1743992199273,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992198873-r8ja1","name":"Fork-A-Span-1","startTime":1743992198873,"endTime":1743992198874,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]},{"spanId":"span-1743992199073-1xz13","name":"Fork-A-Span-2","startTime":1743992199073,"endTime":1743992199074,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]}]},{"spanId":"span-1743992199474-v1782","name":"Parent-1-Fork-B","startTime":1743992199474,"endTime":1743992200076,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992199675-4cw4h","name":"Fork-B-Span-1","startTime":1743992199675,"endTime":1743992199675,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]},{"spanId":"span-1743992199875-m71og","name":"Fork-B-Span-2","startTime":1743992199875,"endTime":1743992199875,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743992202278-991n8","name":"Fork-A-Span-1","startTime":1743992202278,"endTime":1743992202278,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]} +{"spanId":"span-1743992202478-bsukb","name":"Fork-A-Span-2","startTime":1743992202478,"endTime":1743992202479,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]} +{"spanId":"span-1743992202079-eyaxj","name":"Parent-2-Fork-A","startTime":1743992202079,"endTime":1743992202679,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992202278-991n8","name":"Fork-A-Span-1","startTime":1743992202278,"endTime":1743992202278,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]},{"spanId":"span-1743992202478-bsukb","name":"Fork-A-Span-2","startTime":1743992202478,"endTime":1743992202479,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]} +{"spanId":"span-1743992203680-c9p20","name":"Async-Job-2","startTime":1743992203680,"endTime":1743992204080,"parentSpanId":"span-1743992203679-tcm9f","isCompleted":true,"children":[{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992203679-tcm9f","name":"Async-Job-1","startTime":1743992203679,"endTime":1743992204281,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992203680-c9p20","name":"Async-Job-2","startTime":1743992203680,"endTime":1743992204080,"parentSpanId":"span-1743992203679-tcm9f","isCompleted":true,"children":[{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743992204681-vuuiz","name":"Orphan-2","startTime":1743992204681,"endTime":1743992204681,"isCompleted":true,"children":[]} +{"spanId":"span-1743992201879-5xgi0","name":"Parent-2","startTime":1743992201879,"endTime":1743992204882,"isCompleted":true,"children":[{"spanId":"span-1743992202079-eyaxj","name":"Parent-2-Fork-A","startTime":1743992202079,"endTime":1743992202679,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992202278-991n8","name":"Fork-A-Span-1","startTime":1743992202278,"endTime":1743992202278,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]},{"spanId":"span-1743992202478-bsukb","name":"Fork-A-Span-2","startTime":1743992202478,"endTime":1743992202479,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]}]},{"spanId":"span-1743992203679-tcm9f","name":"Async-Job-1","startTime":1743992203679,"endTime":1743992204281,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992203680-c9p20","name":"Async-Job-2","startTime":1743992203680,"endTime":1743992204080,"parentSpanId":"span-1743992203679-tcm9f","isCompleted":true,"children":[{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]}]}]}]} +{"spanId":"span-1743992205684-kme5c","name":"Fork-A-Span-1","startTime":1743992205684,"endTime":1743992205684,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]} +{"spanId":"span-1743992205884-n9ea4","name":"Fork-A-Span-2","startTime":1743992205884,"endTime":1743992205885,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]} +{"spanId":"span-1743992205483-bygs3","name":"Parent-3-Fork-A","startTime":1743992205483,"endTime":1743992206085,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992205684-kme5c","name":"Fork-A-Span-1","startTime":1743992205684,"endTime":1743992205684,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]},{"spanId":"span-1743992205884-n9ea4","name":"Fork-A-Span-2","startTime":1743992205884,"endTime":1743992205885,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992206487-le9n8","name":"Fork-B-Span-1","startTime":1743992206487,"endTime":1743992206487,"parentSpanId":"span-1743992206286-n5p1j","isCompleted":true,"children":[]} +{"spanId":"span-1743992206286-n5p1j","name":"Parent-3-Fork-B","startTime":1743992206286,"endTime":1743992206888,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992206487-le9n8","name":"Fork-B-Span-1","startTime":1743992206487,"endTime":1743992206487,"parentSpanId":"span-1743992206286-n5p1j","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992207088-fcctn","name":"Async-Job-1","startTime":1743992207088,"endTime":1743992207289,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[]} +{"spanId":"span-1743992208090-cwka7","name":"Orphan-3","startTime":1743992208090,"endTime":1743992208090,"isCompleted":true,"children":[]} +{"spanId":"span-1743992205283-1jsl5","name":"Parent-3","startTime":1743992205283,"endTime":1743992208291,"isCompleted":true,"children":[{"spanId":"span-1743992205483-bygs3","name":"Parent-3-Fork-A","startTime":1743992205483,"endTime":1743992206085,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992205684-kme5c","name":"Fork-A-Span-1","startTime":1743992205684,"endTime":1743992205684,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]},{"spanId":"span-1743992205884-n9ea4","name":"Fork-A-Span-2","startTime":1743992205884,"endTime":1743992205885,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]}]},{"spanId":"span-1743992206286-n5p1j","name":"Parent-3-Fork-B","startTime":1743992206286,"endTime":1743992206888,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992206487-le9n8","name":"Fork-B-Span-1","startTime":1743992206487,"endTime":1743992206487,"parentSpanId":"span-1743992206286-n5p1j","isCompleted":true,"children":[]}]},{"spanId":"span-1743992207088-fcctn","name":"Async-Job-1","startTime":1743992207088,"endTime":1743992207289,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992209094-ywdm8","name":"Fork-A-Span-1","startTime":1743992209094,"endTime":1743992209095,"parentSpanId":"span-1743992208893-3njyf","isCompleted":true,"children":[]} +{"spanId":"span-1743992208893-3njyf","name":"Parent-4-Fork-A","startTime":1743992208893,"endTime":1743992209495,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209094-ywdm8","name":"Fork-A-Span-1","startTime":1743992209094,"endTime":1743992209095,"parentSpanId":"span-1743992208893-3njyf","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992209896-jxv50","name":"Fork-B-Span-1","startTime":1743992209896,"endTime":1743992209896,"parentSpanId":"span-1743992209696-02gb5","isCompleted":true,"children":[]} +{"spanId":"span-1743992209696-02gb5","name":"Parent-4-Fork-B","startTime":1743992209696,"endTime":1743992210297,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209896-jxv50","name":"Fork-B-Span-1","startTime":1743992209896,"endTime":1743992209896,"parentSpanId":"span-1743992209696-02gb5","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992208693-cca9a","name":"Parent-4","startTime":1743992208693,"endTime":1743992211699,"isCompleted":true,"children":[{"spanId":"span-1743992208893-3njyf","name":"Parent-4-Fork-A","startTime":1743992208893,"endTime":1743992209495,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209094-ywdm8","name":"Fork-A-Span-1","startTime":1743992209094,"endTime":1743992209095,"parentSpanId":"span-1743992208893-3njyf","isCompleted":true,"children":[]}]},{"spanId":"span-1743992209696-02gb5","name":"Parent-4-Fork-B","startTime":1743992209696,"endTime":1743992210297,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209896-jxv50","name":"Fork-B-Span-1","startTime":1743992209896,"endTime":1743992209896,"parentSpanId":"span-1743992209696-02gb5","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743992212500-75m4t","name":"Fork-A-Span-1","startTime":1743992212500,"endTime":1743992212500,"parentSpanId":"span-1743992212300-jrbxz","isCompleted":true,"children":[]} +{"spanId":"span-1743992212300-jrbxz","name":"Parent-5-Fork-A","startTime":1743992212300,"endTime":1743992212900,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992212500-75m4t","name":"Fork-A-Span-1","startTime":1743992212500,"endTime":1743992212500,"parentSpanId":"span-1743992212300-jrbxz","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992213301-e1gvs","name":"Fork-B-Span-1","startTime":1743992213301,"endTime":1743992213302,"parentSpanId":"span-1743992213100-wijua","isCompleted":true,"children":[]} +{"spanId":"span-1743992213100-wijua","name":"Parent-5-Fork-B","startTime":1743992213100,"endTime":1743992213701,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213301-e1gvs","name":"Fork-B-Span-1","startTime":1743992213301,"endTime":1743992213302,"parentSpanId":"span-1743992213100-wijua","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]} +{"spanId":"span-1743992213903-al99g","name":"Async-Job-2","startTime":1743992213903,"endTime":1743992214303,"parentSpanId":"span-1743992213902-sncot","isCompleted":true,"children":[{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]}]} +{"spanId":"span-1743992213902-sncot","name":"Async-Job-1","startTime":1743992213902,"endTime":1743992214503,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213903-al99g","name":"Async-Job-2","startTime":1743992213903,"endTime":1743992214303,"parentSpanId":"span-1743992213902-sncot","isCompleted":true,"children":[{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743992214904-unlf7","name":"Orphan-5","startTime":1743992214904,"endTime":1743992214904,"isCompleted":true,"children":[]} +{"spanId":"span-1743992212100-xjnhq","name":"Parent-5","startTime":1743992212100,"endTime":1743992215105,"isCompleted":true,"children":[{"spanId":"span-1743992212300-jrbxz","name":"Parent-5-Fork-A","startTime":1743992212300,"endTime":1743992212900,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992212500-75m4t","name":"Fork-A-Span-1","startTime":1743992212500,"endTime":1743992212500,"parentSpanId":"span-1743992212300-jrbxz","isCompleted":true,"children":[]}]},{"spanId":"span-1743992213100-wijua","name":"Parent-5-Fork-B","startTime":1743992213100,"endTime":1743992213701,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213301-e1gvs","name":"Fork-B-Span-1","startTime":1743992213301,"endTime":1743992213302,"parentSpanId":"span-1743992213100-wijua","isCompleted":true,"children":[]}]},{"spanId":"span-1743992213902-sncot","name":"Async-Job-1","startTime":1743992213902,"endTime":1743992214503,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213903-al99g","name":"Async-Job-2","startTime":1743992213903,"endTime":1743992214303,"parentSpanId":"span-1743992213902-sncot","isCompleted":true,"children":[{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]}]}]}]} +{"spanId":"span-1743992215907-cmek8","name":"Fork-A-Span-1","startTime":1743992215907,"endTime":1743992215907,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]} +{"spanId":"span-1743992216107-d7no1","name":"Fork-A-Span-2","startTime":1743992216107,"endTime":1743992216108,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]} +{"spanId":"span-1743992215706-sc2ou","name":"Parent-6-Fork-A","startTime":1743992215706,"endTime":1743992216308,"parentSpanId":"span-1743992215506-jod4m","isCompleted":true,"children":[{"spanId":"span-1743992215907-cmek8","name":"Fork-A-Span-1","startTime":1743992215907,"endTime":1743992215907,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]},{"spanId":"span-1743992216107-d7no1","name":"Fork-A-Span-2","startTime":1743992216107,"endTime":1743992216108,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]}]} diff --git a/src/bin/cli.tsx b/src/bin/cli.tsx index d31f41a..b4c7cb6 100644 --- a/src/bin/cli.tsx +++ b/src/bin/cli.tsx @@ -1,11 +1,9 @@ import type Span from '../lib/Span.js'; -import fs from 'fs'; import { Command } from 'commander'; import React, { useEffect, useState } from 'react'; import { render, Box, Text } from 'ink'; import SpanTree from './SpanTree.js'; - -const SPAN_FILE = 'spans.json'; +import tracer from '../lib/tracingManager.js'; // Use commander to parse CLI options const program = new Command(); @@ -16,9 +14,9 @@ program const options = program.opts(); const sampleMode = options.sample; +// ✅ Use Tracer directly function loadSpans(): Span[] { - if (!fs.existsSync(SPAN_FILE)) return []; - return JSON.parse(fs.readFileSync(SPAN_FILE, 'utf8')); + return tracer.getActiveSpans(); } const App = () => { diff --git a/src/lib/Tracer.ts b/src/lib/Tracer.ts new file mode 100644 index 0000000..b5d7c99 --- /dev/null +++ b/src/lib/Tracer.ts @@ -0,0 +1,66 @@ +import fs from 'fs'; +import Span from './Span.js'; + +export default class Tracer { + private activeSpans: Map = new Map(); + private spanFile = 'spans.json'; + private jsonlStream = fs.createWriteStream('spans.jsonl', { flags: 'a' }); + + public startSpan(name: string, parentSpanId?: string): string { + const span = new Span(name, parentSpanId); + this.activeSpans.set(span.spanId, span); + + if (parentSpanId && this.activeSpans.has(parentSpanId)) { + this.activeSpans.get(parentSpanId)!.children.push(span); + } + + this.saveSpansToFile(); + return span.spanId; + } + + public endSpan(spanId: string): Span | null { + const span = this.activeSpans.get(spanId); + if (!span) return null; + + span.close(); + this.jsonlStream.write(JSON.stringify(span.toJSON()) + '\n'); + this.saveSpansToFile(); + return span; + } + + public traced(name: string, fn: () => Promise, parentSpanId?: string): Promise { + const spanId = this.startSpan(name, parentSpanId); + return fn() + .then((result) => { + this.endSpan(spanId); + return result; + }) + .catch((err) => { + this.endSpan(spanId); + throw err; + }); + } + + public getActiveSpans(): Span[] { + return Array.from(this.activeSpans.values()); + } + + public flush(): void { + this.saveSpansToFile(); + } + + public getTraceJSON(): string { + return JSON.stringify( + this.getActiveSpans().map((s) => s.toJSON()), + null, + 2 + ); + } + + private saveSpansToFile(): void { + fs.writeFileSync( + this.spanFile, + JSON.stringify(this.getActiveSpans(), null, 2) + ); + } +} diff --git a/src/lib/tracingManager.ts b/src/lib/tracingManager.ts index 61e47be..17adc47 100644 --- a/src/lib/tracingManager.ts +++ b/src/lib/tracingManager.ts @@ -1,68 +1,11 @@ -import fs from 'fs'; -import Span from './Span.js'; +import Tracer from './Tracer.js'; -const SPAN_FILE = 'spans.json'; -const activeSpans: Record = {}; +const tracer = new Tracer(); -function reconstructSpan(spanData: any): Span { - delete spanData.isCompleted; - - const reconstructedSpan = Object.assign( - new Span(spanData.name, spanData.parentSpanId), - spanData, - ); - reconstructedSpan.children = (spanData.children || []).map(reconstructSpan); - return reconstructedSpan; -} - -function saveSpansToFile() { - fs.writeFileSync( - SPAN_FILE, - JSON.stringify(Object.values(activeSpans), undefined, 2), - ); -} - -export function openSpan( - name: string, - parentSpanId: string | undefined = undefined, -): string { - const newSpan = new Span(name, parentSpanId); - activeSpans[newSpan.spanId] = newSpan; - - saveSpansToFile(); - - if (parentSpanId && activeSpans[parentSpanId]) { - activeSpans[parentSpanId].children.push(newSpan); - } - - return newSpan.spanId; -} - -export function closeSpan(spanId: string): Span | undefined { - if (activeSpans[spanId]) { - activeSpans[spanId].close(); - saveSpansToFile(); - return activeSpans[spanId]; - } - return undefined; -} - -export function getActiveSpans(): Span[] { - if (fs.existsSync(SPAN_FILE)) { - const fileData = fs.readFileSync(SPAN_FILE, 'utf8'); - const rawSpans = JSON.parse(fileData); - return rawSpans.map(reconstructSpan); - } - - return Object.values(activeSpans); -} - -export function getTraceJSON(): string { - const activeSpans = getActiveSpans(); - - return JSON.stringify( - activeSpans.map((span) => span.toJSON()), - undefined, - 2, - ); -} +export const openSpan = tracer.startSpan.bind(tracer); +export const closeSpan = tracer.endSpan.bind(tracer); +export const traced = tracer.traced.bind(tracer); +export const getActiveSpans = tracer.getActiveSpans.bind(tracer); +export const getTraceJSON = tracer.getTraceJSON.bind(tracer); +export const flush = tracer.flush.bind(tracer); +export default tracer; From 5ba53cc4aeb513dfb55bd45601997a1622a59255 Mon Sep 17 00:00:00 2001 From: Abby010 Date: Mon, 7 Apr 2025 12:55:17 +1000 Subject: [PATCH 6/7] feat: add traced() support for forks and nested spans with JSONL streaming --- spans.json | 2330 +++++++++++++++++++++++++++++++--------- spans.jsonl | 130 +++ src/lib/Tracer.ts | 10 +- tests/asciinemaTest.ts | 113 +- 4 files changed, 1979 insertions(+), 604 deletions(-) diff --git a/spans.json b/spans.json index 5f15784..2a0e1c6 100644 --- a/spans.json +++ b/spans.json @@ -1,913 +1,887 @@ [ { - "spanId": "span-1743992195068-kl1k6", + "spanId": "span-1743993577289-4g7ta", "name": "Parent-0", - "startTime": 1743992195068, - "endTime": 1743992198072, + "startTime": 1743993577289, + "endTime": 1743993579093, "isCompleted": true, "children": [ { - "spanId": "span-1743992196070-4pboo", - "name": "Parent-0-Fork-B", - "startTime": 1743992196070, - "endTime": 1743992196670, - "parentSpanId": "span-1743992195068-kl1k6", + "spanId": "span-1743993577489-xsqf8", + "name": "Parent-0-Fork-A", + "startTime": 1743993577489, + "endTime": 1743993577490, + "parentSpanId": "span-1743993577289-4g7ta", "isCompleted": true, "children": [ { - "spanId": "span-1743992196269-bdang", - "name": "Fork-B-Span-1", - "startTime": 1743992196269, - "endTime": 1743992196270, - "parentSpanId": "span-1743992196070-4pboo", + "spanId": "span-1743993577489-j3phn", + "name": "Fork-A-Span-1", + "startTime": 1743993577489, + "endTime": 1743993577490, + "parentSpanId": "span-1743993577489-xsqf8", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993577891-8acaj", + "name": "Async-Job-1", + "startTime": 1743993577891, + "endTime": 1743993578291, + "parentSpanId": "span-1743993577289-4g7ta", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993577891-ukqtt", + "name": "Async-Job-2", + "startTime": 1743993577891, + "endTime": 1743993578090, + "parentSpanId": "span-1743993577891-8acaj", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992197671-i1in7", + "spanId": "span-1743993578691-glcza", "name": "[Rejoins-Fork-0]", - "startTime": 1743992197671, - "endTime": 1743992197672, - "parentSpanId": "span-1743992195068-kl1k6", + "startTime": 1743993578691, + "endTime": 1743993578692, + "parentSpanId": "span-1743993577289-4g7ta", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992196070-4pboo", - "name": "Parent-0-Fork-B", - "startTime": 1743992196070, - "endTime": 1743992196670, - "parentSpanId": "span-1743992195068-kl1k6", + "spanId": "span-1743993577489-domtp", + "name": "Parent-0-Fork-A", + "startTime": 1743993577489, + "endTime": 1743993577491, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993577489-xsqf8", + "name": "Parent-0-Fork-A", + "startTime": 1743993577489, + "endTime": 1743993577490, + "parentSpanId": "span-1743993577289-4g7ta", "isCompleted": true, "children": [ { - "spanId": "span-1743992196269-bdang", - "name": "Fork-B-Span-1", - "startTime": 1743992196269, - "endTime": 1743992196270, - "parentSpanId": "span-1743992196070-4pboo", + "spanId": "span-1743993577489-j3phn", + "name": "Fork-A-Span-1", + "startTime": 1743993577489, + "endTime": 1743993577490, + "parentSpanId": "span-1743993577489-xsqf8", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992196269-bdang", - "name": "Fork-B-Span-1", - "startTime": 1743992196269, - "endTime": 1743992196270, - "parentSpanId": "span-1743992196070-4pboo", + "spanId": "span-1743993577489-j3phn", + "name": "Fork-A-Span-1", + "startTime": 1743993577489, + "endTime": 1743993577490, + "parentSpanId": "span-1743993577489-xsqf8", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993577890-zzq7i", + "name": "Async-Chain-0", + "startTime": 1743993577890, + "endTime": 1743993577891, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993577891-8acaj", + "name": "Async-Job-1", + "startTime": 1743993577891, + "endTime": 1743993578291, + "parentSpanId": "span-1743993577289-4g7ta", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993577891-ukqtt", + "name": "Async-Job-2", + "startTime": 1743993577891, + "endTime": 1743993578090, + "parentSpanId": "span-1743993577891-8acaj", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993577891-ukqtt", + "name": "Async-Job-2", + "startTime": 1743993577891, + "endTime": 1743993578090, + "parentSpanId": "span-1743993577891-8acaj", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992197671-i1in7", + "spanId": "span-1743993578691-glcza", "name": "[Rejoins-Fork-0]", - "startTime": 1743992197671, - "endTime": 1743992197672, - "parentSpanId": "span-1743992195068-kl1k6", + "startTime": 1743993578691, + "endTime": 1743993578692, + "parentSpanId": "span-1743993577289-4g7ta", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992197872-pm27v", + "spanId": "span-1743993578892-r1gs1", "name": "Orphan-0", - "startTime": 1743992197872, - "endTime": 1743992197872, + "startTime": 1743993578892, + "endTime": 1743993578893, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992198473-svndh", + "spanId": "span-1743993579493-e6f43", "name": "Parent-1", - "startTime": 1743992198473, - "endTime": 1743992201479, + "startTime": 1743993579493, + "endTime": 1743993581296, "isCompleted": true, "children": [ { - "spanId": "span-1743992198674-xl6ox", + "spanId": "span-1743993579693-bg0em", "name": "Parent-1-Fork-A", - "startTime": 1743992198674, - "endTime": 1743992199273, - "parentSpanId": "span-1743992198473-svndh", + "startTime": 1743993579693, + "endTime": 1743993579694, + "parentSpanId": "span-1743993579493-e6f43", "isCompleted": true, "children": [ { - "spanId": "span-1743992198873-r8ja1", + "spanId": "span-1743993579694-2m2es", "name": "Fork-A-Span-1", - "startTime": 1743992198873, - "endTime": 1743992198874, - "parentSpanId": "span-1743992198674-xl6ox", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743992199073-1xz13", - "name": "Fork-A-Span-2", - "startTime": 1743992199073, - "endTime": 1743992199074, - "parentSpanId": "span-1743992198674-xl6ox", + "startTime": 1743993579694, + "endTime": 1743993579694, + "parentSpanId": "span-1743993579693-bg0em", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992199474-v1782", + "spanId": "span-1743993579895-40dig", "name": "Parent-1-Fork-B", - "startTime": 1743992199474, - "endTime": 1743992200076, - "parentSpanId": "span-1743992198473-svndh", + "startTime": 1743993579895, + "endTime": 1743993579896, + "parentSpanId": "span-1743993579493-e6f43", "isCompleted": true, "children": [ { - "spanId": "span-1743992199675-4cw4h", + "spanId": "span-1743993579895-6hq4a", "name": "Fork-B-Span-1", - "startTime": 1743992199675, - "endTime": 1743992199675, - "parentSpanId": "span-1743992199474-v1782", + "startTime": 1743993579895, + "endTime": 1743993579895, + "parentSpanId": "span-1743993579895-40dig", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992199875-m71og", + "spanId": "span-1743993579895-38xi5", "name": "Fork-B-Span-2", - "startTime": 1743992199875, - "endTime": 1743992199875, - "parentSpanId": "span-1743992199474-v1782", + "startTime": 1743993579895, + "endTime": 1743993579896, + "parentSpanId": "span-1743993579895-40dig", "isCompleted": true, "children": [] } ] + }, + { + "spanId": "span-1743993580895-t065v", + "name": "[Rejoins-Fork-1]", + "startTime": 1743993580895, + "endTime": 1743993580896, + "parentSpanId": "span-1743993579493-e6f43", + "isCompleted": true, + "children": [] } ] }, { - "spanId": "span-1743992198674-xl6ox", + "spanId": "span-1743993579693-s00w8", + "name": "Parent-1-Fork-A", + "startTime": 1743993579693, + "endTime": 1743993579694, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993579693-bg0em", "name": "Parent-1-Fork-A", - "startTime": 1743992198674, - "endTime": 1743992199273, - "parentSpanId": "span-1743992198473-svndh", + "startTime": 1743993579693, + "endTime": 1743993579694, + "parentSpanId": "span-1743993579493-e6f43", "isCompleted": true, "children": [ { - "spanId": "span-1743992198873-r8ja1", + "spanId": "span-1743993579694-2m2es", "name": "Fork-A-Span-1", - "startTime": 1743992198873, - "endTime": 1743992198874, - "parentSpanId": "span-1743992198674-xl6ox", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743992199073-1xz13", - "name": "Fork-A-Span-2", - "startTime": 1743992199073, - "endTime": 1743992199074, - "parentSpanId": "span-1743992198674-xl6ox", + "startTime": 1743993579694, + "endTime": 1743993579694, + "parentSpanId": "span-1743993579693-bg0em", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992198873-r8ja1", + "spanId": "span-1743993579694-2m2es", "name": "Fork-A-Span-1", - "startTime": 1743992198873, - "endTime": 1743992198874, - "parentSpanId": "span-1743992198674-xl6ox", + "startTime": 1743993579694, + "endTime": 1743993579694, + "parentSpanId": "span-1743993579693-bg0em", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992199073-1xz13", - "name": "Fork-A-Span-2", - "startTime": 1743992199073, - "endTime": 1743992199074, - "parentSpanId": "span-1743992198674-xl6ox", + "spanId": "span-1743993579894-0hqd6", + "name": "Parent-1-Fork-B", + "startTime": 1743993579894, + "endTime": 1743993579896, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992199474-v1782", + "spanId": "span-1743993579895-40dig", "name": "Parent-1-Fork-B", - "startTime": 1743992199474, - "endTime": 1743992200076, - "parentSpanId": "span-1743992198473-svndh", + "startTime": 1743993579895, + "endTime": 1743993579896, + "parentSpanId": "span-1743993579493-e6f43", "isCompleted": true, "children": [ { - "spanId": "span-1743992199675-4cw4h", + "spanId": "span-1743993579895-6hq4a", "name": "Fork-B-Span-1", - "startTime": 1743992199675, - "endTime": 1743992199675, - "parentSpanId": "span-1743992199474-v1782", + "startTime": 1743993579895, + "endTime": 1743993579895, + "parentSpanId": "span-1743993579895-40dig", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992199875-m71og", + "spanId": "span-1743993579895-38xi5", "name": "Fork-B-Span-2", - "startTime": 1743992199875, - "endTime": 1743992199875, - "parentSpanId": "span-1743992199474-v1782", + "startTime": 1743993579895, + "endTime": 1743993579896, + "parentSpanId": "span-1743993579895-40dig", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992199675-4cw4h", + "spanId": "span-1743993579895-6hq4a", "name": "Fork-B-Span-1", - "startTime": 1743992199675, - "endTime": 1743992199675, - "parentSpanId": "span-1743992199474-v1782", + "startTime": 1743993579895, + "endTime": 1743993579895, + "parentSpanId": "span-1743993579895-40dig", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992199875-m71og", + "spanId": "span-1743993579895-38xi5", "name": "Fork-B-Span-2", - "startTime": 1743992199875, - "endTime": 1743992199875, - "parentSpanId": "span-1743992199474-v1782", + "startTime": 1743993579895, + "endTime": 1743993579896, + "parentSpanId": "span-1743993579895-40dig", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993580895-t065v", + "name": "[Rejoins-Fork-1]", + "startTime": 1743993580895, + "endTime": 1743993580896, + "parentSpanId": "span-1743993579493-e6f43", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992201278-zq10b", + "spanId": "span-1743993581095-p1nag", "name": "Orphan-1", - "startTime": 1743992201278, - "endTime": 1743992201279, + "startTime": 1743993581095, + "endTime": 1743993581096, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992201879-5xgi0", + "spanId": "span-1743993581696-ai121", "name": "Parent-2", - "startTime": 1743992201879, - "endTime": 1743992204882, + "startTime": 1743993581696, + "endTime": 1743993583501, "isCompleted": true, "children": [ { - "spanId": "span-1743992202079-eyaxj", + "spanId": "span-1743993581897-g5wfo", "name": "Parent-2-Fork-A", - "startTime": 1743992202079, - "endTime": 1743992202679, - "parentSpanId": "span-1743992201879-5xgi0", + "startTime": 1743993581897, + "endTime": 1743993581898, + "parentSpanId": "span-1743993581696-ai121", "isCompleted": true, "children": [ { - "spanId": "span-1743992202278-991n8", + "spanId": "span-1743993581898-4tb25", "name": "Fork-A-Span-1", - "startTime": 1743992202278, - "endTime": 1743992202278, - "parentSpanId": "span-1743992202079-eyaxj", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743992202478-bsukb", - "name": "Fork-A-Span-2", - "startTime": 1743992202478, - "endTime": 1743992202479, - "parentSpanId": "span-1743992202079-eyaxj", + "startTime": 1743993581898, + "endTime": 1743993581898, + "parentSpanId": "span-1743993581897-g5wfo", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992203679-tcm9f", + "spanId": "span-1743993582299-se1f9", "name": "Async-Job-1", - "startTime": 1743992203679, - "endTime": 1743992204281, - "parentSpanId": "span-1743992201879-5xgi0", + "startTime": 1743993582299, + "endTime": 1743993582700, + "parentSpanId": "span-1743993581696-ai121", "isCompleted": true, "children": [ { - "spanId": "span-1743992203680-c9p20", + "spanId": "span-1743993582299-g0git", "name": "Async-Job-2", - "startTime": 1743992203680, - "endTime": 1743992204080, - "parentSpanId": "span-1743992203679-tcm9f", + "startTime": 1743993582299, + "endTime": 1743993582499, + "parentSpanId": "span-1743993582299-se1f9", "isCompleted": true, - "children": [ - { - "spanId": "span-1743992203680-at16t", - "name": "Async-Job-3", - "startTime": 1743992203680, - "endTime": 1743992203880, - "parentSpanId": "span-1743992203680-c9p20", - "isCompleted": true, - "children": [] - } - ] + "children": [] } ] } ] }, { - "spanId": "span-1743992202079-eyaxj", + "spanId": "span-1743993581897-9sz3w", + "name": "Parent-2-Fork-A", + "startTime": 1743993581897, + "endTime": 1743993581899, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993581897-g5wfo", "name": "Parent-2-Fork-A", - "startTime": 1743992202079, - "endTime": 1743992202679, - "parentSpanId": "span-1743992201879-5xgi0", + "startTime": 1743993581897, + "endTime": 1743993581898, + "parentSpanId": "span-1743993581696-ai121", "isCompleted": true, "children": [ { - "spanId": "span-1743992202278-991n8", + "spanId": "span-1743993581898-4tb25", "name": "Fork-A-Span-1", - "startTime": 1743992202278, - "endTime": 1743992202278, - "parentSpanId": "span-1743992202079-eyaxj", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743992202478-bsukb", - "name": "Fork-A-Span-2", - "startTime": 1743992202478, - "endTime": 1743992202479, - "parentSpanId": "span-1743992202079-eyaxj", + "startTime": 1743993581898, + "endTime": 1743993581898, + "parentSpanId": "span-1743993581897-g5wfo", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992202278-991n8", + "spanId": "span-1743993581898-4tb25", "name": "Fork-A-Span-1", - "startTime": 1743992202278, - "endTime": 1743992202278, - "parentSpanId": "span-1743992202079-eyaxj", + "startTime": 1743993581898, + "endTime": 1743993581898, + "parentSpanId": "span-1743993581897-g5wfo", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992202478-bsukb", - "name": "Fork-A-Span-2", - "startTime": 1743992202478, - "endTime": 1743992202479, - "parentSpanId": "span-1743992202079-eyaxj", + "spanId": "span-1743993582298-avb0l", + "name": "Async-Chain-2", + "startTime": 1743993582298, + "endTime": 1743993582299, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992203679-tcm9f", + "spanId": "span-1743993582299-se1f9", "name": "Async-Job-1", - "startTime": 1743992203679, - "endTime": 1743992204281, - "parentSpanId": "span-1743992201879-5xgi0", + "startTime": 1743993582299, + "endTime": 1743993582700, + "parentSpanId": "span-1743993581696-ai121", "isCompleted": true, "children": [ { - "spanId": "span-1743992203680-c9p20", + "spanId": "span-1743993582299-g0git", "name": "Async-Job-2", - "startTime": 1743992203680, - "endTime": 1743992204080, - "parentSpanId": "span-1743992203679-tcm9f", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743992203680-at16t", - "name": "Async-Job-3", - "startTime": 1743992203680, - "endTime": 1743992203880, - "parentSpanId": "span-1743992203680-c9p20", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743992203680-c9p20", - "name": "Async-Job-2", - "startTime": 1743992203680, - "endTime": 1743992204080, - "parentSpanId": "span-1743992203679-tcm9f", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743992203680-at16t", - "name": "Async-Job-3", - "startTime": 1743992203680, - "endTime": 1743992203880, - "parentSpanId": "span-1743992203680-c9p20", + "startTime": 1743993582299, + "endTime": 1743993582499, + "parentSpanId": "span-1743993582299-se1f9", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992203680-at16t", - "name": "Async-Job-3", - "startTime": 1743992203680, - "endTime": 1743992203880, - "parentSpanId": "span-1743992203680-c9p20", + "spanId": "span-1743993582299-g0git", + "name": "Async-Job-2", + "startTime": 1743993582299, + "endTime": 1743993582499, + "parentSpanId": "span-1743993582299-se1f9", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992204681-vuuiz", + "spanId": "span-1743993583301-9iq46", "name": "Orphan-2", - "startTime": 1743992204681, - "endTime": 1743992204681, + "startTime": 1743993583302, + "endTime": 1743993583302, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992205283-1jsl5", + "spanId": "span-1743993583902-2cx66", "name": "Parent-3", - "startTime": 1743992205283, - "endTime": 1743992208291, + "startTime": 1743993583902, + "endTime": 1743993585707, "isCompleted": true, "children": [ { - "spanId": "span-1743992205483-bygs3", + "spanId": "span-1743993584102-u2g49", "name": "Parent-3-Fork-A", - "startTime": 1743992205483, - "endTime": 1743992206085, - "parentSpanId": "span-1743992205283-1jsl5", + "startTime": 1743993584102, + "endTime": 1743993584103, + "parentSpanId": "span-1743993583902-2cx66", "isCompleted": true, "children": [ { - "spanId": "span-1743992205684-kme5c", + "spanId": "span-1743993584103-hbddh", "name": "Fork-A-Span-1", - "startTime": 1743992205684, - "endTime": 1743992205684, - "parentSpanId": "span-1743992205483-bygs3", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743992205884-n9ea4", - "name": "Fork-A-Span-2", - "startTime": 1743992205884, - "endTime": 1743992205885, - "parentSpanId": "span-1743992205483-bygs3", + "startTime": 1743993584103, + "endTime": 1743993584103, + "parentSpanId": "span-1743993584102-u2g49", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992206286-n5p1j", + "spanId": "span-1743993584303-3mgz7", "name": "Parent-3-Fork-B", - "startTime": 1743992206286, - "endTime": 1743992206888, - "parentSpanId": "span-1743992205283-1jsl5", + "startTime": 1743993584303, + "endTime": 1743993584303, + "parentSpanId": "span-1743993583902-2cx66", "isCompleted": true, "children": [ { - "spanId": "span-1743992206487-le9n8", + "spanId": "span-1743993584303-kg46d", "name": "Fork-B-Span-1", - "startTime": 1743992206487, - "endTime": 1743992206487, - "parentSpanId": "span-1743992206286-n5p1j", + "startTime": 1743993584303, + "endTime": 1743993584303, + "parentSpanId": "span-1743993584303-3mgz7", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992207088-fcctn", - "name": "Async-Job-1", - "startTime": 1743992207088, - "endTime": 1743992207289, - "parentSpanId": "span-1743992205283-1jsl5", + "spanId": "span-1743993585305-1315y", + "name": "[Rejoins-Fork-3]", + "startTime": 1743993585305, + "endTime": 1743993585305, + "parentSpanId": "span-1743993583902-2cx66", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992205483-bygs3", + "spanId": "span-1743993584102-v5fb4", + "name": "Parent-3-Fork-A", + "startTime": 1743993584102, + "endTime": 1743993584103, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993584102-u2g49", "name": "Parent-3-Fork-A", - "startTime": 1743992205483, - "endTime": 1743992206085, - "parentSpanId": "span-1743992205283-1jsl5", + "startTime": 1743993584102, + "endTime": 1743993584103, + "parentSpanId": "span-1743993583902-2cx66", "isCompleted": true, "children": [ { - "spanId": "span-1743992205684-kme5c", + "spanId": "span-1743993584103-hbddh", "name": "Fork-A-Span-1", - "startTime": 1743992205684, - "endTime": 1743992205684, - "parentSpanId": "span-1743992205483-bygs3", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743992205884-n9ea4", - "name": "Fork-A-Span-2", - "startTime": 1743992205884, - "endTime": 1743992205885, - "parentSpanId": "span-1743992205483-bygs3", + "startTime": 1743993584103, + "endTime": 1743993584103, + "parentSpanId": "span-1743993584102-u2g49", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992205684-kme5c", + "spanId": "span-1743993584103-hbddh", "name": "Fork-A-Span-1", - "startTime": 1743992205684, - "endTime": 1743992205684, - "parentSpanId": "span-1743992205483-bygs3", + "startTime": 1743993584103, + "endTime": 1743993584103, + "parentSpanId": "span-1743993584102-u2g49", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992205884-n9ea4", - "name": "Fork-A-Span-2", - "startTime": 1743992205884, - "endTime": 1743992205885, - "parentSpanId": "span-1743992205483-bygs3", + "spanId": "span-1743993584303-4ciip", + "name": "Parent-3-Fork-B", + "startTime": 1743993584303, + "endTime": 1743993584303, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992206286-n5p1j", + "spanId": "span-1743993584303-3mgz7", "name": "Parent-3-Fork-B", - "startTime": 1743992206286, - "endTime": 1743992206888, - "parentSpanId": "span-1743992205283-1jsl5", + "startTime": 1743993584303, + "endTime": 1743993584303, + "parentSpanId": "span-1743993583902-2cx66", "isCompleted": true, "children": [ { - "spanId": "span-1743992206487-le9n8", + "spanId": "span-1743993584303-kg46d", "name": "Fork-B-Span-1", - "startTime": 1743992206487, - "endTime": 1743992206487, - "parentSpanId": "span-1743992206286-n5p1j", + "startTime": 1743993584303, + "endTime": 1743993584303, + "parentSpanId": "span-1743993584303-3mgz7", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992206487-le9n8", + "spanId": "span-1743993584303-kg46d", "name": "Fork-B-Span-1", - "startTime": 1743992206487, - "endTime": 1743992206487, - "parentSpanId": "span-1743992206286-n5p1j", + "startTime": 1743993584303, + "endTime": 1743993584303, + "parentSpanId": "span-1743993584303-3mgz7", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992207088-fcctn", - "name": "Async-Job-1", - "startTime": 1743992207088, - "endTime": 1743992207289, - "parentSpanId": "span-1743992205283-1jsl5", + "spanId": "span-1743993585305-1315y", + "name": "[Rejoins-Fork-3]", + "startTime": 1743993585305, + "endTime": 1743993585305, + "parentSpanId": "span-1743993583902-2cx66", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992208090-cwka7", + "spanId": "span-1743993585506-8hx4i", "name": "Orphan-3", - "startTime": 1743992208090, - "endTime": 1743992208090, + "startTime": 1743993585506, + "endTime": 1743993585506, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992208693-cca9a", + "spanId": "span-1743993586108-9eqvz", "name": "Parent-4", - "startTime": 1743992208693, - "endTime": 1743992211699, + "startTime": 1743993586108, + "endTime": 1743993587913, "isCompleted": true, "children": [ { - "spanId": "span-1743992208893-3njyf", + "spanId": "span-1743993586309-7fciz", "name": "Parent-4-Fork-A", - "startTime": 1743992208893, - "endTime": 1743992209495, - "parentSpanId": "span-1743992208693-cca9a", + "startTime": 1743993586309, + "endTime": 1743993586310, + "parentSpanId": "span-1743993586108-9eqvz", "isCompleted": true, "children": [ { - "spanId": "span-1743992209094-ywdm8", + "spanId": "span-1743993586310-s2m9j", "name": "Fork-A-Span-1", - "startTime": 1743992209094, - "endTime": 1743992209095, - "parentSpanId": "span-1743992208893-3njyf", + "startTime": 1743993586310, + "endTime": 1743993586310, + "parentSpanId": "span-1743993586309-7fciz", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992209696-02gb5", - "name": "Parent-4-Fork-B", - "startTime": 1743992209696, - "endTime": 1743992210297, - "parentSpanId": "span-1743992208693-cca9a", + "spanId": "span-1743993586711-028u0", + "name": "Async-Job-1", + "startTime": 1743993586711, + "endTime": 1743993586911, + "parentSpanId": "span-1743993586108-9eqvz", "isCompleted": true, - "children": [ - { - "spanId": "span-1743992209896-jxv50", - "name": "Fork-B-Span-1", - "startTime": 1743992209896, - "endTime": 1743992209896, - "parentSpanId": "span-1743992209696-02gb5", - "isCompleted": true, - "children": [] - } - ] + "children": [] } ] }, { - "spanId": "span-1743992208893-3njyf", + "spanId": "span-1743993586309-jzqij", + "name": "Parent-4-Fork-A", + "startTime": 1743993586309, + "endTime": 1743993586310, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993586309-7fciz", "name": "Parent-4-Fork-A", - "startTime": 1743992208893, - "endTime": 1743992209495, - "parentSpanId": "span-1743992208693-cca9a", + "startTime": 1743993586309, + "endTime": 1743993586310, + "parentSpanId": "span-1743993586108-9eqvz", "isCompleted": true, "children": [ { - "spanId": "span-1743992209094-ywdm8", + "spanId": "span-1743993586310-s2m9j", "name": "Fork-A-Span-1", - "startTime": 1743992209094, - "endTime": 1743992209095, - "parentSpanId": "span-1743992208893-3njyf", + "startTime": 1743993586310, + "endTime": 1743993586310, + "parentSpanId": "span-1743993586309-7fciz", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992209094-ywdm8", + "spanId": "span-1743993586310-s2m9j", "name": "Fork-A-Span-1", - "startTime": 1743992209094, - "endTime": 1743992209095, - "parentSpanId": "span-1743992208893-3njyf", + "startTime": 1743993586310, + "endTime": 1743993586310, + "parentSpanId": "span-1743993586309-7fciz", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992209696-02gb5", - "name": "Parent-4-Fork-B", - "startTime": 1743992209696, - "endTime": 1743992210297, - "parentSpanId": "span-1743992208693-cca9a", + "spanId": "span-1743993586710-gemwg", + "name": "Async-Chain-4", + "startTime": 1743993586710, + "endTime": 1743993586711, "isCompleted": true, - "children": [ - { - "spanId": "span-1743992209896-jxv50", - "name": "Fork-B-Span-1", - "startTime": 1743992209896, - "endTime": 1743992209896, - "parentSpanId": "span-1743992209696-02gb5", - "isCompleted": true, - "children": [] - } - ] + "children": [] }, { - "spanId": "span-1743992209896-jxv50", - "name": "Fork-B-Span-1", - "startTime": 1743992209896, - "endTime": 1743992209896, - "parentSpanId": "span-1743992209696-02gb5", + "spanId": "span-1743993586711-028u0", + "name": "Async-Job-1", + "startTime": 1743993586711, + "endTime": 1743993586911, + "parentSpanId": "span-1743993586108-9eqvz", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992212100-xjnhq", + "spanId": "span-1743993588314-2xm9z", "name": "Parent-5", - "startTime": 1743992212100, - "endTime": 1743992215105, + "startTime": 1743993588314, + "endTime": 1743993590117, "isCompleted": true, "children": [ { - "spanId": "span-1743992212300-jrbxz", + "spanId": "span-1743993588515-8r5ys", "name": "Parent-5-Fork-A", - "startTime": 1743992212300, - "endTime": 1743992212900, - "parentSpanId": "span-1743992212100-xjnhq", + "startTime": 1743993588515, + "endTime": 1743993588516, + "parentSpanId": "span-1743993588314-2xm9z", "isCompleted": true, "children": [ { - "spanId": "span-1743992212500-75m4t", + "spanId": "span-1743993588515-8fbj8", "name": "Fork-A-Span-1", - "startTime": 1743992212500, - "endTime": 1743992212500, - "parentSpanId": "span-1743992212300-jrbxz", + "startTime": 1743993588515, + "endTime": 1743993588516, + "parentSpanId": "span-1743993588515-8r5ys", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992213100-wijua", + "spanId": "span-1743993588715-w9bqa", "name": "Parent-5-Fork-B", - "startTime": 1743992213100, - "endTime": 1743992213701, - "parentSpanId": "span-1743992212100-xjnhq", + "startTime": 1743993588715, + "endTime": 1743993588716, + "parentSpanId": "span-1743993588314-2xm9z", "isCompleted": true, "children": [ { - "spanId": "span-1743992213301-e1gvs", + "spanId": "span-1743993588716-x032j", "name": "Fork-B-Span-1", - "startTime": 1743992213301, - "endTime": 1743992213302, - "parentSpanId": "span-1743992213100-wijua", + "startTime": 1743993588716, + "endTime": 1743993588716, + "parentSpanId": "span-1743993588715-w9bqa", "isCompleted": true, "children": [] } ] - }, - { - "spanId": "span-1743992213902-sncot", - "name": "Async-Job-1", - "startTime": 1743992213902, - "endTime": 1743992214503, - "parentSpanId": "span-1743992212100-xjnhq", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743992213903-al99g", - "name": "Async-Job-2", - "startTime": 1743992213903, - "endTime": 1743992214303, - "parentSpanId": "span-1743992213902-sncot", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743992213904-o5rjl", - "name": "Async-Job-3", - "startTime": 1743992213904, - "endTime": 1743992214103, - "parentSpanId": "span-1743992213903-al99g", - "isCompleted": true, - "children": [] - } - ] - } - ] } ] }, { - "spanId": "span-1743992212300-jrbxz", + "spanId": "span-1743993588514-bl9ko", "name": "Parent-5-Fork-A", - "startTime": 1743992212300, - "endTime": 1743992212900, - "parentSpanId": "span-1743992212100-xjnhq", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743992212500-75m4t", - "name": "Fork-A-Span-1", - "startTime": 1743992212500, - "endTime": 1743992212500, - "parentSpanId": "span-1743992212300-jrbxz", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743992212500-75m4t", - "name": "Fork-A-Span-1", - "startTime": 1743992212500, - "endTime": 1743992212500, - "parentSpanId": "span-1743992212300-jrbxz", + "startTime": 1743993588514, + "endTime": 1743993588516, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992213100-wijua", - "name": "Parent-5-Fork-B", - "startTime": 1743992213100, - "endTime": 1743992213701, - "parentSpanId": "span-1743992212100-xjnhq", + "spanId": "span-1743993588515-8r5ys", + "name": "Parent-5-Fork-A", + "startTime": 1743993588515, + "endTime": 1743993588516, + "parentSpanId": "span-1743993588314-2xm9z", "isCompleted": true, "children": [ { - "spanId": "span-1743992213301-e1gvs", - "name": "Fork-B-Span-1", - "startTime": 1743992213301, - "endTime": 1743992213302, - "parentSpanId": "span-1743992213100-wijua", + "spanId": "span-1743993588515-8fbj8", + "name": "Fork-A-Span-1", + "startTime": 1743993588515, + "endTime": 1743993588516, + "parentSpanId": "span-1743993588515-8r5ys", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992213301-e1gvs", - "name": "Fork-B-Span-1", - "startTime": 1743992213301, - "endTime": 1743992213302, - "parentSpanId": "span-1743992213100-wijua", + "spanId": "span-1743993588515-8fbj8", + "name": "Fork-A-Span-1", + "startTime": 1743993588515, + "endTime": 1743993588516, + "parentSpanId": "span-1743993588515-8r5ys", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992213902-sncot", - "name": "Async-Job-1", - "startTime": 1743992213902, - "endTime": 1743992214503, - "parentSpanId": "span-1743992212100-xjnhq", + "spanId": "span-1743993588715-e0ban", + "name": "Parent-5-Fork-B", + "startTime": 1743993588715, + "endTime": 1743993588717, "isCompleted": true, - "children": [ - { - "spanId": "span-1743992213903-al99g", - "name": "Async-Job-2", - "startTime": 1743992213903, - "endTime": 1743992214303, - "parentSpanId": "span-1743992213902-sncot", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743992213904-o5rjl", - "name": "Async-Job-3", - "startTime": 1743992213904, - "endTime": 1743992214103, - "parentSpanId": "span-1743992213903-al99g", - "isCompleted": true, - "children": [] - } - ] - } - ] + "children": [] }, { - "spanId": "span-1743992213903-al99g", - "name": "Async-Job-2", - "startTime": 1743992213903, - "endTime": 1743992214303, - "parentSpanId": "span-1743992213902-sncot", + "spanId": "span-1743993588715-w9bqa", + "name": "Parent-5-Fork-B", + "startTime": 1743993588715, + "endTime": 1743993588716, + "parentSpanId": "span-1743993588314-2xm9z", "isCompleted": true, "children": [ { - "spanId": "span-1743992213904-o5rjl", - "name": "Async-Job-3", - "startTime": 1743992213904, - "endTime": 1743992214103, - "parentSpanId": "span-1743992213903-al99g", + "spanId": "span-1743993588716-x032j", + "name": "Fork-B-Span-1", + "startTime": 1743993588716, + "endTime": 1743993588716, + "parentSpanId": "span-1743993588715-w9bqa", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992213904-o5rjl", - "name": "Async-Job-3", - "startTime": 1743992213904, - "endTime": 1743992214103, - "parentSpanId": "span-1743992213903-al99g", + "spanId": "span-1743993588716-x032j", + "name": "Fork-B-Span-1", + "startTime": 1743993588716, + "endTime": 1743993588716, + "parentSpanId": "span-1743993588715-w9bqa", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992214904-unlf7", + "spanId": "span-1743993589916-myoy4", "name": "Orphan-5", - "startTime": 1743992214904, - "endTime": 1743992214904, + "startTime": 1743993589916, + "endTime": 1743993589916, "isCompleted": true, "children": [] }, { - "spanId": "span-1743992215506-jod4m", + "spanId": "span-1743993590518-jr9st", "name": "Parent-6", - "startTime": 1743992215506, - "isCompleted": false, + "startTime": 1743993590518, + "endTime": 1743993592321, + "isCompleted": true, "children": [ { - "spanId": "span-1743992215706-sc2ou", + "spanId": "span-1743993590719-rajpw", "name": "Parent-6-Fork-A", - "startTime": 1743992215706, - "endTime": 1743992216308, - "parentSpanId": "span-1743992215506-jod4m", + "startTime": 1743993590719, + "endTime": 1743993590722, + "parentSpanId": "span-1743993590518-jr9st", "isCompleted": true, "children": [ { - "spanId": "span-1743992215907-cmek8", + "spanId": "span-1743993590720-3f8ni", "name": "Fork-A-Span-1", - "startTime": 1743992215907, - "endTime": 1743992215907, - "parentSpanId": "span-1743992215706-sc2ou", + "startTime": 1743993590720, + "endTime": 1743993590720, + "parentSpanId": "span-1743993590719-rajpw", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992216107-d7no1", + "spanId": "span-1743993590721-1xs9k", "name": "Fork-A-Span-2", - "startTime": 1743992216107, - "endTime": 1743992216108, - "parentSpanId": "span-1743992215706-sc2ou", + "startTime": 1743993590721, + "endTime": 1743993590721, + "parentSpanId": "span-1743993590719-rajpw", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993590919-c9w2v", + "name": "Parent-6-Fork-B", + "startTime": 1743993590919, + "endTime": 1743993590920, + "parentSpanId": "span-1743993590518-jr9st", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993590919-squ8g", + "name": "Fork-B-Span-1", + "startTime": 1743993590919, + "endTime": 1743993590919, + "parentSpanId": "span-1743993590919-c9w2v", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993590919-0by66", + "name": "Fork-B-Span-2", + "startTime": 1743993590919, + "endTime": 1743993590920, + "parentSpanId": "span-1743993590919-c9w2v", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993591119-867q1", + "name": "Async-Job-1", + "startTime": 1743993591119, + "endTime": 1743993591519, + "parentSpanId": "span-1743993590518-jr9st", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993591120-zxfh2", + "name": "Async-Job-2", + "startTime": 1743993591120, + "endTime": 1743993591319, + "parentSpanId": "span-1743993591119-867q1", "isCompleted": true, "children": [] } @@ -916,48 +890,1336 @@ ] }, { - "spanId": "span-1743992215706-sc2ou", + "spanId": "span-1743993590718-8447f", + "name": "Parent-6-Fork-A", + "startTime": 1743993590718, + "endTime": 1743993590722, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993590719-rajpw", "name": "Parent-6-Fork-A", - "startTime": 1743992215706, - "endTime": 1743992216308, - "parentSpanId": "span-1743992215506-jod4m", + "startTime": 1743993590719, + "endTime": 1743993590722, + "parentSpanId": "span-1743993590518-jr9st", "isCompleted": true, "children": [ { - "spanId": "span-1743992215907-cmek8", + "spanId": "span-1743993590720-3f8ni", "name": "Fork-A-Span-1", - "startTime": 1743992215907, - "endTime": 1743992215907, - "parentSpanId": "span-1743992215706-sc2ou", + "startTime": 1743993590720, + "endTime": 1743993590720, + "parentSpanId": "span-1743993590719-rajpw", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992216107-d7no1", + "spanId": "span-1743993590721-1xs9k", "name": "Fork-A-Span-2", - "startTime": 1743992216107, - "endTime": 1743992216108, - "parentSpanId": "span-1743992215706-sc2ou", + "startTime": 1743993590721, + "endTime": 1743993590721, + "parentSpanId": "span-1743993590719-rajpw", "isCompleted": true, "children": [] } ] }, { - "spanId": "span-1743992215907-cmek8", + "spanId": "span-1743993590720-3f8ni", "name": "Fork-A-Span-1", - "startTime": 1743992215907, - "endTime": 1743992215907, - "parentSpanId": "span-1743992215706-sc2ou", + "startTime": 1743993590720, + "endTime": 1743993590720, + "parentSpanId": "span-1743993590719-rajpw", "isCompleted": true, "children": [] }, { - "spanId": "span-1743992216107-d7no1", + "spanId": "span-1743993590721-1xs9k", "name": "Fork-A-Span-2", - "startTime": 1743992216107, - "endTime": 1743992216108, - "parentSpanId": "span-1743992215706-sc2ou", + "startTime": 1743993590721, + "endTime": 1743993590721, + "parentSpanId": "span-1743993590719-rajpw", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993590918-ke5i8", + "name": "Parent-6-Fork-B", + "startTime": 1743993590918, + "endTime": 1743993590920, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993590919-c9w2v", + "name": "Parent-6-Fork-B", + "startTime": 1743993590919, + "endTime": 1743993590920, + "parentSpanId": "span-1743993590518-jr9st", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993590919-squ8g", + "name": "Fork-B-Span-1", + "startTime": 1743993590919, + "endTime": 1743993590919, + "parentSpanId": "span-1743993590919-c9w2v", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993590919-0by66", + "name": "Fork-B-Span-2", + "startTime": 1743993590919, + "endTime": 1743993590920, + "parentSpanId": "span-1743993590919-c9w2v", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993590919-squ8g", + "name": "Fork-B-Span-1", + "startTime": 1743993590919, + "endTime": 1743993590919, + "parentSpanId": "span-1743993590919-c9w2v", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993590919-0by66", + "name": "Fork-B-Span-2", + "startTime": 1743993590919, + "endTime": 1743993590920, + "parentSpanId": "span-1743993590919-c9w2v", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993591119-xcf4p", + "name": "Async-Chain-6", + "startTime": 1743993591119, + "endTime": 1743993591120, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993591119-867q1", + "name": "Async-Job-1", + "startTime": 1743993591119, + "endTime": 1743993591519, + "parentSpanId": "span-1743993590518-jr9st", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993591120-zxfh2", + "name": "Async-Job-2", + "startTime": 1743993591120, + "endTime": 1743993591319, + "parentSpanId": "span-1743993591119-867q1", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993591120-zxfh2", + "name": "Async-Job-2", + "startTime": 1743993591120, + "endTime": 1743993591319, + "parentSpanId": "span-1743993591119-867q1", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993592120-s9jrl", + "name": "Orphan-6", + "startTime": 1743993592120, + "endTime": 1743993592121, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993592722-9ti0d", + "name": "Parent-7", + "startTime": 1743993592722, + "endTime": 1743993594525, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993592923-73hws", + "name": "Parent-7-Fork-A", + "startTime": 1743993592923, + "endTime": 1743993592924, + "parentSpanId": "span-1743993592722-9ti0d", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993592923-4leq9", + "name": "Fork-A-Span-1", + "startTime": 1743993592923, + "endTime": 1743993592923, + "parentSpanId": "span-1743993592923-73hws", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743993592922-dptma", + "name": "Parent-7-Fork-A", + "startTime": 1743993592923, + "endTime": 1743993592924, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993592923-73hws", + "name": "Parent-7-Fork-A", + "startTime": 1743993592923, + "endTime": 1743993592924, + "parentSpanId": "span-1743993592722-9ti0d", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993592923-4leq9", + "name": "Fork-A-Span-1", + "startTime": 1743993592923, + "endTime": 1743993592923, + "parentSpanId": "span-1743993592923-73hws", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993592923-4leq9", + "name": "Fork-A-Span-1", + "startTime": 1743993592923, + "endTime": 1743993592923, + "parentSpanId": "span-1743993592923-73hws", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993594925-lsvjn", + "name": "Parent-8", + "startTime": 1743993594925, + "endTime": 1743993596728, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993595127-nu6sr", + "name": "Parent-8-Fork-A", + "startTime": 1743993595127, + "endTime": 1743993595128, + "parentSpanId": "span-1743993594925-lsvjn", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993595127-9bmc3", + "name": "Fork-A-Span-1", + "startTime": 1743993595127, + "endTime": 1743993595128, + "parentSpanId": "span-1743993595127-nu6sr", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993595326-j3upx", + "name": "Parent-8-Fork-B", + "startTime": 1743993595326, + "endTime": 1743993595327, + "parentSpanId": "span-1743993594925-lsvjn", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993595326-5er12", + "name": "Fork-B-Span-1", + "startTime": 1743993595326, + "endTime": 1743993595326, + "parentSpanId": "span-1743993595326-j3upx", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743993595126-l90hs", + "name": "Parent-8-Fork-A", + "startTime": 1743993595126, + "endTime": 1743993595129, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993595127-nu6sr", + "name": "Parent-8-Fork-A", + "startTime": 1743993595127, + "endTime": 1743993595128, + "parentSpanId": "span-1743993594925-lsvjn", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993595127-9bmc3", + "name": "Fork-A-Span-1", + "startTime": 1743993595127, + "endTime": 1743993595128, + "parentSpanId": "span-1743993595127-nu6sr", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993595127-9bmc3", + "name": "Fork-A-Span-1", + "startTime": 1743993595127, + "endTime": 1743993595128, + "parentSpanId": "span-1743993595127-nu6sr", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993595325-o6302", + "name": "Parent-8-Fork-B", + "startTime": 1743993595326, + "endTime": 1743993595327, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993595326-j3upx", + "name": "Parent-8-Fork-B", + "startTime": 1743993595326, + "endTime": 1743993595327, + "parentSpanId": "span-1743993594925-lsvjn", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993595326-5er12", + "name": "Fork-B-Span-1", + "startTime": 1743993595326, + "endTime": 1743993595326, + "parentSpanId": "span-1743993595326-j3upx", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993595326-5er12", + "name": "Fork-B-Span-1", + "startTime": 1743993595326, + "endTime": 1743993595326, + "parentSpanId": "span-1743993595326-j3upx", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597129-egrxb", + "name": "Parent-9", + "startTime": 1743993597129, + "endTime": 1743993598934, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597330-uufvw", + "name": "Parent-9-Fork-A", + "startTime": 1743993597330, + "endTime": 1743993597332, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597331-c9cvg", + "name": "Fork-A-Span-1", + "startTime": 1743993597331, + "endTime": 1743993597331, + "parentSpanId": "span-1743993597330-uufvw", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993597531-3xmc5", + "name": "Parent-9-Fork-B", + "startTime": 1743993597531, + "endTime": 1743993597534, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597531-v5j4t", + "name": "Fork-B-Span-1", + "startTime": 1743993597531, + "endTime": 1743993597532, + "parentSpanId": "span-1743993597531-3xmc5", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597533-zh3h7", + "name": "Fork-B-Span-2", + "startTime": 1743993597533, + "endTime": 1743993597533, + "parentSpanId": "span-1743993597531-3xmc5", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993597731-9192p", + "name": "Async-Job-1", + "startTime": 1743993597731, + "endTime": 1743993598333, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597731-l8jz6", + "name": "Async-Job-2", + "startTime": 1743993597731, + "endTime": 1743993598132, + "parentSpanId": "span-1743993597731-9192p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597732-lv041", + "name": "Async-Job-3", + "startTime": 1743993597732, + "endTime": 1743993597931, + "parentSpanId": "span-1743993597731-l8jz6", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743993598533-opvp3", + "name": "[Rejoins-Fork-9]", + "startTime": 1743993598533, + "endTime": 1743993598534, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993597329-13j0m", + "name": "Parent-9-Fork-A", + "startTime": 1743993597329, + "endTime": 1743993597332, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597330-uufvw", + "name": "Parent-9-Fork-A", + "startTime": 1743993597330, + "endTime": 1743993597332, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597331-c9cvg", + "name": "Fork-A-Span-1", + "startTime": 1743993597331, + "endTime": 1743993597331, + "parentSpanId": "span-1743993597330-uufvw", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993597331-c9cvg", + "name": "Fork-A-Span-1", + "startTime": 1743993597331, + "endTime": 1743993597331, + "parentSpanId": "span-1743993597330-uufvw", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597530-yv2bu", + "name": "Parent-9-Fork-B", + "startTime": 1743993597530, + "endTime": 1743993597534, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597531-3xmc5", + "name": "Parent-9-Fork-B", + "startTime": 1743993597531, + "endTime": 1743993597534, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597531-v5j4t", + "name": "Fork-B-Span-1", + "startTime": 1743993597531, + "endTime": 1743993597532, + "parentSpanId": "span-1743993597531-3xmc5", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597533-zh3h7", + "name": "Fork-B-Span-2", + "startTime": 1743993597533, + "endTime": 1743993597533, + "parentSpanId": "span-1743993597531-3xmc5", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993597531-v5j4t", + "name": "Fork-B-Span-1", + "startTime": 1743993597531, + "endTime": 1743993597532, + "parentSpanId": "span-1743993597531-3xmc5", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597533-zh3h7", + "name": "Fork-B-Span-2", + "startTime": 1743993597533, + "endTime": 1743993597533, + "parentSpanId": "span-1743993597531-3xmc5", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597730-vah3e", + "name": "Async-Chain-9", + "startTime": 1743993597730, + "endTime": 1743993597732, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993597731-9192p", + "name": "Async-Job-1", + "startTime": 1743993597731, + "endTime": 1743993598333, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597731-l8jz6", + "name": "Async-Job-2", + "startTime": 1743993597731, + "endTime": 1743993598132, + "parentSpanId": "span-1743993597731-9192p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597732-lv041", + "name": "Async-Job-3", + "startTime": 1743993597732, + "endTime": 1743993597931, + "parentSpanId": "span-1743993597731-l8jz6", + "isCompleted": true, + "children": [] + } + ] + } + ] + }, + { + "spanId": "span-1743993597731-l8jz6", + "name": "Async-Job-2", + "startTime": 1743993597731, + "endTime": 1743993598132, + "parentSpanId": "span-1743993597731-9192p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993597732-lv041", + "name": "Async-Job-3", + "startTime": 1743993597732, + "endTime": 1743993597931, + "parentSpanId": "span-1743993597731-l8jz6", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993597732-lv041", + "name": "Async-Job-3", + "startTime": 1743993597732, + "endTime": 1743993597931, + "parentSpanId": "span-1743993597731-l8jz6", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993598533-opvp3", + "name": "[Rejoins-Fork-9]", + "startTime": 1743993598533, + "endTime": 1743993598534, + "parentSpanId": "span-1743993597129-egrxb", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993598734-dstea", + "name": "Orphan-9", + "startTime": 1743993598734, + "endTime": 1743993598735, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599335-y890p", + "name": "Parent-10", + "startTime": 1743993599335, + "endTime": 1743993601138, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993599536-kkaq8", + "name": "Parent-10-Fork-A", + "startTime": 1743993599536, + "endTime": 1743993599538, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993599537-19p3g", + "name": "Fork-A-Span-1", + "startTime": 1743993599537, + "endTime": 1743993599537, + "parentSpanId": "span-1743993599536-kkaq8", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993599736-2ag8d", + "name": "Parent-10-Fork-B", + "startTime": 1743993599736, + "endTime": 1743993599741, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993599737-p6d1d", + "name": "Fork-B-Span-1", + "startTime": 1743993599737, + "endTime": 1743993599738, + "parentSpanId": "span-1743993599736-2ag8d", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599739-0ximq", + "name": "Fork-B-Span-2", + "startTime": 1743993599739, + "endTime": 1743993599740, + "parentSpanId": "span-1743993599736-2ag8d", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993599937-kvsjh", + "name": "Async-Job-1", + "startTime": 1743993599937, + "endTime": 1743993600337, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993599938-fqgxc", + "name": "Async-Job-2", + "startTime": 1743993599938, + "endTime": 1743993600137, + "parentSpanId": "span-1743993599937-kvsjh", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993600738-xwu5c", + "name": "[Rejoins-Fork-10]", + "startTime": 1743993600738, + "endTime": 1743993600739, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993599536-s75i9", + "name": "Parent-10-Fork-A", + "startTime": 1743993599536, + "endTime": 1743993599539, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599536-kkaq8", + "name": "Parent-10-Fork-A", + "startTime": 1743993599536, + "endTime": 1743993599538, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993599537-19p3g", + "name": "Fork-A-Span-1", + "startTime": 1743993599537, + "endTime": 1743993599537, + "parentSpanId": "span-1743993599536-kkaq8", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993599537-19p3g", + "name": "Fork-A-Span-1", + "startTime": 1743993599537, + "endTime": 1743993599537, + "parentSpanId": "span-1743993599536-kkaq8", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599735-60v75", + "name": "Parent-10-Fork-B", + "startTime": 1743993599735, + "endTime": 1743993599742, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599736-2ag8d", + "name": "Parent-10-Fork-B", + "startTime": 1743993599736, + "endTime": 1743993599741, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993599737-p6d1d", + "name": "Fork-B-Span-1", + "startTime": 1743993599737, + "endTime": 1743993599738, + "parentSpanId": "span-1743993599736-2ag8d", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599739-0ximq", + "name": "Fork-B-Span-2", + "startTime": 1743993599739, + "endTime": 1743993599740, + "parentSpanId": "span-1743993599736-2ag8d", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993599737-p6d1d", + "name": "Fork-B-Span-1", + "startTime": 1743993599737, + "endTime": 1743993599738, + "parentSpanId": "span-1743993599736-2ag8d", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599739-0ximq", + "name": "Fork-B-Span-2", + "startTime": 1743993599739, + "endTime": 1743993599740, + "parentSpanId": "span-1743993599736-2ag8d", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599936-dew2n", + "name": "Async-Chain-10", + "startTime": 1743993599936, + "endTime": 1743993599939, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993599937-kvsjh", + "name": "Async-Job-1", + "startTime": 1743993599937, + "endTime": 1743993600337, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993599938-fqgxc", + "name": "Async-Job-2", + "startTime": 1743993599938, + "endTime": 1743993600137, + "parentSpanId": "span-1743993599937-kvsjh", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993599938-fqgxc", + "name": "Async-Job-2", + "startTime": 1743993599938, + "endTime": 1743993600137, + "parentSpanId": "span-1743993599937-kvsjh", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993600738-xwu5c", + "name": "[Rejoins-Fork-10]", + "startTime": 1743993600738, + "endTime": 1743993600739, + "parentSpanId": "span-1743993599335-y890p", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993601539-jnwiz", + "name": "Parent-11", + "startTime": 1743993601539, + "endTime": 1743993603344, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993601740-c9bra", + "name": "Parent-11-Fork-A", + "startTime": 1743993601740, + "endTime": 1743993601742, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993601740-kdmv7", + "name": "Fork-A-Span-1", + "startTime": 1743993601740, + "endTime": 1743993601741, + "parentSpanId": "span-1743993601740-c9bra", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993601741-hiy4t", + "name": "Fork-A-Span-2", + "startTime": 1743993601741, + "endTime": 1743993601741, + "parentSpanId": "span-1743993601740-c9bra", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993601940-1dvm8", + "name": "Parent-11-Fork-B", + "startTime": 1743993601940, + "endTime": 1743993601941, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993601941-301zi", + "name": "Fork-B-Span-1", + "startTime": 1743993601941, + "endTime": 1743993601941, + "parentSpanId": "span-1743993601940-1dvm8", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993602141-ycu4f", + "name": "Async-Job-1", + "startTime": 1743993602141, + "endTime": 1743993602542, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993602141-o6ute", + "name": "Async-Job-2", + "startTime": 1743993602141, + "endTime": 1743993602341, + "parentSpanId": "span-1743993602141-ycu4f", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993602943-x5fi7", + "name": "[Rejoins-Fork-11]", + "startTime": 1743993602943, + "endTime": 1743993602944, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993601739-uqhpz", + "name": "Parent-11-Fork-A", + "startTime": 1743993601739, + "endTime": 1743993601742, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993601740-c9bra", + "name": "Parent-11-Fork-A", + "startTime": 1743993601740, + "endTime": 1743993601742, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993601740-kdmv7", + "name": "Fork-A-Span-1", + "startTime": 1743993601740, + "endTime": 1743993601741, + "parentSpanId": "span-1743993601740-c9bra", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993601741-hiy4t", + "name": "Fork-A-Span-2", + "startTime": 1743993601741, + "endTime": 1743993601741, + "parentSpanId": "span-1743993601740-c9bra", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993601740-kdmv7", + "name": "Fork-A-Span-1", + "startTime": 1743993601740, + "endTime": 1743993601741, + "parentSpanId": "span-1743993601740-c9bra", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993601741-hiy4t", + "name": "Fork-A-Span-2", + "startTime": 1743993601741, + "endTime": 1743993601741, + "parentSpanId": "span-1743993601740-c9bra", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993601939-ujr8d", + "name": "Parent-11-Fork-B", + "startTime": 1743993601939, + "endTime": 1743993601942, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993601940-1dvm8", + "name": "Parent-11-Fork-B", + "startTime": 1743993601940, + "endTime": 1743993601941, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993601941-301zi", + "name": "Fork-B-Span-1", + "startTime": 1743993601941, + "endTime": 1743993601941, + "parentSpanId": "span-1743993601940-1dvm8", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993601941-301zi", + "name": "Fork-B-Span-1", + "startTime": 1743993601941, + "endTime": 1743993601941, + "parentSpanId": "span-1743993601940-1dvm8", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993602140-e0iy6", + "name": "Async-Chain-11", + "startTime": 1743993602140, + "endTime": 1743993602142, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993602141-ycu4f", + "name": "Async-Job-1", + "startTime": 1743993602141, + "endTime": 1743993602542, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993602141-o6ute", + "name": "Async-Job-2", + "startTime": 1743993602141, + "endTime": 1743993602341, + "parentSpanId": "span-1743993602141-ycu4f", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993602141-o6ute", + "name": "Async-Job-2", + "startTime": 1743993602141, + "endTime": 1743993602341, + "parentSpanId": "span-1743993602141-ycu4f", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993602943-x5fi7", + "name": "[Rejoins-Fork-11]", + "startTime": 1743993602943, + "endTime": 1743993602944, + "parentSpanId": "span-1743993601539-jnwiz", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993603144-d7aqz", + "name": "Orphan-11", + "startTime": 1743993603144, + "endTime": 1743993603145, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993603744-rb2nc", + "name": "Parent-12", + "startTime": 1743993603744, + "endTime": 1743993605548, + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993603946-xgjau", + "name": "Parent-12-Fork-A", + "startTime": 1743993603946, + "endTime": 1743993603948, + "parentSpanId": "span-1743993603744-rb2nc", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993603947-fe19g", + "name": "Fork-A-Span-1", + "startTime": 1743993603947, + "endTime": 1743993603948, + "parentSpanId": "span-1743993603946-xgjau", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993604346-fs4th", + "name": "Async-Job-1", + "startTime": 1743993604346, + "endTime": 1743993604546, + "parentSpanId": "span-1743993603744-rb2nc", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993605148-tv1py", + "name": "[Rejoins-Fork-12]", + "startTime": 1743993605148, + "endTime": 1743993605148, + "parentSpanId": "span-1743993603744-rb2nc", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993603945-iee4m", + "name": "Parent-12-Fork-A", + "startTime": 1743993603945, + "endTime": 1743993603949, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993603946-xgjau", + "name": "Parent-12-Fork-A", + "startTime": 1743993603946, + "endTime": 1743993603948, + "parentSpanId": "span-1743993603744-rb2nc", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993603947-fe19g", + "name": "Fork-A-Span-1", + "startTime": 1743993603947, + "endTime": 1743993603948, + "parentSpanId": "span-1743993603946-xgjau", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993603947-fe19g", + "name": "Fork-A-Span-1", + "startTime": 1743993603947, + "endTime": 1743993603948, + "parentSpanId": "span-1743993603946-xgjau", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993604346-8x5g6", + "name": "Async-Chain-12", + "startTime": 1743993604346, + "endTime": 1743993604347, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993604346-fs4th", + "name": "Async-Job-1", + "startTime": 1743993604346, + "endTime": 1743993604546, + "parentSpanId": "span-1743993603744-rb2nc", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993605148-tv1py", + "name": "[Rejoins-Fork-12]", + "startTime": 1743993605148, + "endTime": 1743993605148, + "parentSpanId": "span-1743993603744-rb2nc", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993605347-ldzqy", + "name": "Orphan-12", + "startTime": 1743993605347, + "endTime": 1743993605348, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993605948-i81o7", + "name": "Parent-13", + "startTime": 1743993605948, + "isCompleted": false, + "children": [ + { + "spanId": "span-1743993606149-t28jr", + "name": "Parent-13-Fork-A", + "startTime": 1743993606149, + "endTime": 1743993606152, + "parentSpanId": "span-1743993605948-i81o7", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993606150-pmgsl", + "name": "Fork-A-Span-1", + "startTime": 1743993606150, + "endTime": 1743993606150, + "parentSpanId": "span-1743993606149-t28jr", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606151-atdn0", + "name": "Fork-A-Span-2", + "startTime": 1743993606151, + "endTime": 1743993606152, + "parentSpanId": "span-1743993606149-t28jr", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993606350-lbi3q", + "name": "Parent-13-Fork-B", + "startTime": 1743993606350, + "endTime": 1743993606353, + "parentSpanId": "span-1743993605948-i81o7", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993606352-nku43", + "name": "Fork-B-Span-1", + "startTime": 1743993606352, + "endTime": 1743993606352, + "parentSpanId": "span-1743993606350-lbi3q", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993606550-ykfdu", + "name": "Async-Job-1", + "startTime": 1743993606550, + "endTime": 1743993606749, + "parentSpanId": "span-1743993605948-i81o7", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993606148-h6mq9", + "name": "Parent-13-Fork-A", + "startTime": 1743993606148, + "endTime": 1743993606153, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606149-t28jr", + "name": "Parent-13-Fork-A", + "startTime": 1743993606149, + "endTime": 1743993606152, + "parentSpanId": "span-1743993605948-i81o7", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993606150-pmgsl", + "name": "Fork-A-Span-1", + "startTime": 1743993606150, + "endTime": 1743993606150, + "parentSpanId": "span-1743993606149-t28jr", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606151-atdn0", + "name": "Fork-A-Span-2", + "startTime": 1743993606151, + "endTime": 1743993606152, + "parentSpanId": "span-1743993606149-t28jr", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993606150-pmgsl", + "name": "Fork-A-Span-1", + "startTime": 1743993606150, + "endTime": 1743993606150, + "parentSpanId": "span-1743993606149-t28jr", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606151-atdn0", + "name": "Fork-A-Span-2", + "startTime": 1743993606151, + "endTime": 1743993606152, + "parentSpanId": "span-1743993606149-t28jr", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606349-leeym", + "name": "Parent-13-Fork-B", + "startTime": 1743993606349, + "endTime": 1743993606354, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606350-lbi3q", + "name": "Parent-13-Fork-B", + "startTime": 1743993606350, + "endTime": 1743993606353, + "parentSpanId": "span-1743993605948-i81o7", + "isCompleted": true, + "children": [ + { + "spanId": "span-1743993606352-nku43", + "name": "Fork-B-Span-1", + "startTime": 1743993606352, + "endTime": 1743993606352, + "parentSpanId": "span-1743993606350-lbi3q", + "isCompleted": true, + "children": [] + } + ] + }, + { + "spanId": "span-1743993606352-nku43", + "name": "Fork-B-Span-1", + "startTime": 1743993606352, + "endTime": 1743993606352, + "parentSpanId": "span-1743993606350-lbi3q", + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606549-gld8f", + "name": "Async-Chain-13", + "startTime": 1743993606549, + "endTime": 1743993606552, + "isCompleted": true, + "children": [] + }, + { + "spanId": "span-1743993606550-ykfdu", + "name": "Async-Job-1", + "startTime": 1743993606550, + "endTime": 1743993606749, + "parentSpanId": "span-1743993605948-i81o7", "isCompleted": true, "children": [] } diff --git a/spans.jsonl b/spans.jsonl index a0f1e87..8c50c06 100644 --- a/spans.jsonl +++ b/spans.jsonl @@ -79,3 +79,133 @@ {"spanId":"span-1743992215907-cmek8","name":"Fork-A-Span-1","startTime":1743992215907,"endTime":1743992215907,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]} {"spanId":"span-1743992216107-d7no1","name":"Fork-A-Span-2","startTime":1743992216107,"endTime":1743992216108,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]} {"spanId":"span-1743992215706-sc2ou","name":"Parent-6-Fork-A","startTime":1743992215706,"endTime":1743992216308,"parentSpanId":"span-1743992215506-jod4m","isCompleted":true,"children":[{"spanId":"span-1743992215907-cmek8","name":"Fork-A-Span-1","startTime":1743992215907,"endTime":1743992215907,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]},{"spanId":"span-1743992216107-d7no1","name":"Fork-A-Span-2","startTime":1743992216107,"endTime":1743992216108,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993577489-j3phn","name":"Fork-A-Span-1","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577489-xsqf8","isCompleted":true,"children":[]} +{"spanId":"span-1743993577489-xsqf8","name":"Parent-0-Fork-A","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577489-j3phn","name":"Fork-A-Span-1","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577489-xsqf8","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993577489-domtp","name":"Parent-0-Fork-A","startTime":1743993577489,"endTime":1743993577491,"isCompleted":true,"children":[]} +{"spanId":"span-1743993577890-zzq7i","name":"Async-Chain-0","startTime":1743993577890,"endTime":1743993577891,"isCompleted":true,"children":[]} +{"spanId":"span-1743993577891-ukqtt","name":"Async-Job-2","startTime":1743993577891,"endTime":1743993578090,"parentSpanId":"span-1743993577891-8acaj","isCompleted":true,"children":[]} +{"spanId":"span-1743993577891-8acaj","name":"Async-Job-1","startTime":1743993577891,"endTime":1743993578291,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577891-ukqtt","name":"Async-Job-2","startTime":1743993577891,"endTime":1743993578090,"parentSpanId":"span-1743993577891-8acaj","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993578691-glcza","name":"[Rejoins-Fork-0]","startTime":1743993578691,"endTime":1743993578692,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[]} +{"spanId":"span-1743993578892-r1gs1","name":"Orphan-0","startTime":1743993578892,"endTime":1743993578893,"isCompleted":true,"children":[]} +{"spanId":"span-1743993577289-4g7ta","name":"Parent-0","startTime":1743993577289,"endTime":1743993579093,"isCompleted":true,"children":[{"spanId":"span-1743993577489-xsqf8","name":"Parent-0-Fork-A","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577489-j3phn","name":"Fork-A-Span-1","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577489-xsqf8","isCompleted":true,"children":[]}]},{"spanId":"span-1743993577891-8acaj","name":"Async-Job-1","startTime":1743993577891,"endTime":1743993578291,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577891-ukqtt","name":"Async-Job-2","startTime":1743993577891,"endTime":1743993578090,"parentSpanId":"span-1743993577891-8acaj","isCompleted":true,"children":[]}]},{"spanId":"span-1743993578691-glcza","name":"[Rejoins-Fork-0]","startTime":1743993578691,"endTime":1743993578692,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993579694-2m2es","name":"Fork-A-Span-1","startTime":1743993579694,"endTime":1743993579694,"parentSpanId":"span-1743993579693-bg0em","isCompleted":true,"children":[]} +{"spanId":"span-1743993579693-bg0em","name":"Parent-1-Fork-A","startTime":1743993579693,"endTime":1743993579694,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579694-2m2es","name":"Fork-A-Span-1","startTime":1743993579694,"endTime":1743993579694,"parentSpanId":"span-1743993579693-bg0em","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993579693-s00w8","name":"Parent-1-Fork-A","startTime":1743993579693,"endTime":1743993579694,"isCompleted":true,"children":[]} +{"spanId":"span-1743993579895-6hq4a","name":"Fork-B-Span-1","startTime":1743993579895,"endTime":1743993579895,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]} +{"spanId":"span-1743993579895-38xi5","name":"Fork-B-Span-2","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]} +{"spanId":"span-1743993579895-40dig","name":"Parent-1-Fork-B","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579895-6hq4a","name":"Fork-B-Span-1","startTime":1743993579895,"endTime":1743993579895,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]},{"spanId":"span-1743993579895-38xi5","name":"Fork-B-Span-2","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993579894-0hqd6","name":"Parent-1-Fork-B","startTime":1743993579894,"endTime":1743993579896,"isCompleted":true,"children":[]} +{"spanId":"span-1743993580895-t065v","name":"[Rejoins-Fork-1]","startTime":1743993580895,"endTime":1743993580896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[]} +{"spanId":"span-1743993581095-p1nag","name":"Orphan-1","startTime":1743993581095,"endTime":1743993581096,"isCompleted":true,"children":[]} +{"spanId":"span-1743993579493-e6f43","name":"Parent-1","startTime":1743993579493,"endTime":1743993581296,"isCompleted":true,"children":[{"spanId":"span-1743993579693-bg0em","name":"Parent-1-Fork-A","startTime":1743993579693,"endTime":1743993579694,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579694-2m2es","name":"Fork-A-Span-1","startTime":1743993579694,"endTime":1743993579694,"parentSpanId":"span-1743993579693-bg0em","isCompleted":true,"children":[]}]},{"spanId":"span-1743993579895-40dig","name":"Parent-1-Fork-B","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579895-6hq4a","name":"Fork-B-Span-1","startTime":1743993579895,"endTime":1743993579895,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]},{"spanId":"span-1743993579895-38xi5","name":"Fork-B-Span-2","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]}]},{"spanId":"span-1743993580895-t065v","name":"[Rejoins-Fork-1]","startTime":1743993580895,"endTime":1743993580896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993581898-4tb25","name":"Fork-A-Span-1","startTime":1743993581898,"endTime":1743993581898,"parentSpanId":"span-1743993581897-g5wfo","isCompleted":true,"children":[]} +{"spanId":"span-1743993581897-g5wfo","name":"Parent-2-Fork-A","startTime":1743993581897,"endTime":1743993581898,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993581898-4tb25","name":"Fork-A-Span-1","startTime":1743993581898,"endTime":1743993581898,"parentSpanId":"span-1743993581897-g5wfo","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993581897-9sz3w","name":"Parent-2-Fork-A","startTime":1743993581897,"endTime":1743993581899,"isCompleted":true,"children":[]} +{"spanId":"span-1743993582298-avb0l","name":"Async-Chain-2","startTime":1743993582298,"endTime":1743993582299,"isCompleted":true,"children":[]} +{"spanId":"span-1743993582299-g0git","name":"Async-Job-2","startTime":1743993582299,"endTime":1743993582499,"parentSpanId":"span-1743993582299-se1f9","isCompleted":true,"children":[]} +{"spanId":"span-1743993582299-se1f9","name":"Async-Job-1","startTime":1743993582299,"endTime":1743993582700,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993582299-g0git","name":"Async-Job-2","startTime":1743993582299,"endTime":1743993582499,"parentSpanId":"span-1743993582299-se1f9","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993583301-9iq46","name":"Orphan-2","startTime":1743993583302,"endTime":1743993583302,"isCompleted":true,"children":[]} +{"spanId":"span-1743993581696-ai121","name":"Parent-2","startTime":1743993581696,"endTime":1743993583501,"isCompleted":true,"children":[{"spanId":"span-1743993581897-g5wfo","name":"Parent-2-Fork-A","startTime":1743993581897,"endTime":1743993581898,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993581898-4tb25","name":"Fork-A-Span-1","startTime":1743993581898,"endTime":1743993581898,"parentSpanId":"span-1743993581897-g5wfo","isCompleted":true,"children":[]}]},{"spanId":"span-1743993582299-se1f9","name":"Async-Job-1","startTime":1743993582299,"endTime":1743993582700,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993582299-g0git","name":"Async-Job-2","startTime":1743993582299,"endTime":1743993582499,"parentSpanId":"span-1743993582299-se1f9","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743993584103-hbddh","name":"Fork-A-Span-1","startTime":1743993584103,"endTime":1743993584103,"parentSpanId":"span-1743993584102-u2g49","isCompleted":true,"children":[]} +{"spanId":"span-1743993584102-u2g49","name":"Parent-3-Fork-A","startTime":1743993584102,"endTime":1743993584103,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584103-hbddh","name":"Fork-A-Span-1","startTime":1743993584103,"endTime":1743993584103,"parentSpanId":"span-1743993584102-u2g49","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993584102-v5fb4","name":"Parent-3-Fork-A","startTime":1743993584102,"endTime":1743993584103,"isCompleted":true,"children":[]} +{"spanId":"span-1743993584303-kg46d","name":"Fork-B-Span-1","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993584303-3mgz7","isCompleted":true,"children":[]} +{"spanId":"span-1743993584303-3mgz7","name":"Parent-3-Fork-B","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584303-kg46d","name":"Fork-B-Span-1","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993584303-3mgz7","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993584303-4ciip","name":"Parent-3-Fork-B","startTime":1743993584303,"endTime":1743993584303,"isCompleted":true,"children":[]} +{"spanId":"span-1743993585305-1315y","name":"[Rejoins-Fork-3]","startTime":1743993585305,"endTime":1743993585305,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[]} +{"spanId":"span-1743993585506-8hx4i","name":"Orphan-3","startTime":1743993585506,"endTime":1743993585506,"isCompleted":true,"children":[]} +{"spanId":"span-1743993583902-2cx66","name":"Parent-3","startTime":1743993583902,"endTime":1743993585707,"isCompleted":true,"children":[{"spanId":"span-1743993584102-u2g49","name":"Parent-3-Fork-A","startTime":1743993584102,"endTime":1743993584103,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584103-hbddh","name":"Fork-A-Span-1","startTime":1743993584103,"endTime":1743993584103,"parentSpanId":"span-1743993584102-u2g49","isCompleted":true,"children":[]}]},{"spanId":"span-1743993584303-3mgz7","name":"Parent-3-Fork-B","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584303-kg46d","name":"Fork-B-Span-1","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993584303-3mgz7","isCompleted":true,"children":[]}]},{"spanId":"span-1743993585305-1315y","name":"[Rejoins-Fork-3]","startTime":1743993585305,"endTime":1743993585305,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993586310-s2m9j","name":"Fork-A-Span-1","startTime":1743993586310,"endTime":1743993586310,"parentSpanId":"span-1743993586309-7fciz","isCompleted":true,"children":[]} +{"spanId":"span-1743993586309-7fciz","name":"Parent-4-Fork-A","startTime":1743993586309,"endTime":1743993586310,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[{"spanId":"span-1743993586310-s2m9j","name":"Fork-A-Span-1","startTime":1743993586310,"endTime":1743993586310,"parentSpanId":"span-1743993586309-7fciz","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993586309-jzqij","name":"Parent-4-Fork-A","startTime":1743993586309,"endTime":1743993586310,"isCompleted":true,"children":[]} +{"spanId":"span-1743993586710-gemwg","name":"Async-Chain-4","startTime":1743993586710,"endTime":1743993586711,"isCompleted":true,"children":[]} +{"spanId":"span-1743993586711-028u0","name":"Async-Job-1","startTime":1743993586711,"endTime":1743993586911,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[]} +{"spanId":"span-1743993586108-9eqvz","name":"Parent-4","startTime":1743993586108,"endTime":1743993587913,"isCompleted":true,"children":[{"spanId":"span-1743993586309-7fciz","name":"Parent-4-Fork-A","startTime":1743993586309,"endTime":1743993586310,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[{"spanId":"span-1743993586310-s2m9j","name":"Fork-A-Span-1","startTime":1743993586310,"endTime":1743993586310,"parentSpanId":"span-1743993586309-7fciz","isCompleted":true,"children":[]}]},{"spanId":"span-1743993586711-028u0","name":"Async-Job-1","startTime":1743993586711,"endTime":1743993586911,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993588515-8fbj8","name":"Fork-A-Span-1","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588515-8r5ys","isCompleted":true,"children":[]} +{"spanId":"span-1743993588515-8r5ys","name":"Parent-5-Fork-A","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588515-8fbj8","name":"Fork-A-Span-1","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588515-8r5ys","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993588514-bl9ko","name":"Parent-5-Fork-A","startTime":1743993588514,"endTime":1743993588516,"isCompleted":true,"children":[]} +{"spanId":"span-1743993588716-x032j","name":"Fork-B-Span-1","startTime":1743993588716,"endTime":1743993588716,"parentSpanId":"span-1743993588715-w9bqa","isCompleted":true,"children":[]} +{"spanId":"span-1743993588715-w9bqa","name":"Parent-5-Fork-B","startTime":1743993588715,"endTime":1743993588716,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588716-x032j","name":"Fork-B-Span-1","startTime":1743993588716,"endTime":1743993588716,"parentSpanId":"span-1743993588715-w9bqa","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993588715-e0ban","name":"Parent-5-Fork-B","startTime":1743993588715,"endTime":1743993588717,"isCompleted":true,"children":[]} +{"spanId":"span-1743993589916-myoy4","name":"Orphan-5","startTime":1743993589916,"endTime":1743993589916,"isCompleted":true,"children":[]} +{"spanId":"span-1743993588314-2xm9z","name":"Parent-5","startTime":1743993588314,"endTime":1743993590117,"isCompleted":true,"children":[{"spanId":"span-1743993588515-8r5ys","name":"Parent-5-Fork-A","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588515-8fbj8","name":"Fork-A-Span-1","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588515-8r5ys","isCompleted":true,"children":[]}]},{"spanId":"span-1743993588715-w9bqa","name":"Parent-5-Fork-B","startTime":1743993588715,"endTime":1743993588716,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588716-x032j","name":"Fork-B-Span-1","startTime":1743993588716,"endTime":1743993588716,"parentSpanId":"span-1743993588715-w9bqa","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743993590720-3f8ni","name":"Fork-A-Span-1","startTime":1743993590720,"endTime":1743993590720,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]} +{"spanId":"span-1743993590721-1xs9k","name":"Fork-A-Span-2","startTime":1743993590721,"endTime":1743993590721,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]} +{"spanId":"span-1743993590719-rajpw","name":"Parent-6-Fork-A","startTime":1743993590719,"endTime":1743993590722,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590720-3f8ni","name":"Fork-A-Span-1","startTime":1743993590720,"endTime":1743993590720,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]},{"spanId":"span-1743993590721-1xs9k","name":"Fork-A-Span-2","startTime":1743993590721,"endTime":1743993590721,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993590718-8447f","name":"Parent-6-Fork-A","startTime":1743993590718,"endTime":1743993590722,"isCompleted":true,"children":[]} +{"spanId":"span-1743993590919-squ8g","name":"Fork-B-Span-1","startTime":1743993590919,"endTime":1743993590919,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]} +{"spanId":"span-1743993590919-0by66","name":"Fork-B-Span-2","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]} +{"spanId":"span-1743993590919-c9w2v","name":"Parent-6-Fork-B","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590919-squ8g","name":"Fork-B-Span-1","startTime":1743993590919,"endTime":1743993590919,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]},{"spanId":"span-1743993590919-0by66","name":"Fork-B-Span-2","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993590918-ke5i8","name":"Parent-6-Fork-B","startTime":1743993590918,"endTime":1743993590920,"isCompleted":true,"children":[]} +{"spanId":"span-1743993591119-xcf4p","name":"Async-Chain-6","startTime":1743993591119,"endTime":1743993591120,"isCompleted":true,"children":[]} +{"spanId":"span-1743993591120-zxfh2","name":"Async-Job-2","startTime":1743993591120,"endTime":1743993591319,"parentSpanId":"span-1743993591119-867q1","isCompleted":true,"children":[]} +{"spanId":"span-1743993591119-867q1","name":"Async-Job-1","startTime":1743993591119,"endTime":1743993591519,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993591120-zxfh2","name":"Async-Job-2","startTime":1743993591120,"endTime":1743993591319,"parentSpanId":"span-1743993591119-867q1","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993592120-s9jrl","name":"Orphan-6","startTime":1743993592120,"endTime":1743993592121,"isCompleted":true,"children":[]} +{"spanId":"span-1743993590518-jr9st","name":"Parent-6","startTime":1743993590518,"endTime":1743993592321,"isCompleted":true,"children":[{"spanId":"span-1743993590719-rajpw","name":"Parent-6-Fork-A","startTime":1743993590719,"endTime":1743993590722,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590720-3f8ni","name":"Fork-A-Span-1","startTime":1743993590720,"endTime":1743993590720,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]},{"spanId":"span-1743993590721-1xs9k","name":"Fork-A-Span-2","startTime":1743993590721,"endTime":1743993590721,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]}]},{"spanId":"span-1743993590919-c9w2v","name":"Parent-6-Fork-B","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590919-squ8g","name":"Fork-B-Span-1","startTime":1743993590919,"endTime":1743993590919,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]},{"spanId":"span-1743993590919-0by66","name":"Fork-B-Span-2","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]}]},{"spanId":"span-1743993591119-867q1","name":"Async-Job-1","startTime":1743993591119,"endTime":1743993591519,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993591120-zxfh2","name":"Async-Job-2","startTime":1743993591120,"endTime":1743993591319,"parentSpanId":"span-1743993591119-867q1","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743993592923-4leq9","name":"Fork-A-Span-1","startTime":1743993592923,"endTime":1743993592923,"parentSpanId":"span-1743993592923-73hws","isCompleted":true,"children":[]} +{"spanId":"span-1743993592923-73hws","name":"Parent-7-Fork-A","startTime":1743993592923,"endTime":1743993592924,"parentSpanId":"span-1743993592722-9ti0d","isCompleted":true,"children":[{"spanId":"span-1743993592923-4leq9","name":"Fork-A-Span-1","startTime":1743993592923,"endTime":1743993592923,"parentSpanId":"span-1743993592923-73hws","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993592922-dptma","name":"Parent-7-Fork-A","startTime":1743993592923,"endTime":1743993592924,"isCompleted":true,"children":[]} +{"spanId":"span-1743993592722-9ti0d","name":"Parent-7","startTime":1743993592722,"endTime":1743993594525,"isCompleted":true,"children":[{"spanId":"span-1743993592923-73hws","name":"Parent-7-Fork-A","startTime":1743993592923,"endTime":1743993592924,"parentSpanId":"span-1743993592722-9ti0d","isCompleted":true,"children":[{"spanId":"span-1743993592923-4leq9","name":"Fork-A-Span-1","startTime":1743993592923,"endTime":1743993592923,"parentSpanId":"span-1743993592923-73hws","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743993595127-9bmc3","name":"Fork-A-Span-1","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993595127-nu6sr","isCompleted":true,"children":[]} +{"spanId":"span-1743993595127-nu6sr","name":"Parent-8-Fork-A","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595127-9bmc3","name":"Fork-A-Span-1","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993595127-nu6sr","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993595126-l90hs","name":"Parent-8-Fork-A","startTime":1743993595126,"endTime":1743993595129,"isCompleted":true,"children":[]} +{"spanId":"span-1743993595326-5er12","name":"Fork-B-Span-1","startTime":1743993595326,"endTime":1743993595326,"parentSpanId":"span-1743993595326-j3upx","isCompleted":true,"children":[]} +{"spanId":"span-1743993595326-j3upx","name":"Parent-8-Fork-B","startTime":1743993595326,"endTime":1743993595327,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595326-5er12","name":"Fork-B-Span-1","startTime":1743993595326,"endTime":1743993595326,"parentSpanId":"span-1743993595326-j3upx","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993595325-o6302","name":"Parent-8-Fork-B","startTime":1743993595326,"endTime":1743993595327,"isCompleted":true,"children":[]} +{"spanId":"span-1743993594925-lsvjn","name":"Parent-8","startTime":1743993594925,"endTime":1743993596728,"isCompleted":true,"children":[{"spanId":"span-1743993595127-nu6sr","name":"Parent-8-Fork-A","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595127-9bmc3","name":"Fork-A-Span-1","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993595127-nu6sr","isCompleted":true,"children":[]}]},{"spanId":"span-1743993595326-j3upx","name":"Parent-8-Fork-B","startTime":1743993595326,"endTime":1743993595327,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595326-5er12","name":"Fork-B-Span-1","startTime":1743993595326,"endTime":1743993595326,"parentSpanId":"span-1743993595326-j3upx","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743993597331-c9cvg","name":"Fork-A-Span-1","startTime":1743993597331,"endTime":1743993597331,"parentSpanId":"span-1743993597330-uufvw","isCompleted":true,"children":[]} +{"spanId":"span-1743993597330-uufvw","name":"Parent-9-Fork-A","startTime":1743993597330,"endTime":1743993597332,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597331-c9cvg","name":"Fork-A-Span-1","startTime":1743993597331,"endTime":1743993597331,"parentSpanId":"span-1743993597330-uufvw","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993597329-13j0m","name":"Parent-9-Fork-A","startTime":1743993597329,"endTime":1743993597332,"isCompleted":true,"children":[]} +{"spanId":"span-1743993597531-v5j4t","name":"Fork-B-Span-1","startTime":1743993597531,"endTime":1743993597532,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]} +{"spanId":"span-1743993597533-zh3h7","name":"Fork-B-Span-2","startTime":1743993597533,"endTime":1743993597533,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]} +{"spanId":"span-1743993597531-3xmc5","name":"Parent-9-Fork-B","startTime":1743993597531,"endTime":1743993597534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597531-v5j4t","name":"Fork-B-Span-1","startTime":1743993597531,"endTime":1743993597532,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]},{"spanId":"span-1743993597533-zh3h7","name":"Fork-B-Span-2","startTime":1743993597533,"endTime":1743993597533,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993597530-yv2bu","name":"Parent-9-Fork-B","startTime":1743993597530,"endTime":1743993597534,"isCompleted":true,"children":[]} +{"spanId":"span-1743993597730-vah3e","name":"Async-Chain-9","startTime":1743993597730,"endTime":1743993597732,"isCompleted":true,"children":[]} +{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]} +{"spanId":"span-1743993597731-l8jz6","name":"Async-Job-2","startTime":1743993597731,"endTime":1743993598132,"parentSpanId":"span-1743993597731-9192p","isCompleted":true,"children":[{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993597731-9192p","name":"Async-Job-1","startTime":1743993597731,"endTime":1743993598333,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597731-l8jz6","name":"Async-Job-2","startTime":1743993597731,"endTime":1743993598132,"parentSpanId":"span-1743993597731-9192p","isCompleted":true,"children":[{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]}]}]} +{"spanId":"span-1743993598533-opvp3","name":"[Rejoins-Fork-9]","startTime":1743993598533,"endTime":1743993598534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[]} +{"spanId":"span-1743993598734-dstea","name":"Orphan-9","startTime":1743993598734,"endTime":1743993598735,"isCompleted":true,"children":[]} +{"spanId":"span-1743993597129-egrxb","name":"Parent-9","startTime":1743993597129,"endTime":1743993598934,"isCompleted":true,"children":[{"spanId":"span-1743993597330-uufvw","name":"Parent-9-Fork-A","startTime":1743993597330,"endTime":1743993597332,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597331-c9cvg","name":"Fork-A-Span-1","startTime":1743993597331,"endTime":1743993597331,"parentSpanId":"span-1743993597330-uufvw","isCompleted":true,"children":[]}]},{"spanId":"span-1743993597531-3xmc5","name":"Parent-9-Fork-B","startTime":1743993597531,"endTime":1743993597534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597531-v5j4t","name":"Fork-B-Span-1","startTime":1743993597531,"endTime":1743993597532,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]},{"spanId":"span-1743993597533-zh3h7","name":"Fork-B-Span-2","startTime":1743993597533,"endTime":1743993597533,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]}]},{"spanId":"span-1743993597731-9192p","name":"Async-Job-1","startTime":1743993597731,"endTime":1743993598333,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597731-l8jz6","name":"Async-Job-2","startTime":1743993597731,"endTime":1743993598132,"parentSpanId":"span-1743993597731-9192p","isCompleted":true,"children":[{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]}]}]},{"spanId":"span-1743993598533-opvp3","name":"[Rejoins-Fork-9]","startTime":1743993598533,"endTime":1743993598534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993599537-19p3g","name":"Fork-A-Span-1","startTime":1743993599537,"endTime":1743993599537,"parentSpanId":"span-1743993599536-kkaq8","isCompleted":true,"children":[]} +{"spanId":"span-1743993599536-kkaq8","name":"Parent-10-Fork-A","startTime":1743993599536,"endTime":1743993599538,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599537-19p3g","name":"Fork-A-Span-1","startTime":1743993599537,"endTime":1743993599537,"parentSpanId":"span-1743993599536-kkaq8","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993599536-s75i9","name":"Parent-10-Fork-A","startTime":1743993599536,"endTime":1743993599539,"isCompleted":true,"children":[]} +{"spanId":"span-1743993599737-p6d1d","name":"Fork-B-Span-1","startTime":1743993599737,"endTime":1743993599738,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]} +{"spanId":"span-1743993599739-0ximq","name":"Fork-B-Span-2","startTime":1743993599739,"endTime":1743993599740,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]} +{"spanId":"span-1743993599736-2ag8d","name":"Parent-10-Fork-B","startTime":1743993599736,"endTime":1743993599741,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599737-p6d1d","name":"Fork-B-Span-1","startTime":1743993599737,"endTime":1743993599738,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]},{"spanId":"span-1743993599739-0ximq","name":"Fork-B-Span-2","startTime":1743993599739,"endTime":1743993599740,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993599735-60v75","name":"Parent-10-Fork-B","startTime":1743993599735,"endTime":1743993599742,"isCompleted":true,"children":[]} +{"spanId":"span-1743993599936-dew2n","name":"Async-Chain-10","startTime":1743993599936,"endTime":1743993599939,"isCompleted":true,"children":[]} +{"spanId":"span-1743993599938-fqgxc","name":"Async-Job-2","startTime":1743993599938,"endTime":1743993600137,"parentSpanId":"span-1743993599937-kvsjh","isCompleted":true,"children":[]} +{"spanId":"span-1743993599937-kvsjh","name":"Async-Job-1","startTime":1743993599937,"endTime":1743993600337,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599938-fqgxc","name":"Async-Job-2","startTime":1743993599938,"endTime":1743993600137,"parentSpanId":"span-1743993599937-kvsjh","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993600738-xwu5c","name":"[Rejoins-Fork-10]","startTime":1743993600738,"endTime":1743993600739,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[]} +{"spanId":"span-1743993599335-y890p","name":"Parent-10","startTime":1743993599335,"endTime":1743993601138,"isCompleted":true,"children":[{"spanId":"span-1743993599536-kkaq8","name":"Parent-10-Fork-A","startTime":1743993599536,"endTime":1743993599538,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599537-19p3g","name":"Fork-A-Span-1","startTime":1743993599537,"endTime":1743993599537,"parentSpanId":"span-1743993599536-kkaq8","isCompleted":true,"children":[]}]},{"spanId":"span-1743993599736-2ag8d","name":"Parent-10-Fork-B","startTime":1743993599736,"endTime":1743993599741,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599737-p6d1d","name":"Fork-B-Span-1","startTime":1743993599737,"endTime":1743993599738,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]},{"spanId":"span-1743993599739-0ximq","name":"Fork-B-Span-2","startTime":1743993599739,"endTime":1743993599740,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]}]},{"spanId":"span-1743993599937-kvsjh","name":"Async-Job-1","startTime":1743993599937,"endTime":1743993600337,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599938-fqgxc","name":"Async-Job-2","startTime":1743993599938,"endTime":1743993600137,"parentSpanId":"span-1743993599937-kvsjh","isCompleted":true,"children":[]}]},{"spanId":"span-1743993600738-xwu5c","name":"[Rejoins-Fork-10]","startTime":1743993600738,"endTime":1743993600739,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993601740-kdmv7","name":"Fork-A-Span-1","startTime":1743993601740,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]} +{"spanId":"span-1743993601741-hiy4t","name":"Fork-A-Span-2","startTime":1743993601741,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]} +{"spanId":"span-1743993601740-c9bra","name":"Parent-11-Fork-A","startTime":1743993601740,"endTime":1743993601742,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601740-kdmv7","name":"Fork-A-Span-1","startTime":1743993601740,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]},{"spanId":"span-1743993601741-hiy4t","name":"Fork-A-Span-2","startTime":1743993601741,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993601739-uqhpz","name":"Parent-11-Fork-A","startTime":1743993601739,"endTime":1743993601742,"isCompleted":true,"children":[]} +{"spanId":"span-1743993601941-301zi","name":"Fork-B-Span-1","startTime":1743993601941,"endTime":1743993601941,"parentSpanId":"span-1743993601940-1dvm8","isCompleted":true,"children":[]} +{"spanId":"span-1743993601940-1dvm8","name":"Parent-11-Fork-B","startTime":1743993601940,"endTime":1743993601941,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601941-301zi","name":"Fork-B-Span-1","startTime":1743993601941,"endTime":1743993601941,"parentSpanId":"span-1743993601940-1dvm8","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993601939-ujr8d","name":"Parent-11-Fork-B","startTime":1743993601939,"endTime":1743993601942,"isCompleted":true,"children":[]} +{"spanId":"span-1743993602140-e0iy6","name":"Async-Chain-11","startTime":1743993602140,"endTime":1743993602142,"isCompleted":true,"children":[]} +{"spanId":"span-1743993602141-o6ute","name":"Async-Job-2","startTime":1743993602141,"endTime":1743993602341,"parentSpanId":"span-1743993602141-ycu4f","isCompleted":true,"children":[]} +{"spanId":"span-1743993602141-ycu4f","name":"Async-Job-1","startTime":1743993602141,"endTime":1743993602542,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993602141-o6ute","name":"Async-Job-2","startTime":1743993602141,"endTime":1743993602341,"parentSpanId":"span-1743993602141-ycu4f","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993602943-x5fi7","name":"[Rejoins-Fork-11]","startTime":1743993602943,"endTime":1743993602944,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[]} +{"spanId":"span-1743993603144-d7aqz","name":"Orphan-11","startTime":1743993603144,"endTime":1743993603145,"isCompleted":true,"children":[]} +{"spanId":"span-1743993601539-jnwiz","name":"Parent-11","startTime":1743993601539,"endTime":1743993603344,"isCompleted":true,"children":[{"spanId":"span-1743993601740-c9bra","name":"Parent-11-Fork-A","startTime":1743993601740,"endTime":1743993601742,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601740-kdmv7","name":"Fork-A-Span-1","startTime":1743993601740,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]},{"spanId":"span-1743993601741-hiy4t","name":"Fork-A-Span-2","startTime":1743993601741,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]}]},{"spanId":"span-1743993601940-1dvm8","name":"Parent-11-Fork-B","startTime":1743993601940,"endTime":1743993601941,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601941-301zi","name":"Fork-B-Span-1","startTime":1743993601941,"endTime":1743993601941,"parentSpanId":"span-1743993601940-1dvm8","isCompleted":true,"children":[]}]},{"spanId":"span-1743993602141-ycu4f","name":"Async-Job-1","startTime":1743993602141,"endTime":1743993602542,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993602141-o6ute","name":"Async-Job-2","startTime":1743993602141,"endTime":1743993602341,"parentSpanId":"span-1743993602141-ycu4f","isCompleted":true,"children":[]}]},{"spanId":"span-1743993602943-x5fi7","name":"[Rejoins-Fork-11]","startTime":1743993602943,"endTime":1743993602944,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993603947-fe19g","name":"Fork-A-Span-1","startTime":1743993603947,"endTime":1743993603948,"parentSpanId":"span-1743993603946-xgjau","isCompleted":true,"children":[]} +{"spanId":"span-1743993603946-xgjau","name":"Parent-12-Fork-A","startTime":1743993603946,"endTime":1743993603948,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[{"spanId":"span-1743993603947-fe19g","name":"Fork-A-Span-1","startTime":1743993603947,"endTime":1743993603948,"parentSpanId":"span-1743993603946-xgjau","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993603945-iee4m","name":"Parent-12-Fork-A","startTime":1743993603945,"endTime":1743993603949,"isCompleted":true,"children":[]} +{"spanId":"span-1743993604346-8x5g6","name":"Async-Chain-12","startTime":1743993604346,"endTime":1743993604347,"isCompleted":true,"children":[]} +{"spanId":"span-1743993604346-fs4th","name":"Async-Job-1","startTime":1743993604346,"endTime":1743993604546,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]} +{"spanId":"span-1743993605148-tv1py","name":"[Rejoins-Fork-12]","startTime":1743993605148,"endTime":1743993605148,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]} +{"spanId":"span-1743993605347-ldzqy","name":"Orphan-12","startTime":1743993605347,"endTime":1743993605348,"isCompleted":true,"children":[]} +{"spanId":"span-1743993603744-rb2nc","name":"Parent-12","startTime":1743993603744,"endTime":1743993605548,"isCompleted":true,"children":[{"spanId":"span-1743993603946-xgjau","name":"Parent-12-Fork-A","startTime":1743993603946,"endTime":1743993603948,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[{"spanId":"span-1743993603947-fe19g","name":"Fork-A-Span-1","startTime":1743993603947,"endTime":1743993603948,"parentSpanId":"span-1743993603946-xgjau","isCompleted":true,"children":[]}]},{"spanId":"span-1743993604346-fs4th","name":"Async-Job-1","startTime":1743993604346,"endTime":1743993604546,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]},{"spanId":"span-1743993605148-tv1py","name":"[Rejoins-Fork-12]","startTime":1743993605148,"endTime":1743993605148,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993606150-pmgsl","name":"Fork-A-Span-1","startTime":1743993606150,"endTime":1743993606150,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]} +{"spanId":"span-1743993606151-atdn0","name":"Fork-A-Span-2","startTime":1743993606151,"endTime":1743993606152,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]} +{"spanId":"span-1743993606149-t28jr","name":"Parent-13-Fork-A","startTime":1743993606149,"endTime":1743993606152,"parentSpanId":"span-1743993605948-i81o7","isCompleted":true,"children":[{"spanId":"span-1743993606150-pmgsl","name":"Fork-A-Span-1","startTime":1743993606150,"endTime":1743993606150,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]},{"spanId":"span-1743993606151-atdn0","name":"Fork-A-Span-2","startTime":1743993606151,"endTime":1743993606152,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993606148-h6mq9","name":"Parent-13-Fork-A","startTime":1743993606148,"endTime":1743993606153,"isCompleted":true,"children":[]} +{"spanId":"span-1743993606352-nku43","name":"Fork-B-Span-1","startTime":1743993606352,"endTime":1743993606352,"parentSpanId":"span-1743993606350-lbi3q","isCompleted":true,"children":[]} +{"spanId":"span-1743993606350-lbi3q","name":"Parent-13-Fork-B","startTime":1743993606350,"endTime":1743993606353,"parentSpanId":"span-1743993605948-i81o7","isCompleted":true,"children":[{"spanId":"span-1743993606352-nku43","name":"Fork-B-Span-1","startTime":1743993606352,"endTime":1743993606352,"parentSpanId":"span-1743993606350-lbi3q","isCompleted":true,"children":[]}]} +{"spanId":"span-1743993606349-leeym","name":"Parent-13-Fork-B","startTime":1743993606349,"endTime":1743993606354,"isCompleted":true,"children":[]} +{"spanId":"span-1743993606549-gld8f","name":"Async-Chain-13","startTime":1743993606549,"endTime":1743993606552,"isCompleted":true,"children":[]} +{"spanId":"span-1743993606550-ykfdu","name":"Async-Job-1","startTime":1743993606550,"endTime":1743993606749,"parentSpanId":"span-1743993605948-i81o7","isCompleted":true,"children":[]} diff --git a/src/lib/Tracer.ts b/src/lib/Tracer.ts index b5d7c99..6501a8b 100644 --- a/src/lib/Tracer.ts +++ b/src/lib/Tracer.ts @@ -28,7 +28,11 @@ export default class Tracer { return span; } - public traced(name: string, fn: () => Promise, parentSpanId?: string): Promise { + public traced( + name: string, + fn: () => Promise, + parentSpanId?: string, + ): Promise { const spanId = this.startSpan(name, parentSpanId); return fn() .then((result) => { @@ -53,14 +57,14 @@ export default class Tracer { return JSON.stringify( this.getActiveSpans().map((s) => s.toJSON()), null, - 2 + 2, ); } private saveSpansToFile(): void { fs.writeFileSync( this.spanFile, - JSON.stringify(this.getActiveSpans(), null, 2) + JSON.stringify(this.getActiveSpans(), null, 2), ); } } diff --git a/tests/asciinemaTest.ts b/tests/asciinemaTest.ts index 73fd011..4510792 100644 --- a/tests/asciinemaTest.ts +++ b/tests/asciinemaTest.ts @@ -1,4 +1,4 @@ -import { openSpan, closeSpan } from '../src/lib/tracingManager.js'; +import { openSpan, closeSpan, traced } from '../src/lib/tracingManager.js'; let parentIndex = 0; let step = 0; @@ -28,7 +28,7 @@ function randomInt(min: number, max: number) { return Math.floor(Math.random() * (max - min + 1)) + min; } -setInterval(() => { +setInterval(async () => { switch (step) { case 0: { current.flags = { @@ -43,90 +43,69 @@ setInterval(() => { }; current.parentId = openSpan(`Parent-${parentIndex}`); - nestedIds = []; // Reset nested tracking + nestedIds = []; break; } - case 1: + case 1: { if (current.flags.hasForkA) { - current.forkAId = openSpan( - `Parent-${parentIndex}-Fork-A`, - current.parentId, - ); - } - break; - - case 2: - case 3: - if (current.flags.hasForkA && step - 2 < current.flags.forkAChildren) { - const id = openSpan(`Fork-A-Span-${step - 1}`, current.forkAId); - closeSpan(id); + await traced(`Parent-${parentIndex}-Fork-A`, async () => { + current.forkAId = openSpan( + `Parent-${parentIndex}-Fork-A`, + current.parentId, + ); + for (let i = 1; i <= current.flags.forkAChildren; i++) { + const id = openSpan(`Fork-A-Span-${i}`, current.forkAId); + closeSpan(id); + } + closeSpan(current.forkAId!); + }); } break; + } - case 4: - if (current.flags.hasForkA) closeSpan(current.forkAId!); - break; - - case 5: + case 2: { if (current.flags.hasForkB) { - current.forkBId = openSpan( - `Parent-${parentIndex}-Fork-B`, - current.parentId, - ); - } - break; - - case 6: - case 7: - if (current.flags.hasForkB && step - 6 < current.flags.forkBChildren) { - const id = openSpan(`Fork-B-Span-${step - 5}`, current.forkBId); - closeSpan(id); - } - break; - - case 8: - if (current.flags.hasForkB) closeSpan(current.forkBId!); - break; - - // Dynamically open nested spans with randomized depth and better naming - case 9: { - if (current.flags.hasNested) { - let lastId = current.parentId!; - for (let i = 1; i <= current.flags.nestedDepth; i++) { - const label = `Async-Job-${i}`; - const id = openSpan(label, lastId); - nestedIds.push(id); - lastId = id; - } + await traced(`Parent-${parentIndex}-Fork-B`, async () => { + current.forkBId = openSpan( + `Parent-${parentIndex}-Fork-B`, + current.parentId, + ); + for (let i = 1; i <= current.flags.forkBChildren; i++) { + const id = openSpan(`Fork-B-Span-${i}`, current.forkBId); + closeSpan(id); + } + closeSpan(current.forkBId!); + }); } break; } - // Close nested spans in reverse order - case 10: { - if (nestedIds.length > 0) { - const toClose = nestedIds.pop(); - if (toClose) closeSpan(toClose); + case 3: { + if (current.flags.hasNested) { + await traced(`Async-Chain-${parentIndex}`, async () => { + let lastId = current.parentId!; + for (let i = 1; i <= current.flags.nestedDepth; i++) { + const label = `Async-Job-${i}`; + const id = openSpan(label, lastId); + nestedIds.push(id); + lastId = id; + } + }); } break; } - case 11: - if (nestedIds.length > 0) { - const toClose = nestedIds.pop(); - if (toClose) closeSpan(toClose); - } - break; - - case 12: + case 4: + case 5: + case 6: if (nestedIds.length > 0) { const toClose = nestedIds.pop(); if (toClose) closeSpan(toClose); } break; - case 13: + case 7: if (current.flags.hasRejoin) { const merge = openSpan( `[Rejoins-Fork-${parentIndex}]`, @@ -136,18 +115,18 @@ setInterval(() => { } break; - case 14: + case 8: if (current.flags.hasOrphan) { const orphan = openSpan(`Orphan-${parentIndex}`); closeSpan(orphan); } break; - case 15: + case 9: closeSpan(current.parentId!); break; - case 16: + case 10: parentIndex++; step = -1; break; From b40f6fbe5c47f6592b127e255fdbe69466c34a34 Mon Sep 17 00:00:00 2001 From: Abby010 Date: Mon, 14 Apr 2025 15:32:33 +1000 Subject: [PATCH 7/7] chore: replace math.random with fast-check chore: cleaning up codebase chore: removed json files fix: lint --- README.md | 2 +- package-lock.json | 39 + package.json | 1 + spans.json | 2226 ------------------------------------- spans.jsonl | 211 ---- src/Logger.ts | 2 +- src/bin/SpanTree.tsx | 1 - src/bin/TimeLineView.tsx | 1 - src/bin/cli.tsx | 23 +- src/index.ts | 2 +- src/lib/Span.ts | 30 +- src/lib/Tracer.ts | 64 +- src/lib/TracingManager.ts | 27 + src/lib/tracingManager.ts | 11 - src/lib/types.ts | 11 + tests/asciinemaTest.ts | 87 +- tests/index.test.ts | 16 + 17 files changed, 214 insertions(+), 2540 deletions(-) delete mode 100644 spans.json delete mode 100644 spans.jsonl create mode 100644 src/lib/TracingManager.ts delete mode 100644 src/lib/tracingManager.ts create mode 100644 src/lib/types.ts diff --git a/README.md b/README.md index f3ce9a1..c1a8a22 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This library provides a JavaScript/TypeScript logger inspired by Python's logger * Simple logging with default handlers supporting `console.log`, `console.error`, and `process.stderr`. * Fast, logging level checks or log filters are applied **before** log records are created -* Complex log records properties ssupport lazy evaluation, so they evaluated only when they need to be rendered +* Complex log records properties support lazy evaluation, so they evaluated only when they need to be rendered * Flexible composition of loggers, handlers and formatters * Custom formatting using template literals * Supports structured logging through a JSON formatter diff --git a/package-lock.json b/package-lock.json index b0181fb..27cc0f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "4.0.3", "license": "Apache-2.0", "dependencies": { + "fast-check": "^4.1.1", "ink": "^3.2.0", "react": "^17.0.2", "react-dom": "^17.0.2" @@ -3999,6 +4000,44 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/fast-check": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.1.1.tgz", + "integrity": "sha512-8+yQYeNYqBfWem0Nmm7BUnh27wm+qwGvI0xln60c8RPM5rVekxZf/Ildng2GNBfjaG6utIebFmVBPlNtZlBLxg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT", + "dependencies": { + "pure-rand": "^7.0.0" + }, + "engines": { + "node": ">=12.17.0" + } + }, + "node_modules/fast-check/node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", diff --git a/package.json b/package.json index 7037adb..fde67a9 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "typescript": "^5.1.6" }, "dependencies": { + "fast-check": "^4.1.1", "ink": "^3.2.0", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/spans.json b/spans.json deleted file mode 100644 index 2a0e1c6..0000000 --- a/spans.json +++ /dev/null @@ -1,2226 +0,0 @@ -[ - { - "spanId": "span-1743993577289-4g7ta", - "name": "Parent-0", - "startTime": 1743993577289, - "endTime": 1743993579093, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993577489-xsqf8", - "name": "Parent-0-Fork-A", - "startTime": 1743993577489, - "endTime": 1743993577490, - "parentSpanId": "span-1743993577289-4g7ta", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993577489-j3phn", - "name": "Fork-A-Span-1", - "startTime": 1743993577489, - "endTime": 1743993577490, - "parentSpanId": "span-1743993577489-xsqf8", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993577891-8acaj", - "name": "Async-Job-1", - "startTime": 1743993577891, - "endTime": 1743993578291, - "parentSpanId": "span-1743993577289-4g7ta", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993577891-ukqtt", - "name": "Async-Job-2", - "startTime": 1743993577891, - "endTime": 1743993578090, - "parentSpanId": "span-1743993577891-8acaj", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993578691-glcza", - "name": "[Rejoins-Fork-0]", - "startTime": 1743993578691, - "endTime": 1743993578692, - "parentSpanId": "span-1743993577289-4g7ta", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993577489-domtp", - "name": "Parent-0-Fork-A", - "startTime": 1743993577489, - "endTime": 1743993577491, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993577489-xsqf8", - "name": "Parent-0-Fork-A", - "startTime": 1743993577489, - "endTime": 1743993577490, - "parentSpanId": "span-1743993577289-4g7ta", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993577489-j3phn", - "name": "Fork-A-Span-1", - "startTime": 1743993577489, - "endTime": 1743993577490, - "parentSpanId": "span-1743993577489-xsqf8", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993577489-j3phn", - "name": "Fork-A-Span-1", - "startTime": 1743993577489, - "endTime": 1743993577490, - "parentSpanId": "span-1743993577489-xsqf8", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993577890-zzq7i", - "name": "Async-Chain-0", - "startTime": 1743993577890, - "endTime": 1743993577891, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993577891-8acaj", - "name": "Async-Job-1", - "startTime": 1743993577891, - "endTime": 1743993578291, - "parentSpanId": "span-1743993577289-4g7ta", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993577891-ukqtt", - "name": "Async-Job-2", - "startTime": 1743993577891, - "endTime": 1743993578090, - "parentSpanId": "span-1743993577891-8acaj", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993577891-ukqtt", - "name": "Async-Job-2", - "startTime": 1743993577891, - "endTime": 1743993578090, - "parentSpanId": "span-1743993577891-8acaj", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993578691-glcza", - "name": "[Rejoins-Fork-0]", - "startTime": 1743993578691, - "endTime": 1743993578692, - "parentSpanId": "span-1743993577289-4g7ta", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993578892-r1gs1", - "name": "Orphan-0", - "startTime": 1743993578892, - "endTime": 1743993578893, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993579493-e6f43", - "name": "Parent-1", - "startTime": 1743993579493, - "endTime": 1743993581296, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993579693-bg0em", - "name": "Parent-1-Fork-A", - "startTime": 1743993579693, - "endTime": 1743993579694, - "parentSpanId": "span-1743993579493-e6f43", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993579694-2m2es", - "name": "Fork-A-Span-1", - "startTime": 1743993579694, - "endTime": 1743993579694, - "parentSpanId": "span-1743993579693-bg0em", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993579895-40dig", - "name": "Parent-1-Fork-B", - "startTime": 1743993579895, - "endTime": 1743993579896, - "parentSpanId": "span-1743993579493-e6f43", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993579895-6hq4a", - "name": "Fork-B-Span-1", - "startTime": 1743993579895, - "endTime": 1743993579895, - "parentSpanId": "span-1743993579895-40dig", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993579895-38xi5", - "name": "Fork-B-Span-2", - "startTime": 1743993579895, - "endTime": 1743993579896, - "parentSpanId": "span-1743993579895-40dig", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993580895-t065v", - "name": "[Rejoins-Fork-1]", - "startTime": 1743993580895, - "endTime": 1743993580896, - "parentSpanId": "span-1743993579493-e6f43", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993579693-s00w8", - "name": "Parent-1-Fork-A", - "startTime": 1743993579693, - "endTime": 1743993579694, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993579693-bg0em", - "name": "Parent-1-Fork-A", - "startTime": 1743993579693, - "endTime": 1743993579694, - "parentSpanId": "span-1743993579493-e6f43", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993579694-2m2es", - "name": "Fork-A-Span-1", - "startTime": 1743993579694, - "endTime": 1743993579694, - "parentSpanId": "span-1743993579693-bg0em", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993579694-2m2es", - "name": "Fork-A-Span-1", - "startTime": 1743993579694, - "endTime": 1743993579694, - "parentSpanId": "span-1743993579693-bg0em", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993579894-0hqd6", - "name": "Parent-1-Fork-B", - "startTime": 1743993579894, - "endTime": 1743993579896, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993579895-40dig", - "name": "Parent-1-Fork-B", - "startTime": 1743993579895, - "endTime": 1743993579896, - "parentSpanId": "span-1743993579493-e6f43", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993579895-6hq4a", - "name": "Fork-B-Span-1", - "startTime": 1743993579895, - "endTime": 1743993579895, - "parentSpanId": "span-1743993579895-40dig", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993579895-38xi5", - "name": "Fork-B-Span-2", - "startTime": 1743993579895, - "endTime": 1743993579896, - "parentSpanId": "span-1743993579895-40dig", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993579895-6hq4a", - "name": "Fork-B-Span-1", - "startTime": 1743993579895, - "endTime": 1743993579895, - "parentSpanId": "span-1743993579895-40dig", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993579895-38xi5", - "name": "Fork-B-Span-2", - "startTime": 1743993579895, - "endTime": 1743993579896, - "parentSpanId": "span-1743993579895-40dig", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993580895-t065v", - "name": "[Rejoins-Fork-1]", - "startTime": 1743993580895, - "endTime": 1743993580896, - "parentSpanId": "span-1743993579493-e6f43", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993581095-p1nag", - "name": "Orphan-1", - "startTime": 1743993581095, - "endTime": 1743993581096, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993581696-ai121", - "name": "Parent-2", - "startTime": 1743993581696, - "endTime": 1743993583501, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993581897-g5wfo", - "name": "Parent-2-Fork-A", - "startTime": 1743993581897, - "endTime": 1743993581898, - "parentSpanId": "span-1743993581696-ai121", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993581898-4tb25", - "name": "Fork-A-Span-1", - "startTime": 1743993581898, - "endTime": 1743993581898, - "parentSpanId": "span-1743993581897-g5wfo", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993582299-se1f9", - "name": "Async-Job-1", - "startTime": 1743993582299, - "endTime": 1743993582700, - "parentSpanId": "span-1743993581696-ai121", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993582299-g0git", - "name": "Async-Job-2", - "startTime": 1743993582299, - "endTime": 1743993582499, - "parentSpanId": "span-1743993582299-se1f9", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743993581897-9sz3w", - "name": "Parent-2-Fork-A", - "startTime": 1743993581897, - "endTime": 1743993581899, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993581897-g5wfo", - "name": "Parent-2-Fork-A", - "startTime": 1743993581897, - "endTime": 1743993581898, - "parentSpanId": "span-1743993581696-ai121", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993581898-4tb25", - "name": "Fork-A-Span-1", - "startTime": 1743993581898, - "endTime": 1743993581898, - "parentSpanId": "span-1743993581897-g5wfo", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993581898-4tb25", - "name": "Fork-A-Span-1", - "startTime": 1743993581898, - "endTime": 1743993581898, - "parentSpanId": "span-1743993581897-g5wfo", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993582298-avb0l", - "name": "Async-Chain-2", - "startTime": 1743993582298, - "endTime": 1743993582299, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993582299-se1f9", - "name": "Async-Job-1", - "startTime": 1743993582299, - "endTime": 1743993582700, - "parentSpanId": "span-1743993581696-ai121", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993582299-g0git", - "name": "Async-Job-2", - "startTime": 1743993582299, - "endTime": 1743993582499, - "parentSpanId": "span-1743993582299-se1f9", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993582299-g0git", - "name": "Async-Job-2", - "startTime": 1743993582299, - "endTime": 1743993582499, - "parentSpanId": "span-1743993582299-se1f9", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993583301-9iq46", - "name": "Orphan-2", - "startTime": 1743993583302, - "endTime": 1743993583302, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993583902-2cx66", - "name": "Parent-3", - "startTime": 1743993583902, - "endTime": 1743993585707, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993584102-u2g49", - "name": "Parent-3-Fork-A", - "startTime": 1743993584102, - "endTime": 1743993584103, - "parentSpanId": "span-1743993583902-2cx66", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993584103-hbddh", - "name": "Fork-A-Span-1", - "startTime": 1743993584103, - "endTime": 1743993584103, - "parentSpanId": "span-1743993584102-u2g49", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993584303-3mgz7", - "name": "Parent-3-Fork-B", - "startTime": 1743993584303, - "endTime": 1743993584303, - "parentSpanId": "span-1743993583902-2cx66", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993584303-kg46d", - "name": "Fork-B-Span-1", - "startTime": 1743993584303, - "endTime": 1743993584303, - "parentSpanId": "span-1743993584303-3mgz7", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993585305-1315y", - "name": "[Rejoins-Fork-3]", - "startTime": 1743993585305, - "endTime": 1743993585305, - "parentSpanId": "span-1743993583902-2cx66", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993584102-v5fb4", - "name": "Parent-3-Fork-A", - "startTime": 1743993584102, - "endTime": 1743993584103, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993584102-u2g49", - "name": "Parent-3-Fork-A", - "startTime": 1743993584102, - "endTime": 1743993584103, - "parentSpanId": "span-1743993583902-2cx66", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993584103-hbddh", - "name": "Fork-A-Span-1", - "startTime": 1743993584103, - "endTime": 1743993584103, - "parentSpanId": "span-1743993584102-u2g49", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993584103-hbddh", - "name": "Fork-A-Span-1", - "startTime": 1743993584103, - "endTime": 1743993584103, - "parentSpanId": "span-1743993584102-u2g49", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993584303-4ciip", - "name": "Parent-3-Fork-B", - "startTime": 1743993584303, - "endTime": 1743993584303, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993584303-3mgz7", - "name": "Parent-3-Fork-B", - "startTime": 1743993584303, - "endTime": 1743993584303, - "parentSpanId": "span-1743993583902-2cx66", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993584303-kg46d", - "name": "Fork-B-Span-1", - "startTime": 1743993584303, - "endTime": 1743993584303, - "parentSpanId": "span-1743993584303-3mgz7", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993584303-kg46d", - "name": "Fork-B-Span-1", - "startTime": 1743993584303, - "endTime": 1743993584303, - "parentSpanId": "span-1743993584303-3mgz7", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993585305-1315y", - "name": "[Rejoins-Fork-3]", - "startTime": 1743993585305, - "endTime": 1743993585305, - "parentSpanId": "span-1743993583902-2cx66", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993585506-8hx4i", - "name": "Orphan-3", - "startTime": 1743993585506, - "endTime": 1743993585506, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993586108-9eqvz", - "name": "Parent-4", - "startTime": 1743993586108, - "endTime": 1743993587913, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993586309-7fciz", - "name": "Parent-4-Fork-A", - "startTime": 1743993586309, - "endTime": 1743993586310, - "parentSpanId": "span-1743993586108-9eqvz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993586310-s2m9j", - "name": "Fork-A-Span-1", - "startTime": 1743993586310, - "endTime": 1743993586310, - "parentSpanId": "span-1743993586309-7fciz", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993586711-028u0", - "name": "Async-Job-1", - "startTime": 1743993586711, - "endTime": 1743993586911, - "parentSpanId": "span-1743993586108-9eqvz", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993586309-jzqij", - "name": "Parent-4-Fork-A", - "startTime": 1743993586309, - "endTime": 1743993586310, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993586309-7fciz", - "name": "Parent-4-Fork-A", - "startTime": 1743993586309, - "endTime": 1743993586310, - "parentSpanId": "span-1743993586108-9eqvz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993586310-s2m9j", - "name": "Fork-A-Span-1", - "startTime": 1743993586310, - "endTime": 1743993586310, - "parentSpanId": "span-1743993586309-7fciz", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993586310-s2m9j", - "name": "Fork-A-Span-1", - "startTime": 1743993586310, - "endTime": 1743993586310, - "parentSpanId": "span-1743993586309-7fciz", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993586710-gemwg", - "name": "Async-Chain-4", - "startTime": 1743993586710, - "endTime": 1743993586711, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993586711-028u0", - "name": "Async-Job-1", - "startTime": 1743993586711, - "endTime": 1743993586911, - "parentSpanId": "span-1743993586108-9eqvz", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993588314-2xm9z", - "name": "Parent-5", - "startTime": 1743993588314, - "endTime": 1743993590117, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993588515-8r5ys", - "name": "Parent-5-Fork-A", - "startTime": 1743993588515, - "endTime": 1743993588516, - "parentSpanId": "span-1743993588314-2xm9z", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993588515-8fbj8", - "name": "Fork-A-Span-1", - "startTime": 1743993588515, - "endTime": 1743993588516, - "parentSpanId": "span-1743993588515-8r5ys", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993588715-w9bqa", - "name": "Parent-5-Fork-B", - "startTime": 1743993588715, - "endTime": 1743993588716, - "parentSpanId": "span-1743993588314-2xm9z", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993588716-x032j", - "name": "Fork-B-Span-1", - "startTime": 1743993588716, - "endTime": 1743993588716, - "parentSpanId": "span-1743993588715-w9bqa", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743993588514-bl9ko", - "name": "Parent-5-Fork-A", - "startTime": 1743993588514, - "endTime": 1743993588516, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993588515-8r5ys", - "name": "Parent-5-Fork-A", - "startTime": 1743993588515, - "endTime": 1743993588516, - "parentSpanId": "span-1743993588314-2xm9z", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993588515-8fbj8", - "name": "Fork-A-Span-1", - "startTime": 1743993588515, - "endTime": 1743993588516, - "parentSpanId": "span-1743993588515-8r5ys", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993588515-8fbj8", - "name": "Fork-A-Span-1", - "startTime": 1743993588515, - "endTime": 1743993588516, - "parentSpanId": "span-1743993588515-8r5ys", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993588715-e0ban", - "name": "Parent-5-Fork-B", - "startTime": 1743993588715, - "endTime": 1743993588717, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993588715-w9bqa", - "name": "Parent-5-Fork-B", - "startTime": 1743993588715, - "endTime": 1743993588716, - "parentSpanId": "span-1743993588314-2xm9z", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993588716-x032j", - "name": "Fork-B-Span-1", - "startTime": 1743993588716, - "endTime": 1743993588716, - "parentSpanId": "span-1743993588715-w9bqa", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993588716-x032j", - "name": "Fork-B-Span-1", - "startTime": 1743993588716, - "endTime": 1743993588716, - "parentSpanId": "span-1743993588715-w9bqa", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993589916-myoy4", - "name": "Orphan-5", - "startTime": 1743993589916, - "endTime": 1743993589916, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590518-jr9st", - "name": "Parent-6", - "startTime": 1743993590518, - "endTime": 1743993592321, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993590719-rajpw", - "name": "Parent-6-Fork-A", - "startTime": 1743993590719, - "endTime": 1743993590722, - "parentSpanId": "span-1743993590518-jr9st", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993590720-3f8ni", - "name": "Fork-A-Span-1", - "startTime": 1743993590720, - "endTime": 1743993590720, - "parentSpanId": "span-1743993590719-rajpw", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590721-1xs9k", - "name": "Fork-A-Span-2", - "startTime": 1743993590721, - "endTime": 1743993590721, - "parentSpanId": "span-1743993590719-rajpw", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993590919-c9w2v", - "name": "Parent-6-Fork-B", - "startTime": 1743993590919, - "endTime": 1743993590920, - "parentSpanId": "span-1743993590518-jr9st", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993590919-squ8g", - "name": "Fork-B-Span-1", - "startTime": 1743993590919, - "endTime": 1743993590919, - "parentSpanId": "span-1743993590919-c9w2v", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590919-0by66", - "name": "Fork-B-Span-2", - "startTime": 1743993590919, - "endTime": 1743993590920, - "parentSpanId": "span-1743993590919-c9w2v", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993591119-867q1", - "name": "Async-Job-1", - "startTime": 1743993591119, - "endTime": 1743993591519, - "parentSpanId": "span-1743993590518-jr9st", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993591120-zxfh2", - "name": "Async-Job-2", - "startTime": 1743993591120, - "endTime": 1743993591319, - "parentSpanId": "span-1743993591119-867q1", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743993590718-8447f", - "name": "Parent-6-Fork-A", - "startTime": 1743993590718, - "endTime": 1743993590722, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590719-rajpw", - "name": "Parent-6-Fork-A", - "startTime": 1743993590719, - "endTime": 1743993590722, - "parentSpanId": "span-1743993590518-jr9st", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993590720-3f8ni", - "name": "Fork-A-Span-1", - "startTime": 1743993590720, - "endTime": 1743993590720, - "parentSpanId": "span-1743993590719-rajpw", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590721-1xs9k", - "name": "Fork-A-Span-2", - "startTime": 1743993590721, - "endTime": 1743993590721, - "parentSpanId": "span-1743993590719-rajpw", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993590720-3f8ni", - "name": "Fork-A-Span-1", - "startTime": 1743993590720, - "endTime": 1743993590720, - "parentSpanId": "span-1743993590719-rajpw", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590721-1xs9k", - "name": "Fork-A-Span-2", - "startTime": 1743993590721, - "endTime": 1743993590721, - "parentSpanId": "span-1743993590719-rajpw", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590918-ke5i8", - "name": "Parent-6-Fork-B", - "startTime": 1743993590918, - "endTime": 1743993590920, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590919-c9w2v", - "name": "Parent-6-Fork-B", - "startTime": 1743993590919, - "endTime": 1743993590920, - "parentSpanId": "span-1743993590518-jr9st", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993590919-squ8g", - "name": "Fork-B-Span-1", - "startTime": 1743993590919, - "endTime": 1743993590919, - "parentSpanId": "span-1743993590919-c9w2v", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590919-0by66", - "name": "Fork-B-Span-2", - "startTime": 1743993590919, - "endTime": 1743993590920, - "parentSpanId": "span-1743993590919-c9w2v", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993590919-squ8g", - "name": "Fork-B-Span-1", - "startTime": 1743993590919, - "endTime": 1743993590919, - "parentSpanId": "span-1743993590919-c9w2v", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993590919-0by66", - "name": "Fork-B-Span-2", - "startTime": 1743993590919, - "endTime": 1743993590920, - "parentSpanId": "span-1743993590919-c9w2v", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993591119-xcf4p", - "name": "Async-Chain-6", - "startTime": 1743993591119, - "endTime": 1743993591120, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993591119-867q1", - "name": "Async-Job-1", - "startTime": 1743993591119, - "endTime": 1743993591519, - "parentSpanId": "span-1743993590518-jr9st", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993591120-zxfh2", - "name": "Async-Job-2", - "startTime": 1743993591120, - "endTime": 1743993591319, - "parentSpanId": "span-1743993591119-867q1", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993591120-zxfh2", - "name": "Async-Job-2", - "startTime": 1743993591120, - "endTime": 1743993591319, - "parentSpanId": "span-1743993591119-867q1", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993592120-s9jrl", - "name": "Orphan-6", - "startTime": 1743993592120, - "endTime": 1743993592121, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993592722-9ti0d", - "name": "Parent-7", - "startTime": 1743993592722, - "endTime": 1743993594525, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993592923-73hws", - "name": "Parent-7-Fork-A", - "startTime": 1743993592923, - "endTime": 1743993592924, - "parentSpanId": "span-1743993592722-9ti0d", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993592923-4leq9", - "name": "Fork-A-Span-1", - "startTime": 1743993592923, - "endTime": 1743993592923, - "parentSpanId": "span-1743993592923-73hws", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743993592922-dptma", - "name": "Parent-7-Fork-A", - "startTime": 1743993592923, - "endTime": 1743993592924, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993592923-73hws", - "name": "Parent-7-Fork-A", - "startTime": 1743993592923, - "endTime": 1743993592924, - "parentSpanId": "span-1743993592722-9ti0d", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993592923-4leq9", - "name": "Fork-A-Span-1", - "startTime": 1743993592923, - "endTime": 1743993592923, - "parentSpanId": "span-1743993592923-73hws", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993592923-4leq9", - "name": "Fork-A-Span-1", - "startTime": 1743993592923, - "endTime": 1743993592923, - "parentSpanId": "span-1743993592923-73hws", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993594925-lsvjn", - "name": "Parent-8", - "startTime": 1743993594925, - "endTime": 1743993596728, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993595127-nu6sr", - "name": "Parent-8-Fork-A", - "startTime": 1743993595127, - "endTime": 1743993595128, - "parentSpanId": "span-1743993594925-lsvjn", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993595127-9bmc3", - "name": "Fork-A-Span-1", - "startTime": 1743993595127, - "endTime": 1743993595128, - "parentSpanId": "span-1743993595127-nu6sr", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993595326-j3upx", - "name": "Parent-8-Fork-B", - "startTime": 1743993595326, - "endTime": 1743993595327, - "parentSpanId": "span-1743993594925-lsvjn", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993595326-5er12", - "name": "Fork-B-Span-1", - "startTime": 1743993595326, - "endTime": 1743993595326, - "parentSpanId": "span-1743993595326-j3upx", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743993595126-l90hs", - "name": "Parent-8-Fork-A", - "startTime": 1743993595126, - "endTime": 1743993595129, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993595127-nu6sr", - "name": "Parent-8-Fork-A", - "startTime": 1743993595127, - "endTime": 1743993595128, - "parentSpanId": "span-1743993594925-lsvjn", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993595127-9bmc3", - "name": "Fork-A-Span-1", - "startTime": 1743993595127, - "endTime": 1743993595128, - "parentSpanId": "span-1743993595127-nu6sr", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993595127-9bmc3", - "name": "Fork-A-Span-1", - "startTime": 1743993595127, - "endTime": 1743993595128, - "parentSpanId": "span-1743993595127-nu6sr", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993595325-o6302", - "name": "Parent-8-Fork-B", - "startTime": 1743993595326, - "endTime": 1743993595327, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993595326-j3upx", - "name": "Parent-8-Fork-B", - "startTime": 1743993595326, - "endTime": 1743993595327, - "parentSpanId": "span-1743993594925-lsvjn", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993595326-5er12", - "name": "Fork-B-Span-1", - "startTime": 1743993595326, - "endTime": 1743993595326, - "parentSpanId": "span-1743993595326-j3upx", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993595326-5er12", - "name": "Fork-B-Span-1", - "startTime": 1743993595326, - "endTime": 1743993595326, - "parentSpanId": "span-1743993595326-j3upx", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597129-egrxb", - "name": "Parent-9", - "startTime": 1743993597129, - "endTime": 1743993598934, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597330-uufvw", - "name": "Parent-9-Fork-A", - "startTime": 1743993597330, - "endTime": 1743993597332, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597331-c9cvg", - "name": "Fork-A-Span-1", - "startTime": 1743993597331, - "endTime": 1743993597331, - "parentSpanId": "span-1743993597330-uufvw", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993597531-3xmc5", - "name": "Parent-9-Fork-B", - "startTime": 1743993597531, - "endTime": 1743993597534, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597531-v5j4t", - "name": "Fork-B-Span-1", - "startTime": 1743993597531, - "endTime": 1743993597532, - "parentSpanId": "span-1743993597531-3xmc5", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597533-zh3h7", - "name": "Fork-B-Span-2", - "startTime": 1743993597533, - "endTime": 1743993597533, - "parentSpanId": "span-1743993597531-3xmc5", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993597731-9192p", - "name": "Async-Job-1", - "startTime": 1743993597731, - "endTime": 1743993598333, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597731-l8jz6", - "name": "Async-Job-2", - "startTime": 1743993597731, - "endTime": 1743993598132, - "parentSpanId": "span-1743993597731-9192p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597732-lv041", - "name": "Async-Job-3", - "startTime": 1743993597732, - "endTime": 1743993597931, - "parentSpanId": "span-1743993597731-l8jz6", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743993598533-opvp3", - "name": "[Rejoins-Fork-9]", - "startTime": 1743993598533, - "endTime": 1743993598534, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993597329-13j0m", - "name": "Parent-9-Fork-A", - "startTime": 1743993597329, - "endTime": 1743993597332, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597330-uufvw", - "name": "Parent-9-Fork-A", - "startTime": 1743993597330, - "endTime": 1743993597332, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597331-c9cvg", - "name": "Fork-A-Span-1", - "startTime": 1743993597331, - "endTime": 1743993597331, - "parentSpanId": "span-1743993597330-uufvw", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993597331-c9cvg", - "name": "Fork-A-Span-1", - "startTime": 1743993597331, - "endTime": 1743993597331, - "parentSpanId": "span-1743993597330-uufvw", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597530-yv2bu", - "name": "Parent-9-Fork-B", - "startTime": 1743993597530, - "endTime": 1743993597534, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597531-3xmc5", - "name": "Parent-9-Fork-B", - "startTime": 1743993597531, - "endTime": 1743993597534, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597531-v5j4t", - "name": "Fork-B-Span-1", - "startTime": 1743993597531, - "endTime": 1743993597532, - "parentSpanId": "span-1743993597531-3xmc5", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597533-zh3h7", - "name": "Fork-B-Span-2", - "startTime": 1743993597533, - "endTime": 1743993597533, - "parentSpanId": "span-1743993597531-3xmc5", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993597531-v5j4t", - "name": "Fork-B-Span-1", - "startTime": 1743993597531, - "endTime": 1743993597532, - "parentSpanId": "span-1743993597531-3xmc5", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597533-zh3h7", - "name": "Fork-B-Span-2", - "startTime": 1743993597533, - "endTime": 1743993597533, - "parentSpanId": "span-1743993597531-3xmc5", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597730-vah3e", - "name": "Async-Chain-9", - "startTime": 1743993597730, - "endTime": 1743993597732, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993597731-9192p", - "name": "Async-Job-1", - "startTime": 1743993597731, - "endTime": 1743993598333, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597731-l8jz6", - "name": "Async-Job-2", - "startTime": 1743993597731, - "endTime": 1743993598132, - "parentSpanId": "span-1743993597731-9192p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597732-lv041", - "name": "Async-Job-3", - "startTime": 1743993597732, - "endTime": 1743993597931, - "parentSpanId": "span-1743993597731-l8jz6", - "isCompleted": true, - "children": [] - } - ] - } - ] - }, - { - "spanId": "span-1743993597731-l8jz6", - "name": "Async-Job-2", - "startTime": 1743993597731, - "endTime": 1743993598132, - "parentSpanId": "span-1743993597731-9192p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993597732-lv041", - "name": "Async-Job-3", - "startTime": 1743993597732, - "endTime": 1743993597931, - "parentSpanId": "span-1743993597731-l8jz6", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993597732-lv041", - "name": "Async-Job-3", - "startTime": 1743993597732, - "endTime": 1743993597931, - "parentSpanId": "span-1743993597731-l8jz6", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993598533-opvp3", - "name": "[Rejoins-Fork-9]", - "startTime": 1743993598533, - "endTime": 1743993598534, - "parentSpanId": "span-1743993597129-egrxb", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993598734-dstea", - "name": "Orphan-9", - "startTime": 1743993598734, - "endTime": 1743993598735, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599335-y890p", - "name": "Parent-10", - "startTime": 1743993599335, - "endTime": 1743993601138, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993599536-kkaq8", - "name": "Parent-10-Fork-A", - "startTime": 1743993599536, - "endTime": 1743993599538, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993599537-19p3g", - "name": "Fork-A-Span-1", - "startTime": 1743993599537, - "endTime": 1743993599537, - "parentSpanId": "span-1743993599536-kkaq8", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993599736-2ag8d", - "name": "Parent-10-Fork-B", - "startTime": 1743993599736, - "endTime": 1743993599741, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993599737-p6d1d", - "name": "Fork-B-Span-1", - "startTime": 1743993599737, - "endTime": 1743993599738, - "parentSpanId": "span-1743993599736-2ag8d", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599739-0ximq", - "name": "Fork-B-Span-2", - "startTime": 1743993599739, - "endTime": 1743993599740, - "parentSpanId": "span-1743993599736-2ag8d", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993599937-kvsjh", - "name": "Async-Job-1", - "startTime": 1743993599937, - "endTime": 1743993600337, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993599938-fqgxc", - "name": "Async-Job-2", - "startTime": 1743993599938, - "endTime": 1743993600137, - "parentSpanId": "span-1743993599937-kvsjh", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993600738-xwu5c", - "name": "[Rejoins-Fork-10]", - "startTime": 1743993600738, - "endTime": 1743993600739, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993599536-s75i9", - "name": "Parent-10-Fork-A", - "startTime": 1743993599536, - "endTime": 1743993599539, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599536-kkaq8", - "name": "Parent-10-Fork-A", - "startTime": 1743993599536, - "endTime": 1743993599538, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993599537-19p3g", - "name": "Fork-A-Span-1", - "startTime": 1743993599537, - "endTime": 1743993599537, - "parentSpanId": "span-1743993599536-kkaq8", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993599537-19p3g", - "name": "Fork-A-Span-1", - "startTime": 1743993599537, - "endTime": 1743993599537, - "parentSpanId": "span-1743993599536-kkaq8", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599735-60v75", - "name": "Parent-10-Fork-B", - "startTime": 1743993599735, - "endTime": 1743993599742, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599736-2ag8d", - "name": "Parent-10-Fork-B", - "startTime": 1743993599736, - "endTime": 1743993599741, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993599737-p6d1d", - "name": "Fork-B-Span-1", - "startTime": 1743993599737, - "endTime": 1743993599738, - "parentSpanId": "span-1743993599736-2ag8d", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599739-0ximq", - "name": "Fork-B-Span-2", - "startTime": 1743993599739, - "endTime": 1743993599740, - "parentSpanId": "span-1743993599736-2ag8d", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993599737-p6d1d", - "name": "Fork-B-Span-1", - "startTime": 1743993599737, - "endTime": 1743993599738, - "parentSpanId": "span-1743993599736-2ag8d", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599739-0ximq", - "name": "Fork-B-Span-2", - "startTime": 1743993599739, - "endTime": 1743993599740, - "parentSpanId": "span-1743993599736-2ag8d", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599936-dew2n", - "name": "Async-Chain-10", - "startTime": 1743993599936, - "endTime": 1743993599939, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993599937-kvsjh", - "name": "Async-Job-1", - "startTime": 1743993599937, - "endTime": 1743993600337, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993599938-fqgxc", - "name": "Async-Job-2", - "startTime": 1743993599938, - "endTime": 1743993600137, - "parentSpanId": "span-1743993599937-kvsjh", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993599938-fqgxc", - "name": "Async-Job-2", - "startTime": 1743993599938, - "endTime": 1743993600137, - "parentSpanId": "span-1743993599937-kvsjh", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993600738-xwu5c", - "name": "[Rejoins-Fork-10]", - "startTime": 1743993600738, - "endTime": 1743993600739, - "parentSpanId": "span-1743993599335-y890p", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993601539-jnwiz", - "name": "Parent-11", - "startTime": 1743993601539, - "endTime": 1743993603344, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993601740-c9bra", - "name": "Parent-11-Fork-A", - "startTime": 1743993601740, - "endTime": 1743993601742, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993601740-kdmv7", - "name": "Fork-A-Span-1", - "startTime": 1743993601740, - "endTime": 1743993601741, - "parentSpanId": "span-1743993601740-c9bra", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993601741-hiy4t", - "name": "Fork-A-Span-2", - "startTime": 1743993601741, - "endTime": 1743993601741, - "parentSpanId": "span-1743993601740-c9bra", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993601940-1dvm8", - "name": "Parent-11-Fork-B", - "startTime": 1743993601940, - "endTime": 1743993601941, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993601941-301zi", - "name": "Fork-B-Span-1", - "startTime": 1743993601941, - "endTime": 1743993601941, - "parentSpanId": "span-1743993601940-1dvm8", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993602141-ycu4f", - "name": "Async-Job-1", - "startTime": 1743993602141, - "endTime": 1743993602542, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993602141-o6ute", - "name": "Async-Job-2", - "startTime": 1743993602141, - "endTime": 1743993602341, - "parentSpanId": "span-1743993602141-ycu4f", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993602943-x5fi7", - "name": "[Rejoins-Fork-11]", - "startTime": 1743993602943, - "endTime": 1743993602944, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993601739-uqhpz", - "name": "Parent-11-Fork-A", - "startTime": 1743993601739, - "endTime": 1743993601742, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993601740-c9bra", - "name": "Parent-11-Fork-A", - "startTime": 1743993601740, - "endTime": 1743993601742, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993601740-kdmv7", - "name": "Fork-A-Span-1", - "startTime": 1743993601740, - "endTime": 1743993601741, - "parentSpanId": "span-1743993601740-c9bra", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993601741-hiy4t", - "name": "Fork-A-Span-2", - "startTime": 1743993601741, - "endTime": 1743993601741, - "parentSpanId": "span-1743993601740-c9bra", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993601740-kdmv7", - "name": "Fork-A-Span-1", - "startTime": 1743993601740, - "endTime": 1743993601741, - "parentSpanId": "span-1743993601740-c9bra", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993601741-hiy4t", - "name": "Fork-A-Span-2", - "startTime": 1743993601741, - "endTime": 1743993601741, - "parentSpanId": "span-1743993601740-c9bra", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993601939-ujr8d", - "name": "Parent-11-Fork-B", - "startTime": 1743993601939, - "endTime": 1743993601942, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993601940-1dvm8", - "name": "Parent-11-Fork-B", - "startTime": 1743993601940, - "endTime": 1743993601941, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993601941-301zi", - "name": "Fork-B-Span-1", - "startTime": 1743993601941, - "endTime": 1743993601941, - "parentSpanId": "span-1743993601940-1dvm8", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993601941-301zi", - "name": "Fork-B-Span-1", - "startTime": 1743993601941, - "endTime": 1743993601941, - "parentSpanId": "span-1743993601940-1dvm8", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993602140-e0iy6", - "name": "Async-Chain-11", - "startTime": 1743993602140, - "endTime": 1743993602142, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993602141-ycu4f", - "name": "Async-Job-1", - "startTime": 1743993602141, - "endTime": 1743993602542, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993602141-o6ute", - "name": "Async-Job-2", - "startTime": 1743993602141, - "endTime": 1743993602341, - "parentSpanId": "span-1743993602141-ycu4f", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993602141-o6ute", - "name": "Async-Job-2", - "startTime": 1743993602141, - "endTime": 1743993602341, - "parentSpanId": "span-1743993602141-ycu4f", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993602943-x5fi7", - "name": "[Rejoins-Fork-11]", - "startTime": 1743993602943, - "endTime": 1743993602944, - "parentSpanId": "span-1743993601539-jnwiz", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993603144-d7aqz", - "name": "Orphan-11", - "startTime": 1743993603144, - "endTime": 1743993603145, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993603744-rb2nc", - "name": "Parent-12", - "startTime": 1743993603744, - "endTime": 1743993605548, - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993603946-xgjau", - "name": "Parent-12-Fork-A", - "startTime": 1743993603946, - "endTime": 1743993603948, - "parentSpanId": "span-1743993603744-rb2nc", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993603947-fe19g", - "name": "Fork-A-Span-1", - "startTime": 1743993603947, - "endTime": 1743993603948, - "parentSpanId": "span-1743993603946-xgjau", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993604346-fs4th", - "name": "Async-Job-1", - "startTime": 1743993604346, - "endTime": 1743993604546, - "parentSpanId": "span-1743993603744-rb2nc", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993605148-tv1py", - "name": "[Rejoins-Fork-12]", - "startTime": 1743993605148, - "endTime": 1743993605148, - "parentSpanId": "span-1743993603744-rb2nc", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993603945-iee4m", - "name": "Parent-12-Fork-A", - "startTime": 1743993603945, - "endTime": 1743993603949, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993603946-xgjau", - "name": "Parent-12-Fork-A", - "startTime": 1743993603946, - "endTime": 1743993603948, - "parentSpanId": "span-1743993603744-rb2nc", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993603947-fe19g", - "name": "Fork-A-Span-1", - "startTime": 1743993603947, - "endTime": 1743993603948, - "parentSpanId": "span-1743993603946-xgjau", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993603947-fe19g", - "name": "Fork-A-Span-1", - "startTime": 1743993603947, - "endTime": 1743993603948, - "parentSpanId": "span-1743993603946-xgjau", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993604346-8x5g6", - "name": "Async-Chain-12", - "startTime": 1743993604346, - "endTime": 1743993604347, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993604346-fs4th", - "name": "Async-Job-1", - "startTime": 1743993604346, - "endTime": 1743993604546, - "parentSpanId": "span-1743993603744-rb2nc", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993605148-tv1py", - "name": "[Rejoins-Fork-12]", - "startTime": 1743993605148, - "endTime": 1743993605148, - "parentSpanId": "span-1743993603744-rb2nc", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993605347-ldzqy", - "name": "Orphan-12", - "startTime": 1743993605347, - "endTime": 1743993605348, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993605948-i81o7", - "name": "Parent-13", - "startTime": 1743993605948, - "isCompleted": false, - "children": [ - { - "spanId": "span-1743993606149-t28jr", - "name": "Parent-13-Fork-A", - "startTime": 1743993606149, - "endTime": 1743993606152, - "parentSpanId": "span-1743993605948-i81o7", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993606150-pmgsl", - "name": "Fork-A-Span-1", - "startTime": 1743993606150, - "endTime": 1743993606150, - "parentSpanId": "span-1743993606149-t28jr", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606151-atdn0", - "name": "Fork-A-Span-2", - "startTime": 1743993606151, - "endTime": 1743993606152, - "parentSpanId": "span-1743993606149-t28jr", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993606350-lbi3q", - "name": "Parent-13-Fork-B", - "startTime": 1743993606350, - "endTime": 1743993606353, - "parentSpanId": "span-1743993605948-i81o7", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993606352-nku43", - "name": "Fork-B-Span-1", - "startTime": 1743993606352, - "endTime": 1743993606352, - "parentSpanId": "span-1743993606350-lbi3q", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993606550-ykfdu", - "name": "Async-Job-1", - "startTime": 1743993606550, - "endTime": 1743993606749, - "parentSpanId": "span-1743993605948-i81o7", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993606148-h6mq9", - "name": "Parent-13-Fork-A", - "startTime": 1743993606148, - "endTime": 1743993606153, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606149-t28jr", - "name": "Parent-13-Fork-A", - "startTime": 1743993606149, - "endTime": 1743993606152, - "parentSpanId": "span-1743993605948-i81o7", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993606150-pmgsl", - "name": "Fork-A-Span-1", - "startTime": 1743993606150, - "endTime": 1743993606150, - "parentSpanId": "span-1743993606149-t28jr", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606151-atdn0", - "name": "Fork-A-Span-2", - "startTime": 1743993606151, - "endTime": 1743993606152, - "parentSpanId": "span-1743993606149-t28jr", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993606150-pmgsl", - "name": "Fork-A-Span-1", - "startTime": 1743993606150, - "endTime": 1743993606150, - "parentSpanId": "span-1743993606149-t28jr", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606151-atdn0", - "name": "Fork-A-Span-2", - "startTime": 1743993606151, - "endTime": 1743993606152, - "parentSpanId": "span-1743993606149-t28jr", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606349-leeym", - "name": "Parent-13-Fork-B", - "startTime": 1743993606349, - "endTime": 1743993606354, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606350-lbi3q", - "name": "Parent-13-Fork-B", - "startTime": 1743993606350, - "endTime": 1743993606353, - "parentSpanId": "span-1743993605948-i81o7", - "isCompleted": true, - "children": [ - { - "spanId": "span-1743993606352-nku43", - "name": "Fork-B-Span-1", - "startTime": 1743993606352, - "endTime": 1743993606352, - "parentSpanId": "span-1743993606350-lbi3q", - "isCompleted": true, - "children": [] - } - ] - }, - { - "spanId": "span-1743993606352-nku43", - "name": "Fork-B-Span-1", - "startTime": 1743993606352, - "endTime": 1743993606352, - "parentSpanId": "span-1743993606350-lbi3q", - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606549-gld8f", - "name": "Async-Chain-13", - "startTime": 1743993606549, - "endTime": 1743993606552, - "isCompleted": true, - "children": [] - }, - { - "spanId": "span-1743993606550-ykfdu", - "name": "Async-Job-1", - "startTime": 1743993606550, - "endTime": 1743993606749, - "parentSpanId": "span-1743993605948-i81o7", - "isCompleted": true, - "children": [] - } -] \ No newline at end of file diff --git a/spans.jsonl b/spans.jsonl deleted file mode 100644 index 8c50c06..0000000 --- a/spans.jsonl +++ /dev/null @@ -1,211 +0,0 @@ -{"spanId":"span-1743992109654-t170t","name":"Fork-A-Span-1","startTime":1743992109654,"endTime":1743992109654,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]} -{"spanId":"span-1743992109855-559f9","name":"Fork-A-Span-2","startTime":1743992109855,"endTime":1743992109855,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]} -{"spanId":"span-1743992109453-pcjv5","name":"Parent-0-Fork-A","startTime":1743992109453,"endTime":1743992110054,"parentSpanId":"span-1743992109252-fas1w","isCompleted":true,"children":[{"spanId":"span-1743992109654-t170t","name":"Fork-A-Span-1","startTime":1743992109654,"endTime":1743992109654,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]},{"spanId":"span-1743992109855-559f9","name":"Fork-A-Span-2","startTime":1743992109855,"endTime":1743992109855,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992109252-fas1w","name":"Parent-0","startTime":1743992109252,"endTime":1743992112258,"isCompleted":true,"children":[{"spanId":"span-1743992109453-pcjv5","name":"Parent-0-Fork-A","startTime":1743992109453,"endTime":1743992110054,"parentSpanId":"span-1743992109252-fas1w","isCompleted":true,"children":[{"spanId":"span-1743992109654-t170t","name":"Fork-A-Span-1","startTime":1743992109654,"endTime":1743992109654,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]},{"spanId":"span-1743992109855-559f9","name":"Fork-A-Span-2","startTime":1743992109855,"endTime":1743992109855,"parentSpanId":"span-1743992109453-pcjv5","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743992113061-w76cq","name":"Fork-A-Span-1","startTime":1743992113061,"endTime":1743992113061,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]} -{"spanId":"span-1743992113262-0280q","name":"Fork-A-Span-2","startTime":1743992113262,"endTime":1743992113263,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]} -{"spanId":"span-1743992112860-jnh0z","name":"Parent-1-Fork-A","startTime":1743992112860,"endTime":1743992113463,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[{"spanId":"span-1743992113061-w76cq","name":"Fork-A-Span-1","startTime":1743992113061,"endTime":1743992113061,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]},{"spanId":"span-1743992113262-0280q","name":"Fork-A-Span-2","startTime":1743992113262,"endTime":1743992113263,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992114465-ozh8g","name":"Async-Job-1","startTime":1743992114465,"endTime":1743992114664,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[]} -{"spanId":"span-1743992115465-niqni","name":"Orphan-1","startTime":1743992115465,"endTime":1743992115466,"isCompleted":true,"children":[]} -{"spanId":"span-1743992112659-t13f1","name":"Parent-1","startTime":1743992112659,"endTime":1743992115665,"isCompleted":true,"children":[{"spanId":"span-1743992112860-jnh0z","name":"Parent-1-Fork-A","startTime":1743992112860,"endTime":1743992113463,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[{"spanId":"span-1743992113061-w76cq","name":"Fork-A-Span-1","startTime":1743992113061,"endTime":1743992113061,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]},{"spanId":"span-1743992113262-0280q","name":"Fork-A-Span-2","startTime":1743992113262,"endTime":1743992113263,"parentSpanId":"span-1743992112860-jnh0z","isCompleted":true,"children":[]}]},{"spanId":"span-1743992114465-ozh8g","name":"Async-Job-1","startTime":1743992114465,"endTime":1743992114664,"parentSpanId":"span-1743992112659-t13f1","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992116466-gp2xa","name":"Fork-A-Span-1","startTime":1743992116466,"endTime":1743992116467,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]} -{"spanId":"span-1743992116666-ilx68","name":"Fork-A-Span-2","startTime":1743992116666,"endTime":1743992116667,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]} -{"spanId":"span-1743992116267-yud3f","name":"Parent-2-Fork-A","startTime":1743992116267,"endTime":1743992116866,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992116466-gp2xa","name":"Fork-A-Span-1","startTime":1743992116466,"endTime":1743992116467,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]},{"spanId":"span-1743992116666-ilx68","name":"Fork-A-Span-2","startTime":1743992116666,"endTime":1743992116667,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992117266-yhwjv","name":"Fork-B-Span-1","startTime":1743992117266,"endTime":1743992117267,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]} -{"spanId":"span-1743992117467-6ri7u","name":"Fork-B-Span-2","startTime":1743992117467,"endTime":1743992117468,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]} -{"spanId":"span-1743992117066-q9hji","name":"Parent-2-Fork-B","startTime":1743992117066,"endTime":1743992117668,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992117266-yhwjv","name":"Fork-B-Span-1","startTime":1743992117266,"endTime":1743992117267,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]},{"spanId":"span-1743992117467-6ri7u","name":"Fork-B-Span-2","startTime":1743992117467,"endTime":1743992117468,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992118870-gawzu","name":"Orphan-2","startTime":1743992118870,"endTime":1743992118870,"isCompleted":true,"children":[]} -{"spanId":"span-1743992116066-xcf20","name":"Parent-2","startTime":1743992116066,"endTime":1743992119070,"isCompleted":true,"children":[{"spanId":"span-1743992116267-yud3f","name":"Parent-2-Fork-A","startTime":1743992116267,"endTime":1743992116866,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992116466-gp2xa","name":"Fork-A-Span-1","startTime":1743992116466,"endTime":1743992116467,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]},{"spanId":"span-1743992116666-ilx68","name":"Fork-A-Span-2","startTime":1743992116666,"endTime":1743992116667,"parentSpanId":"span-1743992116267-yud3f","isCompleted":true,"children":[]}]},{"spanId":"span-1743992117066-q9hji","name":"Parent-2-Fork-B","startTime":1743992117066,"endTime":1743992117668,"parentSpanId":"span-1743992116066-xcf20","isCompleted":true,"children":[{"spanId":"span-1743992117266-yhwjv","name":"Fork-B-Span-1","startTime":1743992117266,"endTime":1743992117267,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]},{"spanId":"span-1743992117467-6ri7u","name":"Fork-B-Span-2","startTime":1743992117467,"endTime":1743992117468,"parentSpanId":"span-1743992117066-q9hji","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743992119871-gnja6","name":"Fork-A-Span-1","startTime":1743992119871,"endTime":1743992119872,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]} -{"spanId":"span-1743992120071-oc1ie","name":"Fork-A-Span-2","startTime":1743992120071,"endTime":1743992120072,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]} -{"spanId":"span-1743992119672-k1j5n","name":"Parent-3-Fork-A","startTime":1743992119672,"endTime":1743992120271,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992119871-gnja6","name":"Fork-A-Span-1","startTime":1743992119871,"endTime":1743992119872,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]},{"spanId":"span-1743992120071-oc1ie","name":"Fork-A-Span-2","startTime":1743992120071,"endTime":1743992120072,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992120672-l7vme","name":"Fork-B-Span-1","startTime":1743992120672,"endTime":1743992120673,"parentSpanId":"span-1743992120472-4256k","isCompleted":true,"children":[]} -{"spanId":"span-1743992120472-4256k","name":"Parent-3-Fork-B","startTime":1743992120472,"endTime":1743992121073,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992120672-l7vme","name":"Fork-B-Span-1","startTime":1743992120672,"endTime":1743992120673,"parentSpanId":"span-1743992120472-4256k","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992121274-my7mb","name":"Async-Job-1","startTime":1743992121274,"endTime":1743992121474,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]} -{"spanId":"span-1743992122075-ywiyg","name":"[Rejoins-Fork-3]","startTime":1743992122075,"endTime":1743992122076,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]} -{"spanId":"span-1743992122275-yf5w9","name":"Orphan-3","startTime":1743992122275,"endTime":1743992122275,"isCompleted":true,"children":[]} -{"spanId":"span-1743992119471-v6kz5","name":"Parent-3","startTime":1743992119471,"endTime":1743992122474,"isCompleted":true,"children":[{"spanId":"span-1743992119672-k1j5n","name":"Parent-3-Fork-A","startTime":1743992119672,"endTime":1743992120271,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992119871-gnja6","name":"Fork-A-Span-1","startTime":1743992119871,"endTime":1743992119872,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]},{"spanId":"span-1743992120071-oc1ie","name":"Fork-A-Span-2","startTime":1743992120071,"endTime":1743992120072,"parentSpanId":"span-1743992119672-k1j5n","isCompleted":true,"children":[]}]},{"spanId":"span-1743992120472-4256k","name":"Parent-3-Fork-B","startTime":1743992120472,"endTime":1743992121073,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[{"spanId":"span-1743992120672-l7vme","name":"Fork-B-Span-1","startTime":1743992120672,"endTime":1743992120673,"parentSpanId":"span-1743992120472-4256k","isCompleted":true,"children":[]}]},{"spanId":"span-1743992121274-my7mb","name":"Async-Job-1","startTime":1743992121274,"endTime":1743992121474,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]},{"spanId":"span-1743992122075-ywiyg","name":"[Rejoins-Fork-3]","startTime":1743992122075,"endTime":1743992122076,"parentSpanId":"span-1743992119471-v6kz5","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992123276-s2pmm","name":"Fork-A-Span-1","startTime":1743992123276,"endTime":1743992123277,"parentSpanId":"span-1743992123075-oom37","isCompleted":true,"children":[]} -{"spanId":"span-1743992123075-oom37","name":"Parent-4-Fork-A","startTime":1743992123075,"endTime":1743992123677,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992123276-s2pmm","name":"Fork-A-Span-1","startTime":1743992123276,"endTime":1743992123277,"parentSpanId":"span-1743992123075-oom37","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992124078-u65cd","name":"Fork-B-Span-1","startTime":1743992124078,"endTime":1743992124079,"parentSpanId":"span-1743992123878-os4vf","isCompleted":true,"children":[]} -{"spanId":"span-1743992123878-os4vf","name":"Parent-4-Fork-B","startTime":1743992123878,"endTime":1743992124479,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992124078-u65cd","name":"Fork-B-Span-1","startTime":1743992124078,"endTime":1743992124079,"parentSpanId":"span-1743992123878-os4vf","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992125681-syrik","name":"Orphan-4","startTime":1743992125681,"endTime":1743992125681,"isCompleted":true,"children":[]} -{"spanId":"span-1743992122875-akzwr","name":"Parent-4","startTime":1743992122875,"endTime":1743992125882,"isCompleted":true,"children":[{"spanId":"span-1743992123075-oom37","name":"Parent-4-Fork-A","startTime":1743992123075,"endTime":1743992123677,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992123276-s2pmm","name":"Fork-A-Span-1","startTime":1743992123276,"endTime":1743992123277,"parentSpanId":"span-1743992123075-oom37","isCompleted":true,"children":[]}]},{"spanId":"span-1743992123878-os4vf","name":"Parent-4-Fork-B","startTime":1743992123878,"endTime":1743992124479,"parentSpanId":"span-1743992122875-akzwr","isCompleted":true,"children":[{"spanId":"span-1743992124078-u65cd","name":"Fork-B-Span-1","startTime":1743992124078,"endTime":1743992124079,"parentSpanId":"span-1743992123878-os4vf","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743992129088-udw8n","name":"Orphan-5","startTime":1743992129088,"endTime":1743992129089,"isCompleted":true,"children":[]} -{"spanId":"span-1743992126282-0pmcb","name":"Parent-5","startTime":1743992126282,"endTime":1743992129288,"isCompleted":true,"children":[]} -{"spanId":"span-1743992196269-bdang","name":"Fork-B-Span-1","startTime":1743992196269,"endTime":1743992196270,"parentSpanId":"span-1743992196070-4pboo","isCompleted":true,"children":[]} -{"spanId":"span-1743992196070-4pboo","name":"Parent-0-Fork-B","startTime":1743992196070,"endTime":1743992196670,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[{"spanId":"span-1743992196269-bdang","name":"Fork-B-Span-1","startTime":1743992196269,"endTime":1743992196270,"parentSpanId":"span-1743992196070-4pboo","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992197671-i1in7","name":"[Rejoins-Fork-0]","startTime":1743992197671,"endTime":1743992197672,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[]} -{"spanId":"span-1743992197872-pm27v","name":"Orphan-0","startTime":1743992197872,"endTime":1743992197872,"isCompleted":true,"children":[]} -{"spanId":"span-1743992195068-kl1k6","name":"Parent-0","startTime":1743992195068,"endTime":1743992198072,"isCompleted":true,"children":[{"spanId":"span-1743992196070-4pboo","name":"Parent-0-Fork-B","startTime":1743992196070,"endTime":1743992196670,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[{"spanId":"span-1743992196269-bdang","name":"Fork-B-Span-1","startTime":1743992196269,"endTime":1743992196270,"parentSpanId":"span-1743992196070-4pboo","isCompleted":true,"children":[]}]},{"spanId":"span-1743992197671-i1in7","name":"[Rejoins-Fork-0]","startTime":1743992197671,"endTime":1743992197672,"parentSpanId":"span-1743992195068-kl1k6","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992198873-r8ja1","name":"Fork-A-Span-1","startTime":1743992198873,"endTime":1743992198874,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]} -{"spanId":"span-1743992199073-1xz13","name":"Fork-A-Span-2","startTime":1743992199073,"endTime":1743992199074,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]} -{"spanId":"span-1743992198674-xl6ox","name":"Parent-1-Fork-A","startTime":1743992198674,"endTime":1743992199273,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992198873-r8ja1","name":"Fork-A-Span-1","startTime":1743992198873,"endTime":1743992198874,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]},{"spanId":"span-1743992199073-1xz13","name":"Fork-A-Span-2","startTime":1743992199073,"endTime":1743992199074,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992199675-4cw4h","name":"Fork-B-Span-1","startTime":1743992199675,"endTime":1743992199675,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]} -{"spanId":"span-1743992199875-m71og","name":"Fork-B-Span-2","startTime":1743992199875,"endTime":1743992199875,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]} -{"spanId":"span-1743992199474-v1782","name":"Parent-1-Fork-B","startTime":1743992199474,"endTime":1743992200076,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992199675-4cw4h","name":"Fork-B-Span-1","startTime":1743992199675,"endTime":1743992199675,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]},{"spanId":"span-1743992199875-m71og","name":"Fork-B-Span-2","startTime":1743992199875,"endTime":1743992199875,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992201278-zq10b","name":"Orphan-1","startTime":1743992201278,"endTime":1743992201279,"isCompleted":true,"children":[]} -{"spanId":"span-1743992198473-svndh","name":"Parent-1","startTime":1743992198473,"endTime":1743992201479,"isCompleted":true,"children":[{"spanId":"span-1743992198674-xl6ox","name":"Parent-1-Fork-A","startTime":1743992198674,"endTime":1743992199273,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992198873-r8ja1","name":"Fork-A-Span-1","startTime":1743992198873,"endTime":1743992198874,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]},{"spanId":"span-1743992199073-1xz13","name":"Fork-A-Span-2","startTime":1743992199073,"endTime":1743992199074,"parentSpanId":"span-1743992198674-xl6ox","isCompleted":true,"children":[]}]},{"spanId":"span-1743992199474-v1782","name":"Parent-1-Fork-B","startTime":1743992199474,"endTime":1743992200076,"parentSpanId":"span-1743992198473-svndh","isCompleted":true,"children":[{"spanId":"span-1743992199675-4cw4h","name":"Fork-B-Span-1","startTime":1743992199675,"endTime":1743992199675,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]},{"spanId":"span-1743992199875-m71og","name":"Fork-B-Span-2","startTime":1743992199875,"endTime":1743992199875,"parentSpanId":"span-1743992199474-v1782","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743992202278-991n8","name":"Fork-A-Span-1","startTime":1743992202278,"endTime":1743992202278,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]} -{"spanId":"span-1743992202478-bsukb","name":"Fork-A-Span-2","startTime":1743992202478,"endTime":1743992202479,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]} -{"spanId":"span-1743992202079-eyaxj","name":"Parent-2-Fork-A","startTime":1743992202079,"endTime":1743992202679,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992202278-991n8","name":"Fork-A-Span-1","startTime":1743992202278,"endTime":1743992202278,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]},{"spanId":"span-1743992202478-bsukb","name":"Fork-A-Span-2","startTime":1743992202478,"endTime":1743992202479,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]} -{"spanId":"span-1743992203680-c9p20","name":"Async-Job-2","startTime":1743992203680,"endTime":1743992204080,"parentSpanId":"span-1743992203679-tcm9f","isCompleted":true,"children":[{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992203679-tcm9f","name":"Async-Job-1","startTime":1743992203679,"endTime":1743992204281,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992203680-c9p20","name":"Async-Job-2","startTime":1743992203680,"endTime":1743992204080,"parentSpanId":"span-1743992203679-tcm9f","isCompleted":true,"children":[{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743992204681-vuuiz","name":"Orphan-2","startTime":1743992204681,"endTime":1743992204681,"isCompleted":true,"children":[]} -{"spanId":"span-1743992201879-5xgi0","name":"Parent-2","startTime":1743992201879,"endTime":1743992204882,"isCompleted":true,"children":[{"spanId":"span-1743992202079-eyaxj","name":"Parent-2-Fork-A","startTime":1743992202079,"endTime":1743992202679,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992202278-991n8","name":"Fork-A-Span-1","startTime":1743992202278,"endTime":1743992202278,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]},{"spanId":"span-1743992202478-bsukb","name":"Fork-A-Span-2","startTime":1743992202478,"endTime":1743992202479,"parentSpanId":"span-1743992202079-eyaxj","isCompleted":true,"children":[]}]},{"spanId":"span-1743992203679-tcm9f","name":"Async-Job-1","startTime":1743992203679,"endTime":1743992204281,"parentSpanId":"span-1743992201879-5xgi0","isCompleted":true,"children":[{"spanId":"span-1743992203680-c9p20","name":"Async-Job-2","startTime":1743992203680,"endTime":1743992204080,"parentSpanId":"span-1743992203679-tcm9f","isCompleted":true,"children":[{"spanId":"span-1743992203680-at16t","name":"Async-Job-3","startTime":1743992203680,"endTime":1743992203880,"parentSpanId":"span-1743992203680-c9p20","isCompleted":true,"children":[]}]}]}]} -{"spanId":"span-1743992205684-kme5c","name":"Fork-A-Span-1","startTime":1743992205684,"endTime":1743992205684,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]} -{"spanId":"span-1743992205884-n9ea4","name":"Fork-A-Span-2","startTime":1743992205884,"endTime":1743992205885,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]} -{"spanId":"span-1743992205483-bygs3","name":"Parent-3-Fork-A","startTime":1743992205483,"endTime":1743992206085,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992205684-kme5c","name":"Fork-A-Span-1","startTime":1743992205684,"endTime":1743992205684,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]},{"spanId":"span-1743992205884-n9ea4","name":"Fork-A-Span-2","startTime":1743992205884,"endTime":1743992205885,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992206487-le9n8","name":"Fork-B-Span-1","startTime":1743992206487,"endTime":1743992206487,"parentSpanId":"span-1743992206286-n5p1j","isCompleted":true,"children":[]} -{"spanId":"span-1743992206286-n5p1j","name":"Parent-3-Fork-B","startTime":1743992206286,"endTime":1743992206888,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992206487-le9n8","name":"Fork-B-Span-1","startTime":1743992206487,"endTime":1743992206487,"parentSpanId":"span-1743992206286-n5p1j","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992207088-fcctn","name":"Async-Job-1","startTime":1743992207088,"endTime":1743992207289,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[]} -{"spanId":"span-1743992208090-cwka7","name":"Orphan-3","startTime":1743992208090,"endTime":1743992208090,"isCompleted":true,"children":[]} -{"spanId":"span-1743992205283-1jsl5","name":"Parent-3","startTime":1743992205283,"endTime":1743992208291,"isCompleted":true,"children":[{"spanId":"span-1743992205483-bygs3","name":"Parent-3-Fork-A","startTime":1743992205483,"endTime":1743992206085,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992205684-kme5c","name":"Fork-A-Span-1","startTime":1743992205684,"endTime":1743992205684,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]},{"spanId":"span-1743992205884-n9ea4","name":"Fork-A-Span-2","startTime":1743992205884,"endTime":1743992205885,"parentSpanId":"span-1743992205483-bygs3","isCompleted":true,"children":[]}]},{"spanId":"span-1743992206286-n5p1j","name":"Parent-3-Fork-B","startTime":1743992206286,"endTime":1743992206888,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[{"spanId":"span-1743992206487-le9n8","name":"Fork-B-Span-1","startTime":1743992206487,"endTime":1743992206487,"parentSpanId":"span-1743992206286-n5p1j","isCompleted":true,"children":[]}]},{"spanId":"span-1743992207088-fcctn","name":"Async-Job-1","startTime":1743992207088,"endTime":1743992207289,"parentSpanId":"span-1743992205283-1jsl5","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992209094-ywdm8","name":"Fork-A-Span-1","startTime":1743992209094,"endTime":1743992209095,"parentSpanId":"span-1743992208893-3njyf","isCompleted":true,"children":[]} -{"spanId":"span-1743992208893-3njyf","name":"Parent-4-Fork-A","startTime":1743992208893,"endTime":1743992209495,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209094-ywdm8","name":"Fork-A-Span-1","startTime":1743992209094,"endTime":1743992209095,"parentSpanId":"span-1743992208893-3njyf","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992209896-jxv50","name":"Fork-B-Span-1","startTime":1743992209896,"endTime":1743992209896,"parentSpanId":"span-1743992209696-02gb5","isCompleted":true,"children":[]} -{"spanId":"span-1743992209696-02gb5","name":"Parent-4-Fork-B","startTime":1743992209696,"endTime":1743992210297,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209896-jxv50","name":"Fork-B-Span-1","startTime":1743992209896,"endTime":1743992209896,"parentSpanId":"span-1743992209696-02gb5","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992208693-cca9a","name":"Parent-4","startTime":1743992208693,"endTime":1743992211699,"isCompleted":true,"children":[{"spanId":"span-1743992208893-3njyf","name":"Parent-4-Fork-A","startTime":1743992208893,"endTime":1743992209495,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209094-ywdm8","name":"Fork-A-Span-1","startTime":1743992209094,"endTime":1743992209095,"parentSpanId":"span-1743992208893-3njyf","isCompleted":true,"children":[]}]},{"spanId":"span-1743992209696-02gb5","name":"Parent-4-Fork-B","startTime":1743992209696,"endTime":1743992210297,"parentSpanId":"span-1743992208693-cca9a","isCompleted":true,"children":[{"spanId":"span-1743992209896-jxv50","name":"Fork-B-Span-1","startTime":1743992209896,"endTime":1743992209896,"parentSpanId":"span-1743992209696-02gb5","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743992212500-75m4t","name":"Fork-A-Span-1","startTime":1743992212500,"endTime":1743992212500,"parentSpanId":"span-1743992212300-jrbxz","isCompleted":true,"children":[]} -{"spanId":"span-1743992212300-jrbxz","name":"Parent-5-Fork-A","startTime":1743992212300,"endTime":1743992212900,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992212500-75m4t","name":"Fork-A-Span-1","startTime":1743992212500,"endTime":1743992212500,"parentSpanId":"span-1743992212300-jrbxz","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992213301-e1gvs","name":"Fork-B-Span-1","startTime":1743992213301,"endTime":1743992213302,"parentSpanId":"span-1743992213100-wijua","isCompleted":true,"children":[]} -{"spanId":"span-1743992213100-wijua","name":"Parent-5-Fork-B","startTime":1743992213100,"endTime":1743992213701,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213301-e1gvs","name":"Fork-B-Span-1","startTime":1743992213301,"endTime":1743992213302,"parentSpanId":"span-1743992213100-wijua","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]} -{"spanId":"span-1743992213903-al99g","name":"Async-Job-2","startTime":1743992213903,"endTime":1743992214303,"parentSpanId":"span-1743992213902-sncot","isCompleted":true,"children":[{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]}]} -{"spanId":"span-1743992213902-sncot","name":"Async-Job-1","startTime":1743992213902,"endTime":1743992214503,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213903-al99g","name":"Async-Job-2","startTime":1743992213903,"endTime":1743992214303,"parentSpanId":"span-1743992213902-sncot","isCompleted":true,"children":[{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743992214904-unlf7","name":"Orphan-5","startTime":1743992214904,"endTime":1743992214904,"isCompleted":true,"children":[]} -{"spanId":"span-1743992212100-xjnhq","name":"Parent-5","startTime":1743992212100,"endTime":1743992215105,"isCompleted":true,"children":[{"spanId":"span-1743992212300-jrbxz","name":"Parent-5-Fork-A","startTime":1743992212300,"endTime":1743992212900,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992212500-75m4t","name":"Fork-A-Span-1","startTime":1743992212500,"endTime":1743992212500,"parentSpanId":"span-1743992212300-jrbxz","isCompleted":true,"children":[]}]},{"spanId":"span-1743992213100-wijua","name":"Parent-5-Fork-B","startTime":1743992213100,"endTime":1743992213701,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213301-e1gvs","name":"Fork-B-Span-1","startTime":1743992213301,"endTime":1743992213302,"parentSpanId":"span-1743992213100-wijua","isCompleted":true,"children":[]}]},{"spanId":"span-1743992213902-sncot","name":"Async-Job-1","startTime":1743992213902,"endTime":1743992214503,"parentSpanId":"span-1743992212100-xjnhq","isCompleted":true,"children":[{"spanId":"span-1743992213903-al99g","name":"Async-Job-2","startTime":1743992213903,"endTime":1743992214303,"parentSpanId":"span-1743992213902-sncot","isCompleted":true,"children":[{"spanId":"span-1743992213904-o5rjl","name":"Async-Job-3","startTime":1743992213904,"endTime":1743992214103,"parentSpanId":"span-1743992213903-al99g","isCompleted":true,"children":[]}]}]}]} -{"spanId":"span-1743992215907-cmek8","name":"Fork-A-Span-1","startTime":1743992215907,"endTime":1743992215907,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]} -{"spanId":"span-1743992216107-d7no1","name":"Fork-A-Span-2","startTime":1743992216107,"endTime":1743992216108,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]} -{"spanId":"span-1743992215706-sc2ou","name":"Parent-6-Fork-A","startTime":1743992215706,"endTime":1743992216308,"parentSpanId":"span-1743992215506-jod4m","isCompleted":true,"children":[{"spanId":"span-1743992215907-cmek8","name":"Fork-A-Span-1","startTime":1743992215907,"endTime":1743992215907,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]},{"spanId":"span-1743992216107-d7no1","name":"Fork-A-Span-2","startTime":1743992216107,"endTime":1743992216108,"parentSpanId":"span-1743992215706-sc2ou","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993577489-j3phn","name":"Fork-A-Span-1","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577489-xsqf8","isCompleted":true,"children":[]} -{"spanId":"span-1743993577489-xsqf8","name":"Parent-0-Fork-A","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577489-j3phn","name":"Fork-A-Span-1","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577489-xsqf8","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993577489-domtp","name":"Parent-0-Fork-A","startTime":1743993577489,"endTime":1743993577491,"isCompleted":true,"children":[]} -{"spanId":"span-1743993577890-zzq7i","name":"Async-Chain-0","startTime":1743993577890,"endTime":1743993577891,"isCompleted":true,"children":[]} -{"spanId":"span-1743993577891-ukqtt","name":"Async-Job-2","startTime":1743993577891,"endTime":1743993578090,"parentSpanId":"span-1743993577891-8acaj","isCompleted":true,"children":[]} -{"spanId":"span-1743993577891-8acaj","name":"Async-Job-1","startTime":1743993577891,"endTime":1743993578291,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577891-ukqtt","name":"Async-Job-2","startTime":1743993577891,"endTime":1743993578090,"parentSpanId":"span-1743993577891-8acaj","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993578691-glcza","name":"[Rejoins-Fork-0]","startTime":1743993578691,"endTime":1743993578692,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[]} -{"spanId":"span-1743993578892-r1gs1","name":"Orphan-0","startTime":1743993578892,"endTime":1743993578893,"isCompleted":true,"children":[]} -{"spanId":"span-1743993577289-4g7ta","name":"Parent-0","startTime":1743993577289,"endTime":1743993579093,"isCompleted":true,"children":[{"spanId":"span-1743993577489-xsqf8","name":"Parent-0-Fork-A","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577489-j3phn","name":"Fork-A-Span-1","startTime":1743993577489,"endTime":1743993577490,"parentSpanId":"span-1743993577489-xsqf8","isCompleted":true,"children":[]}]},{"spanId":"span-1743993577891-8acaj","name":"Async-Job-1","startTime":1743993577891,"endTime":1743993578291,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[{"spanId":"span-1743993577891-ukqtt","name":"Async-Job-2","startTime":1743993577891,"endTime":1743993578090,"parentSpanId":"span-1743993577891-8acaj","isCompleted":true,"children":[]}]},{"spanId":"span-1743993578691-glcza","name":"[Rejoins-Fork-0]","startTime":1743993578691,"endTime":1743993578692,"parentSpanId":"span-1743993577289-4g7ta","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993579694-2m2es","name":"Fork-A-Span-1","startTime":1743993579694,"endTime":1743993579694,"parentSpanId":"span-1743993579693-bg0em","isCompleted":true,"children":[]} -{"spanId":"span-1743993579693-bg0em","name":"Parent-1-Fork-A","startTime":1743993579693,"endTime":1743993579694,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579694-2m2es","name":"Fork-A-Span-1","startTime":1743993579694,"endTime":1743993579694,"parentSpanId":"span-1743993579693-bg0em","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993579693-s00w8","name":"Parent-1-Fork-A","startTime":1743993579693,"endTime":1743993579694,"isCompleted":true,"children":[]} -{"spanId":"span-1743993579895-6hq4a","name":"Fork-B-Span-1","startTime":1743993579895,"endTime":1743993579895,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]} -{"spanId":"span-1743993579895-38xi5","name":"Fork-B-Span-2","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]} -{"spanId":"span-1743993579895-40dig","name":"Parent-1-Fork-B","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579895-6hq4a","name":"Fork-B-Span-1","startTime":1743993579895,"endTime":1743993579895,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]},{"spanId":"span-1743993579895-38xi5","name":"Fork-B-Span-2","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993579894-0hqd6","name":"Parent-1-Fork-B","startTime":1743993579894,"endTime":1743993579896,"isCompleted":true,"children":[]} -{"spanId":"span-1743993580895-t065v","name":"[Rejoins-Fork-1]","startTime":1743993580895,"endTime":1743993580896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[]} -{"spanId":"span-1743993581095-p1nag","name":"Orphan-1","startTime":1743993581095,"endTime":1743993581096,"isCompleted":true,"children":[]} -{"spanId":"span-1743993579493-e6f43","name":"Parent-1","startTime":1743993579493,"endTime":1743993581296,"isCompleted":true,"children":[{"spanId":"span-1743993579693-bg0em","name":"Parent-1-Fork-A","startTime":1743993579693,"endTime":1743993579694,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579694-2m2es","name":"Fork-A-Span-1","startTime":1743993579694,"endTime":1743993579694,"parentSpanId":"span-1743993579693-bg0em","isCompleted":true,"children":[]}]},{"spanId":"span-1743993579895-40dig","name":"Parent-1-Fork-B","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[{"spanId":"span-1743993579895-6hq4a","name":"Fork-B-Span-1","startTime":1743993579895,"endTime":1743993579895,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]},{"spanId":"span-1743993579895-38xi5","name":"Fork-B-Span-2","startTime":1743993579895,"endTime":1743993579896,"parentSpanId":"span-1743993579895-40dig","isCompleted":true,"children":[]}]},{"spanId":"span-1743993580895-t065v","name":"[Rejoins-Fork-1]","startTime":1743993580895,"endTime":1743993580896,"parentSpanId":"span-1743993579493-e6f43","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993581898-4tb25","name":"Fork-A-Span-1","startTime":1743993581898,"endTime":1743993581898,"parentSpanId":"span-1743993581897-g5wfo","isCompleted":true,"children":[]} -{"spanId":"span-1743993581897-g5wfo","name":"Parent-2-Fork-A","startTime":1743993581897,"endTime":1743993581898,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993581898-4tb25","name":"Fork-A-Span-1","startTime":1743993581898,"endTime":1743993581898,"parentSpanId":"span-1743993581897-g5wfo","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993581897-9sz3w","name":"Parent-2-Fork-A","startTime":1743993581897,"endTime":1743993581899,"isCompleted":true,"children":[]} -{"spanId":"span-1743993582298-avb0l","name":"Async-Chain-2","startTime":1743993582298,"endTime":1743993582299,"isCompleted":true,"children":[]} -{"spanId":"span-1743993582299-g0git","name":"Async-Job-2","startTime":1743993582299,"endTime":1743993582499,"parentSpanId":"span-1743993582299-se1f9","isCompleted":true,"children":[]} -{"spanId":"span-1743993582299-se1f9","name":"Async-Job-1","startTime":1743993582299,"endTime":1743993582700,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993582299-g0git","name":"Async-Job-2","startTime":1743993582299,"endTime":1743993582499,"parentSpanId":"span-1743993582299-se1f9","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993583301-9iq46","name":"Orphan-2","startTime":1743993583302,"endTime":1743993583302,"isCompleted":true,"children":[]} -{"spanId":"span-1743993581696-ai121","name":"Parent-2","startTime":1743993581696,"endTime":1743993583501,"isCompleted":true,"children":[{"spanId":"span-1743993581897-g5wfo","name":"Parent-2-Fork-A","startTime":1743993581897,"endTime":1743993581898,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993581898-4tb25","name":"Fork-A-Span-1","startTime":1743993581898,"endTime":1743993581898,"parentSpanId":"span-1743993581897-g5wfo","isCompleted":true,"children":[]}]},{"spanId":"span-1743993582299-se1f9","name":"Async-Job-1","startTime":1743993582299,"endTime":1743993582700,"parentSpanId":"span-1743993581696-ai121","isCompleted":true,"children":[{"spanId":"span-1743993582299-g0git","name":"Async-Job-2","startTime":1743993582299,"endTime":1743993582499,"parentSpanId":"span-1743993582299-se1f9","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743993584103-hbddh","name":"Fork-A-Span-1","startTime":1743993584103,"endTime":1743993584103,"parentSpanId":"span-1743993584102-u2g49","isCompleted":true,"children":[]} -{"spanId":"span-1743993584102-u2g49","name":"Parent-3-Fork-A","startTime":1743993584102,"endTime":1743993584103,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584103-hbddh","name":"Fork-A-Span-1","startTime":1743993584103,"endTime":1743993584103,"parentSpanId":"span-1743993584102-u2g49","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993584102-v5fb4","name":"Parent-3-Fork-A","startTime":1743993584102,"endTime":1743993584103,"isCompleted":true,"children":[]} -{"spanId":"span-1743993584303-kg46d","name":"Fork-B-Span-1","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993584303-3mgz7","isCompleted":true,"children":[]} -{"spanId":"span-1743993584303-3mgz7","name":"Parent-3-Fork-B","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584303-kg46d","name":"Fork-B-Span-1","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993584303-3mgz7","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993584303-4ciip","name":"Parent-3-Fork-B","startTime":1743993584303,"endTime":1743993584303,"isCompleted":true,"children":[]} -{"spanId":"span-1743993585305-1315y","name":"[Rejoins-Fork-3]","startTime":1743993585305,"endTime":1743993585305,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[]} -{"spanId":"span-1743993585506-8hx4i","name":"Orphan-3","startTime":1743993585506,"endTime":1743993585506,"isCompleted":true,"children":[]} -{"spanId":"span-1743993583902-2cx66","name":"Parent-3","startTime":1743993583902,"endTime":1743993585707,"isCompleted":true,"children":[{"spanId":"span-1743993584102-u2g49","name":"Parent-3-Fork-A","startTime":1743993584102,"endTime":1743993584103,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584103-hbddh","name":"Fork-A-Span-1","startTime":1743993584103,"endTime":1743993584103,"parentSpanId":"span-1743993584102-u2g49","isCompleted":true,"children":[]}]},{"spanId":"span-1743993584303-3mgz7","name":"Parent-3-Fork-B","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[{"spanId":"span-1743993584303-kg46d","name":"Fork-B-Span-1","startTime":1743993584303,"endTime":1743993584303,"parentSpanId":"span-1743993584303-3mgz7","isCompleted":true,"children":[]}]},{"spanId":"span-1743993585305-1315y","name":"[Rejoins-Fork-3]","startTime":1743993585305,"endTime":1743993585305,"parentSpanId":"span-1743993583902-2cx66","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993586310-s2m9j","name":"Fork-A-Span-1","startTime":1743993586310,"endTime":1743993586310,"parentSpanId":"span-1743993586309-7fciz","isCompleted":true,"children":[]} -{"spanId":"span-1743993586309-7fciz","name":"Parent-4-Fork-A","startTime":1743993586309,"endTime":1743993586310,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[{"spanId":"span-1743993586310-s2m9j","name":"Fork-A-Span-1","startTime":1743993586310,"endTime":1743993586310,"parentSpanId":"span-1743993586309-7fciz","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993586309-jzqij","name":"Parent-4-Fork-A","startTime":1743993586309,"endTime":1743993586310,"isCompleted":true,"children":[]} -{"spanId":"span-1743993586710-gemwg","name":"Async-Chain-4","startTime":1743993586710,"endTime":1743993586711,"isCompleted":true,"children":[]} -{"spanId":"span-1743993586711-028u0","name":"Async-Job-1","startTime":1743993586711,"endTime":1743993586911,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[]} -{"spanId":"span-1743993586108-9eqvz","name":"Parent-4","startTime":1743993586108,"endTime":1743993587913,"isCompleted":true,"children":[{"spanId":"span-1743993586309-7fciz","name":"Parent-4-Fork-A","startTime":1743993586309,"endTime":1743993586310,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[{"spanId":"span-1743993586310-s2m9j","name":"Fork-A-Span-1","startTime":1743993586310,"endTime":1743993586310,"parentSpanId":"span-1743993586309-7fciz","isCompleted":true,"children":[]}]},{"spanId":"span-1743993586711-028u0","name":"Async-Job-1","startTime":1743993586711,"endTime":1743993586911,"parentSpanId":"span-1743993586108-9eqvz","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993588515-8fbj8","name":"Fork-A-Span-1","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588515-8r5ys","isCompleted":true,"children":[]} -{"spanId":"span-1743993588515-8r5ys","name":"Parent-5-Fork-A","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588515-8fbj8","name":"Fork-A-Span-1","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588515-8r5ys","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993588514-bl9ko","name":"Parent-5-Fork-A","startTime":1743993588514,"endTime":1743993588516,"isCompleted":true,"children":[]} -{"spanId":"span-1743993588716-x032j","name":"Fork-B-Span-1","startTime":1743993588716,"endTime":1743993588716,"parentSpanId":"span-1743993588715-w9bqa","isCompleted":true,"children":[]} -{"spanId":"span-1743993588715-w9bqa","name":"Parent-5-Fork-B","startTime":1743993588715,"endTime":1743993588716,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588716-x032j","name":"Fork-B-Span-1","startTime":1743993588716,"endTime":1743993588716,"parentSpanId":"span-1743993588715-w9bqa","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993588715-e0ban","name":"Parent-5-Fork-B","startTime":1743993588715,"endTime":1743993588717,"isCompleted":true,"children":[]} -{"spanId":"span-1743993589916-myoy4","name":"Orphan-5","startTime":1743993589916,"endTime":1743993589916,"isCompleted":true,"children":[]} -{"spanId":"span-1743993588314-2xm9z","name":"Parent-5","startTime":1743993588314,"endTime":1743993590117,"isCompleted":true,"children":[{"spanId":"span-1743993588515-8r5ys","name":"Parent-5-Fork-A","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588515-8fbj8","name":"Fork-A-Span-1","startTime":1743993588515,"endTime":1743993588516,"parentSpanId":"span-1743993588515-8r5ys","isCompleted":true,"children":[]}]},{"spanId":"span-1743993588715-w9bqa","name":"Parent-5-Fork-B","startTime":1743993588715,"endTime":1743993588716,"parentSpanId":"span-1743993588314-2xm9z","isCompleted":true,"children":[{"spanId":"span-1743993588716-x032j","name":"Fork-B-Span-1","startTime":1743993588716,"endTime":1743993588716,"parentSpanId":"span-1743993588715-w9bqa","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743993590720-3f8ni","name":"Fork-A-Span-1","startTime":1743993590720,"endTime":1743993590720,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]} -{"spanId":"span-1743993590721-1xs9k","name":"Fork-A-Span-2","startTime":1743993590721,"endTime":1743993590721,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]} -{"spanId":"span-1743993590719-rajpw","name":"Parent-6-Fork-A","startTime":1743993590719,"endTime":1743993590722,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590720-3f8ni","name":"Fork-A-Span-1","startTime":1743993590720,"endTime":1743993590720,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]},{"spanId":"span-1743993590721-1xs9k","name":"Fork-A-Span-2","startTime":1743993590721,"endTime":1743993590721,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993590718-8447f","name":"Parent-6-Fork-A","startTime":1743993590718,"endTime":1743993590722,"isCompleted":true,"children":[]} -{"spanId":"span-1743993590919-squ8g","name":"Fork-B-Span-1","startTime":1743993590919,"endTime":1743993590919,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]} -{"spanId":"span-1743993590919-0by66","name":"Fork-B-Span-2","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]} -{"spanId":"span-1743993590919-c9w2v","name":"Parent-6-Fork-B","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590919-squ8g","name":"Fork-B-Span-1","startTime":1743993590919,"endTime":1743993590919,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]},{"spanId":"span-1743993590919-0by66","name":"Fork-B-Span-2","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993590918-ke5i8","name":"Parent-6-Fork-B","startTime":1743993590918,"endTime":1743993590920,"isCompleted":true,"children":[]} -{"spanId":"span-1743993591119-xcf4p","name":"Async-Chain-6","startTime":1743993591119,"endTime":1743993591120,"isCompleted":true,"children":[]} -{"spanId":"span-1743993591120-zxfh2","name":"Async-Job-2","startTime":1743993591120,"endTime":1743993591319,"parentSpanId":"span-1743993591119-867q1","isCompleted":true,"children":[]} -{"spanId":"span-1743993591119-867q1","name":"Async-Job-1","startTime":1743993591119,"endTime":1743993591519,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993591120-zxfh2","name":"Async-Job-2","startTime":1743993591120,"endTime":1743993591319,"parentSpanId":"span-1743993591119-867q1","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993592120-s9jrl","name":"Orphan-6","startTime":1743993592120,"endTime":1743993592121,"isCompleted":true,"children":[]} -{"spanId":"span-1743993590518-jr9st","name":"Parent-6","startTime":1743993590518,"endTime":1743993592321,"isCompleted":true,"children":[{"spanId":"span-1743993590719-rajpw","name":"Parent-6-Fork-A","startTime":1743993590719,"endTime":1743993590722,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590720-3f8ni","name":"Fork-A-Span-1","startTime":1743993590720,"endTime":1743993590720,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]},{"spanId":"span-1743993590721-1xs9k","name":"Fork-A-Span-2","startTime":1743993590721,"endTime":1743993590721,"parentSpanId":"span-1743993590719-rajpw","isCompleted":true,"children":[]}]},{"spanId":"span-1743993590919-c9w2v","name":"Parent-6-Fork-B","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993590919-squ8g","name":"Fork-B-Span-1","startTime":1743993590919,"endTime":1743993590919,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]},{"spanId":"span-1743993590919-0by66","name":"Fork-B-Span-2","startTime":1743993590919,"endTime":1743993590920,"parentSpanId":"span-1743993590919-c9w2v","isCompleted":true,"children":[]}]},{"spanId":"span-1743993591119-867q1","name":"Async-Job-1","startTime":1743993591119,"endTime":1743993591519,"parentSpanId":"span-1743993590518-jr9st","isCompleted":true,"children":[{"spanId":"span-1743993591120-zxfh2","name":"Async-Job-2","startTime":1743993591120,"endTime":1743993591319,"parentSpanId":"span-1743993591119-867q1","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743993592923-4leq9","name":"Fork-A-Span-1","startTime":1743993592923,"endTime":1743993592923,"parentSpanId":"span-1743993592923-73hws","isCompleted":true,"children":[]} -{"spanId":"span-1743993592923-73hws","name":"Parent-7-Fork-A","startTime":1743993592923,"endTime":1743993592924,"parentSpanId":"span-1743993592722-9ti0d","isCompleted":true,"children":[{"spanId":"span-1743993592923-4leq9","name":"Fork-A-Span-1","startTime":1743993592923,"endTime":1743993592923,"parentSpanId":"span-1743993592923-73hws","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993592922-dptma","name":"Parent-7-Fork-A","startTime":1743993592923,"endTime":1743993592924,"isCompleted":true,"children":[]} -{"spanId":"span-1743993592722-9ti0d","name":"Parent-7","startTime":1743993592722,"endTime":1743993594525,"isCompleted":true,"children":[{"spanId":"span-1743993592923-73hws","name":"Parent-7-Fork-A","startTime":1743993592923,"endTime":1743993592924,"parentSpanId":"span-1743993592722-9ti0d","isCompleted":true,"children":[{"spanId":"span-1743993592923-4leq9","name":"Fork-A-Span-1","startTime":1743993592923,"endTime":1743993592923,"parentSpanId":"span-1743993592923-73hws","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743993595127-9bmc3","name":"Fork-A-Span-1","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993595127-nu6sr","isCompleted":true,"children":[]} -{"spanId":"span-1743993595127-nu6sr","name":"Parent-8-Fork-A","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595127-9bmc3","name":"Fork-A-Span-1","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993595127-nu6sr","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993595126-l90hs","name":"Parent-8-Fork-A","startTime":1743993595126,"endTime":1743993595129,"isCompleted":true,"children":[]} -{"spanId":"span-1743993595326-5er12","name":"Fork-B-Span-1","startTime":1743993595326,"endTime":1743993595326,"parentSpanId":"span-1743993595326-j3upx","isCompleted":true,"children":[]} -{"spanId":"span-1743993595326-j3upx","name":"Parent-8-Fork-B","startTime":1743993595326,"endTime":1743993595327,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595326-5er12","name":"Fork-B-Span-1","startTime":1743993595326,"endTime":1743993595326,"parentSpanId":"span-1743993595326-j3upx","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993595325-o6302","name":"Parent-8-Fork-B","startTime":1743993595326,"endTime":1743993595327,"isCompleted":true,"children":[]} -{"spanId":"span-1743993594925-lsvjn","name":"Parent-8","startTime":1743993594925,"endTime":1743993596728,"isCompleted":true,"children":[{"spanId":"span-1743993595127-nu6sr","name":"Parent-8-Fork-A","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595127-9bmc3","name":"Fork-A-Span-1","startTime":1743993595127,"endTime":1743993595128,"parentSpanId":"span-1743993595127-nu6sr","isCompleted":true,"children":[]}]},{"spanId":"span-1743993595326-j3upx","name":"Parent-8-Fork-B","startTime":1743993595326,"endTime":1743993595327,"parentSpanId":"span-1743993594925-lsvjn","isCompleted":true,"children":[{"spanId":"span-1743993595326-5er12","name":"Fork-B-Span-1","startTime":1743993595326,"endTime":1743993595326,"parentSpanId":"span-1743993595326-j3upx","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743993597331-c9cvg","name":"Fork-A-Span-1","startTime":1743993597331,"endTime":1743993597331,"parentSpanId":"span-1743993597330-uufvw","isCompleted":true,"children":[]} -{"spanId":"span-1743993597330-uufvw","name":"Parent-9-Fork-A","startTime":1743993597330,"endTime":1743993597332,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597331-c9cvg","name":"Fork-A-Span-1","startTime":1743993597331,"endTime":1743993597331,"parentSpanId":"span-1743993597330-uufvw","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993597329-13j0m","name":"Parent-9-Fork-A","startTime":1743993597329,"endTime":1743993597332,"isCompleted":true,"children":[]} -{"spanId":"span-1743993597531-v5j4t","name":"Fork-B-Span-1","startTime":1743993597531,"endTime":1743993597532,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]} -{"spanId":"span-1743993597533-zh3h7","name":"Fork-B-Span-2","startTime":1743993597533,"endTime":1743993597533,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]} -{"spanId":"span-1743993597531-3xmc5","name":"Parent-9-Fork-B","startTime":1743993597531,"endTime":1743993597534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597531-v5j4t","name":"Fork-B-Span-1","startTime":1743993597531,"endTime":1743993597532,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]},{"spanId":"span-1743993597533-zh3h7","name":"Fork-B-Span-2","startTime":1743993597533,"endTime":1743993597533,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993597530-yv2bu","name":"Parent-9-Fork-B","startTime":1743993597530,"endTime":1743993597534,"isCompleted":true,"children":[]} -{"spanId":"span-1743993597730-vah3e","name":"Async-Chain-9","startTime":1743993597730,"endTime":1743993597732,"isCompleted":true,"children":[]} -{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]} -{"spanId":"span-1743993597731-l8jz6","name":"Async-Job-2","startTime":1743993597731,"endTime":1743993598132,"parentSpanId":"span-1743993597731-9192p","isCompleted":true,"children":[{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993597731-9192p","name":"Async-Job-1","startTime":1743993597731,"endTime":1743993598333,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597731-l8jz6","name":"Async-Job-2","startTime":1743993597731,"endTime":1743993598132,"parentSpanId":"span-1743993597731-9192p","isCompleted":true,"children":[{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]}]}]} -{"spanId":"span-1743993598533-opvp3","name":"[Rejoins-Fork-9]","startTime":1743993598533,"endTime":1743993598534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[]} -{"spanId":"span-1743993598734-dstea","name":"Orphan-9","startTime":1743993598734,"endTime":1743993598735,"isCompleted":true,"children":[]} -{"spanId":"span-1743993597129-egrxb","name":"Parent-9","startTime":1743993597129,"endTime":1743993598934,"isCompleted":true,"children":[{"spanId":"span-1743993597330-uufvw","name":"Parent-9-Fork-A","startTime":1743993597330,"endTime":1743993597332,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597331-c9cvg","name":"Fork-A-Span-1","startTime":1743993597331,"endTime":1743993597331,"parentSpanId":"span-1743993597330-uufvw","isCompleted":true,"children":[]}]},{"spanId":"span-1743993597531-3xmc5","name":"Parent-9-Fork-B","startTime":1743993597531,"endTime":1743993597534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597531-v5j4t","name":"Fork-B-Span-1","startTime":1743993597531,"endTime":1743993597532,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]},{"spanId":"span-1743993597533-zh3h7","name":"Fork-B-Span-2","startTime":1743993597533,"endTime":1743993597533,"parentSpanId":"span-1743993597531-3xmc5","isCompleted":true,"children":[]}]},{"spanId":"span-1743993597731-9192p","name":"Async-Job-1","startTime":1743993597731,"endTime":1743993598333,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[{"spanId":"span-1743993597731-l8jz6","name":"Async-Job-2","startTime":1743993597731,"endTime":1743993598132,"parentSpanId":"span-1743993597731-9192p","isCompleted":true,"children":[{"spanId":"span-1743993597732-lv041","name":"Async-Job-3","startTime":1743993597732,"endTime":1743993597931,"parentSpanId":"span-1743993597731-l8jz6","isCompleted":true,"children":[]}]}]},{"spanId":"span-1743993598533-opvp3","name":"[Rejoins-Fork-9]","startTime":1743993598533,"endTime":1743993598534,"parentSpanId":"span-1743993597129-egrxb","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993599537-19p3g","name":"Fork-A-Span-1","startTime":1743993599537,"endTime":1743993599537,"parentSpanId":"span-1743993599536-kkaq8","isCompleted":true,"children":[]} -{"spanId":"span-1743993599536-kkaq8","name":"Parent-10-Fork-A","startTime":1743993599536,"endTime":1743993599538,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599537-19p3g","name":"Fork-A-Span-1","startTime":1743993599537,"endTime":1743993599537,"parentSpanId":"span-1743993599536-kkaq8","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993599536-s75i9","name":"Parent-10-Fork-A","startTime":1743993599536,"endTime":1743993599539,"isCompleted":true,"children":[]} -{"spanId":"span-1743993599737-p6d1d","name":"Fork-B-Span-1","startTime":1743993599737,"endTime":1743993599738,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]} -{"spanId":"span-1743993599739-0ximq","name":"Fork-B-Span-2","startTime":1743993599739,"endTime":1743993599740,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]} -{"spanId":"span-1743993599736-2ag8d","name":"Parent-10-Fork-B","startTime":1743993599736,"endTime":1743993599741,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599737-p6d1d","name":"Fork-B-Span-1","startTime":1743993599737,"endTime":1743993599738,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]},{"spanId":"span-1743993599739-0ximq","name":"Fork-B-Span-2","startTime":1743993599739,"endTime":1743993599740,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993599735-60v75","name":"Parent-10-Fork-B","startTime":1743993599735,"endTime":1743993599742,"isCompleted":true,"children":[]} -{"spanId":"span-1743993599936-dew2n","name":"Async-Chain-10","startTime":1743993599936,"endTime":1743993599939,"isCompleted":true,"children":[]} -{"spanId":"span-1743993599938-fqgxc","name":"Async-Job-2","startTime":1743993599938,"endTime":1743993600137,"parentSpanId":"span-1743993599937-kvsjh","isCompleted":true,"children":[]} -{"spanId":"span-1743993599937-kvsjh","name":"Async-Job-1","startTime":1743993599937,"endTime":1743993600337,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599938-fqgxc","name":"Async-Job-2","startTime":1743993599938,"endTime":1743993600137,"parentSpanId":"span-1743993599937-kvsjh","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993600738-xwu5c","name":"[Rejoins-Fork-10]","startTime":1743993600738,"endTime":1743993600739,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[]} -{"spanId":"span-1743993599335-y890p","name":"Parent-10","startTime":1743993599335,"endTime":1743993601138,"isCompleted":true,"children":[{"spanId":"span-1743993599536-kkaq8","name":"Parent-10-Fork-A","startTime":1743993599536,"endTime":1743993599538,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599537-19p3g","name":"Fork-A-Span-1","startTime":1743993599537,"endTime":1743993599537,"parentSpanId":"span-1743993599536-kkaq8","isCompleted":true,"children":[]}]},{"spanId":"span-1743993599736-2ag8d","name":"Parent-10-Fork-B","startTime":1743993599736,"endTime":1743993599741,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599737-p6d1d","name":"Fork-B-Span-1","startTime":1743993599737,"endTime":1743993599738,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]},{"spanId":"span-1743993599739-0ximq","name":"Fork-B-Span-2","startTime":1743993599739,"endTime":1743993599740,"parentSpanId":"span-1743993599736-2ag8d","isCompleted":true,"children":[]}]},{"spanId":"span-1743993599937-kvsjh","name":"Async-Job-1","startTime":1743993599937,"endTime":1743993600337,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[{"spanId":"span-1743993599938-fqgxc","name":"Async-Job-2","startTime":1743993599938,"endTime":1743993600137,"parentSpanId":"span-1743993599937-kvsjh","isCompleted":true,"children":[]}]},{"spanId":"span-1743993600738-xwu5c","name":"[Rejoins-Fork-10]","startTime":1743993600738,"endTime":1743993600739,"parentSpanId":"span-1743993599335-y890p","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993601740-kdmv7","name":"Fork-A-Span-1","startTime":1743993601740,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]} -{"spanId":"span-1743993601741-hiy4t","name":"Fork-A-Span-2","startTime":1743993601741,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]} -{"spanId":"span-1743993601740-c9bra","name":"Parent-11-Fork-A","startTime":1743993601740,"endTime":1743993601742,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601740-kdmv7","name":"Fork-A-Span-1","startTime":1743993601740,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]},{"spanId":"span-1743993601741-hiy4t","name":"Fork-A-Span-2","startTime":1743993601741,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993601739-uqhpz","name":"Parent-11-Fork-A","startTime":1743993601739,"endTime":1743993601742,"isCompleted":true,"children":[]} -{"spanId":"span-1743993601941-301zi","name":"Fork-B-Span-1","startTime":1743993601941,"endTime":1743993601941,"parentSpanId":"span-1743993601940-1dvm8","isCompleted":true,"children":[]} -{"spanId":"span-1743993601940-1dvm8","name":"Parent-11-Fork-B","startTime":1743993601940,"endTime":1743993601941,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601941-301zi","name":"Fork-B-Span-1","startTime":1743993601941,"endTime":1743993601941,"parentSpanId":"span-1743993601940-1dvm8","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993601939-ujr8d","name":"Parent-11-Fork-B","startTime":1743993601939,"endTime":1743993601942,"isCompleted":true,"children":[]} -{"spanId":"span-1743993602140-e0iy6","name":"Async-Chain-11","startTime":1743993602140,"endTime":1743993602142,"isCompleted":true,"children":[]} -{"spanId":"span-1743993602141-o6ute","name":"Async-Job-2","startTime":1743993602141,"endTime":1743993602341,"parentSpanId":"span-1743993602141-ycu4f","isCompleted":true,"children":[]} -{"spanId":"span-1743993602141-ycu4f","name":"Async-Job-1","startTime":1743993602141,"endTime":1743993602542,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993602141-o6ute","name":"Async-Job-2","startTime":1743993602141,"endTime":1743993602341,"parentSpanId":"span-1743993602141-ycu4f","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993602943-x5fi7","name":"[Rejoins-Fork-11]","startTime":1743993602943,"endTime":1743993602944,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[]} -{"spanId":"span-1743993603144-d7aqz","name":"Orphan-11","startTime":1743993603144,"endTime":1743993603145,"isCompleted":true,"children":[]} -{"spanId":"span-1743993601539-jnwiz","name":"Parent-11","startTime":1743993601539,"endTime":1743993603344,"isCompleted":true,"children":[{"spanId":"span-1743993601740-c9bra","name":"Parent-11-Fork-A","startTime":1743993601740,"endTime":1743993601742,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601740-kdmv7","name":"Fork-A-Span-1","startTime":1743993601740,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]},{"spanId":"span-1743993601741-hiy4t","name":"Fork-A-Span-2","startTime":1743993601741,"endTime":1743993601741,"parentSpanId":"span-1743993601740-c9bra","isCompleted":true,"children":[]}]},{"spanId":"span-1743993601940-1dvm8","name":"Parent-11-Fork-B","startTime":1743993601940,"endTime":1743993601941,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993601941-301zi","name":"Fork-B-Span-1","startTime":1743993601941,"endTime":1743993601941,"parentSpanId":"span-1743993601940-1dvm8","isCompleted":true,"children":[]}]},{"spanId":"span-1743993602141-ycu4f","name":"Async-Job-1","startTime":1743993602141,"endTime":1743993602542,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[{"spanId":"span-1743993602141-o6ute","name":"Async-Job-2","startTime":1743993602141,"endTime":1743993602341,"parentSpanId":"span-1743993602141-ycu4f","isCompleted":true,"children":[]}]},{"spanId":"span-1743993602943-x5fi7","name":"[Rejoins-Fork-11]","startTime":1743993602943,"endTime":1743993602944,"parentSpanId":"span-1743993601539-jnwiz","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993603947-fe19g","name":"Fork-A-Span-1","startTime":1743993603947,"endTime":1743993603948,"parentSpanId":"span-1743993603946-xgjau","isCompleted":true,"children":[]} -{"spanId":"span-1743993603946-xgjau","name":"Parent-12-Fork-A","startTime":1743993603946,"endTime":1743993603948,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[{"spanId":"span-1743993603947-fe19g","name":"Fork-A-Span-1","startTime":1743993603947,"endTime":1743993603948,"parentSpanId":"span-1743993603946-xgjau","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993603945-iee4m","name":"Parent-12-Fork-A","startTime":1743993603945,"endTime":1743993603949,"isCompleted":true,"children":[]} -{"spanId":"span-1743993604346-8x5g6","name":"Async-Chain-12","startTime":1743993604346,"endTime":1743993604347,"isCompleted":true,"children":[]} -{"spanId":"span-1743993604346-fs4th","name":"Async-Job-1","startTime":1743993604346,"endTime":1743993604546,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]} -{"spanId":"span-1743993605148-tv1py","name":"[Rejoins-Fork-12]","startTime":1743993605148,"endTime":1743993605148,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]} -{"spanId":"span-1743993605347-ldzqy","name":"Orphan-12","startTime":1743993605347,"endTime":1743993605348,"isCompleted":true,"children":[]} -{"spanId":"span-1743993603744-rb2nc","name":"Parent-12","startTime":1743993603744,"endTime":1743993605548,"isCompleted":true,"children":[{"spanId":"span-1743993603946-xgjau","name":"Parent-12-Fork-A","startTime":1743993603946,"endTime":1743993603948,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[{"spanId":"span-1743993603947-fe19g","name":"Fork-A-Span-1","startTime":1743993603947,"endTime":1743993603948,"parentSpanId":"span-1743993603946-xgjau","isCompleted":true,"children":[]}]},{"spanId":"span-1743993604346-fs4th","name":"Async-Job-1","startTime":1743993604346,"endTime":1743993604546,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]},{"spanId":"span-1743993605148-tv1py","name":"[Rejoins-Fork-12]","startTime":1743993605148,"endTime":1743993605148,"parentSpanId":"span-1743993603744-rb2nc","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993606150-pmgsl","name":"Fork-A-Span-1","startTime":1743993606150,"endTime":1743993606150,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]} -{"spanId":"span-1743993606151-atdn0","name":"Fork-A-Span-2","startTime":1743993606151,"endTime":1743993606152,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]} -{"spanId":"span-1743993606149-t28jr","name":"Parent-13-Fork-A","startTime":1743993606149,"endTime":1743993606152,"parentSpanId":"span-1743993605948-i81o7","isCompleted":true,"children":[{"spanId":"span-1743993606150-pmgsl","name":"Fork-A-Span-1","startTime":1743993606150,"endTime":1743993606150,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]},{"spanId":"span-1743993606151-atdn0","name":"Fork-A-Span-2","startTime":1743993606151,"endTime":1743993606152,"parentSpanId":"span-1743993606149-t28jr","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993606148-h6mq9","name":"Parent-13-Fork-A","startTime":1743993606148,"endTime":1743993606153,"isCompleted":true,"children":[]} -{"spanId":"span-1743993606352-nku43","name":"Fork-B-Span-1","startTime":1743993606352,"endTime":1743993606352,"parentSpanId":"span-1743993606350-lbi3q","isCompleted":true,"children":[]} -{"spanId":"span-1743993606350-lbi3q","name":"Parent-13-Fork-B","startTime":1743993606350,"endTime":1743993606353,"parentSpanId":"span-1743993605948-i81o7","isCompleted":true,"children":[{"spanId":"span-1743993606352-nku43","name":"Fork-B-Span-1","startTime":1743993606352,"endTime":1743993606352,"parentSpanId":"span-1743993606350-lbi3q","isCompleted":true,"children":[]}]} -{"spanId":"span-1743993606349-leeym","name":"Parent-13-Fork-B","startTime":1743993606349,"endTime":1743993606354,"isCompleted":true,"children":[]} -{"spanId":"span-1743993606549-gld8f","name":"Async-Chain-13","startTime":1743993606549,"endTime":1743993606552,"isCompleted":true,"children":[]} -{"spanId":"span-1743993606550-ykfdu","name":"Async-Job-1","startTime":1743993606550,"endTime":1743993606749,"parentSpanId":"span-1743993605948-i81o7","isCompleted":true,"children":[]} diff --git a/src/Logger.ts b/src/Logger.ts index 51a8c06..909b68e 100644 --- a/src/Logger.ts +++ b/src/Logger.ts @@ -3,7 +3,7 @@ import type Handler from './Handler.js'; import { LogLevel } from './types.js'; import ConsoleErrHandler from './handlers/ConsoleErrHandler.js'; import * as utils from './utils.js'; -import { openSpan, closeSpan } from './lib/tracingManager.js'; +import { openSpan, closeSpan } from './lib/TracingManager.js'; class Logger { public readonly key: string; diff --git a/src/bin/SpanTree.tsx b/src/bin/SpanTree.tsx index e3f0319..1612fa6 100644 --- a/src/bin/SpanTree.tsx +++ b/src/bin/SpanTree.tsx @@ -1,5 +1,4 @@ import type { FC } from 'react'; -import React from 'react'; import { Box, Text } from 'ink'; import Span from '../lib/Span.js'; diff --git a/src/bin/TimeLineView.tsx b/src/bin/TimeLineView.tsx index dd394ab..cd35d5c 100644 --- a/src/bin/TimeLineView.tsx +++ b/src/bin/TimeLineView.tsx @@ -1,5 +1,4 @@ import type { FC } from 'react'; -import React from 'react'; import { Box, Text } from 'ink'; interface Span { diff --git a/src/bin/cli.tsx b/src/bin/cli.tsx index b4c7cb6..b93e7e7 100644 --- a/src/bin/cli.tsx +++ b/src/bin/cli.tsx @@ -1,9 +1,9 @@ import type Span from '../lib/Span.js'; +import fs from 'fs'; import { Command } from 'commander'; -import React, { useEffect, useState } from 'react'; +import { useEffect, useState } from 'react'; import { render, Box, Text } from 'ink'; import SpanTree from './SpanTree.js'; -import tracer from '../lib/tracingManager.js'; // Use commander to parse CLI options const program = new Command(); @@ -14,17 +14,26 @@ program const options = program.opts(); const sampleMode = options.sample; -// ✅ Use Tracer directly -function loadSpans(): Span[] { - return tracer.getActiveSpans(); +async function loadSpans(): Promise> { + if (!fs.existsSync('spans.jsonl')) return []; + const spans: Array = []; + const file = await fs.promises.open('testSpans.jsonl', 'r'); + for await (const line of file.readLines()) { + spans.push(JSON.parse(line)); + } + await file.close(); + return spans; } const App = () => { - const [spans, setSpans] = useState([]); + const [spans, setSpans] = useState>([]); useEffect(() => { const id = setInterval(() => { - setSpans(loadSpans()); + (async () => { + const result = await loadSpans(); + setSpans(result); + })(); }, 1000); const handleExit = () => { diff --git a/src/index.ts b/src/index.ts index 0c20751..1f74c06 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,6 @@ export { default } from './Logger.js'; export { default as Handler } from './Handler.js'; -export { openSpan, closeSpan, getTraceJSON } from './lib/tracingManager.js'; +export { openSpan, closeSpan, getTraceJSON } from './lib/TracingManager.js'; export { default as Span } from './lib/Span.js'; export * as formatting from './formatting.js'; export * from './handlers/index.js'; diff --git a/src/lib/Span.ts b/src/lib/Span.ts index 03085cc..24c26d7 100644 --- a/src/lib/Span.ts +++ b/src/lib/Span.ts @@ -1,30 +1,18 @@ -export interface SpanJSON { - spanId: string; - name: string; - startTime: number; - endTime: number | undefined; - parentSpanId: string | undefined; - isCompleted: boolean; - children: SpanJSON[]; -} +import type { SpanJSON } from './types.js'; class Span { - public spanId: string; + public spanId: string = `span-${Date.now()}-${Math.random() + .toString(36) + .substring(2, 5)}`; public name: string; - public startTime: number; + public startTime: number = Date.now(); public endTime?: number; public parentSpanId?: string; - public children: Array; + public children: Array = []; - constructor(name: string, parentSpanId: string | undefined = undefined) { - this.spanId = `span-${Date.now()}-${Math.random() - .toString(36) - .substr(2, 5)}`; + constructor(name: string, parentSpanId?: string) { this.name = name; - this.startTime = Date.now(); - this.endTime = undefined; this.parentSpanId = parentSpanId; - this.children = []; } public close(): void { @@ -32,10 +20,10 @@ class Span { } public isCompleted(): boolean { - return this.endTime !== undefined; + return this.endTime != null; } - toJSON(): SpanJSON { + public toJSON(): SpanJSON { return { spanId: this.spanId, name: this.name, diff --git a/src/lib/Tracer.ts b/src/lib/Tracer.ts index 6501a8b..b434626 100644 --- a/src/lib/Tracer.ts +++ b/src/lib/Tracer.ts @@ -1,10 +1,15 @@ -import fs from 'fs'; import Span from './Span.js'; -export default class Tracer { - private activeSpans: Map = new Map(); - private spanFile = 'spans.json'; - private jsonlStream = fs.createWriteStream('spans.jsonl', { flags: 'a' }); +class Tracer { + protected activeSpans: Map = new Map(); + protected queue: Array = []; + protected resolveWaitChunksP: (() => void) | undefined; + protected ended: boolean = false; + + protected queueSpan(span: Span) { + this.queue.push(span); + if (this.resolveWaitChunksP != null) this.resolveWaitChunksP(); + } public startSpan(name: string, parentSpanId?: string): string { const span = new Span(name, parentSpanId); @@ -14,45 +19,31 @@ export default class Tracer { this.activeSpans.get(parentSpanId)!.children.push(span); } - this.saveSpansToFile(); return span.spanId; } - public endSpan(spanId: string): Span | null { + public endSpan(spanId: string): Span | undefined { const span = this.activeSpans.get(spanId); - if (!span) return null; + if (!span) return; span.close(); - this.jsonlStream.write(JSON.stringify(span.toJSON()) + '\n'); - this.saveSpansToFile(); + this.queueSpan(span); return span; } - public traced( + public async traced( name: string, fn: () => Promise, parentSpanId?: string, ): Promise { const spanId = this.startSpan(name, parentSpanId); - return fn() - .then((result) => { - this.endSpan(spanId); - return result; - }) - .catch((err) => { - this.endSpan(spanId); - throw err; - }); + return await fn().finally(() => this.endSpan(spanId)); } - public getActiveSpans(): Span[] { + public getActiveSpans(): Array { return Array.from(this.activeSpans.values()); } - public flush(): void { - this.saveSpansToFile(); - } - public getTraceJSON(): string { return JSON.stringify( this.getActiveSpans().map((s) => s.toJSON()), @@ -61,10 +52,23 @@ export default class Tracer { ); } - private saveSpansToFile(): void { - fs.writeFileSync( - this.spanFile, - JSON.stringify(this.getActiveSpans(), null, 2), - ); + public endTracing(): void { + this.ended = true; + } + + public async *streamEvents(): AsyncGenerator { + while (true) { + const value = this.queue.shift(); + if (value == null) { + if (this.ended) break; + await new Promise((resolve) => { + this.resolveWaitChunksP = resolve; + }); + continue; + } + yield value; + } } } + +export default Tracer; diff --git a/src/lib/TracingManager.ts b/src/lib/TracingManager.ts new file mode 100644 index 0000000..5418967 --- /dev/null +++ b/src/lib/TracingManager.ts @@ -0,0 +1,27 @@ +import Tracer from '#lib/Tracer.js'; + +const tracer = new Tracer(); + +const openSpan = (spanId: string, parentSpanId?: string) => + tracer.startSpan(spanId, parentSpanId); +const closeSpan = (spanId: string) => tracer.endSpan(spanId); +const traced = ( + name: string, + fn: () => Promise, + parentSpanId?: string, +) => tracer.traced(name, fn, parentSpanId); +const getActiveSpans = () => tracer.getActiveSpans(); +const getTraceJSON = () => tracer.getTraceJSON(); +const streamEvents = () => tracer.streamEvents(); +const endTracing = () => tracer.endTracing(); + +export default tracer; +export { + openSpan, + closeSpan, + traced, + getActiveSpans, + getTraceJSON, + streamEvents, + endTracing, +}; diff --git a/src/lib/tracingManager.ts b/src/lib/tracingManager.ts deleted file mode 100644 index 17adc47..0000000 --- a/src/lib/tracingManager.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Tracer from './Tracer.js'; - -const tracer = new Tracer(); - -export const openSpan = tracer.startSpan.bind(tracer); -export const closeSpan = tracer.endSpan.bind(tracer); -export const traced = tracer.traced.bind(tracer); -export const getActiveSpans = tracer.getActiveSpans.bind(tracer); -export const getTraceJSON = tracer.getTraceJSON.bind(tracer); -export const flush = tracer.flush.bind(tracer); -export default tracer; diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..09811b1 --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,11 @@ +type SpanJSON = { + spanId: string; + name: string; + startTime: number; + endTime: number | undefined; + parentSpanId: string | undefined; + isCompleted: boolean; + children: Array; +}; + +export type { SpanJSON }; diff --git a/tests/asciinemaTest.ts b/tests/asciinemaTest.ts index 4510792..056d9e7 100644 --- a/tests/asciinemaTest.ts +++ b/tests/asciinemaTest.ts @@ -1,13 +1,33 @@ -import { openSpan, closeSpan, traced } from '../src/lib/tracingManager.js'; +import fs from 'fs'; +import * as fc from 'fast-check'; +import { + openSpan, + closeSpan, + traced, + streamEvents, +} from '#lib/TracingManager.js'; let parentIndex = 0; let step = 0; -let nestedIds: string[] = []; +let nestedIds: Array = []; -const current = { - parentId: undefined as string | undefined, - forkAId: undefined as string | undefined, - forkBId: undefined as string | undefined, +type Flags = { + hasForkA: boolean; + hasForkB: boolean; + forkAChildren: number; + forkBChildren: number; + hasNested: boolean; + nestedDepth: number; + hasRejoin: boolean; + hasOrphan: boolean; +}; + +const current: { + parentId?: string; + forkAId?: string; + forkBId?: string; + flags: Flags; +} = { flags: { hasForkA: true, hasForkB: true, @@ -20,28 +40,29 @@ const current = { }, }; -function randomBool(prob = 0.7) { - return Math.random() < prob; -} +const flagArb = fc.record({ + hasForkA: fc.boolean(), + hasForkB: fc.boolean(), + forkAChildren: fc.integer({ min: 1, max: 2 }), + forkBChildren: fc.integer({ min: 1, max: 2 }), + hasNested: fc.boolean(), + nestedDepth: fc.integer({ min: 1, max: 3 }), + hasRejoin: fc.boolean(), + hasOrphan: fc.boolean(), +}); -function randomInt(min: number, max: number) { - return Math.floor(Math.random() * (max - min + 1)) + min; -} +const saveToFileP = (async () => { + const file = await fs.promises.open('span.jsonl', 'w'); + for await (const event of streamEvents()) { + await file.write(JSON.stringify(event) + '\n'); + } + await file.close(); +})(); setInterval(async () => { switch (step) { case 0: { - current.flags = { - hasForkA: randomBool(0.9), - hasForkB: randomBool(0.7), - forkAChildren: randomInt(1, 2), - forkBChildren: randomInt(1, 2), - hasNested: randomBool(0.6), - nestedDepth: randomInt(1, 3), - hasRejoin: randomBool(0.5), - hasOrphan: randomBool(0.7), - }; - + current.flags = fc.sample(flagArb, 1)[0]; current.parentId = openSpan(`Parent-${parentIndex}`); nestedIds = []; break; @@ -98,14 +119,15 @@ setInterval(async () => { case 4: case 5: - case 6: + case 6: { if (nestedIds.length > 0) { const toClose = nestedIds.pop(); if (toClose) closeSpan(toClose); } break; + } - case 7: + case 7: { if (current.flags.hasRejoin) { const merge = openSpan( `[Rejoins-Fork-${parentIndex}]`, @@ -114,23 +136,30 @@ setInterval(async () => { closeSpan(merge); } break; + } - case 8: + case 8: { if (current.flags.hasOrphan) { const orphan = openSpan(`Orphan-${parentIndex}`); closeSpan(orphan); } break; + } - case 9: + case 9: { closeSpan(current.parentId!); break; + } - case 10: + case 10: { parentIndex++; step = -1; break; + } } step++; -}, 200); + process.stderr.write('generated data step'); +}, 500); + +await saveToFileP; diff --git a/tests/index.test.ts b/tests/index.test.ts index 656c91b..7ea3862 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -1,3 +1,4 @@ +import fs from 'fs'; import process from 'node:process'; import Logger from '../dist/index.js'; import { @@ -7,8 +8,23 @@ import { StreamHandler, formatting, } from '../dist/index.js'; +import { streamEvents, endTracing } from '#lib/TracingManager.js'; describe('index', () => { + let saveToFileP: Promise | undefined; + beforeAll(() => { + saveToFileP = (async () => { + const file = await fs.promises.open('testSpans.jsonl', 'w'); + for await (const event of streamEvents()) { + await file.write(JSON.stringify(event) + '\n'); + } + await file.close(); + })(); + }); + afterAll(async () => { + endTracing(); + await saveToFileP; + }); beforeEach(() => { jest.clearAllMocks(); });