{"_id":"cnfast","_rev":"9-bd4a62560b1ce408f87fba07c94e531d","name":"cnfast","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.2":{"name":"cnfast","version":"0.0.2","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.0.2","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"47d25033a6cdad39b41e59617283b1c20a00a903","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.0.2.tgz","fileCount":12,"integrity":"sha512-txRrYeERwPMmLOGiXNI/qhHmrHdllSWo4e+ys+WVBiIZ+HQSQ3pR2mjHH6IcYf0NyOW70hEQEWhNy8grtVHoBw==","signatures":[{"sig":"MEQCIDSBTlyt71BDqmalFOdmpjDeJoM3Rhiexx/khTq36LW9AiA3HSv2QJ6EZgHQ8QI+0V3o3dh7avMPL7xuH8S3CR236Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2505818},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.0.2.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"tsx scripts/bundle-size.ts","test":"vp test","bench":"tsx bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:lru":"tsx bench/lru.bench.ts","typecheck":"tsc --noEmit","bench:cases":"tsx scripts/extract-bench-cases.ts","bench:pages":"tsx scripts/page-vitals-harness.ts","bench:corpus":"tsx bench/corpus.bench.ts","bench:vitals":"tsx scripts/web-vitals-harness.ts","bench:extract":"tsx scripts/extract-cases.ts","bench:pages:capture":"tsx scripts/capture-pages.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/9d5fe6eaf2bfa68a504ae066cf7d05a8/cnfast-0.0.2.tgz","_integrity":"sha512-txRrYeERwPMmLOGiXNI/qhHmrHdllSWo4e+ys+WVBiIZ+HQSQ3pR2mjHH6IcYf0NyOW70hEQEWhNy8grtVHoBw==","_npmVersion":"11.13.0","description":"A tiny, fast, dependency-free replacement for the `cn` class name utility.","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","tinybench":"^6.0.2","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.0.2_1781909549638_0.9655743884478729","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"cnfast","version":"0.0.3","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.0.3","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"a5cd7a4667f0c16210e64e1404105ff10a6695e6","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.0.3.tgz","fileCount":12,"integrity":"sha512-hFJGKc1F0jeYvIIZJoHfASG2WCrs6jfLCb/edPJDPV6NoBwViSRil8lUc0qCeHa7aNZbDMr2tR3lqRMu47CqqQ==","signatures":[{"sig":"MEYCIQDmBd+PdA+aH84dluaIcCIEL5kcxSmKp3DM517atsYtAwIhAJsWNIr7cKM5MicmysuWk5ftgdLjYtCWYLpnrolmmqkB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2513011},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.0.3.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"bun scripts/bundle-size.ts","test":"vp test","bench":"bun bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:all":"bun bench/index.ts","bench:lru":"bun bench/lru.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:tpl":"bun bench/template.bench.ts","typecheck":"tsc --noEmit","bench:hard":"bun bench/hard-task.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:parity":"bun scripts/verify-parity.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:report":"bun bench/report.ts","bench:analyze":"bun scripts/analyze-pages.ts","bench:capture":"bun scripts/capture-pages.ts","bench:extract":"bun scripts/extract-cases.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/701f60eb884319f4d9fcd9a397e3173f/cnfast-0.0.3.tgz","_integrity":"sha512-hFJGKc1F0jeYvIIZJoHfASG2WCrs6jfLCb/edPJDPV6NoBwViSRil8lUc0qCeHa7aNZbDMr2tR3lqRMu47CqqQ==","_npmVersion":"11.13.0","description":"A tiny, fast, dependency-free replacement for the `cn` class name utility.","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","react":"^19.2.7","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","react-dom":"^19.2.7","tinybench":"^6.0.2","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","@types/react":"^19.2.17","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.0.3_1781926567593_0.19193058491113812","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"cnfast","version":"0.0.4","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.0.4","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"homepage":"https://github.com/aidenybai/cnfast#readme","bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"c4917d9763e19adc86b813baf8d42800f3253a1f","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.0.4.tgz","fileCount":12,"integrity":"sha512-n2pySh9bSDAnxSD/5EdUldV4KRMPNFjMHhyq5pywpFgTOaMNi5mZFASJOJnnYEr8BER2Hjyv0kPY195xhluvrg==","signatures":[{"sig":"MEUCIGbR4s8Dp2Emh3lsMhNf149DcGBMynq48gy/4Jbf3b5WAiEAkv4PbAbs9wWyHYeetK0KIKWOv+mZfkEQNcf+zH3tFfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2512575},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.0.4.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"bun scripts/bundle-size.ts","test":"vp test","bench":"bun bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:all":"bun bench/index.ts","bench:lru":"bun bench/lru.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:tpl":"bun bench/template.bench.ts","typecheck":"tsc --noEmit","bench:hard":"bun bench/hard-task.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:chart":"bun scripts/generate-bench-chart.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:parity":"bun scripts/verify-parity.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:report":"bun bench/report.ts","bench:analyze":"bun scripts/analyze-pages.ts","bench:capture":"bun scripts/capture-pages.ts","bench:extract":"bun scripts/extract-cases.ts","bench:chart:render":"bun scripts/render-chart.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/6580162f3b4c2436147281dbd6f40eac/cnfast-0.0.4.tgz","_integrity":"sha512-n2pySh9bSDAnxSD/5EdUldV4KRMPNFjMHhyq5pywpFgTOaMNi5mZFASJOJnnYEr8BER2Hjyv0kPY195xhluvrg==","repository":{"url":"git+https://github.com/aidenybai/cnfast.git","type":"git","directory":"packages/cnfast"},"_npmVersion":"11.13.0","description":"Fast drop-in replacement for `cn`","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","vega":"^6.2.0","react":"^19.2.7","vitest":"^3.0.0","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","react-dom":"^19.2.7","tinybench":"^6.0.2","vega-lite":"^6.4.3","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","@types/react":"^19.2.17","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.0.4_1781933194387_0.21454873199429936","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"cnfast","version":"0.0.5","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.0.5","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"homepage":"https://github.com/aidenybai/cnfast#readme","bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"996d2958e5015d1c1a87d1efabfc89ab067d6a10","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.0.5.tgz","fileCount":12,"integrity":"sha512-9Jg30S0fKqMMze/6qaoq5Y+ItatPXH7gENaoI7yilgUdq8ZFVRHRPeEkuZTRZKa5w4N73C1Zna5irL/XuvzWyA==","signatures":[{"sig":"MEUCIQDtAGEtpev/3NJfxvKI759nY7HVSxffjtt+Zrt/kkc5rQIgaetsoNqxPtosYMSDFiUEExRRKJd3a1CU3c3JKfcIlUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2512575},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.0.5.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"bun scripts/bundle-size.ts","test":"vp test","bench":"bun bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:all":"bun bench/index.ts","bench:lru":"bun bench/lru.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:tpl":"bun bench/template.bench.ts","typecheck":"tsc --noEmit","bench:hard":"bun bench/hard-task.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:chart":"bun scripts/generate-bench-chart.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:parity":"bun scripts/verify-parity.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:report":"bun bench/report.ts","bench:analyze":"bun scripts/analyze-pages.ts","bench:capture":"bun scripts/capture-pages.ts","bench:extract":"bun scripts/extract-cases.ts","bench:chart:render":"bun scripts/render-chart.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/19ea1ff1e2e2e7adfebea3f07bfe4f2b/cnfast-0.0.5.tgz","_integrity":"sha512-9Jg30S0fKqMMze/6qaoq5Y+ItatPXH7gENaoI7yilgUdq8ZFVRHRPeEkuZTRZKa5w4N73C1Zna5irL/XuvzWyA==","repository":{"url":"git+https://github.com/aidenybai/cnfast.git","type":"git","directory":"packages/cnfast"},"_npmVersion":"11.13.0","description":"Fast drop-in replacement for `cn`","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","vega":"^6.2.0","react":"^19.2.7","vitest":"^3.0.0","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","react-dom":"^19.2.7","tinybench":"^6.0.2","vega-lite":"^6.4.3","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","@types/react":"^19.2.17","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.0.5_1781949812793_0.429269201592968","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"cnfast","version":"0.0.6","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.0.6","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"homepage":"https://github.com/aidenybai/cnfast#readme","bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"2580d62fb5b82f322a48e0664927eaba3acbae0b","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.0.6.tgz","fileCount":12,"integrity":"sha512-DM6Bp9MPE+LF8NRDt9TUA4ONgZXzQDrA6lsojn66LLKTXvZbBsuu9Q8Wu8y9zE9sMCVF82zxAvNMObDBVSyKCg==","signatures":[{"sig":"MEUCIGfcD4PpdWeg1i/qrIs8HURbI+QoROZFSA4553NHD2nxAiEA+WbOAn95diJmjGO4bvPPnX0sS153M4OAtwRcZQJQb7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2512567},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.0.6.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"bun scripts/bundle-size.ts","test":"vp test","bench":"bun bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:all":"bun bench/index.ts","bench:lru":"bun bench/lru.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:tpl":"bun bench/template.bench.ts","typecheck":"tsc --noEmit","bench:hard":"bun bench/hard-task.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:chart":"bun scripts/generate-bench-chart.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:parity":"bun scripts/verify-parity.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:report":"bun bench/report.ts","bench:analyze":"bun scripts/analyze-pages.ts","bench:capture":"bun scripts/capture-pages.ts","bench:extract":"bun scripts/extract-cases.ts","bench:chart:render":"bun scripts/render-chart.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/ec30e5d5d17d57a81b5320460a79058e/cnfast-0.0.6.tgz","_integrity":"sha512-DM6Bp9MPE+LF8NRDt9TUA4ONgZXzQDrA6lsojn66LLKTXvZbBsuu9Q8Wu8y9zE9sMCVF82zxAvNMObDBVSyKCg==","repository":{"url":"git+https://github.com/aidenybai/cnfast.git","type":"git","directory":"packages/cnfast"},"_npmVersion":"11.13.0","description":"Fast drop-in replacement for `cn`","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","vega":"^6.2.0","react":"^19.2.7","vitest":"^3.0.0","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","react-dom":"^19.2.7","tinybench":"^6.0.2","vega-lite":"^6.4.3","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","@types/react":"^19.2.17","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.0.6_1781998751936_0.660388192070283","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"cnfast","version":"0.0.7","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.0.7","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"homepage":"https://github.com/aidenybai/cnfast#readme","bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"82f82782bc6363b42b365475787fd0541eed603e","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.0.7.tgz","fileCount":12,"integrity":"sha512-03wkOzgQaRe1kq0OQCB5h8cCUTnHv1s/+Pi6uDNNwLWJoOTfpnyGd13ThML1b1EhJzOXnPK1l0WRiNYjPPnBaw==","signatures":[{"sig":"MEUCIQD9s2uRs4iPxSe/ujXa9XuhBHIPhqrunJiRFQqzFJ84PgIgOIZllVwJJX0ekW+tUhYdHrbj5DDWA5zJLj1B5L6QcMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2520817},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.0.7.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"bun scripts/bundle-size.ts","test":"vp test","bench":"bun bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:all":"bun bench/index.ts","bench:lru":"bun bench/lru.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:tpl":"bun bench/template.bench.ts","typecheck":"tsc --noEmit","bench:hard":"bun bench/hard-task.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:chart":"bun scripts/generate-bench-chart.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:parity":"bun scripts/verify-parity.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:report":"bun bench/report.ts","bench:analyze":"bun scripts/analyze-pages.ts","bench:capture":"bun scripts/capture-pages.ts","bench:extract":"bun scripts/extract-cases.ts","bench:chart:render":"bun scripts/render-chart.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/79eac2e7ea777a2a84867df7dd034496/cnfast-0.0.7.tgz","_integrity":"sha512-03wkOzgQaRe1kq0OQCB5h8cCUTnHv1s/+Pi6uDNNwLWJoOTfpnyGd13ThML1b1EhJzOXnPK1l0WRiNYjPPnBaw==","repository":{"url":"git+https://github.com/aidenybai/cnfast.git","type":"git","directory":"packages/cnfast"},"_npmVersion":"11.13.0","description":"Fast drop-in replacement for `cn`","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","vega":"^6.2.0","react":"^19.2.7","vitest":"^3.0.0","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","react-dom":"^19.2.7","tinybench":"^6.0.2","vega-lite":"^6.4.3","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","@types/react":"^19.2.17","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.0.7_1782094447912_0.6907721298059435","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"cnfast","version":"0.0.8","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.0.8","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"homepage":"https://github.com/aidenybai/cnfast#readme","bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"7901a75a1917c08c75b6b07acfe409802d035c3a","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.0.8.tgz","fileCount":12,"integrity":"sha512-EjXKMfGfdwtV4AcNSQ6AwQaVzpC1B7IxeiwA3FlhTXz+YFlMKVi4c1JX9tgD2QOlahQXjB8KUXrBaYG+3v871Q==","signatures":[{"sig":"MEYCIQDisEOAuG2vdPq7+CaHCZOLR2GcmV1TF9OEg8elpyVKjAIhANwaeVNvx9geJdfWtdD4bKHN4lF5QhiRq+O0Ui1pPhCO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2520812},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.0.8.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"bun scripts/bundle-size.ts","test":"vp test","bench":"bun bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:all":"bun bench/index.ts","bench:lru":"bun bench/lru.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:tpl":"bun bench/template.bench.ts","typecheck":"tsc --noEmit","bench:hard":"bun bench/hard-task.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:chart":"bun scripts/generate-bench-chart.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:parity":"bun scripts/verify-parity.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:report":"bun bench/report.ts","bench:analyze":"bun scripts/analyze-pages.ts","bench:capture":"bun scripts/capture-pages.ts","bench:extract":"bun scripts/extract-cases.ts","bench:chart:render":"bun scripts/render-chart.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/f47a08076d1e91eee7fdfbd46159ad71/cnfast-0.0.8.tgz","_integrity":"sha512-EjXKMfGfdwtV4AcNSQ6AwQaVzpC1B7IxeiwA3FlhTXz+YFlMKVi4c1JX9tgD2QOlahQXjB8KUXrBaYG+3v871Q==","repository":{"url":"git+https://github.com/aidenybai/cnfast.git","type":"git","directory":"packages/cnfast"},"_npmVersion":"11.13.0","description":"Fast drop-in replacement for `cn`","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","vega":"^6.2.0","react":"^19.2.7","vitest":"^3.0.0","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","react-dom":"^19.2.7","tinybench":"^6.0.2","vega-lite":"^6.4.3","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","@types/react":"^19.2.17","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.0.8_1782102210246_0.4029671417588936","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"cnfast","version":"0.1.0","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","_id":"cnfast@0.1.0","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"homepage":"https://github.com/aidenybai/cnfast#readme","bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"bin":{"cnfast":"bin/cli.js"},"dist":{"shasum":"b7db065a7b3037e0dfaf98c844e8ab487bc78505","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.1.0.tgz","fileCount":10,"integrity":"sha512-rH0jBKeLkVrK7NsZ5Ba2l7WdMBmm1k0FMpABeXUU1PgTUxbz3261gEuCSsrYuXo4BwAe3yCcIbQ93YyS52lOGQ==","signatures":[{"sig":"MEYCIQDEK/XvKfke521+/z+1/W8F4FyXuwT6VIjYPjgsk9lcCAIhAJW1ekmz8aoMMqfU8vBEZRsvc4XCz41AEkkgSPT2MVYM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1016883},"main":"dist/index.cjs","type":"module","_from":"file:cnfast-0.1.0.tgz","types":"dist/index.d.mts","module":"dist/index.mjs","browser":"dist/index.iife.js","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"vp pack --watch","iter":"bash scripts/optimize-iter.sh","size":"bun scripts/bundle-size.ts","test":"vp test","bench":"bun bench/cn.bench.ts","build":"vp pack","deopt":"bash scripts/deopt.sh","bench:all":"bun bench/index.ts","bench:lru":"bun bench/lru.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:tpl":"bun bench/template.bench.ts","typecheck":"tsc --noEmit","bench:hard":"bun bench/hard-task.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:chart":"bun scripts/generate-bench-chart.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:parity":"bun scripts/verify-parity.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:report":"bun bench/report.ts","bench:analyze":"bun scripts/analyze-pages.ts","bench:capture":"bun scripts/capture-pages.ts","bench:extract":"bun scripts/extract-cases.ts","bench:chart:render":"bun scripts/render-chart.ts"},"_npmUser":{"name":"abai","email":"aiden.bai05@gmail.com"},"_resolved":"/private/var/folders/8m/5flt4jn532j5gqt_p_yy89zh0000gn/T/22ab534fface64e06b66d46db3f62f90/cnfast-0.1.0.tgz","_integrity":"sha512-rH0jBKeLkVrK7NsZ5Ba2l7WdMBmm1k0FMpABeXUU1PgTUxbz3261gEuCSsrYuXo4BwAe3yCcIbQ93YyS52lOGQ==","repository":{"url":"git+https://github.com/aidenybai/cnfast.git","type":"git","directory":"packages/cnfast"},"_npmVersion":"11.16.0","description":"Fast drop-in replacement for `cn`","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^9.4.0","clsx":"^2.1.1","vega":"^6.2.0","react":"^19.2.7","vitest":"^3.0.0","esbuild":"^0.28.1","prompts":"^2.4.2","commander":"^14.0.3","react-dom":"^19.2.7","tinybench":"^6.0.2","vega-lite":"^6.4.3","picocolors":"^1.1.1","tinyglobby":"^0.2.10","@types/node":"^25.6.0","@types/react":"^19.2.17","magic-string":"^0.30.17","@types/prompts":"^2.4.9","tailwind-merge":"^3.6.0","playwright-core":"^1.61.0","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/cnfast_0.1.0_1785190255621_0.08823427884857638","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"cnfast","version":"0.2.0","description":"Fast drop-in replacement for `cn`","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"homepage":"https://github.com/aidenybai/cnfast#readme","bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"license":"MIT","author":{"name":"Aiden Bai","email":"aiden@million.dev"},"repository":{"type":"git","url":"git+https://github.com/aidenybai/cnfast.git","directory":"packages/cnfast"},"bin":{"cnfast":"bin/cli.js"},"type":"module","sideEffects":false,"main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.mts","exports":{"./package.json":"./package.json",".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"publishConfig":{"access":"public"},"devDependencies":{"@types/node":"^25.6.0","@types/prompts":"^2.4.9","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","class-variance-authority":"0.7.1","clsx":"^2.1.1","commander":"^14.0.3","esbuild":"^0.28.1","magic-string":"^0.30.17","ora":"^9.4.0","picocolors":"^1.1.1","playwright-core":"^1.61.0","prompts":"^2.4.2","publint":"^0.3.24","react":"^19.2.7","react-dom":"^19.2.7","tailwind-merge":"3.6.0-dev.bceabfd95eab05553d15c5368b2684de697a84eb","tinybench":"^6.0.2","tinyglobby":"^0.2.10","vega":"^6.2.0","vega-lite":"^6.4.3","vitest":"^3.0.0"},"engines":{"node":">=22"},"scripts":{"build":"NODE_ENV=production vp pack","dev":"vp pack --watch","publint":"publint","test":"vp test","typecheck":"tsc --noEmit","bench":"bun bench/cn.bench.ts","bench:ab":"bun bench/ab-compare.ts","bench:parity:sequence":"bun scripts/verify-parity-sequence.ts","bench:parity:cva":"bun scripts/verify-cva-parity.ts","bench:all":"bun bench/index.ts","bench:coverage":"bun bench/coverage.bench.ts","bench:chart":"bun scripts/generate-bench-chart.ts","bench:chart:render":"bun scripts/render-chart.ts","bench:lru":"bun bench/lru.bench.ts","bench:cases":"bun scripts/extract-bench-cases.ts","bench:report":"bun bench/report.ts","bench:setup":"bun scripts/extract-cases.ts && bun scripts/capture-pages.ts","bench:parity":"bun scripts/verify-parity.ts","bench:callsite":"bun bench/call-site-replay.bench.ts","bench:cva":"bun bench/cva-replay.bench.ts","bench:cva:data":"bun bench/generate-cva-datasets.ts","bench:corpus":"bun bench/corpus.bench.ts","bench:replay":"bun bench/page-replay.bench.ts","bench:hard":"bun bench/hard-task.bench.ts","bench:toggle":"bun bench/toggle.bench.ts","bench:ssr":"bun bench/ssr.bench.ts","bench:pages":"bun scripts/page-vitals-harness.ts","bench:extract":"bun scripts/extract-cases.ts","bench:capture":"bun scripts/capture-pages.ts","bench:analyze":"bun scripts/analyze-pages.ts","size":"bun scripts/bundle-size.ts","iter":"bash scripts/optimize-iter.sh","deopt":"bash scripts/deopt.sh"},"_id":"cnfast@0.2.0","_integrity":"sha512-US4gOKGIylQWC7Nm+wNj+rOej6hJKyY4HwZYgtfRrduejEIFNNxcGKIWzCcQZxzgx6wKCZCCysWjnzsffiyhrw==","_resolved":"/tmp/70da0d73fb9e336f0e8815dbae4a13b3/cnfast-0.2.0.tgz","_from":"file:cnfast-0.2.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-US4gOKGIylQWC7Nm+wNj+rOej6hJKyY4HwZYgtfRrduejEIFNNxcGKIWzCcQZxzgx6wKCZCCysWjnzsffiyhrw==","shasum":"7ea78d839a2f319240f7e0db79684a1aa345a860","tarball":"https://registry.npmjs.org/cnfast/-/cnfast-0.2.0.tgz","fileCount":9,"unpackedSize":540234,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cnfast@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHJjmj01pFM5g9p951Az2Ni4ww4L0MG5mYKM74KtssIUAiEA6u3f5FhC4GXPXfPa2d1750Z31/Hm0ZwpIWj4Ec/yjtU="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65822c70-979b-47a1-a7c0-430ea37cc382"}},"directories":{},"maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cnfast_0.2.0_1788256634670_0.437626693476596"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T22:52:29.496Z","modified":"2026-09-01T09:57:15.285Z","0.0.2":"2026-06-19T22:52:29.787Z","0.0.3":"2026-06-20T03:36:07.794Z","0.0.4":"2026-06-20T05:26:34.570Z","0.0.5":"2026-06-20T10:03:32.983Z","0.0.6":"2026-06-20T23:39:12.109Z","0.0.7":"2026-06-22T02:14:08.107Z","0.0.8":"2026-06-22T04:23:30.453Z","0.1.0":"2026-07-27T22:10:55.827Z","0.2.0":"2026-09-01T09:57:14.837Z"},"bugs":{"url":"https://github.com/aidenybai/cnfast/issues"},"author":{"name":"Aiden Bai","email":"aiden@million.dev"},"license":"MIT","homepage":"https://github.com/aidenybai/cnfast#readme","keywords":["className","classes","classnames","clsx","cn","tailwind","utility"],"repository":{"type":"git","url":"git+https://github.com/aidenybai/cnfast.git","directory":"packages/cnfast"},"description":"Fast drop-in replacement for `cn`","maintainers":[{"name":"abai","email":"aiden.bai05@gmail.com"}],"readme":"# cnfast\n\n[![version](https://img.shields.io/npm/v/cnfast?style=flat&colorA=000000&colorB=000000)](https://npmjs.com/package/cnfast)\n[![downloads](https://img.shields.io/npm/dt/cnfast.svg?style=flat&colorA=000000&colorB=000000)](https://npmjs.com/package/cnfast)\n\nFast drop-in replacement for `cn`.\n\ncnfast runs [**25× faster**](https://cn.aidenybai.com/) than `clsx + tailwind-merge` across 58 real-world component repositories, with byte-identical output. Same API, no code changes.\n\n```ts\nimport { cn } from \"cnfast\";\n\ncn(\"px-2 py-1\", isActive && \"px-4\", { \"text-red-500\": hasError });\n// \"py-1 px-4 text-red-500\"\n```\n\n## Install\n\n```bash\nnpm install cnfast\n```\n\nMigrate an existing `clsx`, `classnames`, or `tailwind-merge` project in one command:\n\n```bash\nnpx cnfast migrate\n```\n\nOn a shadcn/ui project, add or replace your `cn` utility through the registry. This rewrites `lib/utils.ts` to re-export cnfast and installs the package:\n\n```bash\nnpx shadcn@latest add aidenybai/cnfast/cn\n```\n\n## Usage\n\nSwap the shadcn/ui `cn` helper for cnfast:\n\n```ts\n// before\nimport { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nexport const cn = (...inputs: ClassValue[]) => twMerge(clsx(inputs));\n\n// after\nexport { cn } from \"cnfast\";\n```\n\ncnfast also exports `clsx`, `twMerge`, and `twJoin`.\n\n## Development\n\n```bash\nni\nnr build\nnr test\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}