{"_id":"belt-charts","_rev":"35-caa3bde71eb8d733db9d65edae231943","name":"belt-charts","dist-tags":{"latest":"1.24.0"},"versions":{"1.0.0":{"name":"belt-charts","version":"1.0.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.0.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"849947df40f5d3cccebbe957518b09132c473a1f","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.0.0.tgz","fileCount":75,"integrity":"sha512-lbv8ZnPhSze8FxiTM8zUK+Pa/wHYeuKEWaGKJCaL4NHEJlAIBjsS2CbsP3Iw+BaEFebKMUj2tka2QTB+n8wMZA==","signatures":[{"sig":"MEYCIQC8UQCylcEremaL2ko23jPDbbzEGRO1DCqiFlpvQNqmyQIhAMO7XH3HyfrX/sdBu+UNXMYBJ10nwi2WDJWutYCBkXwG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23708266},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"b0e56ec2c6eb9bb601b7c017274cb20d9721fee1","scripts":{"dev":"ncc build ./src/index.ts -w -o dist/","build":"ncc build ./src/index.ts -o dist --no-cache && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"abucnasty","email":"abucnasty@gmail.com"},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.2.1","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.0.0_1781659726144_0.3838952956256336","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"belt-charts","version":"1.0.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.0.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"c91e82b28f6375fb0f77866c9057e3b424129a5b","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.0.1.tgz","fileCount":6,"integrity":"sha512-WN88ZhUXq6LXYM44IBprnrWVh2Oe+lQqzuMkXvo6r8ZVcgbJE83dTCWI7dTS19cGXvpXOWevijHeryBwGDgiog==","signatures":[{"sig":"MEQCIB3Rw1i0C14VFDTdY6QMlrxBHjOiqjfXz++4zSiyuGmqAiBGWhd5l4N4F6/ZOB5ToYHDaVMuEVW/hfJCBw34i1Zlgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083361},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"ab9179ead49515c0779c7f80a6bffdb481e8febe","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"abucnasty","email":"abucnasty@gmail.com"},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"10.8.2","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"20.20.2","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.0.1_1781997901695_0.9651699334252022","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"belt-charts","version":"1.1.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.1.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"1f2a4763bec5b073dfc9bf9d89b81d6a49387bd3","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.1.0.tgz","fileCount":6,"integrity":"sha512-d3XLjIt5gDjM8LHxOdGvVR8mXmjdjjo/wkDOh3EDaeCXdALCliDWe8q39qRujK5aB+tSDFDgx4DMR47oWIz/1g==","signatures":[{"sig":"MEUCIQD7YsQLsjWMH/gMh+Y8yJMgzOo1eRryn1S+PDOf0gi2dgIgKEXn5x0J1qQwusRulJNmhWmfxYwkwawOA4gVYsQdQp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083385},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"5eca9e419d882b3f0180f42b4b40d1067547d12e","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.1.0_1782002088628_0.10876574738859124","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"belt-charts","version":"1.1.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.1.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"62326d4e33bb49bd2fb79d260b90997445f68394","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.1.1.tgz","fileCount":6,"integrity":"sha512-RDpGNe3yoWNDTW88IHP8qhYFbb8yfiUVDgObcu9iTn5QeMiAhwhffAfo2+ngbjiyAb2TbUlCmRDPYOppmL9BZA==","signatures":[{"sig":"MEYCIQCT9vBJYsGc0tnS7PBZNjpcEX8/kVHsCTd5HSbDUrPPdQIhAJJFLKANL5MDNAD9J6wZqh67C95t/LuE1rrVP1vXke4f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083634},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"479e51748eda750be336028ac5bd0ae2a4f80d12","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","postinstall":"npm rebuild skia-canvas","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.1.1_1782002593321_0.28711472476437194","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"belt-charts","version":"1.1.2","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.1.2","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"fbcf5dd663c2faabfe228bfd930304fc24e9f1df","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.1.2.tgz","fileCount":6,"integrity":"sha512-gbaUqWKnYDzBfps94FGKIHseD/Pmf9m0x+HzPwBvJgjQk6kRyeEiAzuU8RK3Gh+gCtuAJHvVfHULQlwL/eeXUA==","signatures":[{"sig":"MEQCIFGHuopEvTUePrrDsdJB8Fp3074jPDfDsmMOaw+Bazs2AiBN6J36VSm0zSCDDIbNFPU6qO33FrTkfkrfz/deNmutFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083868},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"ba66bae865cd7b0f63effc9acc1de95fe2643dc2","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","postinstall":"node node_modules/skia-canvas/lib/prebuild.mjs download --or-compile","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.1.2_1782003065377_0.4794028645187405","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"belt-charts","version":"1.2.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.2.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"63ae6867a5974594017c5ce7304ef000f892d501","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.2.0.tgz","fileCount":6,"integrity":"sha512-X0rYQ4ZYcNzh8PF6mvp3CllZehrxQ1Z0mcbnvSo+XAAJL5ezJXUs15mnLy7uO6ZqB27XA0OenW9IvzYCIFBN8A==","signatures":[{"sig":"MEYCIQCJWBoWLyPTWAorXz+/az3kGij5mpCqV30ahJZ8wnPNmgIhAN/f39RA6UQH+72btl07/SOeVqOMGhBVo5WlSGxn5HeE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1160694},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"c09ca4ab808404cc322d59d94b85a6e441551b32","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","postinstall":"node node_modules/skia-canvas/lib/prebuild.mjs download --or-compile","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.2.0_1782433678696_0.2793253550790995","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"belt-charts","version":"1.3.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.3.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"c7a7d15a0f0c3513066a49bbd3943a905fa10343","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.3.0.tgz","fileCount":6,"integrity":"sha512-uRaDIzfHtMZU1sPUgoIxmz1hPUaBi87vkwNm+wp6B4h0E3AFZzPYc3qjk7yHj7sGMXQSxPkM46qNtT7Jy+Sgjg==","signatures":[{"sig":"MEUCIQDR4mj9S5qAOgpSBO1zQb3//nUK2wAtq79H0NYFPiI9JQIgPBmwu0XeXoTaNewki/kpDZWXdMjU36J/yasgcwg5nBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1161118},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"56d314fef6bda61c5aa72e0a19b1c15711f89582","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","postinstall":"node node_modules/skia-canvas/lib/prebuild.mjs download --or-compile","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.3.0_1782434423298_0.14271317417727225","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"belt-charts","version":"1.3.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.3.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"ddff807476fa93ae3cc05d6de72102de86209314","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.3.1.tgz","fileCount":6,"integrity":"sha512-Nsns4pG0DOU+/wKpmnThOQ7lThmtHKZicTQyuAAtP57T0ugFu9mS6g0NdlAhMzBHzSV3I4u8mEUgEzAk0VIc5A==","signatures":[{"sig":"MEUCIQDjNZRvdBkhCK6COvpy1iJfTUBI+cFG1ti1MQ4BU2dq/AIgamftrveTp1liwXFY+QYebloQ6aSRUWkCTkGsxb8CeY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1161885},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"cd811534cbf3719eebdeb8da0e56b22c01e50010","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","postinstall":"node node_modules/skia-canvas/lib/prebuild.mjs download --or-compile","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.3.1_1782441023120_0.9511763152545141","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"belt-charts","version":"1.4.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.4.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"a9888ff25bcff5522583c8bb8af84362e3bc6867","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.4.0.tgz","fileCount":6,"integrity":"sha512-mwFF+zzvytbg2ESeZF8QXQ4iWwictNKZxKSYT3ZZ3YXPm7/dIlxemngDkX/EvdQWDX61+5yzrOlp+5FgCprRFA==","signatures":[{"sig":"MEUCIQC5euwWHWegUKP3Ijj0Rki9NTAteRiwsSzv8fiJkzTNrgIgYAWhiq7Dz8Vsg7aj7xi18pBmIG5gbM9mbOFuhN2l4GA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1169383},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"ed127453736735178863663edd1ed79d272baaac","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","postinstall":"node node_modules/skia-canvas/lib/prebuild.mjs download --or-compile","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.4.0_1782950746182_0.44002210249506857","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"belt-charts","version":"1.5.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.5.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"5ccf10a74b6625da5156510b86e6a0a225e44b75","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.5.0.tgz","fileCount":6,"integrity":"sha512-B5BBaeUU61QkWXyTHfY5O2lQmtCXuXZusttfedTbfssgxSbyXFXriPlH2jIiDP5ynhjYq+CxJthiMbGfKk/Zqw==","signatures":[{"sig":"MEYCIQDPFOtNUF5wnXMgMj6yheRsGU7L8Gt1jn2Qct16Ncp9tAIhAIx1jPlGJrkVevTBqsOZgXFjfTKCjjcEf62opmCRf+xX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1172355},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"2922fe480d77ea56695f34a1f2fe5db49c357c6d","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","postinstall":"node node_modules/skia-canvas/lib/prebuild.mjs download --or-compile","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.5.0_1782956809237_0.6354545315280349","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"belt-charts","version":"1.5.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.5.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"892ff4a40f80be5be292fdc5b89e83da5f3ed3e1","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.5.1.tgz","fileCount":6,"integrity":"sha512-/GRvmn5lIst5Y6r/E6XvLIrDn3WznS7EHgf8O87XOkZrGEzVi8DRKBGxGTfv4Yh/tjHnqd0xjTbd3uIW1MVw5g==","signatures":[{"sig":"MEUCIEzD67UpSFwT8dLYxvUISjs5M7IM8ISbCJ5XH/XcDoHaAiEAsjmi19hy/UNFJLl6t18itWuEwkUG/ajRikxBxG1HQ1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1174339},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"340d5bbaad8050b610df75d06b4bf9fdacc2c5b4","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.5.1_1783102206157_0.9059547802988752","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"belt-charts","version":"1.6.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.6.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"2063104827d2107a530ac399b29eb8bbb8b7ec99","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.6.0.tgz","fileCount":6,"integrity":"sha512-HRlShtlClkl2+dkvCHmsGpjDNsTiRfhYQ8sQPLzkwM70WeNZ/r0hJZQYO6b5KDrUaLiWw/j4tQFSAlwpP2V5Wg==","signatures":[{"sig":"MEUCIBNpj2qk8iKvNicIZKLqxF3eEXxwGwlqCQtFDSTReldmAiEAx9y7+rz7DSfvWtL70ZL+p6JVo9cVY2GXjOWqxCD4B0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1175002},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"e754ad8538cab9a5d18345cbb3f8dfcdf71bb18c","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.6.0_1783106810528_0.14339405821087148","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"belt-charts","version":"1.6.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.6.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"ced7c8145d463d14e8ad83f4df9942badcdb921c","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.6.1.tgz","fileCount":6,"integrity":"sha512-caxeH/6c9R0BhWCcAKXogSifbfTigb76An3k1QEEXXswLox4i2n8JCCTdpmWqs3whMNqpGCnvan0fidOW4dbhg==","signatures":[{"sig":"MEUCIGjz+wGz7PFKMJillM3FdfcIN3ZvWT47WiXNp5Z26K0HAiEAlDLIqmqNQTWPSD9ne5yDe/uT9sQmNlm0msSxlvOT5dU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1175406},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"33fc7a3d7aac70859929a6b9a5b3b5fc7ea54f6b","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.6.1_1783550065604_0.5809229079421547","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"belt-charts","version":"1.7.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.7.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"cd54a31cc30f4072d4233d56dbad18afcbd310e6","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.7.0.tgz","fileCount":6,"integrity":"sha512-hnp7ZqiYwwNgEpIKnxV1AGwFbNylrNHE7Q7tXDcwYnfVeBS9KK3FZ9BuRNWgERUie8DUojR7WwsKcW9ufmuJgg==","signatures":[{"sig":"MEUCIGiRTPlSKGSbZYQulrXMgfUFh8H6BcVqbe8OuoK3GxoXAiEA89OXZpANM4xfFNtjus7Jev9x/JE+m+eD5aR9bWd2MOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1176204},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"832eeb6cfa894ab66aa84aa228789eaccbca124f","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.7.0_1783551110401_0.6857536874987786","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"belt-charts","version":"1.8.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.8.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"b51348fb20a1784f2c9a96a042a8d19e404bddcf","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.8.0.tgz","fileCount":6,"integrity":"sha512-AvcIEZZ73RlfnvlDZ1YGyglhJ0O+Surs0u2UJx7En7MIqmXX056ofdAFXeCIWEscFYzUaOZUThrHd5b2+PmpUQ==","signatures":[{"sig":"MEUCIQDdKkHxFA173E+rCeq4pmWk7fd9sncYaJQCUfWSe/hBugIgD2yqO/rqsCUeibY4am7MRSao5hO/UbgD2VlMdzFMhn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1188431},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"73b0a2abd9dcba26cccb02f86debad167215ea7d","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.8.0_1783565243085_0.4309850587529882","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"belt-charts","version":"1.8.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.8.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"d86b1f715772168a8ca686747ddb665f3edf3b34","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.8.1.tgz","fileCount":6,"integrity":"sha512-Q3YUKDY48ST9ElD4rqYXQVWCid8tU60uDkS7HuKht/FSHdklIAQDKa4MpWndQAWH29CP36s8ivJNds4WMnhbNw==","signatures":[{"sig":"MEUCIQCTLaG0+uI226LOZG7iQ4CwCE4XjR0C3c/v7E+bJQw4LgIgagaT/I50e3df2ciZF7gWoaagqauvzgOAdK9KyJGE9F4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1188902},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"83e9cdc071febd30303f14899089d29163efa2b1","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.8.1_1783568599978_0.7942687691831565","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"belt-charts","version":"1.9.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.9.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"bb044f1e205f2c98c6a4d7364f77c7734486b645","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.9.0.tgz","fileCount":6,"integrity":"sha512-FU4emkyRWBSQBuGfhmEqqpPMmqmFHTkDkamD/MwTqt7AykZoXlfcqHg016YnM9DOEJdm9qUa6Veo677rekaTKQ==","signatures":[{"sig":"MEYCIQDfh4zZmB9c/tneiKmLFLoZUxCzY9QR6JndE9YnHkr6zwIhANXPXQTlOjknx7ma7YT6b+G4MThqfjH7ptuAFXIOZGNj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE6fJui3h/DwBB3KD/zPxhs1xiCywKbEhFcZuf3Y3gX4AiEA7pPqaIw+oAsVXzlkvfOCl7pQLLCWeAfdfx0oMK9SMHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1193130},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"78552cce8126ec1d949c29844cee952620fcea5c","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.9.0_1788839711138_0.5149053306864022","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"belt-charts","version":"1.10.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.10.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"e7d9980f447c0c7904a74a60165803960347d10e","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.10.0.tgz","fileCount":6,"integrity":"sha512-5d/lV6JYtNgv0eB38EfvOVhKC2XDZ2fvks8pp7Bc23eNgs+xOtYE1KHmI4zmDQnmbXPYClWehUdUFhyW6qNToQ==","signatures":[{"sig":"MEQCIHjPJWKAv2vsCo7HMivDvPg8SRACj5YxCALQgD4wZNTIAiAR+fx4Srw5vY0A1MCIsJ/8NwW2IimXKih5cE6Gu92yEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCnUfWuouzF/UCUfRDEl462vmXh2/q1/wEp8ar5MT3eSQIgamdsz4aumBygZG9XU5zidEjCueRmPAkbDx8HXFOwTg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1195069},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"ac3f0f9ca7de64f6c5734b758ecaf8b3d9566ff7","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.10.0_1788929812607_0.9154183753605378","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"belt-charts","version":"1.11.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.11.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"5b3039c254b21b6392cf154026d8e568f57cbbe4","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.11.0.tgz","fileCount":6,"integrity":"sha512-1cBE9yGoosc2uEotC4SG/qFEu3IuAZJEobpBnBj3JvqFgHKXr0wAilYa04Ahqhu5xfDOmpir5pVB2SpgROI1RA==","signatures":[{"sig":"MEYCIQCgRsgB0pVeZRnkwBl/S7GRzpQvG9Gn54AxI7kgVp8eUgIhANh52IDXP532nLabpDNRtHWpOoe80d9n8gWwJvsxyuQ1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICbJMCbHOaCRspul/bsVxuIYHrrTGAFRIqLOTyB3g7cxAiBW6Fuh/gZReV0DHDFa7Q7zcwgL1jrd8usRXYHOtC5l+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1233099},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"33dc78f88b346826aff0d614b89d131c5056d546","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.11.0_1788935036123_0.0854723025570272","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"belt-charts","version":"1.12.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.12.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"06be3dcc6489d13dad2fe766893eabb51a14222d","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.12.0.tgz","fileCount":6,"integrity":"sha512-cLgZsq3AKZD3rbgX1f5pHMNZ2MUhXZQ8gynix7MVncTpwaoabGuNQ6dnCtu/Mq3kZNYT8ui2OeIcYdwMWqlG4Q==","signatures":[{"sig":"MEUCIQDt5bgRv3x1MrGs6KqASkFRr6tGfLG3BjSb0T0k7xz/vwIgedWLCFs83MuEbUT/mUr50kRXhOw5Qck1Pi6DPmbkzQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFVTIXo8lS0LSV+70r7GMAXdUPAOptVa+je2DvLlfyimAiEAq+ydexfZMVaAqaQMiGAFsjl5UmNjDyWQKP1QPMOjcHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1236067},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"c4514a9f295187f0bcb2f4cc246f299c2818596e","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.12.0_1788936200587_0.6969059835722484","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"belt-charts","version":"1.13.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.13.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"749e6fa8656e7500177382bd30de7ca7774077f1","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.13.0.tgz","fileCount":6,"integrity":"sha512-EjP/+c6tmkRJ3R11LcIubxwKLC/c44P/W8F2mfos7RTQVZT5gkeCAEchd6eqZ/rNixP5FU23lE8qLtye/MSn0w==","signatures":[{"sig":"MEUCIQCVXlddhJytuCP0NN8XWg9krAvgGaT1fl39+4GyX3c2yQIgJwzrWg6sXMuT9Htb0htp9YWLNZaHGanxAA6TzN5rMj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCRs3s4fXgQWz6TduCcHHcHfpKZ8Lib9jTf4O0mOtYpawIgQvtXBu2Qj8qILRuEkTpbUCqjXCncu4fSg9ZVTUpvleU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1237870},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"5f9c9a668afc04521626d7e43396a0d603a80260","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.13.0_1788938994354_0.6410883203132054","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"belt-charts","version":"1.14.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.14.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"04cda49e8eb9976804461a753a4ec0adc288fbf9","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.14.0.tgz","fileCount":6,"integrity":"sha512-gr/D8Re5cIioEq437b/4UblmUDniMOqHt7VfBGVi2z5j3hMlsgFwQgsiUK0R7kQCFk9IJDKLH2nk/+HNNTHwvw==","signatures":[{"sig":"MEUCIQCHrMTTTzfv4oR0b2wmz5lfzicLAZVbaEUQKr5ZdLuwMAIgASS74K3l3zbXd+j5yjMgrsHWHYMuyML27GyX7XOosMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICCiKiH2shut1C8ZewCUYPR3R46AO5XHuUdrrbtzaIHcAiBLY2QU+spfMSoL4hvORzgJj+bJy6lmwgCwoeO1C+OvnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1250335},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"b114596cc46008631fbf380eff7f4615451c8aab","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.14.0_1788940323522_0.2719446413622466","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"belt-charts","version":"1.15.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.15.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"db58128c500373250da8b9a9ee38cacdaaa3fe27","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.15.0.tgz","fileCount":6,"integrity":"sha512-rKIvw/3yc17TJsueissdDNMfshff7KHfI2JK0oI/9ohMYd/GIUQcWKicZH2jUT9Qzx2NYU6kCJH6mcRSMvbt4g==","signatures":[{"sig":"MEMCHyw71NzpgeCm1vOc77fu1wubSKIh2+7ZcPBNMR7nwvgCIFewMucv4dhM5ZIf6aGMJ2G20uSkKXsNiF+TDdOt8alb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC2xbBXAZUV3wnUj3F/S9/RKiiO6jldo9bblr94LXntugIgAZl7nq/SxtjMOO5DqkXrOGXf5qjfu9mmkLtlSJvmTdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1256691},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"0936011df8aadf21fb76cbe1a6a9a3293ae86acb","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.15.0_1790126116955_0.42616081231264147","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"belt-charts","version":"1.16.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.16.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"dd0fed2b8edace502d5c4bb073b75d5340001f81","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.16.0.tgz","fileCount":6,"integrity":"sha512-5xMV5hrcrsOB5r2Iiqc3P4TGF9NoHh1GvJMu/Yz7/NNLZFZqxUb2Y0vThOBLTBQy2K3/7KWXgzPsih4HHGh1Cg==","signatures":[{"sig":"MEQCICt7IubTWL8C7hAc7GOkO2iKzZMErWSVaq35J6LJIKINAiAdTyenhIpuInhGziQJTOHyNCwOOxjMBau6FarIWLpO6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCegpaesfso7d7IKb8EHaKN+uBvNFug0BNBYTHX0TPTRQIgWulARBOf1P9IMvfCa6PO7E+lLz+2vajkWhIsfp81NXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1259286},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"9f2e897afb407e82bb0d984d0a4bc34d3370aced","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.16.0_1790128415356_0.3392648506334286","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"belt-charts","version":"1.17.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.17.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"4a1af27f9d5e7e6bc88be9ce5cb62f721bc20c87","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.17.0.tgz","fileCount":6,"integrity":"sha512-RxueZh9uJOuGhYNHB/E5yzm7jYv6IyR6+5Za4XVY+0qJsytqeVpS8SQs8aeyFU/bj7Huh4SNktEx30QlecrUpw==","signatures":[{"sig":"MEUCIQDEZ0Ki4IapFaelF2mHcj7nPYDK+bRhj2a5UeIIc3hiCwIgTxfbnZN9gtQTC5hYomBzOtdhr5fcpx6GoIzBtTKNR+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGJCeGUYWxu3+GEw1GzlV2NCxjKwHAwOWKN2zU7MlNxFAiEAi0tG6z3FsEZe75gG79kuNCYnc/WDpYTvGgknkUge7a8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1260150},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"d1a5321438145069444cf4b69ea90e77a0bc60e8","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.17.0_1790170487642_0.4277431559218583","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"belt-charts","version":"1.18.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.18.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"6842079d6261691a32af5aa7d4e33e8a0ac84e96","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.18.0.tgz","fileCount":6,"integrity":"sha512-JkdEOpNfN7KPlJMdBQB9T+Lw1R3/F6hwpwZDbGZbHffoce8wfNsprslB1rUhEFPOoNQ08m2mBHHh514ETo6FpQ==","signatures":[{"sig":"MEUCIQCrKhHbwW19W0GdvX9XFk9W5fn19tY3hBgjcNHBH5U3CgIgKs/nNpuNC0IUtnDLsKZ5Qafmbcaj91h0XuaWRE16fUk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD1bTJ7/fZ4LD5g1nQwoCe0OLrfn3s0DxZL+8TVTkrR9wIgQkcSEchIdLQWZeF/4af8ms6Di5UC5mmDYDsTwhnwXEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1262745},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"91ca87cd5914b8493add320596acae098966623b","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.18.0_1790173109469_0.19300696284108843","host":"s3://npm-registry-packages-npm-production"}},"1.18.1":{"name":"belt-charts","version":"1.18.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.18.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"7756689c034de26e44d884fb10879b5c7dc238fe","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.18.1.tgz","fileCount":6,"integrity":"sha512-WhsA8ZmjpBAXNP1uQQox9xuD61LEUjIfQRGbHFxS+l5BVjqC8b8Eh4ihkHKY2Rrsz2DGv3+q+MKaOMAi70mSqA==","signatures":[{"sig":"MEUCIFKm7JOZV3bB2tcMcG5prk07iqO7ebLf6a7kRi87FRCmAiEAtcVBY6nFIvL3kRaDxPfMNxxUA/78kX32Wl/8wdtkNzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDvceAhCcaC0yo2kAtAUFErnW6nhe4G+Gk0nj3YkiEPkwIhAMoZCjjniCKvk+cDDGXo6AyMbm6DtZCks0evxXwjF3Xj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1262193},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"743aea868461d85efd390731c008fba87aff3036","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.18.1_1790258316010_0.5414453010430273","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"belt-charts","version":"1.19.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.19.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"c273f234aa43b020fee19b817d103817f56bdd65","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.19.0.tgz","fileCount":6,"integrity":"sha512-fd9raFQJFr90ZOCUknFyuO67uROHdyNHSaNq3O6ocBWyElsQlAoM9h8Oqdbw5vsyhUhhS+hQpsBjaqzA+qzbGA==","signatures":[{"sig":"MEUCIAticzJ2fAwez9S0dBFUTNM3cm4PckQnRt8BjjQOqtj6AiEAvVxjAr3bxqjtckBNIcX9+3sorhqoEVBm/lNaXQSMX30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCsdISUdZiTjKUvEROCaEGLp9jXxJt7HvwEP3RiQ9jmsQIgPACDalBqp00l7xUwfNlgi4oHia+t8Sd43aRt+3VksKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1281984},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"6843017ef6a24760f181f1804f1c85dea9ea2668","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.19.0_1790358288463_0.4278309305362795","host":"s3://npm-registry-packages-npm-production"}},"1.19.1":{"name":"belt-charts","version":"1.19.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.19.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"bd82312bd37ba7f5d04064bd39798854b6afe069","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.19.1.tgz","fileCount":6,"integrity":"sha512-mz/xFofNXfodrBM95PYw3tt3xcPrK6SRjGJZD6iw3F5SZmrtl6+i4uAgGhn8e1a12ombIA6TlhWB88K0dJB73g==","signatures":[{"sig":"MEUCIFdR442OJksEgxaN4A4E072r+Riy0qfnhtjg8r2qxe3VAiEAsfaQsy3esdwuTp5FF0dO/nvK6/E2SYA4rFubdCSqpBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAPPhDGCMbuGxOaJmVkNGuG0al6Zgf6c2vFbJIgxPAh8AiAPdLFPq9s7UHCoAuBdZhEtuyaQWeNum0tOUfINIr8v2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1282228},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"b996ae0ec7f3b6ab01581e9977755193ac8d401e","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.19.1_1790477052917_0.06824519023074904","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"belt-charts","version":"1.20.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.20.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"b84e97bf2944b75445fad6001914d18dbb54cd46","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.20.0.tgz","fileCount":6,"integrity":"sha512-kISqaswqthECA3CBZXh9t9RhrRCytewFLxNGnUs6lr/FzdeibILXJpX0IDYrNQu0iogu9wPhy0DbGIlLOwOcmw==","signatures":[{"sig":"MEUCIQCAvjs9F9xbphST00clbIFkGhB7iGux/sUNP11/7CaFYgIgNTssBkOFWpaRkViw1UFQMDPN+Yi7dk0G5orNGxa93tw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF1Xm1kwOSZArspiPi0MU+wObbjC0FQ9sGzRnlgVYsRaAiA88oc6fYfeGUXq3ndCMg5GxcBnFoKGvAiqJ+lP752qDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1285559},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"357d6267bc24c60bd3e2cf0409e8c0d4f923944f","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.20.0_1790692978571_0.31562885922274564","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"belt-charts","version":"1.20.1","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.20.1","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"c825fb14f7fb34ce3f07cbfda82bb7908e6f4ba0","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.20.1.tgz","fileCount":6,"integrity":"sha512-stRnNFNwIQJ6dzsQzxzN1hvmSjdK2kv7Sq2ncIdAJ2c44Ov3pgzHmi8Uol55Zehz14Unr+BuVn6HWRlinPVLUg==","signatures":[{"sig":"MEUCIQDoNQJvtuNomEpIOmNNZE3Zd9jN2mCprJUrlu/zB6qG7AIgQ7epi6hmf3l9hO1YYYpGrkWA93zGtRv7Hsr2cwXST3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHoIPMPnVekD5ABUf/8cMgDL6wDy/2bCcMEPS+4vCWXpAiARkK8F71cwi/dG47tcdcLFdxb9hltAVR/XSlsev/dcWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1287686},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"a8ecbc9555333705acb73c987b128ca88a10c92e","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.20.1_1790696611994_0.8237402948430554","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"belt-charts","version":"1.21.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.21.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"625989815fa638a3b0b506deba355d3c2b0df909","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.21.0.tgz","fileCount":6,"integrity":"sha512-09TBc/TzePd94Fo/DAmYIEfhH0dJ7Ct5q0Z4Rfqgs8LzvkmaxhbYvtBJ7vQphrmpRdIWouVw2PkRr9JHMnqLvQ==","signatures":[{"sig":"MEUCIQDeM7BBO1hT1iV/IDmQvqMeCxIEj07s8U2syBwAe8tScAIgRLuYyYJzOaL6gM5ytYZlvs8keL2XYPJRpm9Hyvbeeb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE9+P3EdGu6hDNyh/yO3Iiiqlj1gmIEQuH5EfMO5Y+aXAiEA0cp16ycKLq8fO9KRULYJiFN0Ta8K32TlWKBnqHY+BU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1290105},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"d2b2d43a6969067ef20374c6322eb663078abfa5","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.21.0_1790744893916_0.36211432917576225","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"belt-charts","version":"1.22.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.22.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"1ca2c4e7157a8901a4aca1eea1a1003e613fc58f","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.22.0.tgz","fileCount":9,"integrity":"sha512-W8By2bc9d4RKIxW6oH7615PcDbiI/3Xy66CLwAkPTteBQyn67SG1V8nKAocZ/zxXazCGQDCvYQgBq0DONXPRuA==","signatures":[{"sig":"MEQCIGXpMtAuGbEOdV98uvZU1z9xdP9Pq7FAJ5LepG88IFdEAiAmKvmSlqcE8j2p6Rvs1PYz7TYnzwmgHvD8dCh8clHpzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDE/roW9M7/ttIHDrUvb6H4EqSSOMzstwjaH9LghXl5awIhAP7ft1V7lO9OS0WPvupPMGFzSM4q1eJlMJKFWwXDD/JN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1419414},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"d4e75e29a243837adfdb36c2fabb9ae5c3963fea","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.22.0_1790745804341_0.11605466104564788","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"belt-charts","version":"1.23.0","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"author":{"name":"abucnasty"},"license":"MIT","_id":"belt-charts@1.23.0","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"homepage":"https://github.com/abucnasty/belt-charts#readme","bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"bin":{"belt-charts":"bin/belt-charts.cjs"},"dist":{"shasum":"15b08ee49811ea06b8f5f590ac4112a4c17833c0","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.23.0.tgz","fileCount":9,"integrity":"sha512-8QKGKdaE19WF9yAU1HcXaNetL/7ocvKldKlHUxWBmTGiAdH8osIHB7rNC0WMoEGj6UkiCqj4uvVJjIkpzIPn5Q==","signatures":[{"sig":"MEQCIAVMAkB37sKpmcMmeFwZS87DoEHemv2fpJ6mrujoSHSZAiAa6CyIwnRYPQh4NEfdqRx12kj7I1InjGtdEtBR3FsKjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICGxcQQAF4xp9tP8ckJ4KsQq6iF7Ecq2W1D73qBTiksaAiEAyHdAISPz/lPS3xCymlZNyg0OBawGOp++IuCjxg1wAAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1425774},"main":"dist/index.js","engines":{"node":">=14.0.0"},"gitHead":"48928331e1d1f788b82625a5e73355c73989f6cd","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6000891a-74c1-4678-a29f-d740a592881f"}},"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"tmp":"tmp/belt-charts_1.23.0_1790816654815_0.025015569120093506","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"_id":"belt-charts@1.24.0","bin":{"belt-charts":"bin/belt-charts.cjs"},"bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"dist":{"shasum":"6713afed3327a50162249e916953e52fdb4aec15","tarball":"https://registry.npmjs.org/belt-charts/-/belt-charts-1.24.0.tgz","fileCount":9,"integrity":"sha512-oKmrvxC6p33DvHmkx+EJ7AuSSQ43tpd+f+8piSopLHga4Rbx645O/HR+1cjkG2XHmi7quop/52SR8pcaHmcVaQ==","signatures":[{"sig":"MEQCIH0BqL45HY7NN2foQdp54NRQVPqqzuDKkTwyvD7dgoH2AiB+mJCzIKMxbEVOpsGeVm+B+MxMVimadF0rMwPIpM/uKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDAIGqE6sCgm8PgBQYtmpWN3WvnMo+RY8WZLyrzVLZupAiAJBtZR2j341RhBZYwwfnAy9HwHQcrr9qGXq4axSchK+g=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/belt-charts@1.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1429507},"main":"dist/index.js","name":"belt-charts","author":{"name":"abucnasty"},"engines":{"node":">=14.0.0"},"gitHead":"812016546f083eed1dadcf509027f7708bfac518","license":"MIT","scripts":{"dev":"rm -rf dist && ncc build ./src/index.ts -w -o dist/ --external skia-canvas --external ffmpeg-static","test":"vitest run","build":"rm -rf dist && ncc build ./src/index.ts -o dist --no-cache --external skia-canvas --external ffmpeg-static && node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({}, null, 2))\"","start":"node dist/index.js","prepack":"npm run build","test:install":"npm pack && npm install -g belt-charts-*.tgz","prepublishOnly":"npm run build"},"version":"1.24.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6000891a-74c1-4678-a29f-d740a592881f"}},"homepage":"https://github.com/abucnasty/belt-charts#readme","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"_npmVersion":"11.12.1","description":"A CLI tool for generating charts from verbose data from belt","directories":{},"maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"_nodeVersion":"25.9.0","dependencies":{"glob":"^11.0.3","chart.js":"^4.5.0","commander":"^14.0.0","minimatch":"^10.2.6","csv-parser":"^3.2.0","csv-writer":"^1.6.0","skia-canvas":"^3.0.6","ffmpeg-static":"^5.3.0","chartjs-plugin-annotation":"^3.1.0","@sgratzl/chartjs-chart-boxplot":"^4.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","ts-node":"^10.9.2","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^22.18.8","@vercel/ncc":"^0.38.4","@types/commander":"^2.12.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/belt-charts_1.24.0_1790819351800_0.38392767505917913"}}},"time":{"created":"2026-06-17T01:28:46.098Z","modified":"2026-10-01T01:49:12.213Z","1.0.0":"2026-06-17T01:28:46.582Z","1.0.1":"2026-06-20T23:25:01.908Z","1.1.0":"2026-06-21T00:34:48.775Z","1.1.1":"2026-06-21T00:43:13.445Z","1.1.2":"2026-06-21T00:51:05.599Z","1.2.0":"2026-06-26T00:27:58.901Z","1.3.0":"2026-06-26T00:40:23.542Z","1.3.1":"2026-06-26T02:30:23.318Z","1.4.0":"2026-07-02T00:05:46.375Z","1.5.0":"2026-07-02T01:46:49.421Z","1.5.1":"2026-07-03T18:10:06.336Z","1.6.0":"2026-07-03T19:26:50.656Z","1.6.1":"2026-07-08T22:34:25.766Z","1.7.0":"2026-07-08T22:51:50.611Z","1.8.0":"2026-07-09T02:47:23.301Z","1.8.1":"2026-07-09T03:43:20.137Z","1.9.0":"2026-09-08T03:55:11.262Z","1.10.0":"2026-09-09T04:56:52.696Z","1.11.0":"2026-09-09T06:23:56.285Z","1.12.0":"2026-09-09T06:43:20.675Z","1.13.0":"2026-09-09T07:29:54.461Z","1.14.0":"2026-09-09T07:52:03.604Z","1.15.0":"2026-09-23T01:15:17.070Z","1.16.0":"2026-09-23T01:53:35.458Z","1.17.0":"2026-09-23T13:34:47.741Z","1.18.0":"2026-09-23T14:18:29.572Z","1.18.1":"2026-09-24T13:58:36.109Z","1.19.0":"2026-09-25T17:44:48.580Z","1.19.1":"2026-09-27T02:44:13.020Z","1.20.0":"2026-09-29T14:42:58.656Z","1.20.1":"2026-09-29T15:43:32.115Z","1.21.0":"2026-09-30T05:08:14.002Z","1.22.0":"2026-09-30T05:23:24.448Z","1.23.0":"2026-10-01T01:04:14.916Z","1.24.0":"2026-10-01T01:49:11.916Z"},"bugs":{"url":"https://github.com/abucnasty/belt-charts/issues"},"author":{"name":"abucnasty"},"license":"MIT","homepage":"https://github.com/abucnasty/belt-charts#readme","keywords":["cli","charts","belt","benchmark","visualization","metrics"],"repository":{"url":"git+https://github.com/abucnasty/belt-charts.git","type":"git"},"description":"A CLI tool for generating charts from verbose data from belt","maintainers":[{"name":"abucnasty","email":"abucnasty@gmail.com"}],"readme":"# belt-charts\n\n[![npm version](https://img.shields.io/npm/v/belt-charts)](https://www.npmjs.com/package/belt-charts)\n\nA CLI tool for generating charts and visualizations from Belt benchmark verbose metrics data.\n\n## Installation\n\n### From npm\n```bash\nnpm install -g belt-charts\n```\n\n### For Development\n```bash\nnpm install\nnpm run build\nnpm link\n```\n\n## Usage\n\nAfter installation, the `belt-charts` command will be globally available:\n\n```bash\nbelt-charts --help\n```\n\n\n## Command Reference\n\nAll commands share a common set of **base options**, plus command-specific options listed below.\n\n### Base Options (all commands)\n\n| Option | Default | Description |\n|---|---|---|\n| `<glob-pattern>` | *(required)* | Glob pattern for input CSV files, e.g. `\"results/*.csv\"` |\n| `-o, --output <file>` | `verbose_metrics.png` | Output file path. Use `.svg` for vector output |\n| `-w, --width <px>` | `1400` | Chart width in pixels. Treated as a **minimum** by charts that auto-grow to fit their content — see “Auto-sizing” below |\n| `-h, --height <px>` | `800` | Chart height in pixels. Treated as a **minimum** by charts that auto-grow to fit their content — see “Auto-sizing” below |\n| `--scale <factor>` | `1` | Integer output pixel multiplier for higher-resolution PNG/MP4 output — see “High-resolution output” below. Ignored for `.svg` |\n| `--remove-first-ticks <n>` | `1` | Skip the first N ticks (removes benchmark warm-up spikes) |\n| `--max-ticks <n>` | `0` | Only include ticks up to N. `0` = no limit |\n| `--trim-prefix <string>` | `\"\"` | Strip a common prefix from all file names in chart labels |\n| `--name <baseName>=<label>` | *(none)* | Override the chart label for one input file. Repeatable — use once per file. The key is the pre-trim base name (filename minus `.csv` / `_verbose_metrics`). Takes precedence over `--trim-prefix`. In per-run charts the custom label becomes the base: `<label> (run N)`. |\n| `--names-file <path>` | `\"\"` | Path to a names-mapping file. Each non-blank, non-comment line: `baseName=label`. Lines starting with `#` are comments. `--name` flags override entries in this file on duplicate keys. |\n| `--metrics <list>` | *default set* | Comma-separated list of metric names to include, e.g. `\"wholeUpdate,entityUpdate\"`. Use `*` for all defaults |\n| `--min-percent <number>` | `0` | Hide any metric/entity whose max value never exceeds this % of the reference total across all files. `0` = no filter |\n| `--trim-substring <string>` | *(none)* | Remove all occurrences of an exact substring from chart labels. Repeatable — use once per substring. Applied after `--trim-prefix` and before `--title-case`; `--name` / `--names-file` overrides bypass it entirely. Longer substrings are removed before shorter ones, so e.g. `clone_18` is removed cleanly even when `clone_1` is also in the list |\n| `--title-case` | `false` | Convert chart labels to space-separated title case, normalizing snake_case, kebab-case, PascalCase, camelCase, and SCREAMING_SNAKE (e.g. `belt_v2` → `Belt V2`, `BeltV2` → `Belt V2`). Applied after `--trim-prefix`; `--name` / `--names-file` overrides bypass it entirely |\n| `--aggregate-file <path>` | `\"\"` | Path to a run-results file for outlier filtering |\n| `--stddev-filter <n>` | `3` | Remove runs outside N standard deviations from the mean (requires `--aggregate-file`) |\n| `--title-override <string>` | *(auto)* | Override the chart's auto-generated title |\n\n> **Label pipeline** — transforms are applied in this order: `--name`/`--names-file` → `--trim-prefix` → `--trim-substring` → `--title-case`. If a `--name` match is found the custom label is used as-is and all remaining steps are skipped.\n>\n> **Auto-sizing** — `-w`/`-h` are a floor, not a fixed size, for charts whose content could otherwise be squished illegibly: `summary`, `summary-per-run`, `entity-summary`, and `entity-summary-per-run` grow **height** to fit every bar row plus the in-chart table (when enabled) and grow **width** to fit the in-chart table's columns; `boxplot` grows **width** to fit every category column; `entity-matrix` grows **height**; `entity-heatmap` and `core-freq-heatmap` grow both **width and height** to fit their grid. Charts that already have enough room are unaffected. `bar`/`line` never grow beyond the requested size, since their x-axis is continuous time rather than a discrete category count.\n>\n> **High-resolution output** — `-w`/`-h` set the *layout* size (font sizes, margins, and label placement are laid out against it). `--scale N` then renders that same layout at N× the pixel count, so text and lines stay sharp instead of shrinking. Final image size is `(width × N) × (height × N)`, applied after auto-sizing. e.g. `-w 1000 -h 800 --scale 2` produces a 2000×1600 PNG that looks identical to the 1000×800 one, just crisper:\n> ```bash\n> belt-charts summary \"results/*.csv\" -o charts/summary.png -w 1000 -h 800 --scale 2\n> ```\n>\n> `--title-case` recognises snake_case (`_`), kebab-case (`-`), PascalCase, camelCase, and SCREAMING_SNAKE — all produce the same space-separated title case output:\n>\n> | Input | Output |\n> |---|---|\n> | `belt_v2` | `Belt V2` |\n> | `belt-v2` | `Belt V2` |\n> | `BeltV2` | `Belt V2` |\n> | `beltV2` | `Belt V2` |\n> | `BELT_V2` | `Belt V2` |\n>\n> Example with `--trim-prefix \"my_map_\" --trim-substring \"clone_1\" --title-case`:\n> ```\n> my_map_belt_v2_clone_1_verbose_metrics.csv\n>   → base name       : my_map_belt_v2_clone_1\n>   → trim prefix     : belt_v2_clone_1\n>   → trim substrings : belt_v2_\n>   → title case      : Belt V2\n> ```\n> Adding `--name \"my_map_belt_v2_clone_1=Belt Design v2\"` bypasses all transforms and uses `Belt Design v2` directly.\n\n### Animated Video Output\n\n`summary`, `summary-per-run`, `ups`, `ups-per-run`, `entity-summary`, `entity-summary-per-run`, `boxplot`, `line`, and `bar` support rendering an animated MP4 instead of a static image, useful for presentations. Bars/boxplots grow in from 0; `line`/`bar` time-series draw on progressively left-to-right. Encoding uses a bundled ffmpeg binary — no separate ffmpeg install required.\n\n| Option | Default | Description |\n|---|---|---|\n| `--animate` | `false` | Render an animated MP4 instead of a static image. Requires `-o/--output` to end in `.mp4` |\n| `--duration <seconds>` | `3` | Animation duration in seconds |\n| `--fps <number>` | `30` | Animation frame rate |\n| `--easing <linear\\|ease-out\\|ease-in-out>` | `ease-out` | Animation easing curve |\n| `--hold <seconds>` | `1` | Extra seconds to hold the final frame at the end of the animation |\n| `--stagger` | `false` | `summary`/`summary-per-run`/`ups`/`ups-per-run`/`entity-summary`/`entity-summary-per-run` only. Animate each bar's grow-in staggered by row (one save file/run at a time) instead of all bars growing together |\n\n```\nbelt-charts summary \"results/my_amazing_map*.csv\"\n  --animate\n  -o \"charts/all_metrics.mp4\"\n  --duration 4\n  --fps 30\n  --easing ease-out\n  --hold 1.5\n  --stagger\n```\n\n---\n\n### Value Labels\n\n`summary`, `summary-per-run`, `ups`, `ups-per-run`, `entity-summary`, and `entity-summary-per-run` support printing each stacked bar segment's value directly on the bar.\n\n| Option | Default | Description |\n|---|---|---|\n| `--value-labels` | `false` | Print each stacked segment's value on the bar. Segments too narrow to legibly fit their label are skipped |\n\n```\nbelt-charts summary \"results/my_amazing_map*.csv\"\n  -o \"charts/all_metrics.png\"\n  --value-labels\n```\n\n---\n\n### `summary`\n\nStacked-bar chart aggregating all metrics across input files, with an optional in-chart table.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | How to aggregate ticks per run: `average`, `minimum`, `maximum`, `median`, `standard_deviation` |\n| `--summary-table <bool>` | `true` | Render a stats table inside the chart |\n| `--summary-table-file <bool>` | `true` | Export the table as `.csv` and `.md` alongside the chart |\n| `--max-update <number>` | *(auto)* | Fix the maximum x-axis value (microseconds). Useful for comparing charts at a consistent scale |\n| `--group-by <keys>` | *(none)* | Comma-separated list of group keys (e.g. `clone_0,clone_1,clone_18`). Each result is assigned to the longest key that is a substring of its **original** file base name — matching happens before any label transforms, so `--trim-substring` and `--title-case` cannot break group assignment. Results that don't match any key are excluded. Matched results are clustered under bold group-header rows in the chart and table, sorted by key order |\n| `--allow-unfiltered-metrics` | `false` | **Advanced / opt-in.** Bypass the built-in `MetricProfiles.SUMMARY_CHART` filter so any metric passed via `--metrics` is rendered, even metrics outside the default profile. **Warning:** dataset ordering, legend ordering, and pattern/color assignment are tuned for the default profile; off-profile metrics may render or lay out unexpectedly. A warning is printed at run time |\n\n> **Why is there a metric profile in the first place?** The fixed profile is deliberate. belt-charts assigns a **stable, color-blind-friendly color to each metric** (e.g. `entityUpdate` is always the same blue everyone recognises at a glance), and non-color-blind-friendly hues are backed by distinguishing **pattern fills** so the chart still reads unambiguously in grayscale or for readers with color-vision deficiencies. Both the palette and the pattern set are only defined for metrics in the default profile — off-profile metrics fall back to whatever the underlying chart library picks, which may collide with other metrics' colors or lose their pattern. `--allow-unfiltered-metrics` intentionally opts out of that guarantee.\n\n```\nbelt-charts summary \"results/my_amazing_map*.csv\"\n  -w 1500 -h 800\n  --remove-first-ticks 30\n  -o \"charts/all_metrics.png\"\n  -a average\n  --metrics \"wholeUpdate,entityUpdate,controlBehaviorUpdate,transportLinesUpdate,electricHeatFluidCircuitUpdate\"\n  --summary-table true\n  --summary-table-file true\n  --trim-prefix \"my_amazing_map_\"\n  --name \"my_amazing_map_a=Design A\"\n  --name \"my_amazing_map_b=Design B\"\n  --min-percent 1\n```\n\n**`--group-by` example** — benchmarks run across three clone counts, trim the clone tag from labels, cluster results by clone:\n\n```\nbelt-charts summary \"results/bm_*_clone_*.csv\"\n  -w 1400 -h 900\n  --remove-first-ticks 3600\n  -o \"charts/by_clone.png\"\n  -a median\n  --trim-prefix \"bm_\"\n  --trim-substring \"clone_0\"\n  --trim-substring \"clone_1\"\n  --trim-substring \"clone_18\"\n  --title-case true\n  --group-by \"clone_0,clone_1,clone_18\"\n  --summary-table-file true\n```\n\nThe `--group-by` keys are matched against the original file base name (before any trim or title-case transforms), so `clone_0`, `clone_1`, and `clone_18` are still found in the name even though `--trim-substring` will later strip them from the visible label. Longest-match means `clone_18` files are correctly assigned to the `clone_18` group, not the `clone_1` group. When `--summary-table-file` is active the exported `.md`/`.csv` gains a **Group** column as its first column.\n\n---\n\n### `summary-per-run`\n\nSame as `summary` but shows one bar per individual run instead of averaging across runs.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | Per-run statistic to display (`average`, `minimum`, `maximum`, `median`, `standard_deviation`) |\n| `--summary-table <bool>` | `true` | Render a stats table inside the chart |\n| `--summary-table-file <bool>` | `true` | Export the table as `.csv` and `.md` |\n| `--sort-by <run\\|total>` | `total` | Sort bars by run number or by total `wholeUpdate` time |\n| `--allow-unfiltered-metrics` | `false` | **Advanced / opt-in.** Same as on `summary` — bypass the built-in metric-profile filter so any `--metrics` value is rendered. Emits a warning at run time |\n\n```\nbelt-charts summary-per-run \"results/my_amazing_map*.csv\"\n  -w 2000 -h 1000\n  --remove-first-ticks 30\n  -o \"charts/per_run_metrics.png\"\n  -a average\n  --sort-by total\n  --summary-table true\n  --summary-table-file true\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `ups`\n\nSame as `summary`, but renders a single bar per save file showing updates per second (UPS) — computed as `1,000,000 / wholeUpdate` (microseconds) — instead of the stacked per-component time breakdown.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | How to aggregate ticks per run: `average`, `minimum`, `maximum`, `median`, `standard_deviation` |\n| `--summary-table <bool>` | `true` | Render a stats table inside the chart |\n| `--summary-table-file <bool>` | `true` | Export the table as `.csv` and `.md` alongside the chart |\n| `--group-by <keys>` | *(none)* | Same as `summary`'s `--group-by` |\n\n```\nbelt-charts ups \"results/my_amazing_map*.csv\"\n  -w 1200 -h 600\n  --remove-first-ticks 30\n  -o \"charts/ups.png\"\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `ups-per-run`\n\nSame as `ups` but shows one bar per individual run instead of averaging across runs.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | Per-run statistic to display (`average`, `minimum`, `maximum`, `median`, `standard_deviation`) |\n| `--summary-table <bool>` | `true` | Render a stats table inside the chart |\n| `--summary-table-file <bool>` | `true` | Export the table as `.csv` and `.md` |\n| `--sort-by <run\\|total>` | `total` | Sort bars by run number or by UPS |\n\n```\nbelt-charts ups-per-run \"results/my_amazing_map*.csv\"\n  -w 1200 -h 800\n  --remove-first-ticks 30\n  -o \"charts/ups_per_run.png\"\n  --sort-by total\n```\n\n---\n\n### `bar` / `line`\n\nTimeseries charts — one output file per input CSV. `bar` renders stacked areas; `line` renders lines.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | How to aggregate runs per tick |\n| `--tick-window-aggregation <n>` | `0` | Time-weighted average over a rolling window of N ticks. `0` = no windowing |\n| `--max-update <number>` | *(auto)* | Y-axis ceiling in µs. Auto-detected from data if omitted |\n| `--allow-unfiltered-metrics` | `false` | **Advanced / opt-in.** Bypass the built-in metric-profile filter so any `--metrics` value is rendered, even metrics outside the default line-chart profile. Emits a warning at run time |\n\n> When any PascalCase entity metric (e.g. `Inserter`, `AssemblingMachine`) is included in `--metrics`, `entityUpdate` is automatically excluded from the stacked areas and becomes the \"Total Entity Update Average\" reference line instead of \"Whole Update Average\".\n\n```\nbelt-charts bar \"results/my_amazing_map*.csv\"\n  -w 1200 -h 800\n  --remove-first-ticks 30\n  -o \"charts/timeseries.png\"\n  -a average\n  --max-ticks 18000\n  --max-update 3000\n  --trim-prefix \"my_amazing_map_\"\n  --metrics \"wholeUpdate,controlBehaviorUpdate,transportLinesUpdate,electricHeatFluidCircuitUpdate,entityUpdate\"\n  --tick-window-aggregation 60\n```\n\n---\n\n### `boxplot`\n\nBox-and-whisker chart showing the distribution of `wholeUpdate` across all runs per file.\n\n| Option | Default | Description |\n|---|---|---|\n| `--min-update <number>` | *(auto)* | Y-axis floor in µs |\n| `--max-update <number>` | *(auto)* | Y-axis ceiling in µs |\n\n```\nbelt-charts boxplot \"results/my_amazing_map*.csv\"\n  -w 1000 -h 800\n  --remove-first-ticks 30\n  -o \"charts/run_distribution.png\"\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `table`\n\nExports aggregate statistics to `.csv` and `.md` without generating a chart image.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | How to aggregate runs |\n\n```\nbelt-charts table \"results/my_amazing_map*.csv\"\n  --remove-first-ticks 30\n  -o \"charts/stats.csv\"\n  -a average\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `entity-summary`\n\nStacked-bar chart decomposing `entityUpdate` into per-entity-type contributions. Requires Factorio verbose metrics CSVs that include the PascalCase per-entity columns (e.g. `Inserter`, `AssemblingMachine`).\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | How to aggregate runs |\n| `--top-n <n>` | `15` | Show only the top N entity types; the rest fold into \"Other Entity Update\". `0` = show all |\n| `--sort-by <run\\|total>` | `total` | (`entity-summary-per-run` only) Sort bars by run number or by entityUpdate total |\n| `--summary-table <bool>` | `true` | Render a stats table inside the chart |\n| `--summary-table-file <bool>` | `true` | Export the table as `.csv` and `.md` |\n| `--group-by <keys>` | *(none)* | Same behaviour as in `summary` — see above |\n\n```\nbelt-charts entity-summary \"results/my_amazing_map*.csv\"\n  -w 1600 -h 1000\n  --remove-first-ticks 30\n  -o \"charts/entity_summary.png\"\n  -a average\n  --top-n 15\n  --min-percent 1\n  --summary-table true\n  --summary-table-file true\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `entity-summary-per-run`\n\nSame as `entity-summary` but shows one bar per individual run (no averaging across runs).\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | Per-run statistic to display |\n| `--top-n <n>` | `15` | Top N entity types |\n| `--sort-by <run\\|total>` | `total` | Sort bars by run number or entityUpdate total |\n| `--summary-table <bool>` | `true` | Render a stats table inside the chart |\n| `--summary-table-file <bool>` | `true` | Export the table as `.csv` and `.md` |\n\n```\nbelt-charts entity-summary-per-run \"results/my_amazing_map*.csv\"\n  -w 1600 -h 1000\n  --remove-first-ticks 30\n  -o \"charts/entity_summary_per_run.png\"\n  -a average\n  --top-n 15\n  --sort-by run\n  --min-percent 1\n  --summary-table true\n  --summary-table-file true\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `entity-matrix`\n\nPanel chart — rows = entity types, columns = benchmark files, cells = horizontal bar scaled to a shared x-axis. Good for comparing the same entity type across many designs at a glance.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | How to aggregate runs |\n| `--top-n <n>` | `15` | Show only the top N entity types |\n\n```\nbelt-charts entity-matrix \"results/my_amazing_map*.csv\"\n  -w 1400 -h 800\n  --remove-first-ticks 30\n  -o \"charts/entity_matrix.png\"\n  -a average\n  --top-n 15\n  --min-percent 1\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `entity-heatmap`\n\n2-D heatmap — rows = entity types, columns = benchmark files, cells colored by µs intensity using a viridis-style gradient.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy` | `average` | How to aggregate runs |\n| `--top-n <n>` | `20` | Show only the top N entity types |\n| `--normalize <global\\|column\\|row>` | `global` | Color scale normalization. `global` = single scale for all cells (best for spotting the absolute hottest cell); `column` = per-design scale (best for comparing entity profiles within one design); `row` = per-entity scale (best for spotting which design stresses a particular entity the most) |\n| `--show-values <bool>` | `true` | Render µs values inside each cell |\n\n```\nbelt-charts entity-heatmap \"results/my_amazing_map*.csv\"\n  -w 1400 -h 900\n  --remove-first-ticks 30\n  -o \"charts/entity_heatmap_global.png\"\n  -a average\n  --top-n 20\n  --min-percent 1\n  --normalize global\n  --show-values true\n  --trim-prefix \"my_amazing_map_\"\n```\n\n---\n\n### `core-freq-heatmap`\n\n2-D heatmap of per-core CPU frequency samples from a `cpu_freq.csv` sidecar file (columns: `save_name, run_index, core_index, cpu_frequency, timestamp`). Rows = one per run (grouped by benchmark, since a single `cpu_freq.csv` can bundle multiple `save_name`s), columns = core index. Useful for spotting whether a run got assigned a relatively \"hot\" or \"cold\" core, without needing to pin cores.\n\n| Option | Default | Description |\n|---|---|---|\n| `-a, --aggregate-strategy <average\\|minimum\\|maximum\\|median\\|standard_deviation>` | `average` | Which per-core statistic to display/color |\n| `--normalize <global\\|column\\|row>` | `column` | Color scale normalization. `global` = single scale for all cells; `column` = per-core scale (best for spotting systematic hardware differences between cores); `row` = per-run scale (best for spotting which core stood out within a single run) |\n| `--show-values <bool>` | `true` | Render MHz values inside each cell |\n| `--save-name-filter <glob>` | *(none)* | Glob pattern to filter which `save_name` values are included (repeatable, OR-matched). Matches against the `save_name` column value itself, not a file path — e.g. `--save-name-filter \"foo*\"`. Unmatched patterns are unfiltered (all save_names included) by default |\n\n```\nbelt-charts core-freq-heatmap \"results/cpu_freq.csv\"\n  -w 1600 -h 1000\n  -o \"charts/core_freq_heatmap.png\"\n  -a average\n  --normalize column\n  --show-values true\n  --save-name-filter \"ship_benchmark_50_*\"\n```\n\n---\n\n## SVG Export\n\nAll chart commands support SVG output in addition to PNG. The format is inferred from the `--output` file extension — simply use `.svg` instead of `.png`:\n\n```bash\nbelt-charts summary \"results/*.csv\" -o \"charts/summary.svg\" ...\nbelt-charts boxplot \"results/*.csv\" -o \"charts/boxplot.svg\" ...\nbelt-charts bar \"results/*.csv\" -o \"charts/timeseries.svg\" ...\n```\n\nSVG files are rendered using [skia-canvas](https://github.com/samizdatco/skia-canvas)'s native vector backend, producing true vector output rather than an embedded bitmap. This makes them resolution-independent and suitable for embedding in reports or web pages.\n\nFor `line` and `bar` commands (which generate one file per input CSV), the extension is preserved per-file:\n\n```bash\n# Input: results/map_a.csv, results/map_b.csv\n# Output: charts/timeseries_map_a.svg, charts/timeseries_map_b.svg\nbelt-charts bar \"results/*.csv\" -o \"charts/timeseries.svg\" ...\n```\n\nPNG is the default when no extension is specified or when `.png` is used.\n\n## Requirements\n\n- Node.js >= 14.0.0\n- npm or yarn\n\n## License\n\nMIT","readmeFilename":"README.md"}