{"_id":"nano-string-utils","_rev":"34-e2b1eadbc2b6506aedc9480a2cc3264f","name":"nano-string-utils","dist-tags":{"latest":"0.28.1"},"versions":{"0.1.0":{"name":"nano-string-utils","version":"0.1.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.1.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"7c8520a3f78caca8ed3817c2cac6be101fb4ce2a","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.1.0.tgz","fileCount":10,"integrity":"sha512-vFC6q/J4Gx1CjhhU9qlL3DtIbJOvI/Mx1vMrTuDMyZ1hFuoh1IuT1P3zuRPd1tcnc2wW3VxZGJS+qlzOCN6XSw==","signatures":[{"sig":"MEUCIByFqkPXpWwM26pxaE2zxy+uQ/Om0mGAVJHA/BZr49gzAiEAm2NjKA4x6rzk5wF3455Gx51RTIsvjH+6VBkSklnle8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66528},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"bdadfe4b1de3057948550d22d39f6d68e00e9a40","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"5 KB"},{"path":"dist/index.cjs","limit":"5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typedoc":"^0.28.11","tinybench":"^5.0.1","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.1.0_1756735320348_0.20993372791427833","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"nano-string-utils","version":"0.2.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.2.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"1de5ea8b10c1409aaadac97d1825fa9843cb10d9","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.2.0.tgz","fileCount":10,"integrity":"sha512-YH3mLgvGkQfO4GO34oeGTK/muOGPJHmYKsFswBgBvAvodaIG0sN07B67aYgSRiq/TlBpKzh6EdgvU4rQAssIyw==","signatures":[{"sig":"MEUCIHqv4GwVGYsYUIJH1x61SOAw92E8JfJngHDEhrpVWWCFAiEA6IyrUq3K4DtHRv28Bkjy3r0ZGgKUdLQBG4WrilQfowQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146644},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"aa690ddf814f513988db227cbd57d89208c9e320","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"5 KB"},{"path":"dist/index.cjs","limit":"5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typedoc":"^0.28.11","tinybench":"^5.0.1","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.2.0_1756840282408_0.868852572873408","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"nano-string-utils","version":"0.3.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.3.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"9b1014745a1a384eb3340495cb477c0b75009329","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.3.0.tgz","fileCount":10,"integrity":"sha512-GOAVk667/fVV/yt8/xm3hJcIKIb1Blk0foYhadaPo7+pAY8gHMkACNcOxFV8TcB+o98aAT5ce+h6cI4UmqU2SA==","signatures":[{"sig":"MEUCIQCkN4dlTWHsNYElGqqvoZXab2MnqwAD36U1hvlgwv44rQIgbCLv7B5Y1hm/TWFh7MFTcyiYJHC2qX8chh0OUMoMvwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222095},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"9353bbdef87d69f7136d1e8aa935f4b9fa598c9f","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"5 KB"},{"path":"dist/index.cjs","limit":"5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typedoc":"^0.28.11","tinybench":"^5.0.1","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.3.0_1756910336978_0.8170644976750678","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"nano-string-utils","version":"0.4.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.4.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"7498948063a84f423bf709667cb8fd095c7a2952","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.4.0.tgz","fileCount":10,"integrity":"sha512-w1JBAyj0CAfMryw+gqmclWCxbdseGof9zmYO/jKA+65QniiovIBMFpTPPkDV4kxzjM8OWVpe3TF6gF0Ik7D34w==","signatures":[{"sig":"MEQCIC19Wl2EASnuck6qJ365s7rQKBhaN+yd/ROhHJpB1HdPAiBN9mAMOi2enPLFZrKcVCLaMEHfebYmMPpwzKc1Bw8MAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332133},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"9d1447801d39b4a7d117aa61f6b41da19a061fd1","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6 KB"},{"path":"dist/index.cjs","limit":"6 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typedoc":"^0.28.11","tinybench":"^5.0.1","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.4.0_1756917284278_0.0038028662287341586","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"nano-string-utils","version":"0.4.1","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.4.1","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"345877bc46f582e4cb55e7f7579eeb79a759eea3","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.4.1.tgz","fileCount":10,"integrity":"sha512-ufAunGN7X9yimCggzNFYIDgToxZWnHeWcRuNtSkfVqkIjgy6VfcxR3IgvHfowOE1sgNntGsD/IVwoos9RGNzlw==","signatures":[{"sig":"MEYCIQChHrD1BNtWdSBddUWexjd3GkwOfUVXxidcwEAOJLprTAIhALMS347fYrs9iT7s6rWLFBrj49kzCcaL8AOrWK5UgKZp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350267},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"460e928c18efc9239849dc197ac0ef4a1b926e87","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6 KB"},{"path":"dist/index.cjs","limit":"6 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typedoc":"^0.28.11","tinybench":"^5.0.1","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.4.1_1756930839042_0.5100111001966106","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"nano-string-utils","version":"0.5.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.5.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"2882978848af4b3631f7ff81440ecfc8189224b4","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.5.0.tgz","fileCount":10,"integrity":"sha512-kemZVqjSOqoFuvknFkNqedi8+EMFKnPKxKslRQ3rEiQ6dXdg6dm3yox6YtqqR75qKT9on/DE3JG1/39moA242g==","signatures":[{"sig":"MEYCIQCa3Dz/NniLhixbiI/Wrmt6xD8YUhRACP17JQICTXNoigIhALWfakoU9f5PaRDCMukmLc0hlN1Q+DyWO6m8EN2vXx1I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366097},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"cf1eb2d12bbf4c7438c5ac1d4d8a4e9b0b577a32","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6 KB"},{"path":"dist/index.cjs","limit":"6 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typedoc":"^0.28.11","tinybench":"^5.0.1","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.5.0_1757000162438_0.8735172377180218","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"nano-string-utils","version":"0.5.1","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.5.1","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"a466724db158eec94629b941f55efd50a2de747d","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.5.1.tgz","fileCount":10,"integrity":"sha512-9AvEGoy0Y2CZuNwmfaUHdv1usrfCkDpBN1QLYK9RorPe2IYJwX2nYQ98e6c8V13Na0OrX0TSzjjDj4/6zlpQ3Q==","signatures":[{"sig":"MEUCIQDKV73IKAe5BToAgEzTyHnysQePCjBsP3ERlOUEcwtlqwIgFmRzgaC2JxE7JQB4js2s4oOge87azTfxrNfPFrYgeO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378672},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"356396b559f3970f462126fe580ed180c2c66e9a","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6 KB"},{"path":"dist/index.cjs","limit":"6 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typedoc":"^0.28.11","tinybench":"^5.0.1","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.5.1_1757002599107_0.11811017932025303","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"nano-string-utils","version":"0.5.2","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.5.2","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"837846b94e22811d3e8cec791dd53994048cee51","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.5.2.tgz","fileCount":10,"integrity":"sha512-KdQkmCqDHVyLjiN5vseEu1zL1v5GOGCT7Q2GaOzOlpgAz1fV30Q8y1SxA8OXruF/FUyNqlULzLy0ppXvJv0kXQ==","signatures":[{"sig":"MEQCIFXkEl6XuMcSmC1MaDrGnyZWjix3K2IQLXI5ovM9Ww15AiAamPGfJhBSaRcvd4xWZYHfEa7xEkExt3X6SwWnNqq+kA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380883},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"0d2e3a12652d54130679335fe2257cc4084bd743","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","typedoc":"^0.28.11","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.5.2_1757113589686_0.029647247202478244","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"nano-string-utils","version":"0.6.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.6.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"a4e97b37e67cd66c881a4662a924e0e5836830db","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.6.0.tgz","fileCount":10,"integrity":"sha512-a2/ai1RS6kHDxHC2QAuJpz+4t3yQ8CL9ucNKfwtPetertRiYp0tys7Ui+9wWzVHCXm7qlRyVLxi5TZjBpabtqw==","signatures":[{"sig":"MEUCICH+i/PzFoXqcWx/eZ4AE27qo/tY1MEakbT+TEFqPHMBAiEAnhDG29LEeD85Y1mpCWbkpCigvRXW8uhal0B2gHB2yJs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388070},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"239b6db78db957946baed7d763fdae77a6217339","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","typedoc":"^0.28.11","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.6.0_1757174595846_0.8782259440059481","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"nano-string-utils","version":"0.7.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.7.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"f2d85bd646f9f758e26bc52e2dff39a7abf06558","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.7.0.tgz","fileCount":10,"integrity":"sha512-lDYFtnVdTIsP/3iASRiMtjBDQfiKb/LflPdMi/Zfvtqf99Jq1S7R8uVLGrh/I9ps3D3BrFWcHhvRaK0ilZ27rg==","signatures":[{"sig":"MEYCIQCEFXORHYIonxBGRW943rbiWIXnUy0OSCHjW0jEtqdt3QIhAPQBGc8ECDiZTuuy4XnmVwhcgeilEzGwv57Eo/lCrWb6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434582},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"e4fc6627d5c1b3ada2234301fd6650352826fb02","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","typedoc":"^0.28.11","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.7.0_1757177873112_0.25717616458022063","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"nano-string-utils","version":"0.8.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.8.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"39a2b3e92ba11ab36416e433cbd273f23b0b6acc","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.8.0.tgz","fileCount":10,"integrity":"sha512-CPrpJpw0XpSJFJS+sDyQU2Y2KmI0Emq7rM92WPUfxQpDJAjDKNTNs/li/uRBPDIxgKxcUp40IzfOzDZudsIGwg==","signatures":[{"sig":"MEUCICgE2LWOPA79gYD6ruvl4gtSz+G/fRO91YUd5MC+fY2IAiEA0uHkDzC2rQJ6+VJvcasMivmyL1bOhwrxTCul1NxrBcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462614},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"f27dc31704441d7cd423a7150958b385dd41d934","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","typedoc":"^0.28.11","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.8.0_1757229129486_0.5692578875793644","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"nano-string-utils","version":"0.9.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.9.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"1e938628779a1e7cdbdf1ced1f0490a220d1bada","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.9.0.tgz","fileCount":10,"integrity":"sha512-VLCKmm7EFb7OpRgs3oM/PY5hyMHyD7ES/8knh6NpyLmHgQ4qsHPX7pVdcWXIeiE0yllxpuHbXsADogpbk22GLQ==","signatures":[{"sig":"MEYCIQDwhSQsSMgVG/zama2oyUAtqJqFpmwpyfXZ9jKLDWDwyAIhAPBNdWssb7G4WXGgVHTo/kaDx1L5yoJcLZEvbXUsAJCD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":467072},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"09e473e885a9bce3efdb8c3109689ce98d3fb290","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","typedoc":"^0.28.11","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.9.0_1757231364386_0.4346144047745233","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"nano-string-utils","version":"0.9.1","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.9.1","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"36111c8651ef1a3abe863602b8f7ca2166f9f546","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.9.1.tgz","fileCount":10,"integrity":"sha512-E8RvMm7AbDCuTRJ4N0iN/MG+bX+Q+V3JSRUIaBD9+B1rh4Q0qRYOcG57ECL7jlDv97Y8xjR+IgitOXIg4NybFA==","signatures":[{"sig":"MEUCIQCtjkMsAGOJXmURKvw95FtNVtlEL6F6qN2/rYOwvQkncQIgWzbJ8WDHY1DNJVNjK/SvvrJfDM6L3d7aFSpIlDxqPlc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":523849},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"2247b40f8ca08492d16f08c65b8c1bc30fc080e6","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","typedoc":"^0.28.11","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.9.1_1757243552553_0.31976045387730245","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"nano-string-utils","version":"0.10.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.10.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"d59531653e1ec69bd47df175d679daf0bff8e44e","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.10.0.tgz","fileCount":10,"integrity":"sha512-1bIFdqmqAgRuNe/f9xX9JvWQV5Zi7Jfi4c4O/Yk3DJi0erz+Ym7f/sW+xmDbUNl1N3SK+IC9WbYQjf8HWPoaWQ==","signatures":[{"sig":"MEUCICGPfgYru1Ksa/crk1794MVyCw9YmJVWk676i7xlS3tHAiEAyynJd2F2eXypxa3eac/+qMSHS9bxyTmOXsSvvezhDPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":525553},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"dae1b7c4d299f4a6e91b4ecbbb03fc27d49835de","scripts":{"dev":"tsup --watch","docs":"typedoc --out docs src/index.ts","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","typedoc":"^0.28.11","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.3.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.10.0_1758045781734_0.4338290117575976","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"nano-string-utils","version":"0.11.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.11.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"dist":{"shasum":"d607c3ef184830d90c4d0a632a03b668fda39e24","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.11.0.tgz","fileCount":10,"integrity":"sha512-fJ0ea8KamXiEO3bNIeuEgnMdPDYbHfq2gd59KYSXpjoJy9W4p/8PVGvhbd/FjgfY6Hr7dCXywXsP5A6vJYzmbQ==","signatures":[{"sig":"MEQCIHkeW8pqwqNY17c4GBlI+H06fhuoMi/B/3fNAu9t15i8AiAYX4UIHyVJXnPgxG8J2Ci1uc4ZlXdjRIVuIYjI3NfRvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":526597},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"a279606f26224fa1d91775d7f40dca3390dfb023","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.11.0_1758106926188_0.5709802338680117","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"nano-string-utils","version":"0.12.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.12.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"87d61b4ea265ffaa7d71117a0e01aa919488b093","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.12.0.tgz","fileCount":11,"integrity":"sha512-RcuGusEGeMONSCCF2eR4W8WQV0w6Cdwb8leosxb73ObhLCRUOT6XY83SqkasJO0IG/ptacu4FtAry66yrOxlAg==","signatures":[{"sig":"MEUCIQDcoz2drYAKQBX368eO/EtbB6NwCKfrGLAb9s+nQfh3fAIgOj/usTOpoV09S/OxA4Aks6fj5Iz/n2cV5MLoWSXyilk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542274},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"c0fc85833c771a689879b099490567a33f80afd8","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.12.0_1758108383267_0.9227401735426948","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"nano-string-utils","version":"0.13.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.13.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"9f28f94c7d21c6f7d3ea05fcede91daee436c576","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.13.0.tgz","fileCount":11,"integrity":"sha512-Rhago2EW36e3cba3tyl1yHjQel41uRobn89luhg5otl0oKymp3IB/k78Y6kJ3SLYSh/TxmO1UtG3/kHgyuDT4g==","signatures":[{"sig":"MEYCIQCBLCOo+H+cUNC4P0OQH3WLiZGNUa9aeeNJ+RGfjsVAoAIhAI4mPRXH8NVJVwIgxR+/oxaMp7SmzHM4qrdKo+dy4/qw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":543852},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"045554549701c90ff1f306dfe60264a9218f3817","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.13.0_1758288830032_0.054884679341310916","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"nano-string-utils","version":"0.14.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.14.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"162bd07b26b350e5551efa3087593d7e77199918","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.14.0.tgz","fileCount":12,"integrity":"sha512-Wj9lx1jLSldJ+c+O4G17ptCpIwImasOeeAcisnf18Uu+8pEHcYtiMuGAhZe2AxgqAhWhZreTFt8xKtRuV9X+3A==","signatures":[{"sig":"MEUCIQDXTc3i8P8QEln8Y3TLyQIrPI8gg9Wm6s3GRi76x365mQIgSV3dzwlR22nIMH/XN9xLIfdf61tvJWTDG2hk1/QYbLE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551392},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"59795339941109d6a4e5cef1fb80b40d0cb1a1e6","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.14.0_1758456773066_0.5687093413575484","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"nano-string-utils","version":"0.15.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.15.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"c8aec5fe4f7964bf8cc071a73b3323b375560772","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.15.0.tgz","fileCount":14,"integrity":"sha512-gk0Lps0WKPRwWBejnKeVkiPzGp2X1Ay3DeDVGi3C0/BrvzxDh5lRXGKAP+i1u/QPpxSQD61ON0qLLj8ONE2leQ==","signatures":[{"sig":"MEUCIAjrRCXObvDvmslzz/E2iEKlE10+8/zz2plkvs9tl+47AiEA9FhR1SEklWsf9IzXSwUcCMgryHgnArTXpQJkaiCKNVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":727408},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"0b835673ecefedfd20ec13d4ab26b50bb9a39100","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"6.5 KB"},{"path":"dist/index.cjs","limit":"6.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.15.0_1758458132367_0.659736311437948","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"nano-string-utils","version":"0.16.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.16.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"1df60ecfc6cc7c030f2b244689140467b2eccdda","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.16.0.tgz","fileCount":14,"integrity":"sha512-DbfRrUEejq2mwzrgyIvha1Nn4jLy4VWymOZ4mOnKAlebrxP3AnwkdZN2YPGntz6b7jxpgsSorKuPZBlEh/1bEw==","signatures":[{"sig":"MEUCIQC4HfLec0M6yUxF5XfdS12uuv8EYJlepRT79GIY5+kffgIgJVJAPrFK6tiMMRssw8/zmweRUPcgsBs51uK3hwAcm0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":789718},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"e36dfc69fa2d9aa88e533aa12e05a9d984c814de","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"7.5 KB"},{"path":"dist/index.cjs","limit":"7.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.16.0_1758571343348_0.9638812796658938","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"nano-string-utils","version":"0.17.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.17.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"da1bcce48fb92a7e9b3b2d578977e174fcc4c2ce","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.17.0.tgz","fileCount":14,"integrity":"sha512-noIjw7GKCwa7E+YQNR+rK/BOGByFh7GGezHma/37ICZ91g5QuKf5tlaNVrti0P3Zzp6/skpcjEFl7GbKVMoeHw==","signatures":[{"sig":"MEYCIQCZnk5sTcdf5+diBxSi2+cO5a6Q5+Pa+H6l+/lz6aBuWAIhAK2cD8aWXZl5euUYBSCdIc4adLUFMsa1me5pBA902kz1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880834},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"73eb115ddbf2c138989162deeffcca47d85e8eb7","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"9 KB"},{"path":"dist/index.cjs","limit":"9.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.17.0_1758971701150_0.4848625252902048","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"nano-string-utils","version":"0.18.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.18.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"1a9d988a9d186b5d1fd50d335d2db4f2047f5a65","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.18.0.tgz","fileCount":14,"integrity":"sha512-rzen+npRp9yyEhAgsbi8jMJ4n49jfI8fxgexxBvV76xRFS+SCOCKknKKYo4/9Vq4UbOSSMoMf8jN9HrRk4Xi/g==","signatures":[{"sig":"MEUCIG+MAGoOecb4d9nAK3q2jGKy1vGzVLV52ZCgIAUJTHMwAiEAkNinYdCYQ3HWOAyxO9x/GIFJ0AG9Bo8kBrBmjcbRXbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":927460},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"962523493b5a755f3987387f1c04fc5679cf3d70","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"9.1 KB"},{"path":"dist/index.cjs","limit":"9.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.18.0_1759274733968_0.4668569978290724","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"nano-string-utils","version":"0.19.0","keywords":["string","utils","utilities","lightweight","zero-dependencies","slugify","camelCase","snakeCase","typescript"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.19.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"852aee99b87c8d4b656b498b6f31de0b89b31990","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.19.0.tgz","fileCount":14,"integrity":"sha512-zVZ0QjXsKZfQOgE0u8cgrP2+rGXbedMt1UU9uvaESjq51AH7V9BIuE7ZvRUxxbOeUD3vb6Gaf+3DA2ru4MpdlQ==","signatures":[{"sig":"MEQCIG8tGVMFfuqhYkN8D7xOMB3i0V+GL61OmSUCfnAlYvyaAiAdOFcmUVs+XKkEo7+7RfTNyclpwA1Tn1IeGaBsLJ5n0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":915264},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"518a66af679bac31a4b37b3517f443254f3183aa","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","bench:generate":"npm run build && npx tsx benchmarks/performance-benchmarks.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"9.1 KB"},{"path":"dist/index.cjs","limit":"9.5 KB"}],"_npmVersion":"11.2.0","description":"Ultra-lightweight string utilities with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.19.0_1759577935297_0.22114020324179817","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"nano-string-utils","version":"0.19.1","keywords":["string","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","email-validation","url-validation","sanitize","fuzzy-match","levenshtein","lightweight","micro"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.19.1","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"ef7ff263b61009c61ecfb149f73a53ff38a3cbd4","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.19.1.tgz","fileCount":14,"integrity":"sha512-FIGwOI2H4EcmQdufvi9HQk+t6FZrumjyFloHCbuL4L+A2t8r7GqpMQjqGBw6xOlMM5850AuM+ouMeouXiLPLNA==","signatures":[{"sig":"MEUCIQDIp5tl2Q3S1SSXg/C4Tm10oe7fADqEROl5Dr436lgcPAIgNzBSk21VmuMXkbQI47VS5bx13433mjiOKW6tb6jYHNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":916424},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"b942cfbfc277d9f2cf96aa57c81cdb783a6972b6","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","bench:all":"tsx benchmarks/run-benchmarks.ts","typecheck":"tsc --noEmit","bench:perf":"vitest bench benchmarks/performance.bench.ts","bench:size":"tsx benchmarks/bundle-size.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","bench:generate":"npm run build && npx tsx benchmarks/performance-benchmarks.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"9.1 KB"},{"path":"dist/index.cjs","limit":"9.5 KB"}],"_npmVersion":"11.2.0","description":"49 tree-shakeable string utilities with zero dependencies. TypeScript-first, <1KB per function. Case conversion, validation, sanitization, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.19.1_1759850437884_0.3846686392749421","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"nano-string-utils","version":"0.20.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","sanitize","sanitization","xss-prevention","fuzzy-match","levenshtein","lightweight","tiny","performance","esm","lodash-alternative","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.20.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"ac914c882734c80fad0bddedb525454ad829ba5c","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.20.0.tgz","fileCount":14,"integrity":"sha512-8ghi11XjhuswBL9zyjY43vXCwhMPE+1l1iCfY0ouD+11coCK2vz07FxWI/w5tLhNBpjBDsfdsk+vCSKNDLnahg==","signatures":[{"sig":"MEUCIGS4J5+5HRIziqL251kDu0GnOFpHK5xdo2lJZabQB/EjAiEAzv/JVgKTRBTIV1GC/PYyvCjmyf6Ikz6j3OXfuSeYEUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988023},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"a243e8feb6d0d2f5a7ed31cd1c5ee83fb27dd185","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"9.5 KB"},{"path":"dist/index.cjs","limit":"10 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.20.0_1760032728261_0.5109361306869813","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"nano-string-utils","version":"0.21.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","sanitize","sanitization","xss-prevention","fuzzy-match","levenshtein","lightweight","tiny","performance","esm","lodash-alternative","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.21.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"2783a72e8c093208425226ea3acf2d770e7fef46","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.21.0.tgz","fileCount":14,"integrity":"sha512-xgSWEOPrNZT+iZ2oyPeKCofZJQIkUqJg6FZiK7L2ExCj0MZw1jBxhjvS7hWbXuH7n5Q+WHl5jAg+bkzkAI/mrA==","signatures":[{"sig":"MEQCIA8j8dliGOcEhxBOObqGHH31HJ7AHhraBWjpZAln52B+AiBcyRMzlnV2EwMfQBZKrfDSl2VZDWiRkI6iCDob0k/dYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1017922},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"8a6cd3e19885bcb709568e7ee4ddeb99a40fb9ab","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.21.0_1760545461196_0.9955142854087258","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"nano-string-utils","version":"0.22.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","sanitize","sanitization","xss-prevention","fuzzy-match","levenshtein","lightweight","tiny","performance","esm","lodash-alternative","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.22.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"aa016e6003ab86176caf30b254d185248c539a68","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.22.0.tgz","fileCount":14,"integrity":"sha512-1Y/+r9x/Zu36SqpsAoNvMl9/EpAXPUPtlQJkvBYf8uCe5EmK1X3AFLBwZboRPdTa0PBYRUzuyGPGujCsHe4Kzg==","signatures":[{"sig":"MEYCIQDl7TbRuJErGLDXPWk5JzIpa3zGf+05lyeJY6dOpgc4jgIhANr2CVVOWh97HTrTp6UUQNn6jqrL40IT5RzKqFehP25X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1024688},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"5f63fc197fae2a8f7d8f37240a3c8d978b5c36bf","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.22.0_1760637497252_0.5071879730624074","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"nano-string-utils","version":"0.23.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","sanitize","sanitization","xss-prevention","fuzzy-match","levenshtein","lightweight","tiny","performance","esm","lodash-alternative","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.23.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"ef7e8aa21d2ab876e9c0f348af78e67c726973fb","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.23.0.tgz","fileCount":14,"integrity":"sha512-OX6LY8oM8EpdpBUgybReRcdOUIXrsmHO0jpV+nYSbULdRfiXk/fghxwO/a0EXbLNUQfRhxHU/I7mx1JscMWaSg==","signatures":[{"sig":"MEYCIQDDWFGRbvS0yqtuGJy7mNgspVjBjY0ZkL9wcZQ/TGxxIQIhAPtdBy+003MxKp4fUZAG0borgszyHRsUe04fOLCbzzm2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1111535},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"a41dd9da60b6ec49dd9c1a60947e261d3995b9e7","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.23.0_1761083287922_0.8566337228306105","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"nano-string-utils","version":"0.24.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","sanitize","sanitization","xss-prevention","fuzzy-match","levenshtein","lightweight","tiny","performance","esm","lodash-alternative","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.24.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"dfc015aba297987a1d92906688ab373779a1b874","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.24.0.tgz","fileCount":14,"integrity":"sha512-1k54Zi0w6HsP7PVoslO4Ts4MXAjZarHxqQ3TBVQHA9QFhazjEHbV8MHL3ZDc3dUvO60Yt5iXQdKBp25MmE+Z+w==","signatures":[{"sig":"MEYCIQDG8wmZGKmx7TmUMVqMV07hEv8uSVfMnqaG1ZHVJRa3ZgIhAMOm2I5onadBV1RecFgeRCO7RtQMl1uKfFWU+pTy6iKs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1159840},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"47efc44accbb9f94195f267db6709ef54cd7096b","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.24.0_1762548878394_0.9942627195974165","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"nano-string-utils","version":"0.25.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","sanitize","sanitization","xss-prevention","fuzzy-match","levenshtein","lightweight","tiny","performance","esm","lodash-alternative","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.25.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"8d678a66cdd66e38521491b8c7f17f3352405b89","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.25.0.tgz","fileCount":14,"integrity":"sha512-3+E8Appzv3iphKuVInW76eciamk47rvnVpRX5oR1uM6OyBe8KxDmbDYWvFnywZl/GNLMv7pQkgr/SrpPRWdpFA==","signatures":[{"sig":"MEQCIAqvsdbojR5+OVIBAs+atmQuzwGd4jlGoxP9hanVKa2aAiAdDts/E2Fqdo08RSxOLBSrGXC7SQDscrC2qrNmZVx4eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1175209},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"7e6bfbd2c4bbebd50adaf6971fcf9bcdaf720371","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.25.9","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.25.0_1762551537180_0.7995459864607872","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"nano-string-utils","version":"0.26.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","sanitize","sanitization","xss-prevention","fuzzy-match","levenshtein","lightweight","tiny","performance","esm","lodash-alternative","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.26.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://github.com/Zheruel/nano-string-utils#readme","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"4b89a5a3be1670c97bed3ef647ee31069b10612f","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.26.0.tgz","fileCount":14,"integrity":"sha512-hEYvwlqD1D7fGyLVQOL0M/FwjQegx0zPun5pTSjPyMN1dqLRp0LWz5lsW1lHo1VRsXiSaXCGLmaGOpYjmA7E+A==","signatures":[{"sig":"MEUCIHmY/xCbITLANJwy47YwIZGF8z+YFBE/3kn3hUXQ+2YOAiEAvIT/HghWSo3J+VlwuvJ9IsM5vXa/BQNDz/YufXpVtjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1193736},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"40ab11529be5eb6293fd0e5e70d2497ea3af39fb","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","lodash":"^4.17.21","vitest":"^3.2.4","esbuild":"^0.27.0","tinybench":"^5.0.1","@types/bun":"^1.2.22","es-toolkit":"^1.39.10","size-limit":"^11.2.0","typescript":"^5.9.2","@types/node":"^24.5.0","@types/lodash":"^4.17.20","@vitest/coverage-v8":"^3.2.4","@size-limit/preset-small-lib":"^11.2.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.26.0_1768487183188_0.22111003507815363","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"nano-string-utils","version":"0.27.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","string-library","text-utils","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","form-validation","input-validation","sanitize","sanitization","string-sanitization","xss-prevention","xss","html-escape","fuzzy-match","levenshtein","lightweight","tiny","minimal","bundle-size","performance","esm","lodash-alternative","lodash-replacement","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.27.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://zheruel.github.io/nano-string-utils/","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"76917ebd892001e402348bb0c73cc5e13b3e61d9","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.27.0.tgz","fileCount":14,"integrity":"sha512-qFEZyV7RG9q7ENXbzWlbjsFwuzON5A7bcbst/LUYFTbhtvBH9k9gCZ2B2wJ++jbMLd08w8u6vQhrSOSpKVrOnw==","signatures":[{"sig":"MEUCIQCVvyTSXXo9LHXeep6HYghdI1k5Mw7TFBWU856mx+2qjgIgOr6UxgFHsPa5vu/Ibfont8rMYG2s411Yo/tfMMovRkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1194202},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"0c79e26e921c14ae2fc07c162244950c97bf92c1","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","lodash":"^4.17.21","vitest":"^4.0.17","esbuild":"^0.27.2","tinybench":"^6.0.0","@types/bun":"^1.3.6","es-toolkit":"^1.43.0","size-limit":"^12.0.0","typescript":"^5.9.2","@types/node":"^25.0.8","@types/lodash":"^4.17.23","@vitest/coverage-v8":"^4.0.17","@size-limit/preset-small-lib":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.27.0_1768493215141_0.5309107394365338","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"nano-string-utils","version":"0.28.0","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","string-library","text-utils","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","form-validation","input-validation","sanitize","sanitization","string-sanitization","xss-prevention","xss","html-escape","fuzzy-match","levenshtein","lightweight","tiny","minimal","bundle-size","performance","esm","lodash-alternative","lodash-replacement","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","_id":"nano-string-utils@0.28.0","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"homepage":"https://zheruel.github.io/nano-string-utils/","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"bin":{"nano-string":"bin/nano-string.js"},"dist":{"shasum":"dbc3af9edd1c4043f3433302af310f7f4a6ca4c6","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.28.0.tgz","fileCount":14,"integrity":"sha512-no0Rw8rH6YhVbRTF/yUBAleXVFUf1EyZRY3QswFYGaVBez1ah1o+qHzvHmCA9YW7tm83vhDfCchTj4ZH2PNtxw==","signatures":[{"sig":"MEYCIQDaAY3qjLoZJWKBl73rys5q+lTEC6CIHJSlMs1IHsYusAIhAOX2HJAXpkY0HarBDPj/PAqUYM03SAUiiaj4ysu++95X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1253355},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","module":"./dist/index.js","browser":{"./dist/index.cjs":"./dist/index.js"},"engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"b410cfb500518d02b52f52a9d3232dd1257ae140","scripts":{"dev":"tsup --watch","size":"size-limit","test":"vitest","bench":"vitest bench","build":"tsup","docs:dev":"cd docs-src && npm run dev","typecheck":"tsc --noEmit","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","test:coverage":"npm run build && vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"zheruel","email":"tinzeljar@gmail.com"},"jsdelivr":"./dist/index.iife.js","repository":{"url":"git+https://github.com/Zheruel/nano-string-utils.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"_npmVersion":"11.2.0","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","lodash":"^4.17.21","vitest":"^4.0.17","esbuild":"^0.27.2","tinybench":"^6.0.0","@types/bun":"^1.3.6","es-toolkit":"^1.44.0","size-limit":"^12.0.0","typescript":"^5.9.2","@types/node":"^25.0.9","@types/lodash":"^4.17.23","@vitest/coverage-v8":"^4.0.17","@size-limit/preset-small-lib":"^12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nano-string-utils_0.28.0_1769191679061_0.7798558407364575","host":"s3://npm-registry-packages-npm-production"}},"0.28.1":{"name":"nano-string-utils","version":"0.28.1","description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","unpkg":"./dist/index.iife.js","jsdelivr":"./dist/index.iife.js","browser":{"./dist/index.cjs":"./dist/index.js"},"bin":{"nano-string":"bin/nano-string.js"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"sideEffects":false,"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest","test:coverage":"npm run build && vitest run --coverage","bench":"vitest bench","bench:data":"npm run build && npx tsx benchmarks/bundle-size.ts && npx tsx benchmarks/performance-benchmarks.ts","typecheck":"tsc --noEmit","docs:dev":"cd docs-src && npm run dev","docs:build":"cd docs-src && npm run build","docs:preview":"cd docs-src && npm run preview","size":"size-limit","assets":"node scripts/render-assets.mjs","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/Zheruel/nano-string-utils.git"},"keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","string-library","text-utils","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","form-validation","input-validation","sanitize","sanitization","string-sanitization","xss-prevention","xss","html-escape","fuzzy-match","levenshtein","lightweight","tiny","minimal","bundle-size","performance","esm","lodash-alternative","lodash-replacement","unicode","pluralize"],"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"homepage":"https://zheruel.github.io/nano-string-utils/","devDependencies":{"@size-limit/preset-small-lib":"^12.1.0","@types/bun":"^1.3.14","@types/lodash":"^4.17.24","@types/node":"^26.1.1","@vitest/coverage-v8":"^4.1.10","es-toolkit":"^1.49.0","esbuild":"^0.28.1","lodash":"^4.18.1","size-limit":"^12.1.0","tinybench":"^6.1.2","tsup":"^8.5.1","tsx":"^4.23.1","typescript":"^5.9.3","vitest":"^4.1.10"},"engines":{"node":">=20"},"size-limit":[{"path":"dist/index.js","limit":"12 KB"},{"path":"dist/index.cjs","limit":"12.5 KB"}],"gitHead":"7669321411c322c1f158a0963cfaafb45002136e","_id":"nano-string-utils@0.28.1","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-/0WDfDDXBI5BQyS+em3LSP+1Su0AtCZLYb/DVUQEzFR+nqVO0K7T1F3s+W5Fa6Za2hmapq0VsVBO7NWNubSquw==","shasum":"d15863a8b32df010a6d2fe5574c80ffc89366491","tarball":"https://registry.npmjs.org/nano-string-utils/-/nano-string-utils-0.28.1.tgz","fileCount":14,"unpackedSize":1219369,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/nano-string-utils@0.28.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDgCVJwt5F+F03A1UEEQ8pWxk/Y2B+Adnyq7XeLLnjxIwIgZTPUnAnmYBfyCDqTphAbfZ1cM+I80zamvmyuRVn3IdQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:56f82e96-a17b-46f0-b9a3-410bc443f4b0"}},"directories":{},"maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nano-string-utils_0.28.1_1784844973172_0.42769222962177933"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-01T14:02:00.248Z","modified":"2026-07-23T22:16:13.896Z","0.1.0":"2025-09-01T14:02:00.520Z","0.2.0":"2025-09-02T19:11:22.637Z","0.3.0":"2025-09-03T14:38:57.177Z","0.4.0":"2025-09-03T16:34:44.472Z","0.4.1":"2025-09-03T20:20:39.223Z","0.5.0":"2025-09-04T15:36:02.614Z","0.5.1":"2025-09-04T16:16:39.315Z","0.5.2":"2025-09-05T23:06:29.870Z","0.6.0":"2025-09-06T16:03:16.036Z","0.7.0":"2025-09-06T16:57:53.326Z","0.8.0":"2025-09-07T07:12:09.674Z","0.9.0":"2025-09-07T07:49:24.577Z","0.9.1":"2025-09-07T11:12:32.759Z","0.10.0":"2025-09-16T18:03:01.989Z","0.11.0":"2025-09-17T11:02:06.391Z","0.12.0":"2025-09-17T11:26:23.512Z","0.13.0":"2025-09-19T13:33:50.253Z","0.14.0":"2025-09-21T12:12:53.270Z","0.15.0":"2025-09-21T12:35:32.594Z","0.16.0":"2025-09-22T20:02:23.636Z","0.17.0":"2025-09-27T11:15:01.552Z","0.18.0":"2025-09-30T23:25:34.196Z","0.19.0":"2025-10-04T11:38:55.531Z","0.19.1":"2025-10-07T15:20:38.106Z","0.20.0":"2025-10-09T17:58:48.475Z","0.21.0":"2025-10-15T16:24:21.451Z","0.22.0":"2025-10-16T17:58:17.516Z","0.23.0":"2025-10-21T21:48:08.173Z","0.24.0":"2025-11-07T20:54:38.617Z","0.25.0":"2025-11-07T21:38:57.388Z","0.26.0":"2026-01-15T14:26:23.393Z","0.27.0":"2026-01-15T16:06:55.321Z","0.28.0":"2026-01-23T18:07:59.298Z","0.28.1":"2026-07-23T22:16:13.440Z"},"bugs":{"url":"https://github.com/Zheruel/nano-string-utils/issues"},"author":{"name":"Tin Zeljar","email":"tinzeljar@gmail.com"},"license":"MIT","homepage":"https://zheruel.github.io/nano-string-utils/","keywords":["string","text","utilities","string-utils","string-manipulation","text-processing","string-library","text-utils","case-conversion","slugify","camelCase","kebabCase","snakeCase","pascalCase","tree-shakeable","zero-dependencies","typescript","type-safe","email-validation","url-validation","form-validation","input-validation","sanitize","sanitization","string-sanitization","xss-prevention","xss","html-escape","fuzzy-match","levenshtein","lightweight","tiny","minimal","bundle-size","performance","esm","lodash-alternative","lodash-replacement","unicode","pluralize"],"repository":{"type":"git","url":"git+https://github.com/Zheruel/nano-string-utils.git"},"description":"Modern string utilities with zero dependencies. Tree-shakeable (<1KB each), TypeScript-first, type-safe. Validation, XSS prevention, case conversion, fuzzy matching & more.","maintainers":[{"name":"zheruel","email":"tinzeljar@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/Zheruel/nano-string-utils/main/assets/mark.png\" width=\"76\" alt=\"nano-string-utils logo: a tangled string threading a precision node and leaving as ordered lines\" />\n</p>\n\n<h1 align=\"center\">nano-string-utils</h1>\n\n<p align=\"center\">\n  <strong>61 string utilities for TypeScript and JavaScript.</strong><br>\n  Zero dependencies, tree-shakeable, under 1 KB each.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/nano-string-utils\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/nano-string-utils.svg?color=60a5fa\"></a>\n  <a href=\"https://jsr.io/@zheruel/nano-string-utils\"><img alt=\"JSR\" src=\"https://jsr.io/badges/@zheruel/nano-string-utils\"></a>\n  <a href=\"https://bundlephobia.com/package/nano-string-utils\"><img alt=\"minzipped size\" src=\"https://img.shields.io/bundlephobia/minzip/nano-string-utils?color=34d399\"></a>\n  <a href=\"https://github.com/Zheruel/nano-string-utils/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/Zheruel/nano-string-utils/actions/workflows/ci.yml/badge.svg\"></a>\n  <a href=\"https://opensource.org/licenses/MIT\"><img alt=\"MIT license\" src=\"https://img.shields.io/badge/license-MIT-64748b.svg\"></a>\n  <img alt=\"dependencies: zero\" src=\"https://img.shields.io/badge/dependencies-0-34d399.svg\">\n  <img alt=\"TypeScript\" src=\"https://img.shields.io/badge/TypeScript-strict-3178c6.svg?logo=typescript&logoColor=white\">\n</p>\n\n![Abstract illustration: a tangle of chaotic grey threads enters a small precision mechanism and leaves as evenly spaced blue and green ribbons](https://raw.githubusercontent.com/Zheruel/nano-string-utils/main/assets/hero.png)\n\n**nano-string-utils** is a modern string utility library for JavaScript and TypeScript: case conversion (`camelCase`, `kebabCase`, `snake_case`, `PascalCase`), `slugify`, `truncate`, email and URL validation, HTML escaping and XSS sanitization, fuzzy matching, Levenshtein distance, pluralization, Unicode and emoji-safe helpers, and more. It has **no runtime dependencies**, ships **ESM and CommonJS**, and every function is independently importable — so a lodash or underscore.string replacement costs you bytes, not kilobytes.\n\nWorks in Node.js, Deno, Bun, browsers, and edge runtimes.\n\n> **[Interactive playground and API docs →](https://zheruel.github.io/nano-string-utils/)** · **[Migrating from lodash →](https://zheruel.github.io/nano-string-utils/#migration)**\n\n## Why nano-string-utils\n\n- **Nothing you didn't ask for.** Zero runtime dependencies means zero transitive supply-chain surface. The whole library is 9.6 KB brotlied; a typical import is a few hundred bytes.\n- **Real tree-shaking.** Every function lives in its own module and is marked side-effect free, so bundlers drop what you don't reference.\n- **Types that do work.** Branded types make a validated `Email` or `URL` unforgeable, and template literal types compute exact return values at compile time.\n- **Null-safe by default.** Almost every function takes `null` or `undefined` and passes it straight through instead of throwing. See [Null safety](#null-safety) for the four that don't.\n- **Unicode-aware where it counts.** `graphemes`, `codePoints`, `reverse`, and `toASCII` handle emoji, combining marks, and surrogate pairs correctly.\n- **Batteries for real apps.** XSS sanitization, PII redaction, fuzzy search scoring, and sentence splitting are in the box, not in three more dependencies.\n- **1,686 tests** across 69 files, run in CI on Node 20, 22, and 24.\n\n![Diagram: importing slugify, camelCase and isEmail ships 595 bytes gzipped, while the other 58 functions in the library contribute zero bytes because they are never referenced](https://raw.githubusercontent.com/Zheruel/nano-string-utils/main/assets/tree-shaking.png)\n\n## Install\n\n```bash\nnpm install nano-string-utils\npnpm add nano-string-utils\nyarn add nano-string-utils\nbun add nano-string-utils\n```\n\n```bash\n# Deno, from JSR\ndeno add jsr:@zheruel/nano-string-utils\n```\n\n<details>\n<summary>Browser via CDN</summary>\n\n```html\n<!-- ES modules -->\n<script type=\"module\">\n  import {\n    slugify,\n    camelCase,\n  } from \"https://unpkg.com/nano-string-utils/dist/index.js\";\n\n  slugify(\"Hello World\"); // 'hello-world'\n</script>\n\n<!-- Or a global build -->\n<script src=\"https://unpkg.com/nano-string-utils/dist/index.iife.js\"></script>\n<script>\n  nanoStringUtils.slugify(\"Hello World!\"); // 'hello-world'\n</script>\n```\n\n</details>\n\n## Quick start\n\n```javascript\nimport {\n  slugify,\n  camelCase,\n  truncate,\n  isEmail,\n  fuzzyMatch,\n  sanitize,\n} from \"nano-string-utils\";\n\n// Reshape\nslugify(\"Hello World!\"); // 'hello-world'\ncamelCase(\"hello-world\"); // 'helloWorld'\ntruncate(\"Long text here\", 10); // 'Long te...'\n\n// Validate\nisEmail(\"user@example.com\"); // true\nisEmail(\"invalid.email\"); // false\n\n// Search\nfuzzyMatch(\"gto\", \"goToLine\"); // { matched: true, score: 0.546 }\nfuzzyMatch(\"abc\", \"xyz\"); // null\n\n// Make safe\nsanitize(\"<script>alert('xss')</script>Hello\"); // 'Hello'\nsanitize(\"<b>Bold</b> text\", { allowedTags: [\"b\"] }); // '<b>Bold</b> text'\n\n// Null-safe, always\nslugify(null); // null — no throw\n```\n\n## The 61 functions\n\nEvery function links to a live, editable example in the [playground](https://zheruel.github.io/nano-string-utils/). Sizes are gzipped, measured per function with the rest of the library tree-shaken away.\n\n### Case conversion\n\n| Function | What it does | Gzipped |\n| --- | --- | --- |\n| [`camelCase`](https://zheruel.github.io/nano-string-utils/#camelCase) | Convert to `camelCase` | 235 B |\n| [`pascalCase`](https://zheruel.github.io/nano-string-utils/#pascalCase) | Convert to `PascalCase` | 222 B |\n| [`kebabCase`](https://zheruel.github.io/nano-string-utils/#kebabCase) | Convert to `kebab-case` | 201 B |\n| [`snakeCase`](https://zheruel.github.io/nano-string-utils/#snakeCase) | Convert to `snake_case` | 200 B |\n| [`constantCase`](https://zheruel.github.io/nano-string-utils/#constantCase) | Convert to `CONSTANT_CASE` | 228 B |\n| [`dotCase`](https://zheruel.github.io/nano-string-utils/#dotCase) | Convert to `dot.case` | 207 B |\n| [`pathCase`](https://zheruel.github.io/nano-string-utils/#pathCase) | Convert to `path/case` | 207 B |\n| [`sentenceCase`](https://zheruel.github.io/nano-string-utils/#sentenceCase) | Convert to `Sentence case` | 414 B |\n| [`titleCase`](https://zheruel.github.io/nano-string-utils/#titleCase) | Convert to `Title Case`, keeping small words lowercase | 561 B |\n\n### String manipulation\n\n| Function | What it does | Gzipped |\n| --- | --- | --- |\n| [`slugify`](https://zheruel.github.io/nano-string-utils/#slugify) | Turn any string into a URL-safe slug | 138 B |\n| [`truncate`](https://zheruel.github.io/nano-string-utils/#truncate) | Cut a string to a max length and append a suffix | 276 B |\n| [`excerpt`](https://zheruel.github.io/nano-string-utils/#excerpt) | Truncate at a word boundary instead of mid-word | 261 B |\n| [`capitalize`](https://zheruel.github.io/nano-string-utils/#capitalize) | Uppercase the first character | 99 B |\n| [`reverse`](https://zheruel.github.io/nano-string-utils/#reverse) | Reverse a string, surrogate-pair safe | 229 B |\n| [`pad`](https://zheruel.github.io/nano-string-utils/#pad) | Pad both ends to a target length | 214 B |\n| [`padStart`](https://zheruel.github.io/nano-string-utils/#padStart) | Pad the start to a target length | 176 B |\n| [`padEnd`](https://zheruel.github.io/nano-string-utils/#padEnd) | Pad the end to a target length | 180 B |\n| [`trim`](https://zheruel.github.io/nano-string-utils/#trim) | Trim arbitrary characters from both ends | 179 B |\n| [`trimStart`](https://zheruel.github.io/nano-string-utils/#trimStart) | Trim arbitrary characters from the start | 165 B |\n| [`trimEnd`](https://zheruel.github.io/nano-string-utils/#trimEnd) | Trim arbitrary characters from the end | 170 B |\n| [`mask`](https://zheruel.github.io/nano-string-utils/#mask) | Mask characters, e.g. for card or phone numbers | 229 B |\n| [`wrap`](https://zheruel.github.io/nano-string-utils/#wrap) | Word-wrap text to a given column width | 329 B |\n| [`randomString`](https://zheruel.github.io/nano-string-utils/#randomString) | Generate a random string of a given length | 227 B |\n| [`wordCount`](https://zheruel.github.io/nano-string-utils/#wordCount) | Count words | 123 B |\n| [`countSubstrings`](https://zheruel.github.io/nano-string-utils/#countSubstrings) | Count non-overlapping occurrences of a substring | 134 B |\n\n### Validation\n\n| Function | What it does | Gzipped |\n| --- | --- | --- |\n| [`isEmail`](https://zheruel.github.io/nano-string-utils/#isEmail) | Validate an email address, with opt-in international support | 222 B |\n| [`isUrl`](https://zheruel.github.io/nano-string-utils/#isUrl) | Validate a URL | 168 B |\n| [`isUUID`](https://zheruel.github.io/nano-string-utils/#isUUID) | Validate a UUID | 123 B |\n| [`isHexColor`](https://zheruel.github.io/nano-string-utils/#isHexColor) | Validate a hex colour such as `#ff5733` | 138 B |\n| [`isNumeric`](https://zheruel.github.io/nano-string-utils/#isNumeric) | Check the string represents a number | 122 B |\n| [`isInteger`](https://zheruel.github.io/nano-string-utils/#isInteger) | Check the string represents an integer | 115 B |\n| [`isAlphanumeric`](https://zheruel.github.io/nano-string-utils/#isAlphanumeric) | Check the string is letters and digits only | 123 B |\n| [`isASCII`](https://zheruel.github.io/nano-string-utils/#isASCII) | Check the string is pure ASCII | 145 B |\n| [`isBlank`](https://zheruel.github.io/nano-string-utils/#isBlank) | Check the string is empty or only whitespace | 65 B |\n| [`detectScript`](https://zheruel.github.io/nano-string-utils/#detectScript) | Detect the dominant writing system, e.g. Latin or Cyrillic | 540 B |\n| [`classifyText`](https://zheruel.github.io/nano-string-utils/#classifyText) | Classify text as prose, code, an identifier and more | 897 B |\n\n### Security and escaping\n\n| Function | What it does | Gzipped |\n| --- | --- | --- |\n| [`sanitize`](https://zheruel.github.io/nano-string-utils/#sanitize) | Strip dangerous HTML to prevent XSS | 811 B |\n| [`stripHtml`](https://zheruel.github.io/nano-string-utils/#stripHtml) | Remove every HTML tag | 85 B |\n| [`escapeHtml`](https://zheruel.github.io/nano-string-utils/#escapeHtml) | Escape `&`, `<`, `>`, `\"` and `'` | 136 B |\n| [`unescapeHtml`](https://zheruel.github.io/nano-string-utils/#unescapeHtml) | Decode HTML entities back to characters | 155 B |\n| [`redact`](https://zheruel.github.io/nano-string-utils/#redact) | Redact emails, phone numbers, cards and other PII | 728 B |\n| [`templateSafe`](https://zheruel.github.io/nano-string-utils/#templateSafe) | Interpolate a template with automatic HTML escaping | 501 B |\n\n### Search, diff and matching\n\n| Function | What it does | Gzipped |\n| --- | --- | --- |\n| [`fuzzyMatch`](https://zheruel.github.io/nano-string-utils/#fuzzyMatch) | Fuzzy match with a relevance score, for command palettes | 595 B |\n| [`levenshtein`](https://zheruel.github.io/nano-string-utils/#levenshtein) | Edit distance between two strings | 413 B |\n| [`levenshteinNormalized`](https://zheruel.github.io/nano-string-utils/#levenshteinNormalized) | Edit distance normalised to a 0–1 similarity | 472 B |\n| [`diff`](https://zheruel.github.io/nano-string-utils/#diff) | Character-level diff between two strings | 265 B |\n| [`highlight`](https://zheruel.github.io/nano-string-utils/#highlight) | Wrap search terms in markup for result highlighting | 461 B |\n| [`template`](https://zheruel.github.io/nano-string-utils/#template) | Interpolate `{{placeholders}}` from an object | 302 B |\n| [`hashString`](https://zheruel.github.io/nano-string-utils/#hashString) | Fast non-cryptographic string hash | 155 B |\n| [`memoize`](https://zheruel.github.io/nano-string-utils/#memoize) | Memoise a string function with an LRU-bounded cache | 334 B |\n\n### Unicode and international\n\n| Function | What it does | Gzipped |\n| --- | --- | --- |\n| [`graphemes`](https://zheruel.github.io/nano-string-utils/#graphemes) | Split into user-perceived characters, emoji-aware | 171 B |\n| [`codePoints`](https://zheruel.github.io/nano-string-utils/#codePoints) | Split into Unicode code points | 131 B |\n| [`deburr`](https://zheruel.github.io/nano-string-utils/#deburr) | Strip accents and diacritics, `café` becomes `cafe` | 273 B |\n| [`toASCII`](https://zheruel.github.io/nano-string-utils/#toASCII) | Transliterate to an ASCII-safe representation | 1.2 KB |\n| [`normalizeWhitespace`](https://zheruel.github.io/nano-string-utils/#normalizeWhitespace) | Collapse exotic Unicode spaces into plain spaces | 268 B |\n| [`removeNonPrintable`](https://zheruel.github.io/nano-string-utils/#removeNonPrintable) | Strip control and non-printable characters | 304 B |\n\n### Natural language\n\n| Function | What it does | Gzipped |\n| --- | --- | --- |\n| [`pluralize`](https://zheruel.github.io/nano-string-utils/#pluralize) | Pluralise an English word, with irregulars | 459 B |\n| [`singularize`](https://zheruel.github.io/nano-string-utils/#singularize) | Singularise an English word | 562 B |\n| [`humanizeList`](https://zheruel.github.io/nano-string-utils/#humanizeList) | Join a list as `a, b, and c` | 251 B |\n| [`smartSplit`](https://zheruel.github.io/nano-string-utils/#smartSplit) | Split into sentences without breaking on `Dr.` or `3.5` | 586 B |\n| [`extractEntities`](https://zheruel.github.io/nano-string-utils/#extractEntities) | Pull emails, URLs, mentions, hashtags and dates out of text | 572 B |\n\n## Size and speed\n\n![Chart comparing gzipped bundle cost per function on a log scale: nano-string-utils and es-toolkit sit between 99 and 331 bytes while lodash ranges from 1.7 KB to 3.4 KB](https://raw.githubusercontent.com/Zheruel/nano-string-utils/main/assets/bundle-size.png)\n\nThe whole library is **9.6 KB brotlied** with every function included. In practice you import a handful and ship a few hundred bytes.\n\n### Against lodash and es-toolkit\n\nNumbers below are gzipped bytes, generated by `npm run bench:data`.\n\n| Function     | nano  | es-toolkit | lodash |\n| ------------ | ----- | ---------- | ------ |\n| `capitalize` | 99 B  | 107 B      | 1.7 KB |\n| `kebabCase`  | 201 B | 197 B      | 2.8 KB |\n| `snakeCase`  | 200 B | 197 B      | 2.8 KB |\n| `pascalCase` | 222 B | 231 B      | —      |\n| `camelCase`  | 235 B | 273 B      | 3.5 KB |\n| `deburr`     | 273 B | 332 B      | 1.8 KB |\n| `truncate`   | 276 B | —          | 2.9 KB |\n| `template`   | 302 B | —          | 5.6 KB |\n\nAgainst **lodash**, nano is 7–19× smaller on every function both libraries ship. Against **es-toolkit**, sizes are within a few bytes either way — the difference there is scope, not weight: validation, sanitization, PII redaction, fuzzy matching, and Unicode helpers have no es-toolkit equivalent.\n\n### Throughput\n\nOperations per second, higher is better. Across the 16 benchmarked functions nano leads on 8, lodash on 4, and es-toolkit on 4.\n\n| Function     | nano   | lodash | es-toolkit |\n| ------------ | ------ | ------ | ---------- |\n| `capitalize` | 21.2M  | 16.2M  | 21.2M      |\n| `snakeCase`  | 4.2M   | 3.1M   | 4.1M       |\n| `camelCase`  | 3.3M   | 2.2M   | 3.3M       |\n| `template`   | 996K   | 53K    | —          |\n| `padStart`   | 7.9M   | 18.8M  | —          |\n| `deburr`     | 2.3M   | 2.9M   | 2.3M       |\n\nCase conversion is on par with es-toolkit and roughly 1.4× faster than lodash; `template` is about 19× faster than lodash's. lodash is genuinely faster at padding and at truncating long strings. Run `npm run bench` to reproduce any of this on your own machine.\n\n**[Full interactive benchmarks →](https://zheruel.github.io/nano-string-utils/#performance)**\n\n## Type safety\n\n![Diagram showing two TypeScript panels: branded types reject a raw string where an Email is required until isValidEmail narrows it, and template literal types resolve camelCase of hello-world to the literal type helloWorld](https://raw.githubusercontent.com/Zheruel/nano-string-utils/main/assets/type-safety.png)\n\n### Branded types\n\nA `string` that has been validated is a different type from one that hasn't, so you can't lose the validation on the way through your code.\n\n```typescript\nimport { toEmail, isValidEmail, assertEmail } from \"nano-string-utils\";\nimport type { Email } from \"nano-string-utils\";\n\ndeclare function sendWelcome(to: Email): void;\n\nconst input: string = form.get(\"email\");\n\nsendWelcome(input); // ✗ Type error: string is not assignable to Email\n\n// Narrow it — type guard\nif (isValidEmail(input)) {\n  sendWelcome(input); // ✓ input is Email here\n}\n\n// Or convert — returns Email | null\nconst email = toEmail(input);\nif (email) sendWelcome(email);\n\n// Or assert — throws BrandedTypeError on invalid input\nassertEmail(input);\nsendWelcome(input); // ✓\n```\n\n`Email`, `URL`, `Slug`, `SafeHTML`, `HexColor`, `NumericString`, `AlphanumericString`, `UUID`, and `IntegerString` each come with a `toX` converter, an `isValidX` guard, an `assertX` assertion, and an `unsafeX` escape hatch for values you have already validated elsewhere.\n\n### Template literal types\n\nWhen the compiler knows the input string, it knows the exact output string.\n\n```typescript\nconst a = camelCase(\"hello-world\");\n//    ^? const a: \"helloWorld\"\n\nconst b = kebabCase(\"backgroundColor\");\n//    ^? const b: \"background-color\"\n\nconst c = constantCase(\"user id\");\n//    ^? const c: \"USER_ID\"\n```\n\nPass a runtime `string` and you get `string` back — no cost, no ceremony.\n\n## Null safety\n\nAlmost every function tolerates `null` and `undefined` rather than throwing, so you can drop them into pipelines handling untrusted input. The input type flows through: `string` in, `string` out; `null` in, `null` out.\n\n```javascript\nslugify(null); // null\ncamelCase(undefined); // undefined\ntruncate(null, 10); // null\nisEmail(null); // false\nwordCount(undefined); // 0\n```\n\nFour functions are the exception and will throw on a nullish argument — guard them yourself:\n\n| Function                | Throws on             |\n| ----------------------- | --------------------- |\n| `levenshtein`           | either argument       |\n| `levenshteinNormalized` | either argument       |\n| `redact`                | the input string      |\n| `humanizeList`          | the input array       |\n\n## CLI\n\n```bash\nnpx nano-string-utils slugify \"Hello World\"   # hello-world\n```\n\nInstall it globally for everyday use, or reach for `npx`, `deno run`, or `bunx` on demand.\n\n```bash\nnpm install -g nano-string-utils\n\nnano-string camelCase \"hello-world\"          # helloWorld\nnano-string truncate \"Long text here\" --length 10\nnano-string template \"Hello {{name}}\" --data '{\"name\":\"World\"}'\nnano-string isEmail \"test@example.com\"       # true\nnano-string levenshtein \"kitten\" \"sitting\"   # 3\n\n# Reads stdin, so it pipes\necho \"Hello World\" | nano-string slugify     # hello-world\ncat post.md | nano-string excerpt --length 160\n```\n\n`nano-string --help` lists every command; `nano-string <function> --help` explains one.\n\n## Runtime compatibility\n\n| Runtime      | Supported | Install                               | CLI |\n| ------------ | --------- | ------------------------------------- | --- |\n| Node.js ≥ 18 | ✅        | `npm install nano-string-utils`       | ✅  |\n| Deno         | ✅        | `deno add jsr:@zheruel/nano-string-utils` | ✅  |\n| Bun          | ✅        | `bun add nano-string-utils`           | ✅  |\n| Browsers     | ✅        | bundler or CDN                        | —   |\n| Edge / workers | ✅      | bundler                               | —   |\n\nOnly standard JavaScript APIs are used, so behaviour is identical everywhere. Both ESM and CommonJS builds ship in the package, with full type definitions for each.\n\n## Compared with the alternatives\n\n| Library             | Full size | Dependencies | Tree-shakeable        | TypeScript | Scope                              |\n| ------------------- | --------- | ------------ | --------------------- | ---------- | ---------------------------------- |\n| `nano-string-utils` | 9.6 KB    | 0            | ✅                    | ✅ strict  | Strings only, 61 functions         |\n| `lodash`            | ~70 KB    | 0            | ⚠️ needs `lodash-es`  | ✅ via DT  | General purpose                    |\n| `es-toolkit`        | ~30 KB    | 0            | ✅                    | ✅         | General purpose                    |\n| `underscore.string` | ~20 KB    | 0            | ❌                    | ❌         | Strings only                       |\n| `voca`              | ~30 KB    | 0            | ❌                    | ✅ via DT  | Strings only                       |\n\nIf you already use es-toolkit for arrays and objects, nano-string-utils composes with it — the two overlap on seven functions and disagree on almost nothing.\n\n**[Step-by-step lodash migration guide →](https://zheruel.github.io/nano-string-utils/#migration)**\n\n## Documentation\n\n- **[Interactive playground](https://zheruel.github.io/nano-string-utils/)** — run any function against your own input in the browser\n- **[Bundle size explorer](https://zheruel.github.io/nano-string-utils/#bundle-size)** — per-function comparison against lodash and es-toolkit\n- **[Performance benchmarks](https://zheruel.github.io/nano-string-utils/#performance)**\n- **[Migration guide](https://zheruel.github.io/nano-string-utils/#migration)** — lodash and underscore.string equivalents\n- **[JSR package](https://jsr.io/@zheruel/nano-string-utils)** — TypeScript source, published for Deno\n\n## Development\n\n```bash\ngit clone https://github.com/Zheruel/nano-string-utils.git\ncd nano-string-utils\nnpm install\n\nnpm test              # watch mode\nnpm run test:coverage # once, with coverage\nnpm run typecheck\nnpm run build\nnpm run size          # enforce the bundle budget\nnpm run bench         # performance benchmarks\n```\n\nAdding a function means a module in `src/`, a test file in `tests/`, an export from `src/index.ts`, and an entry in `docs-src/src/metadata.ts`. `CLAUDE.md` has the full checklist.\n\n## Contributing\n\nIssues and pull requests are welcome. For anything substantial, open an issue first so we can agree on the shape of it.\n\n1. Fork and branch (`git checkout -b feature/thing`)\n2. Add tests — every function has a matching file in `tests/`\n3. Run `npm run typecheck && npm run test:coverage && npm run build && npm run size`\n4. Open a pull request\n\n## License\n\nMIT © [Zheruel](https://github.com/Zheruel)\n\n---\n\n<p align=\"center\">\n  <a href=\"https://github.com/Zheruel/nano-string-utils/issues\">Report a bug</a> ·\n  <a href=\"https://github.com/Zheruel/nano-string-utils/issues\">Request a feature</a> ·\n  <a href=\"https://zheruel.github.io/nano-string-utils/\">Docs</a> ·\n  <a href=\"https://github.com/Zheruel/nano-string-utils\">Star on GitHub</a>\n</p>\n","readmeFilename":"README.md"}