{"_id":"@folkol/criterion","_rev":"25-9563577beb977b22c76fc8a87dcdfcf4","name":"@folkol/criterion","dist-tags":{"latest":"0.0.27"},"versions":{"0.0.1":{"name":"@folkol/criterion","version":"0.0.1","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.1","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.mjs"},"dist":{"shasum":"af3e77b87aac7fcfb078c3e16b0e9e3687a0f56a","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.1.tgz","fileCount":10,"integrity":"sha512-iWZWR37XvFa7O6x3DeWfUoASQmZ9TLPnNSrZ4sRB7AyDzbF0/AbiD/3HUICa6q7G61uEIvCKWjHHrYJpw8T97Q==","signatures":[{"sig":"MEUCIGvrUoeg+88LYrapLz92Y+zLx0gOBRPjSA01b8I67YMCAiEA67TWb4dRyUsU/9oOu+T/DB3wkIhcwxt2+5XZlzyiNUQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70018},"main":"index.mjs","type":"module","gitHead":"23c59623832059e1dd0618c0baa725e7dc469455","scripts":{"types":"npx -p typescript tsc index.mjs --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.1_1735771137593_0.28594736393677755","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@folkol/criterion","version":"0.0.2","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.2","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.mjs"},"dist":{"shasum":"f4feeb873719f78d96df03b798fa28fecc199504","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.2.tgz","fileCount":10,"integrity":"sha512-YpONAmoYTaPBVWrOS1NTXhcUHrVQNxBOl2/c6KchN+BuApOXl71RQ8XxBkUxc3fzDg60pjw6OZTVWNa5CuzEWg==","signatures":[{"sig":"MEUCIAdlAQ7G0SXIoBqqk4oAjoadz9+HA+kBGgH1ahHN1nCjAiEA+RuseT3NmzeNKLKvrEX1y/ZaDEhl/DiZd5k2+tuzIAU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69986},"main":"index.mjs","type":"module","gitHead":"bb5d4327622eb57719818f75e7eb3771a046e48c","scripts":{"types":"npx -p typescript tsc index.mjs --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.2_1735772114428_0.882488391281242","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@folkol/criterion","version":"0.0.3","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.3","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.mjs"},"dist":{"shasum":"8df8a8454720d21bf6883e7deb0fa1736cadace9","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.3.tgz","fileCount":10,"integrity":"sha512-Om4GLF8dQj2HYker0z/7Jz0gSnl/vCc7AaBw2YR1bs4WywX2vLXyVmyQFEdPHi5zeAjP9FkA6FlMGd0iQQFdVg==","signatures":[{"sig":"MEUCIEE6Kl5wiHlZ28HrFxzXBpvZWTBmrsUUBwHR4msUXeJ8AiEAqBtpnkPYb2B3WmbBviW0RaZf0zM6jClKu//v75AWsfs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69992},"main":"index.mjs","type":"module","gitHead":"b2e14c417dcc92c7fa53621919941ea149ef9935","scripts":{"types":"npx -p typescript tsc index.mjs --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.3_1735772365667_0.6218536467687756","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@folkol/criterion","version":"0.0.5","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.5","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.mjs"},"dist":{"shasum":"1dcbcf28e24fd5719fc562575440c3e285a20ccb","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.5.tgz","fileCount":10,"integrity":"sha512-b3nmWZrtfOshqEk94PDRCmh0lv54YzJXcfuR/MTmTJoWYk1MXzKVhol8U9t2XXGTZZw/xP2HYUYPu1Xbtp70tw==","signatures":[{"sig":"MEUCIQDq8ZpCQgb3SoQitIC1lYIhGriO9OoWRCHXbBdErsxPhwIgUoOzNKsKdH3a1LSgOHZyEyS6LH5W4cAaRjCGOV/ZZA0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70447},"main":"index.mjs","type":"module","gitHead":"cd39cf132654f5b22c073a2c5577290ca78081a4","scripts":{"types":"npx -p typescript tsc index.mjs --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.5_1735774092636_0.29992293586981345","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@folkol/criterion","version":"0.0.6","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.6","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"fdd4a2da88c96f1b9d57f59fd3dcb24b2dfe0c7a","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.6.tgz","fileCount":10,"integrity":"sha512-VYgzNBL4XHjqkLQ5X1oVP7agGWpz+U5gWNzXu1WfdVHFuqroN056HM4+rB+QmPZJuoX3ERQ1oQ1eMBgXGv3hLg==","signatures":[{"sig":"MEYCIQDKIFK++bof1zxmQnYhDXwj1gT8UgHida8HwdHB3bqYRAIhANivsmHrBfZbqQXfw/7OXp2vJJJnxmsga1vieDhvyy6H","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70434},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"d6dacc37449ad2873834a743d350304ca2627e55","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.6_1735774899461_0.004371795465111239","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@folkol/criterion","version":"0.0.7","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.7","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"41f530d8af8af490cbd94117d978936fc4e69443","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.7.tgz","fileCount":10,"integrity":"sha512-PDwPRnSgtPNYGKQRWNKhHxadRZVwgo4CmAZ8JwpfBCLa0C/FRmSEQHI/cQ8Cm4xQZV07GS1mKJqNkbAOvDUDnw==","signatures":[{"sig":"MEQCIFtVydX2qV0LyGtC0ZP0tK+0mSAhJ5NOqTvZjDmr1/YyAiBkJJZDA1eyBG49XrU6eVQIr5fRwLPPhAOEP1AI+pNTRQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70435},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"b7bf38182e7731e18e5ffe78fca392ba5c85b10a","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.7_1735819984057_0.9615636219295283","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@folkol/criterion","version":"0.0.8","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.8","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"8801fef7d21058ae5504a2dd95508122040e41c2","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.8.tgz","fileCount":11,"integrity":"sha512-O3XRGyor64lf1PBRIBUvZdfIEzGuUqsi04S5wI7wMQr+7rDDfj25/kMKyK6ZkWeh5tgbpND0Xr87143dw51mhg==","signatures":[{"sig":"MEUCIELhBSomDzaSxr5DWU9dEzhJvgElvfF0Q7504k6ouMfgAiEA5RpVhanlAmawa7AVyO6doSMXKVufIQuUF8nKSVfrDaM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":80442},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"c9d9f6d1929cab10dc154c4dd0465895083911ee","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.8_1735826749918_0.7069599679814778","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@folkol/criterion","version":"0.0.9","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.9","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"6072ecc6b8d05c208897047cbc885ce89dc07b9f","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.9.tgz","fileCount":11,"integrity":"sha512-HDrXeBkeG4a4R+LvvFVwb18OrILDRF588/mawY848JzbAWBbKBZhmaY52grB2U3tg/ZDEQV4A745dYDS+uGf5A==","signatures":[{"sig":"MEYCIQCwhHcfpNG7IFYWvbJPzC+FwjcfiqzlcYLLv+aJaS7q2AIhAMPeeMS8t8oDew/8xyYFH3E8PvNUxHtFMsyUFwQlVCwM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":79537},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"1ed4520c22b18345c48ba75ec4b5b6ce85356c4c","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.9_1735827330973_0.3093106725393515","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@folkol/criterion","version":"0.0.10","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.10","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"3e3a64314b90ae3aa0bfa43ac32d6989e2da740d","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.10.tgz","fileCount":11,"integrity":"sha512-YpEVqOMD3yVgx08A9FiudUTeDlAq9BUkdS//ykUmsL1bOMsSeo9zRIVD7NnVj5WZhdTcuR2sfbkpyFodsN1o6w==","signatures":[{"sig":"MEYCIQC2s6W9JixMqcqOZoKuHgnC/aMFcyUpOUdisVb55p+WGgIhAK1/k8vscLjtsKwPoPFq2pzDT+47CAvAQnQmMVcKGmpO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":80548},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"8875521b6415649006cb8f158f4519660fc300b5","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.10_1735833007952_0.028894410859537034","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@folkol/criterion","version":"0.0.11","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.11","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"5cc3c8200558834d528af1cf23a12fd5e0a03f9e","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.11.tgz","fileCount":11,"integrity":"sha512-DsbkTAx+FDv5A37qGZSbqk57vJeMSA6bYK3kJFPMZOYPs6RD9XAbWPMrKqOnQv5HQXz5N0gk/6SfI7Xz2OSQZg==","signatures":[{"sig":"MEQCIBPnxPwmuCqVYXlUyorWi+WN07OdK86np8TO6e+unhcTAiAVyCdCvVM30xvacrpCB5F0XYyjQp0gV+Kz5dDGHvfqGA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78649},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"6279fb43fc77c1a969d8f5924c56775a1867b282","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.11_1735833927437_0.8118269474814861","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@folkol/criterion","version":"0.0.12","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.12","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"59751923e94884ae0b1c27252092ded06a58b963","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.12.tgz","fileCount":11,"integrity":"sha512-DhEpq+GRZM4GKxNrNStuxvCNnmb5gPvYEwZ2TBgA2sBoLy5K/z48458FbfSob22cR1yysoHM/5XeByOrnGgcmg==","signatures":[{"sig":"MEQCIFJYQCguBzIr/5Fj+UsmGeF0fDBYP+8gzmCBq7GZf04EAiB54HSc6jHB+xI5ftGE004ko0a9QAg7nXFnywiOt/WbAQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78538},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"d43e330b2872f7dbd36f58efa12efb9f1dd04e4d","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.8.1","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"20.16.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.12_1735834496985_0.8703415342590448","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@folkol/criterion","version":"0.0.13","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.13","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"5cbbd63335266faf23033a2df6e141e7395f8037","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.13.tgz","fileCount":11,"integrity":"sha512-mAnn3micpboVoRbKpCoPYfzP87afJv3tKuPCAo6199nq2163KSJKc286jFUIo2Kttkwwz1khEFdBX7rNPIgoJA==","signatures":[{"sig":"MEUCIDL65UL1uN3uQnqvZeEazN0GufUU4u0Uf1nMbTkvZ4xEAiEA0Bj3BIiYMk21iHSA1ctKwT0eRmRP8lz3aROMxv5S1sY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":80803},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"4b9a1ed640df19edce3a88ee8e457e5b931404e5","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.13_1735916082948_0.21125376376006155","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@folkol/criterion","version":"0.0.14","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.14","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"6e974ba33c77765c08e67cd025cc590827dcf41c","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.14.tgz","fileCount":11,"integrity":"sha512-Hw0zNqSNHS8z3CpOcOMDcDBNLEeeYZyPL00LKwR+VzkDfBk+n1F73BgDaE6bSuYDGOAV8aEC0x3C/DD9Ku4uFg==","signatures":[{"sig":"MEYCIQCIJkzzS6hJO8tJCQUw1gzNHkAW/iucBGuIz8VpUPCSwwIhAKkjQwlLs0XYxQf2TR1fSH/QemYjlQ4OTA+fo4FNPkn3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82215},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"ccc245efde65797db1249547f81239bc90cf71e7","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.14_1735919451121_0.6749505171291414","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@folkol/criterion","version":"0.0.15","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.15","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"6c97c8616eb5e373375254f4a7844cb599657fdc","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.15.tgz","fileCount":11,"integrity":"sha512-qhAV7eg2iiAYK1Nb2X44oUhWa+dNHdK2k+K9a2bY2lFFoEa8tmrySJPUEwuNTDsEp8EsJAyfVgSbfypkeEliMg==","signatures":[{"sig":"MEQCIHXFhzJ5iOK3uyoQeVnw6MRS8xG3M1XUhh5doGlA3oylAiAp4TraoSkpgx2D94raxiQfgF2WicQj1XHqM0GUjKEO9w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82239},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"419cc4ad8745d3300d4a3096c2659164f9446236","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.15_1735919675952_0.10516641280654726","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@folkol/criterion","version":"0.0.16","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.16","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"0d4857efe03400c02753f7595e19b12d212f5746","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.16.tgz","fileCount":11,"integrity":"sha512-NtWrBQ69RT8K9GMnJCG82el3J1Z9CEgVnLuuTNHjUd3CUf/ZUc7wuOKkUNVirjsmPZBsxKI0zc7yzkJrXPLqWQ==","signatures":[{"sig":"MEUCIG1bQiroogCEL6gdtwJGr9dxkcQXLtY/kjEg51lRqmCZAiEAwPHVtBpfk98H3roBn0IOG3RbHAgEuU1qNVPSKzgU9s4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82455},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"35d6cb508387bd759dfb10697e6c6822f6e00ea7","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.16_1735920860809_0.8367162888057216","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@folkol/criterion","version":"0.0.17","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.17","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"a3c84b02491cf4e97ba3440d9cf89db72adc480a","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.17.tgz","fileCount":15,"integrity":"sha512-mi7jDWGL0SK45H69RDxGruYodaoddsMF9VD2raMffr8CqLdP1g2YEsbs3ScKkEDQW7cGV2XPv3NRNJ0DNB7u7g==","signatures":[{"sig":"MEUCIFNxDKF+4i4FfVW1/gfBrOdtAWdH1QG29Ch3uYyPvTi+AiEAvGsEnnhZrdMuHBUKBUSMrL6RwKGKgyhOn9yI4UfoWqE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":265982},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"42a94ba2aa7c61218ac168937f5f9c351ea34797","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.17_1735925057244_0.2159675448453282","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@folkol/criterion","version":"0.0.18","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.18","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"4cea395cfb6e11e99e081857bbcfd98ec0ebfa83","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.18.tgz","fileCount":16,"integrity":"sha512-z6iK3RXWcCXvYF7Ukitk8NBNq3zpSRQ+rGhL5/OTZdNUxyHqsLeGQt5N1pZFnHmB35qqfzP0txdmtGeujGSLiA==","signatures":[{"sig":"MEYCIQDrwCSp/9Aj7CnShH8JzmtD/Kqd+shxmc2VDjQ4L7M6LAIhAPrGAW8MWn89B1QubJNS5BeWFscd62Ti12qntMsH3DHx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":265508},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"085715472e97a242a8d22c39a840d72e3facc728","scripts":{"types":"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.18_1735941214654_0.8794677515607188","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@folkol/criterion","version":"0.0.19","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.19","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"ff576b38d2282790bdc89e888542b95dc5459955","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.19.tgz","fileCount":18,"integrity":"sha512-d8MS1pzQegcmIOMYaX+RUp5iGNIQ4vrtjsH+TvQmxWRdV23zZPoYyoj4Ce6w8QgeZfoLGSormTb0/NIFQso50A==","signatures":[{"sig":"MEQCIF8IsqvGsMF6WO+azhvnAb2MxedBDQ731HM6pH45tBouAiAXwMXTsNN9jQCIVNS1VLEKFoFXmNR+zpSiZAtKv/W7qA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":268380},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"e01d25ad2320953f99bfddc05fc08134e2cc7e40","scripts":{"types":"tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.19_1735941745478_0.7537003415282792","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@folkol/criterion","version":"0.0.20","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.20","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"891e4a3a4725e02251ab3cb045b360c4e9dd1d3f","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.20.tgz","fileCount":16,"integrity":"sha512-+WcAOUpymvdRobrbnpgOcfWYQS6r75EVABK2E3Dk1dqnXyCwCI3sNjYghlHFLKfU9ZqYljcVMbzsG2qJhGPmKw==","signatures":[{"sig":"MEUCIQDIbf5eBerWAk48h3r7rYyP4FgZd+VVTvyA8jqH9uLlLwIgQJgf/ezOqOo8hKgq0u/6Pq7PyJqcwUYXgLAaCYte7g4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":267327},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"94818f8ec77992b81f20b745a8f7dda155d6288b","scripts":{"types":"tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.20_1735942447479_0.4239163820857732","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@folkol/criterion","version":"0.0.21","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.21","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"d13365f71cd84e6645e9aa541f689797a0cda175","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.21.tgz","fileCount":18,"integrity":"sha512-vOT8kwyEjhoXgnfoDuUkLL+bBQm0Y0iZanoFbzL/TUDagXFot+H/f/Iz0YN4gc49e3S3pYcjQOPuFmxMgdeNmA==","signatures":[{"sig":"MEQCIAOHXaox43PXukg7r+snnaprPjA3CXbBw3EQ5mJCO58vAiAhdaa5o8y8owMSyTKrGog1IYGMEh8PmPQNL1+uqQyZwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":269402},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"7c800812ad91db2ae74c28bb1ef45c93222937f0","scripts":{"types":"tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.21_1735942841213_0.25288359519435843","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@folkol/criterion","version":"0.0.22","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.22","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"4b2a89ada47440ef00fae17f558b6803c7522f00","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.22.tgz","fileCount":25,"integrity":"sha512-UO5L2bX8skxyHo8TlmEJ9q6zUDw2CYSpJuMT4JYmJi/fwlNjtM8XcP/yYY5B4LgvS3UNAkhBeddn4nY15W1FKQ==","signatures":[{"sig":"MEQCIDyu/iZQvccKKaVRrBK0AZC8OzCupJCH3Wp31Yr3U/SHAiATlB16oeGjXxbW0PHiqEnIb2iA3Zt40sdOKTrMtEzoog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275553},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"58e75db2f4b909cd2fcb4efd4585515e57675b67","scripts":{"types":"tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.22_1735944660483_0.8950561888021771","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@folkol/criterion","version":"0.0.23","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.23","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"452a893b7246f17a5b059aabc0ba4755060f8269","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.23.tgz","fileCount":25,"integrity":"sha512-kry3Xuno02uUqS+FcF/YTkIR6tEkJt8WS1wltSdvNaB/pP/cd4UqQmSFF5i1GaHBkG25LPddPPdd2vlugFP7SA==","signatures":[{"sig":"MEUCIFkR0OlDHYSwnKn3+k4ROszwQp1hsVvO8RnqAzlor2wmAiEA1DI6fcT1XOV8ZGKscLP9P0rM6V91OcoXXRLji5bMdm4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":269033},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"ae43de9fcedfa6085095f378aafec5e1beec7404","scripts":{"types":"tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.23_1736010555073_0.8610631806421081","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@folkol/criterion","version":"0.0.24","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.24","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"62d0b754b010ced3947d49ac5076b062f12755bb","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.24.tgz","fileCount":19,"integrity":"sha512-0QIuDqgbBDfxAgvN5WyE4yF20JFAYO/DkxusApleCGChZQW1O8szMQsH0psjP3ztmYJzSLNG/vlGtlIk3qDv2Q==","signatures":[{"sig":"MEQCIF7jMNZG8mBd6qhS78r9WTcIupjkbQ9O/8JGBJF3RasaAiAVG+yKtaIStEfE0N3NLS9RWVVhMZ+jhvSmdV4h/PgbYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":264422},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"1cec7f889ab50a4fe2c101ee1bfaa90c9853a8cf","scripts":{"test":"node --test","types":"tsc index.js --declaration --allowJs --emitDeclarationOnly"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.24_1736034390264_0.4725444505347225","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@folkol/criterion","version":"0.0.25","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.25","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"f7dc354e360e9076a9200dbacf72f159be01214d","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.25.tgz","fileCount":12,"integrity":"sha512-TEr/mceGx4PFlOCyt0xXHksGkTEdN+0xxBIDdUJ5fTHP1UUhCp918iJf2pkpSqxudSN8WcBe2muXr2aLnIuN0Q==","signatures":[{"sig":"MEUCIQD+TemUxRnQkWRL9fly+dlLwIjqsOYyBbzxt9+HSx7QrQIgVaduqiUf/E5vS6xAk6qhESWDVMQSjJN/Hv+al9FMYk0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77838},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"6cef26b1c4531102c5f36027c11c3e363bec9970","scripts":{"test":"node --test","types":"tsc index.js --declaration --allowJs --emitDeclarationOnly","integration-test":"node --test '**/*.integrationtest.js'"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.25_1736090394667_0.08061598977415274","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@folkol/criterion","version":"0.0.26","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","_id":"@folkol/criterion@0.0.26","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","bin":{"criterion-report":"generate-report.js"},"dist":{"shasum":"2c3a14feb49741f220e97519c77bf0e92900b5dc","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.26.tgz","fileCount":14,"integrity":"sha512-bRSkw4qrWYb0MRF3qfeqweetNRYBieEMji4dmwn6AXrHBcSczwoUMjXIaeyqiTwK4gNXdBxAHsFPI+7gRejbgQ==","signatures":[{"sig":"MEQCIBDWwONMgDbIhph2ppoWA6u/zCaqXl5SIEl74wPMnAL0AiAXMntj6KNYe6dmICAZHmqyYTzaW+oyeC8GQFdxhRZW2Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85674542},"main":"index.js","type":"module","types":"./index.d.ts","gitHead":"c7af8a46cf645d39022aed44ef5fdabbf4bdaf70","scripts":{"test":"node --test","types":"tsc index.js --declaration --allowJs --emitDeclarationOnly","integration-test":"node --test '**/*.integrationtest.js'"},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"_npmVersion":"10.9.0","description":"Micro-benchmarking tool inspired by Criterion.rs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/criterion_0.0.26_1736201681254_0.031432049604526835","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"@folkol/criterion","version":"0.0.27","description":"Micro-benchmarking tool inspired by Criterion.rs","main":"index.js","homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","scripts":{"test":"node --test","integration-test":"node --test '**/*.integrationtest.js'","types":"tsc index.js --declaration --allowJs --emitDeclarationOnly"},"bin":{"criterion-report":"generate-report.js"},"type":"module","keywords":["benchmark","performance","testing"],"author":{"name":"folkol"},"license":"MIT","devDependencies":{"typescript":"^5.7.2"},"dependencies":{"handlebars":"^4.7.8"},"_id":"@folkol/criterion@0.0.27","gitHead":"64253fdfcc90eb5c3118e59986e7945e4a630367","types":"./index.d.ts","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-y1mDcxJYR98/qpOpYEqBVytKBGxjDouVKQdTYsqpCWMLk9XbD7dnvCndCqOXs5Zp1xKRzF58Ty2UPqp1DB6mcg==","shasum":"6cb3ab5b671af6eace5959a4fcbaad8ee32f2527","tarball":"https://registry.npmjs.org/@folkol/criterion/-/criterion-0.0.27.tgz","fileCount":12,"unpackedSize":77986,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4KQJWpfRUvpKNNvrSMHniAk3V5SldU9Ur4Z9bcJ5ISAiEAoV/WvWpqzZYuSGBEtrASJTa0XmGuw6UswJtVXSbxz2E="}]},"_npmUser":{"name":"folkol","email":"folkol@mailbox.org"},"directories":{},"maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/criterion_0.0.27_1736201846651_0.4176420196398347"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-01T22:38:57.508Z","modified":"2025-01-06T22:17:27.024Z","0.0.1":"2025-01-01T22:38:57.776Z","0.0.2":"2025-01-01T22:55:14.610Z","0.0.3":"2025-01-01T22:59:25.883Z","0.0.5":"2025-01-01T23:28:12.806Z","0.0.6":"2025-01-01T23:41:39.645Z","0.0.7":"2025-01-02T12:13:04.222Z","0.0.8":"2025-01-02T14:05:50.136Z","0.0.9":"2025-01-02T14:15:31.137Z","0.0.10":"2025-01-02T15:50:08.166Z","0.0.11":"2025-01-02T16:05:27.658Z","0.0.12":"2025-01-02T16:14:57.220Z","0.0.13":"2025-01-03T14:54:43.107Z","0.0.14":"2025-01-03T15:50:51.284Z","0.0.15":"2025-01-03T15:54:36.167Z","0.0.16":"2025-01-03T16:14:20.962Z","0.0.17":"2025-01-03T17:24:17.414Z","0.0.18":"2025-01-03T21:53:34.820Z","0.0.19":"2025-01-03T22:02:25.740Z","0.0.20":"2025-01-03T22:14:07.689Z","0.0.21":"2025-01-03T22:20:41.460Z","0.0.22":"2025-01-03T22:51:00.704Z","0.0.23":"2025-01-04T17:09:15.368Z","0.0.24":"2025-01-04T23:46:30.434Z","0.0.25":"2025-01-05T15:19:54.837Z","0.0.26":"2025-01-06T22:14:42.545Z","0.0.27":"2025-01-06T22:17:26.843Z"},"author":{"name":"folkol"},"license":"MIT","homepage":"https://github.com/folkol/criterion.js/blob/master/README.md","keywords":["benchmark","performance","testing"],"description":"Micro-benchmarking tool inspired by Criterion.rs","maintainers":[{"name":"folkol","email":"folkol@mailbox.org"}],"readme":"# Criterion.js\n\nCriterion.js is a micro-benchmarking tool (heavily!) inspired by [Criterion.rs](https://crates.io/crates/criterion) which is inspired by [Criterion.hs](https://crates.io/crates/criterion) which was inspired by an unnamed benchmarking framework introduced in a series of blog posts by Brent Boyer. (The blog posts were published on IBM's developerWorks which has since been decommissioned, but copies of the posts can still be found in [the Internet Archive](https://web.archive.org/web/20090213185454/https://www.ibm.com/developerWorks/java/library/j-benchmark2).)\n\n## What does it do?\n\nFor each of your benchmarks, it does something like this:\n\n1. runs your benched function in a loop for some time in order to get the system up-to-speed (JIT compilation, various system caches, CPU P-states, etc.)\n2. runs your code a few times more in order to measure its performance (awaiting the result **of each invocation** if the return value is 'thenable')\n3. calculates some statistics for these measurements\n4. (generates HTML report)\n\n## Caveats\n\nMicro-benchmarking is what it is, if your production code isn't executed in a tight loop isolated from the outside world the results from these test might not apply to the real world.\n\n### Do not run on untrusted input\n\nThere is some rudimentary input validation in place to mitigate programming errors and similar mistakes, but this package is *not safe for use on untrusted input*. (For example: The plot generator will include the group and function names into Gnuplot scripts before executing them.)\n\n### Gnuplot\n\n[Gnuplot](https://gnuplot.sourceforge.net) is needed for report generation. (`gnuplot 5.4 patchlevel 8` on macOS seems to work.)\n\n### Unstable API\n\nThe code changes a lot, if you run into 'weird problems' -- try removing any test outputs created by an older version of Criterion.\n\n## How do I get it?\n\n```\n$ npm install (--save-dev) @folkol/criterion\n```\n\n## How do I use it?\n\n1. Create a Criterion instance\n2. Create a benchmark group\n3. Bench a number of functions\n4. [optionally] Generate the report\n\n```\nimport {Criterion} from '@folkol/criterion';\nimport {f, g} from \"./my-module\";\n\nlet criterion = new Criterion({\n//    measurementTime: 0.1,\n//    nResamples: 10,\n//    warmUpTime: 0.1,\n});\n\nlet group = criterion.group(\"f vs g\");\n\ngroup.bench(\"f\", f);\ngroup.bench(\"g\", g);\n```\n\n\n## How do I run it?\n\n```\n$ node path/to/my/benchmark.js\n$ npx criterion-report ./criterion/\n```\n\n## CRITERION_ENV\n\nIf you want to compare your functions in different runtime environments, you can set the CRITERION_ENV environment variable -- and you will get synthetic tests with the env name appended:\n\n```\n$ node path/to/my/benchmark.js\n$ CRITERION_ENV=bun bun path/to/my/benchmark.js\n$ npx criterion-report ./criterion/\n```\n\n![CRITERION_ENV example](https://github.com/folkol/criterion.js/raw/master/criterion_env_example.png)\n\n## How do I interpret the regression plots?\n\nThe Regression plot can be used to judge the quality of the sample. Each measurement will use increasingly higher iteration counts -- and the expectation is that the time for each sample goes up as the number of iterations increases. If this is not the case, the samples might not be independent -- or something happened that changed time per iteration (garbage collection pauses, optimizing compilation, something hogged the CPU, the laptop switched to battery power?). In any case, if the dots on the regression plot aren't close to the line, be careful when interpreting the results.\n\nHere is an example where 'something' happened during the test. My guess is that the routine got optimized half-way through, and that we should re-run the test with a longer warmup time.\n\n### Unhealthy\n\n![Unhealthy](https://raw.githubusercontent.com/folkol/criterion.js/refs/heads/master/regression_compile.svg)\n\n### Healthy\n\n![Healthy](https://raw.githubusercontent.com/folkol/criterion.js/refs/heads/master/regression_nocompile.svg)\n\n\n## TODO\n\n- More plots!\n- Port more bench functions from Criterion.rs (Parameterized tests, tests of functions that consume their input, etc.)\n- Separate report generation into its own package?\n","readmeFilename":"README.md"}