{"_id":"@thanhhoajs/thanhhoa","_rev":"29-49e68ea033e8a7718ae75fc65ad3d255","name":"@thanhhoajs/thanhhoa","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"@thanhhoajs/thanhhoa","version":"0.0.1","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.1","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"05442e466a1eab29d1974f94a2d33a0294572458","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.1.tgz","fileCount":14,"integrity":"sha512-xnltv/ILDLoOi8DFVEfdFLdt/lzMKw2NAs2VDxJ9BaXobcHvSmXedVaGTdDQXKwbbSD68CiPn3u9Xc2vNikveg==","signatures":[{"sig":"MEQCIEtuWFl8kTlfUkjgyDGb3vjvqedzGkf6W0kKcIJBO3r/AiBHe6EfH4WOrFh4SjzCBM99YaNSHjYJJehV8IlJPOgArw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16957},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"f21b91343a8416122200cd660752d988ade35c8d","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.1_1729240624295_0.2932156912635644","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@thanhhoajs/thanhhoa","version":"0.0.2","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.2","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"96d9742c6cd672c39d3c69acdb5144182b5a05fa","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.2.tgz","fileCount":20,"integrity":"sha512-1dzP6cIYrzqvMnr1zfdS4Bz4XYMC/bELvw+OPn22CYHiv83DE+1VKgIikqZzUYZViKDozWgfoNTJD907mjDIZg==","signatures":[{"sig":"MEQCIGq4C/Q7xRTjxiub6GoXWGXtVjSOOcLKUwqxkMfnbvJBAiAJvLIOwWb5nQatGbff1nJQKgp83fc+LM3AxeBNBe8k/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23815},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"fbef386475f748ee46d3221a04d0c043427aec11","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.2_1729352117651_0.9794433421189319","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@thanhhoajs/thanhhoa","version":"0.0.3","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.3","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"9c0fddad54f5ef98e54a97543e20f9202cb1f128","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.3.tgz","fileCount":22,"integrity":"sha512-hKJxNBYxx0wp6gwfgtKjNb7muEsoGgB7VMMwAVusOWhmXPc+DhtkUORh3/vKSawB87jITC156k7+YjC+euxgrg==","signatures":[{"sig":"MEYCIQCokjuiOcrO/ON8jpg078xBGD9vVzFHD+YBzu4+kJXWpwIhALP6ENLS26ZwYU3pdX0/QhXTIjMKQ/FL4+NBS125GJqS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30904},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"1c613badd61ea0c77da558e1e124177027bc706d","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.3_1729356108890_0.3788220081553486","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"c1fa0f474ebfaeb3652effad4142ced233f60ef0","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4.tgz","fileCount":22,"integrity":"sha512-msfeeFoFFuRidxmbQTdbgD4Q+eUct63GqHLNLm3k3RzpHpPyeL4kWkF6jLplLfvvjBppSIusYqjsI6H2x7lfHA==","signatures":[{"sig":"MEUCIFYOZY8nI8fJivOfuNfrf3c5yuj/jfGddK0xWjDK0z8OAiEAxxONYVLLtZ5GtPquVP/ob/ISHtrkmDtAR8IvO/WIhtg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30971},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"1c613badd61ea0c77da558e1e124177027bc706d","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4_1729440352026_0.3411046485008753","host":"s3://npm-registry-packages"}},"0.0.4-alpha.0":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.0","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.0","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"378ca8763a29a586071c81efd938bd53dd87877f","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.0.tgz","fileCount":22,"integrity":"sha512-xghesypbPbt5ubj6FSOJ1abIX+Fl0QNu9hiqCqyzxMuGcw8IZr5Prmwrjk6GeiaPVQVGD0jlZyvxuEgWq+H7UA==","signatures":[{"sig":"MEUCIQCfuxlzrZgrV6OzypVgbjEGwPCPzkA0w7TFFhcVDjDZzQIgbhjURpWzQe+R3xBLOUAbNqchAOIGjgVAzahj/f3rFb0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31126},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"1c613badd61ea0c77da558e1e124177027bc706d","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.0_1729441043942_0.2281526704453254","host":"s3://npm-registry-packages"}},"0.0.4-alpha.1":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.1","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.1","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"72cb4408cb1307b6fadea03ddf8c39b84deec365","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.1.tgz","fileCount":22,"integrity":"sha512-ASP1SByhCBC1Fn5gip7wagiyP4xeMLBOMqsjJvmQhMNBZssZ5GVpZSD6ZCGo4QgT71SPe3lE9aBtMXQvMlqXdA==","signatures":[{"sig":"MEYCIQDpMcLwtTWlvAQ1Pkid9k94VUBovQx3YZfYdU5661o9dQIhAJP+XxdLEnYw3WSI1dD34D49cHmjbdmDAzvGPKWFsLpZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31165},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"1c613badd61ea0c77da558e1e124177027bc706d","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.1_1729442171271_0.6322924867262654","host":"s3://npm-registry-packages"}},"0.0.4-alpha.2":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.2","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.2","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"d077aa33adcd2fe844bfd8759eb654081c121b85","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.2.tgz","fileCount":22,"integrity":"sha512-HSu2Jsh2CA4g72OB1y3gzrSpbydJfbxUzGsIULjZLTmZAAv9sJNyT7Ai2j67C0aBTJEy404WxR/58M8/Deo9fQ==","signatures":[{"sig":"MEUCIQCagH0GNWnXVTkf1WltnC4/aSa41P0S8dagstc2UivPxQIgSJZc0/6oOlziG1OrKXHYovelT36OSTX2jgXHU0aOd+s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31117},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"1c613badd61ea0c77da558e1e124177027bc706d","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.2_1729442948889_0.8465054188089027","host":"s3://npm-registry-packages"}},"0.0.4-alpha.3":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.3","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.3","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"2760b747a0a89bb4bf7348ace0b6d2b5a07ea0f2","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.3.tgz","fileCount":22,"integrity":"sha512-7nP6itqoBxQMrfMd7tAnEOVGbojHo/EMXwSWOX9i7WcCfTic1+iPbA9CEGtHuxQDh8AU5r4f0dPQaRKJFLEQoA==","signatures":[{"sig":"MEYCIQDCe4hXENonGI+8bgFHiqlfNk61gUdxb2MnGfSlBOELBwIhAIzAHQGOVhwJ1TCyUneKq5PWaBVgL+jgfVtGS/Y+J6R3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31121},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"be68986872a1cd81400630bb06093dfc924cb45c","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.3_1729825858815_0.9074797839285187","host":"s3://npm-registry-packages"}},"0.0.4-alpha.4":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.4","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.4","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"f3245b1fb688ce378e55e0848fef38ce5e7a657b","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.4.tgz","fileCount":22,"integrity":"sha512-hi0o2kfz1wK1ASRtL5L1wTE5L/bHHtrY2Bi4iFWSI+k2lVJRreZODhrJwLniRA5oo1t+8dv/VkEYEQDEKxCTNg==","signatures":[{"sig":"MEYCIQDs1m7Zna5UDrU1mDRQfTzo4yCLasLO1HiK/kuoRpRMWgIhANkJsv8zaX/FPXLdm4CY0TxarivRoMMcGAhvqspN5yTd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40334},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"7984396e85c2307cfadf54eb175e1278aa4e65db","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.7.0","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.4_1729923260849_0.3301081834272388","host":"s3://npm-registry-packages"}},"0.0.4-alpha.5":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.5","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.5","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"9b164f70dd72965bbe5b9d4099bb71b48e670f4b","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.5.tgz","fileCount":22,"integrity":"sha512-inhTFRD43lj9poMlZgteWjMtQu6jlPn0IeE1mTFlxfaWZvBGdbS5UZpjdD4mC7fkK/+bF+Sp131ma4UVTwYpaA==","signatures":[{"sig":"MEYCIQDh4BqQMc3OGTomPeDNCD4WyikPZSDyazODBPalFLbk6gIhALh47WWFuFdEwAWYs/gb1te4YaDOoc6v2w3Su1va84Tv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40605},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"7984396e85c2307cfadf54eb175e1278aa4e65db","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.5_1730043891500_0.6741527657898352","host":"s3://npm-registry-packages"}},"0.0.4-alpha.6":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.6","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.6","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"3dbb518bb9d6461cb464f931ab1e38d13ab12ae3","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.6.tgz","fileCount":22,"integrity":"sha512-mGwtonk8tZty6Y219Mhl/2SP7SAYvXBqpNVp2Pg8YHM0vDPC8thw4Z/tk6Wh1/j8MNc759k2umofKOzMWLlXNA==","signatures":[{"sig":"MEUCIQCdwcXUhMYE2S1gjs6qoy+oEYHFLSlVOuoKYAgfORahkwIgNiGKbjxc6GwRsScanjZfjwFckfK/qGY9atNIpxEu97k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40665},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"7984396e85c2307cfadf54eb175e1278aa4e65db","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.6_1730044316849_0.6387716780175867","host":"s3://npm-registry-packages"}},"0.0.4-alpha.7":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.7","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.7","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"5ca94f7932125c7543dbe496ec8cf011efe2dbc7","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.7.tgz","fileCount":22,"integrity":"sha512-KIJZsUWsyDt6npzlOOzClPPBxJ4+O6qqe4dFUWLzPGuUP1OqYThiztvirndEQT9wB2af7+BcqSPODbsC9twxaA==","signatures":[{"sig":"MEUCIQDw317abe7dCPHgJFv5TWR9Kz5iuzFpdg0mfb53zt4pDQIgX7El0xFyXJd/i7kUKNXf2Qs0hG180AIlmfhNdFY/hNo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40658},"type":"module","types":"src/index.ts","module":"src/index.ts","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"7984396e85c2307cfadf54eb175e1278aa4e65db","private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"git+https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.9.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.7_1730045971886_0.4043474526890065","host":"s3://npm-registry-packages"}},"0.0.4-alpha.8":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.8","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.8","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"96806fd9ef03180656c51b2e609ee2b476a07d94","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.8.tgz","fileCount":28,"integrity":"sha512-p9vKuSo2cRnkZkA8jx5EyJOx0vCKQwZfjqSRdG/fsLrdpgnA3rgblA5nc4SyAfS242caRciTanZuxXkci80hew==","signatures":[{"sig":"MEUCIQCRf4LsJn06BivCdST13m4FR4Yp4bqkrVlbbR3KXRZbwAIgMqzwD/AOKQ6gTMS2JE4QvSlHIuQSx4v3McbdbYFVx1o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45411},"type":"module","types":"src/index.ts","module":"src/index.ts","shasum":"96806fd9ef03180656c51b2e609ee2b476a07d94","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","publish":"bun run format && bun run test && bun run benchmark && bun publish --tag latest && bun publish --tag alpha","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-p9vKuSo2cRnkZkA8jx5EyJOx0vCKQwZfjqSRdG/fsLrdpgnA3rgblA5nc4SyAfS242caRciTanZuxXkci80hew==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.8_1730174758961_0.5999755929687125","host":"s3://npm-registry-packages"}},"0.0.4-alpha.9":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.9","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.9","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"cae3ea4d540d4670b44ee33a8c21c2cf75ea7fd3","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.9.tgz","fileCount":28,"integrity":"sha512-YiWIdDh38UlyRTgsLgexzi0P9Ory6/qPEaQBz6ExVKIfWUE6bwPn/zMl97udMVnZfXlf+3uw/7I2r5Sk3a/+JA==","signatures":[{"sig":"MEQCIHfW+OceIqWKlu5O+HeuFtkm7fyfUrRx2KYkx6jhb1ERAiBZrPssw8ZXd87OwyW+Xcr9AjobJ+Lt4zDVrizdKPsOew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45381},"type":"module","types":"src/index.ts","module":"src/index.ts","shasum":"cae3ea4d540d4670b44ee33a8c21c2cf75ea7fd3","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-YiWIdDh38UlyRTgsLgexzi0P9Ory6/qPEaQBz6ExVKIfWUE6bwPn/zMl97udMVnZfXlf+3uw/7I2r5Sk3a/+JA==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.9_1730178167015_0.9459931733289499","host":"s3://npm-registry-packages"}},"0.0.4-alpha.10":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-alpha.10","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-alpha.10","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"f60efbc71e2531f1481f1d3503105be63f878c5e","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-alpha.10.tgz","fileCount":28,"integrity":"sha512-sn5VwaHIZwPYX6LXtkhj0/t+u43HdH/0Wo5ukgHJZ5RT8CDjST0o9OuvgBuESgl5+7pqVUoS4S6PHoVQi7bt2g==","signatures":[{"sig":"MEUCIQC/lT6fiklxYioAHqxrg9EMx5HWKsklv7bdt4mIjLe0awIgAg/RF9QPk0zPmVMRtzN3K+xYD0A70xTjdPclhFxKtxs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45682},"type":"module","types":"src/index.ts","module":"src/index.ts","shasum":"f60efbc71e2531f1481f1d3503105be63f878c5e","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-sn5VwaHIZwPYX6LXtkhj0/t+u43HdH/0Wo5ukgHJZ5RT8CDjST0o9OuvgBuESgl5+7pqVUoS4S6PHoVQi7bt2g==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-alpha.10_1730187104766_0.5976239585768754","host":"s3://npm-registry-packages"}},"0.0.4-beta.0":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.0","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.0","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"bc6566453583832e9dceb740a45466be7f32fe3d","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.0.tgz","fileCount":30,"integrity":"sha512-jbLT1V5OECN57t2adiXxeNWYS8NvHDgjlHydv4h1w+Ecll8qtFU/Ezax7XJz7fQaRh2CsAoMD6Oju9F+piMtgQ==","signatures":[{"sig":"MEUCIQCYToc5PKxzRZMd2pMV7rlzDvXR7XGh2D9+Ij0/HED6aAIgL+IOwyAi1TU2TIjsXGwCf9XkfuFqbLy0aQOSkPJcsXw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47465},"type":"module","types":"src/index.ts","module":"src/index.ts","shasum":"bc6566453583832e9dceb740a45466be7f32fe3d","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-jbLT1V5OECN57t2adiXxeNWYS8NvHDgjlHydv4h1w+Ecll8qtFU/Ezax7XJz7fQaRh2CsAoMD6Oju9F+piMtgQ==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.0_1730306812352_0.020767878966342135","host":"s3://npm-registry-packages"}},"0.0.4-beta.1":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.1","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.1","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"dd12a4978a41ecf2ec45389789e2ec0e5b76f8c9","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.1.tgz","fileCount":30,"integrity":"sha512-f3s7LdMWrNM8yyy5084bNhfW+ieQYRd+bdnVaRyho3khvaT7WsYHkwKMWM5pyhDwy4jAzddBoXNxweb03b9k0w==","signatures":[{"sig":"MEYCIQCUYBxwnpkJ0GjdUqGtg4SOV5IlIqv/O/gTY3GVA/UQYQIhAIHIHTTy+Rizue2caE9OS94qMReewq2TvnWNz55Qv0sM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48264},"type":"module","types":"src/index.ts","module":"src/index.ts","shasum":"dd12a4978a41ecf2ec45389789e2ec0e5b76f8c9","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-f3s7LdMWrNM8yyy5084bNhfW+ieQYRd+bdnVaRyho3khvaT7WsYHkwKMWM5pyhDwy4jAzddBoXNxweb03b9k0w==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.1_1730546301761_0.2919491370367433","host":"s3://npm-registry-packages"}},"0.0.4-beta.2":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.2","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.2","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"9c4f08cb64c595a76fd331ff0e84c6c9b0a5a2bc","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.2.tgz","fileCount":30,"integrity":"sha512-tmePmvAQ1o34YjoM2Gf7D5fNZPdoC97e9uEeBT+nrJdgz9K89Itd87TLiMqk6vJNEamQDV7dyMO80X8IK+WZ4Q==","signatures":[{"sig":"MEUCIQCw3J+22/6CRz6ZLBvJs0VvQ+9qqFcaKa9WK3oBD7pCKwIgdfZjpNeZOjwfncOxjRlCDR9g/JCGY4kzTKWJksdz1dU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48705},"type":"module","types":"src/index.ts","module":"src/index.ts","shasum":"9c4f08cb64c595a76fd331ff0e84c6c9b0a5a2bc","engines":{"bun":">=1.0.0"},"exports":{".":"./src/index.ts"},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-tmePmvAQ1o34YjoM2Gf7D5fNZPdoC97e9uEeBT+nrJdgz9K89Itd87TLiMqk6vJNEamQDV7dyMO80X8IK+WZ4Q==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.2_1730990404117_0.7888353965545924","host":"s3://npm-registry-packages"}},"0.0.4-beta.3":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.3","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.3","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"5b8638e49e14b84781525ee941e9fbd47d340a74","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.3.tgz","fileCount":119,"integrity":"sha512-D4pAC8isSNBpFJ/3CCdyHqVEut48/e20Zvao9bfAH94N/9eAZ1TWcWxg4yPAQ7qCYm0vTpU7fWPpPZ2hPSt61g==","signatures":[{"sig":"MEUCIQC8/3CdVEgzFPgWieZ2XKXuogOgwhTGJCSgVKTFPqgqigIgdHfwjnBqy7yBPhMAv+Xv9DJbeEYAqwo6Z5SKsJMjAbk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110532},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"5b8638e49e14b84781525ee941e9fbd47d340a74","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-D4pAC8isSNBpFJ/3CCdyHqVEut48/e20Zvao9bfAH94N/9eAZ1TWcWxg4yPAQ7qCYm0vTpU7fWPpPZ2hPSt61g==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.3_1731683318720_0.7569361439092244","host":"s3://npm-registry-packages"}},"0.0.4-beta.4":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.4","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.4","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"f0fee8621f5472b5b1cf4fd006ffc6cb8cd1a772","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.4.tgz","fileCount":120,"integrity":"sha512-Is+ZlPpDpZWh+oBoKpN9oh5E6FfF2GeUsOA34hgf5qj5TGhVAkiOPyJnpEcreTr2My/GQza7sHsOxJSXtFOeCA==","signatures":[{"sig":"MEQCIFGW67DxiIQZxgWOwh0m8bH8w15q8y+GlZ6MvE4cGjfBAiBTUBHZB9fsQFqtPeioULbi1JflFwHu6/OBIEidqPu9vg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110781},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"f0fee8621f5472b5b1cf4fd006ffc6cb8cd1a772","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-Is+ZlPpDpZWh+oBoKpN9oh5E6FfF2GeUsOA34hgf5qj5TGhVAkiOPyJnpEcreTr2My/GQza7sHsOxJSXtFOeCA==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.4_1732895818437_0.45021640632033466","host":"s3://npm-registry-packages"}},"0.0.4-beta.5":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.5","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.5","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"febf51dc9f922a38cd0ea11fd2655179f382727c","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.5.tgz","fileCount":144,"integrity":"sha512-RHQHrAtXzp069U+YMPA55d0kUtT5XZZALg+0OBkZ/Wz2a0fSq24XizOW8vlJIflPROY+4ffkVovWeQdN4NUsaw==","signatures":[{"sig":"MEQCIGc0NS35JrHM+2r4dcTa8pkHyuYbXZyKB1VHsF6yizmNAiADoFbuHuQXPMTXaaAwLmFFaYDBF/nYqUL2IwE1jXucJg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":136578},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"febf51dc9f922a38cd0ea11fd2655179f382727c","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-RHQHrAtXzp069U+YMPA55d0kUtT5XZZALg+0OBkZ/Wz2a0fSq24XizOW8vlJIflPROY+4ffkVovWeQdN4NUsaw==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"redis":"^4.7.0","radix3":"^1.1.2","lru-cache":"^11.0.2","@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.5_1737132484352_0.20557055925010093","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-beta.6":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.6","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.6","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"775a9a3383d8db2de12f452e3cda669ccc8f6564","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.6.tgz","fileCount":144,"integrity":"sha512-jfpCom8UsR8JnPHD+qhTlWJ0hM/TQKgMFUiSfz9o6XYKVJ8We4iifU6SIoQaigqp1JKiFYyf1xmVWc6mImis5g==","signatures":[{"sig":"MEMCHy48uu6W+Cvv3KPa18Igx1pwwovNS8W+hO0UCKOhIvUCID1ra5AKI2XyaaBtkH9VtHimjwCkr4WVfIHqHnA3D50h","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142164},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"775a9a3383d8db2de12f452e3cda669ccc8f6564","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-jfpCom8UsR8JnPHD+qhTlWJ0hM/TQKgMFUiSfz9o6XYKVJ8We4iifU6SIoQaigqp1JKiFYyf1xmVWc6mImis5g==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"redis":"^4.7.0","radix3":"^1.1.2","lru-cache":"^11.0.2","@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.6_1737176294962_0.5583274226710309","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-beta.7":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.7","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.7","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"49cf58001c8ae6a7165b76deb3fa1b8bb1e5e21e","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.7.tgz","fileCount":144,"integrity":"sha512-NdJZAUIMLOhmNYX/+BQQL85aNWkxWLzxG8wLlAauWYNvgGILhWiYGdq0OCxpxGt+T4mvjoEru1g+44nKhTNOiA==","signatures":[{"sig":"MEUCIQDtieLgmvZhhDHnXzKhlqrhtWsov9zNeU7Kq04qsFi7TAIgVLnS/XO9gHJgkIoOs5gT4x3RXQ7g9JAer2uRN1wY3BI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":148566},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"49cf58001c8ae6a7165b76deb3fa1b8bb1e5e21e","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-NdJZAUIMLOhmNYX/+BQQL85aNWkxWLzxG8wLlAauWYNvgGILhWiYGdq0OCxpxGt+T4mvjoEru1g+44nKhTNOiA==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"redis":"^4.7.0","radix3":"^1.1.2","lru-cache":"^11.0.2","@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.7_1737195041364_0.10582332207858558","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-beta.8":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.8","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.8","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"bfaac4858c7749855cd7480fc736e86f2eb5c2a9","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.8.tgz","fileCount":144,"integrity":"sha512-jzesAcDlvHHmeaqI7Xh/SoaPQhosA9KTBgjTzo7RJvmk53DjG1ynv3E9QFbcCp+xVbEGTINHnsT7/JmpRFikYw==","signatures":[{"sig":"MEYCIQCKCuMDZakeroYtIAA4WlQQMSM81v7ZAQh3ZkmV62IQiQIhAJTGP3Z6dTRiPJwgZDs1UXNtFbf/9zMaiwGI1E7SK3UQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":169453},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"bfaac4858c7749855cd7480fc736e86f2eb5c2a9","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test thanh-hoa.test.ts","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-jzesAcDlvHHmeaqI7Xh/SoaPQhosA9KTBgjTzo7RJvmk53DjG1ynv3E9QFbcCp+xVbEGTINHnsT7/JmpRFikYw==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"redis":"^4.7.0","radix3":"^1.1.2","lru-cache":"^11.0.2","@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.5.2"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.8_1737215736575_0.6293476576914223","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-beta.9":{"name":"@thanhhoajs/thanhhoa","version":"0.0.4-beta.9","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.4-beta.9","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"4ed4e775f5ccfeba745f2844cb59fd511c15a4d7","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.4-beta.9.tgz","fileCount":99,"integrity":"sha512-AgIuwJ6ehnYHd0H2Vu+d1nH8sREvT/4Z9tXmhVNzO6qHmEIIKcCiVXC8g4cAb3tcqBXCyQWxN0alzyLQvEHfGw==","signatures":[{"sig":"MEYCIQDY6N+FYMWfyAZE6YYPV2UjPMctrXDx6Ag7duut50WxAwIhAJYqcxm8fnCcMhc2M0MRcBTV7edZ6auimHpMNNT1xdMM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96894},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"4ed4e775f5ccfeba745f2844cb59fd511c15a4d7","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-AgIuwJ6ehnYHd0H2Vu+d1nH8sREvT/4Z9tXmhVNzO6qHmEIIKcCiVXC8g4cAb3tcqBXCyQWxN0alzyLQvEHfGw==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"ThanhHoa is a lightweight, high-performance web framework for Bun, designed to make server-side development simple and enjoyable.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"radix3":"^1.1.2","lru-cache":"^11.0.2","reflect-metadata":"^0.2.2","@thanhhoajs/logger":"latest"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.4.2","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.4-beta.9_1739030649849_0.16727984292430143","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@thanhhoajs/thanhhoa","version":"0.0.5","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"author":"Nguyen Nhu Khanh <kwalker.nnk@gmail.com>","license":"MIT","_id":"@thanhhoajs/thanhhoa@0.0.5","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"dist":{"shasum":"687f2de983cc5fae6beb6a512b1cd72a420193d8","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.5.tgz","fileCount":83,"integrity":"sha512-W4aC4b5wAwS4jJrq4cRqxUyi67YpmSZl0TPIhpZbpEtyY7kkj4rVd+j5PVw3Sqr39DfkuxmONuo4FQ4QUV4Ozw==","signatures":[{"sig":"MEQCIC/7fnwUepQpsDNDsydvCMNGzeaPklF4eLgmS2gCNWTjAiAcrDxBcFAbqwMdC+qHldEcltVkR1V4+H3ThbbDfs97eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77177},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"687f2de983cc5fae6beb6a512b1cd72a420193d8","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"private":false,"scripts":{"test":"bun test","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","release":"bun run format && bun run test && bun run build && bun publish","benchmark":"bun run benchmark/index.ts"},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"_integrity":"sha512-W4aC4b5wAwS4jJrq4cRqxUyi67YpmSZl0TPIhpZbpEtyY7kkj4rVd+j5PVw3Sqr39DfkuxmONuo4FQ4QUV4Ozw==","deprecated":"This package is no longer supported. Please check the documentation for alternatives.","repository":{"url":"https://github.com/thanhhoajs/thanhhoa.git","type":"git"},"_npmVersion":"10.8.3","description":"Ultra-high performance web framework for Bun. Simple, fast, lightweight.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ajv":"^8.17.1","radix3":"^1.1.2","lru-cache":"^11.2.5","@thanhhoajs/logger":"latest","fast-decode-uri-component":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/thanhhoa_0.0.5_1770484715710_0.8880768312369425","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@thanhhoajs/thanhhoa","version":"0.0.6","description":"Ultra-high performance web framework for Bun. Simple, fast, lightweight.","author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","private":false,"homepage":"https://github.com/thanhhoajs/thanhhoa#readme","repository":{"type":"git","url":"git+https://github.com/thanhhoajs/thanhhoa.git"},"bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"benchmark/**/*.ts\"","test":"bun test","benchmark":"bun run benchmark/index.ts","build":"tsc","release":"bun run format && bun run test && bun run build && bun publish"},"devDependencies":{"@types/bun":"latest","prettier":"^3.8.1"},"peerDependencies":{"typescript":"^5.7.3"},"engines":{"bun":">=1.2.0"},"dependencies":{"@thanhhoajs/logger":"latest","ajv":"^8.17.1","radix3":"^1.1.2"},"gitHead":"ff19511a2516fa09a63cd9fa0bdde4d232375d8f","_id":"@thanhhoajs/thanhhoa@0.0.6","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-2+OCFtjgplM4vM0k79xnfuVIpjiw5kO9u154YL0uZ7Je55fB/XGSI4oyQ4nsQsHYwbFCGKvp3ZKQZb4O6eBs8w==","shasum":"ce8519127784d8d395795aae0936b21bf8c39b33","tarball":"https://registry.npmjs.org/@thanhhoajs/thanhhoa/-/thanhhoa-0.0.6.tgz","fileCount":163,"unpackedSize":293415,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDoqckXtFfxxCg1aT0ni5dnud4ZZeJng3Tmp6hZI6xH1AIhAMRJCpp3r93TDJAaI3f1MEmd7+P2OD4MiTLdIX86Bi0R"}]},"_npmUser":{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"},"directories":{},"maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/thanhhoa_0.0.6_1771846594152_0.305313006220044"},"_hasShrinkwrap":false}},"time":{"created":"2024-10-18T08:37:04.202Z","modified":"2026-02-23T11:36:34.422Z","0.0.1":"2024-10-18T08:37:04.509Z","0.0.2":"2024-10-19T15:35:17.889Z","0.0.3":"2024-10-19T16:41:49.064Z","0.0.4":"2024-10-20T16:05:52.260Z","0.0.4-alpha.0":"2024-10-20T16:17:24.132Z","0.0.4-alpha.1":"2024-10-20T16:36:11.508Z","0.0.4-alpha.2":"2024-10-20T16:49:09.064Z","0.0.4-alpha.3":"2024-10-25T03:10:59.011Z","0.0.4-alpha.4":"2024-10-26T06:14:21.009Z","0.0.4-alpha.5":"2024-10-27T15:44:51.699Z","0.0.4-alpha.6":"2024-10-27T15:51:57.054Z","0.0.4-alpha.7":"2024-10-27T16:19:32.103Z","0.0.4-alpha.8":"2024-10-29T04:05:59.134Z","0.0.4-alpha.9":"2024-10-29T05:02:47.310Z","0.0.4-alpha.10":"2024-10-29T07:31:45.015Z","0.0.4-beta.0":"2024-10-30T16:46:52.541Z","0.0.4-beta.1":"2024-11-02T11:18:21.948Z","0.0.4-beta.2":"2024-11-07T14:40:04.325Z","0.0.4-beta.3":"2024-11-15T15:08:38.908Z","0.0.4-beta.4":"2024-11-29T15:56:58.661Z","0.0.4-beta.5":"2025-01-17T16:48:04.574Z","0.0.4-beta.6":"2025-01-18T04:58:15.130Z","0.0.4-beta.7":"2025-01-18T10:10:41.574Z","0.0.4-beta.8":"2025-01-18T15:55:36.902Z","0.0.4-beta.9":"2025-02-08T16:04:10.066Z","0.0.5":"2026-02-07T17:18:35.860Z","0.0.6":"2026-02-23T11:36:34.300Z"},"bugs":{"url":"https://github.com/thanhhoajs/thanhhoa/issues"},"author":{"name":"Nguyen Nhu Khanh","email":"kwalker.nnk@gmail.com"},"license":"MIT","homepage":"https://github.com/thanhhoajs/thanhhoa#readme","keywords":["thanhhoa","thanhhoajs","http","bun","server","typescript","backend"],"repository":{"type":"git","url":"git+https://github.com/thanhhoajs/thanhhoa.git"},"description":"Ultra-high performance web framework for Bun. Simple, fast, lightweight.","maintainers":[{"name":"nguyennhukhanh","email":"kwalker.nnk@gmail.com"}],"readme":"<p align=\"center\">\r\n  <img src=\"https://drive.google.com/uc?export=view&id=1_M5tYoaKfXpqsOAPQl3WVWs9u5NWrG76\" alt=\"ThanhHoa Logo\" width=\"300\"/>\r\n</p>\r\n\r\n# ThanhHoa — Ultra-High Performance Web Framework for Bun\r\n\r\nLightweight, blazing-fast web framework built for [Bun](https://bun.sh). Two runtime dependencies. Zero compromise on speed.\r\n\r\n[![npm version](https://img.shields.io/npm/v/@thanhhoajs/thanhhoa)](https://www.npmjs.com/package/@thanhhoajs/thanhhoa)\r\n[![license](https://img.shields.io/npm/l/@thanhhoajs/thanhhoa)](./LICENSE)\r\n\r\n## ✨ Features\r\n\r\n- 🚀 **~80,000+ req/s** — 0.12ms average latency on Bun 1.3\r\n- 🪶 **2 runtime deps** — only `radix3` + `ajv`; everything else is Bun-native\r\n- 🎯 **Simple API** — routing, middleware, groups, sub-routers\r\n- 🔐 **Security built-in** — JWT, CSRF, Basic/Bearer auth, helmet, CORS\r\n- ⚡ **Brotli + gzip + deflate** — auto-negotiated compression\r\n- 🗄️ **Zero-dep LRU cache** — internal O(1) cache, no npm package needed\r\n- 🔌 **Native WebSocket** — per-route WebSocket handlers via Bun\r\n- 🧪 **Test client** — test routes without starting an HTTP server\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\nbun add @thanhhoajs/thanhhoa\r\n```\r\n\r\n**Requirements:** Bun >= 1.2.0\r\n\r\n## 🚀 Quick Start\r\n\r\n```typescript\r\nimport { ThanhHoa, json } from '@thanhhoajs/thanhhoa';\r\n\r\nconst app = new ThanhHoa();\r\n\r\napp.get('/hello', () => json({ message: 'Hello World!' }));\r\n\r\napp.listen({ port: 3000 });\r\n```\r\n\r\n---\r\n\r\n## 📖 Routing\r\n\r\n### HTTP Methods\r\n\r\n```typescript\r\nimport { ThanhHoa, json, text, html } from '@thanhhoajs/thanhhoa';\r\n\r\nconst app = new ThanhHoa();\r\n\r\napp.get('/users', () => json({ users: [] }));\r\napp.post('/users', async (ctx) => json(await ctx.request.json(), 201));\r\napp.put('/users/:id', async (ctx) => json({ id: ctx.params.id }));\r\napp.patch('/users/:id', async (ctx) => json({ updated: true }));\r\napp.delete('/users/:id', (ctx) => json({ deleted: ctx.params.id }));\r\napp.head('/ping', () => new Response(null, { status: 204 }));\r\n\r\napp.listen({ port: 3000 });\r\n```\r\n\r\n### Route Parameters & Query\r\n\r\n```typescript\r\n// Dynamic params\r\napp.get('/posts/:postId/comments/:commentId', (ctx) => {\r\n  const { postId, commentId } = ctx.params;\r\n  return json({ postId, commentId });\r\n});\r\n\r\n// Query string\r\napp.get('/search', (ctx) => {\r\n  const { q, page = '1', limit = '10' } = ctx.query;\r\n  return json({ q, page, limit });\r\n});\r\n```\r\n\r\n### Route Groups\r\n\r\n```typescript\r\napp.group('/api', (api) => {\r\n  api.group('/v1', (v1) => {\r\n    v1.get('/status', () => json({ version: '1.0' })); // GET /api/v1/status\r\n    v1.get('/users', () => json({ users: [] }));        // GET /api/v1/users\r\n  });\r\n});\r\n```\r\n\r\n### Sub-Routers\r\n\r\n```typescript\r\nimport { Router, ThanhHoa, json } from '@thanhhoajs/thanhhoa';\r\n\r\nconst userRouter = new Router();\r\nuserRouter.get('/', () => json({ users: [] }));\r\nuserRouter.get('/:id', (ctx) => json({ id: ctx.params.id }));\r\nuserRouter.post('/', () => json({ created: true }, 201));\r\n\r\nconst app = new ThanhHoa();\r\napp.mount('/users', userRouter);\r\n// Routes: GET /users, GET /users/:id, POST /users\r\n\r\napp.listen({ port: 3000 });\r\n```\r\n\r\n---\r\n\r\n## 🛠️ Response Helpers\r\n\r\n```typescript\r\nimport { json, text, html, redirect } from '@thanhhoajs/thanhhoa';\r\n\r\napp.get('/json',     () => json({ data: 'value' }));\r\napp.get('/text',     () => text('Hello World'));\r\napp.get('/page',     () => html('<h1>Welcome</h1>'));\r\napp.get('/old-path', () => redirect('/new-path'));\r\napp.get('/created',  () => json({ id: 1 }, 201));\r\n\r\n// BigInt is serialized safely\r\napp.get('/bigint', () => json({ id: 9007199254740993n }));\r\n```\r\n\r\n---\r\n\r\n## 🔗 Middleware\r\n\r\n```typescript\r\n// Global middleware\r\napp.use(async (ctx, next) => {\r\n  const start = Date.now();\r\n  const response = await next();\r\n  console.log(`${ctx.request.method} ${ctx.request.url} — ${Date.now() - start}ms`);\r\n  return response;\r\n});\r\n\r\n// Route-level middleware\r\nconst auth = async (ctx, next) => {\r\n  if (!ctx.request.headers.get('Authorization')) {\r\n    return json({ error: 'Unauthorized' }, 401);\r\n  }\r\n  return next();\r\n};\r\n\r\napp.get('/protected', (ctx) => json({ ok: true }), [auth]);\r\n```\r\n\r\n### Context (`ctx`) API\r\n\r\n```typescript\r\nctx.request         // Native Fetch API Request\r\nctx.params          // Route params: { id: '42' }\r\nctx.query           // Query string: { q: 'search' }\r\nctx.cookies         // Cookie interface (get/set/delete)\r\nctx.socketAddress   // Client IP info\r\nctx.state           // Typed app-wide state\r\nctx.locals          // Request-scoped Map (ctx.set / ctx.get)\r\nctx.validatedBody   // Body after validate() middleware\r\nctx.jwtPayload      // JWT payload after jwt() middleware\r\nctx.csrfToken       // CSRF token after csrf() middleware\r\n\r\n// Shortcut body parsers\r\nawait ctx.json<T>()\r\nawait ctx.text()\r\nawait ctx.formData()\r\nctx.stream()\r\n\r\n// Resource preloading (Link header)\r\nctx.preload('/style.css', 'style');\r\nctx.preload('/app.js', 'script');\r\n```\r\n\r\n---\r\n\r\n## 🔐 Security Middleware\r\n\r\n### JWT Authentication\r\n\r\n```typescript\r\nimport { jwt, signToken, verifyToken, decodeToken } from '@thanhhoajs/thanhhoa';\r\n\r\nconst token = await signToken({ userId: 1 }, 'your-secret', { expiresIn: 3600 });\r\n\r\napp.use(jwt({\r\n  secret: 'your-secret',\r\n  skip: ['/login', '/register']\r\n}));\r\n\r\napp.get('/profile', (ctx) => json({ user: ctx.jwtPayload }));\r\n\r\nconst payload = decodeToken(token); // Decode without verification\r\n```\r\n\r\n### CSRF Protection\r\n\r\n```typescript\r\nimport { csrf } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(csrf());\r\n\r\napp.get('/form', (ctx) => html(`\r\n  <form method=\"POST\" action=\"/submit\">\r\n    <input type=\"hidden\" name=\"_csrf\" value=\"${ctx.csrfToken}\">\r\n    <button>Submit</button>\r\n  </form>\r\n`));\r\n// AJAX: send X-CSRF-Token header with the token value\r\n```\r\n\r\n### Basic Auth\r\n\r\n```typescript\r\nimport { basicAuth } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(basicAuth({ username: 'admin', password: 'secret' }));\r\n\r\n// Custom validation\r\napp.use(basicAuth({\r\n  username: '',\r\n  password: '',\r\n  validate: async (user, pass) => db.verifyUser(user, pass)\r\n}));\r\n```\r\n\r\n### Bearer Token Auth\r\n\r\n```typescript\r\nimport { bearerAuth } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(bearerAuth({ token: process.env.API_KEY! }));\r\n\r\n// Dynamic validation\r\napp.use(bearerAuth({\r\n  validate: async (token) => db.isValidApiKey(token)\r\n}));\r\n```\r\n\r\n### Security Headers (Helmet)\r\n\r\n```typescript\r\nimport { helmet } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(helmet());\r\napp.use(helmet({ contentSecurityPolicy: false }));\r\n```\r\n\r\n### CORS\r\n\r\n```typescript\r\nimport { cors } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(cors({\r\n  origin: 'https://example.com',\r\n  methods: ['GET', 'POST'],\r\n  credentials: true\r\n}));\r\n```\r\n\r\n---\r\n\r\n## ⚡ Performance Middleware\r\n\r\n### Compression (Brotli / Gzip / Deflate)\r\n\r\nAuto-negotiated via `Accept-Encoding`. Brotli (`br`) is preferred when available.\r\n\r\n```typescript\r\nimport { compress } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(compress()); // br > gzip > deflate (default)\r\n\r\napp.use(compress({\r\n  threshold: 1024,           // Only compress > 1KB\r\n  encoding: ['gzip'],        // Force gzip only\r\n}));\r\n```\r\n\r\n### Cache-Control\r\n\r\n```typescript\r\nimport {\r\n  cacheControl,\r\n  noStore,\r\n  publicCache,\r\n  privateCache\r\n} from '@thanhhoajs/thanhhoa';\r\n\r\n// API routes — no caching\r\napp.group('/api', (r) => { /* ... */ }, [noStore()]);\r\n\r\n// Public CDN assets — 1 hour, stale-while-revalidate\r\napp.use(publicCache(3600, { staleWhileRevalidate: 60 }));\r\n\r\n// Per-user content — browser cache only, 5 min\r\napp.use(privateCache(300));\r\n\r\n// Versioned static assets — immutable, 1 year\r\napp.use(publicCache(31536000, { immutable: true }));\r\n\r\n// Full control\r\napp.use(cacheControl({\r\n  maxAge: 3600,\r\n  staleIfError: 86400,\r\n  mustRevalidate: true,\r\n  skip: ['/health']\r\n}));\r\n```\r\n\r\n### Rate Limiting\r\n\r\n```typescript\r\nimport { rateLimit, MemoryStore } from '@thanhhoajs/thanhhoa';\r\n\r\n// In-memory (single instance)\r\napp.use(rateLimit({\r\n  windowMs: 15 * 60 * 1000, // 15 minutes\r\n  max: 100,\r\n  message: 'Too many requests'\r\n}));\r\n\r\n// Redis (distributed)\r\nimport { RedisClient } from 'bun';\r\nimport { RedisStore } from '@thanhhoajs/thanhhoa';\r\n\r\nconst redis = new RedisClient('redis://localhost:6379');\r\napp.use(rateLimit({ store: new RedisStore(redis), windowMs: 60000, max: 100 }));\r\n\r\n// Custom key (by user ID instead of IP)\r\napp.use(rateLimit({\r\n  keyGenerator: (req) => req.headers.get('X-User-ID') ?? 'anon',\r\n  max: 1000\r\n}));\r\n\r\n// Skip paths\r\napp.use(rateLimit({ max: 100, skip: ['/health', '/metrics'] }));\r\n```\r\n\r\n#### Sliding Window Rate Limit (Redis)\r\n\r\n```typescript\r\nimport { slidingWindowRateLimit } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(slidingWindowRateLimit({ redis, max: 100, windowMs: 60000 }));\r\n```\r\n\r\n### ETag (HTTP Caching)\r\n\r\n```typescript\r\nimport { etag } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(etag());                              // Weak ETag, FNV-1a\r\napp.use(etag({ weak: false, algorithm: 'sha256' })); // Strong ETag\r\n```\r\n\r\n---\r\n\r\n## 🛡️ Request Middleware\r\n\r\n### Body Size Limit\r\n\r\n```typescript\r\nimport { bodyLimit } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(bodyLimit({ maxSize: 1024 * 1024 })); // 1 MB\r\n```\r\n\r\n### Request Timeout\r\n\r\n```typescript\r\nimport { timeout } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(timeout({ ms: 30000, message: 'Request timed out' }));\r\n```\r\n\r\n### Request ID\r\n\r\nStored in `ctx.get('requestId')` and `X-Request-ID` response header.\r\n\r\n```typescript\r\nimport { requestId } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(requestId());\r\napp.use(requestId({ header: 'X-Trace-ID' }));\r\n```\r\n\r\n### Logger\r\n\r\n```typescript\r\nimport { logger } from '@thanhhoajs/thanhhoa';\r\n\r\napp.use(logger());\r\n// [THANHHOA] GET /api/users 200 — 2.41ms\r\n```\r\n\r\n---\r\n\r\n## ✅ Validation (ajv)\r\n\r\n```typescript\r\nimport { validate, validateQuery, validateParams } from '@thanhhoajs/thanhhoa';\r\n\r\nconst userSchema = {\r\n  type: 'object',\r\n  properties: {\r\n    name: { type: 'string', minLength: 1 },\r\n    email: { type: 'string', format: 'email' }\r\n  },\r\n  required: ['name', 'email']\r\n};\r\n\r\napp.post('/users', async (ctx) => {\r\n  const user = ctx.validatedBody; // Already validated and typed\r\n  return json({ created: user }, 201);\r\n}, [validate(userSchema)]);\r\n\r\n// Query params\r\napp.get('/search', handler, [validateQuery({ type: 'object', properties: { q: { type: 'string' } } })]);\r\n```\r\n\r\n---\r\n\r\n## 🍪 Cookies\r\n\r\n```typescript\r\napp.get('/profile', (ctx) => {\r\n  const session = ctx.cookies.get('session');\r\n  return json({ session });\r\n});\r\n\r\napp.post('/login', (ctx) => {\r\n  ctx.cookies.set('session', 'token123', {\r\n    httpOnly: true,\r\n    secure: true,\r\n    sameSite: 'Strict',\r\n    maxAge: 3600\r\n  });\r\n  return json({ success: true });\r\n});\r\n\r\napp.post('/logout', (ctx) => {\r\n  ctx.cookies.delete('session');\r\n  return json({ loggedOut: true });\r\n});\r\n```\r\n\r\n---\r\n\r\n## 📁 Static Files & SPA\r\n\r\n```typescript\r\nconst app = new ThanhHoa({\r\n  staticDirectories: [\r\n    { path: '/static', directory: 'public' },\r\n    { path: '/assets', directory: 'assets' }\r\n  ],\r\n  spa: true // Serve index.html for unknown routes\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🔌 WebSocket\r\n\r\n```typescript\r\napp.ws('/chat', {\r\n  open(ws) {\r\n    console.log('Connected:', ws.data.id);\r\n    ws.subscribe('room:1');\r\n  },\r\n  message(ws, msg) {\r\n    ws.publish('room:1', msg);\r\n  },\r\n  close(ws, code, reason) {\r\n    console.log('Disconnected');\r\n  }\r\n});\r\n```\r\n\r\n---\r\n\r\n## 📂 File Responses\r\n\r\n```typescript\r\nimport { file, attachment, inline, blob } from '@thanhhoajs/thanhhoa';\r\n\r\napp.get('/pdf/:id',  (ctx) => file(`./docs/${ctx.params.id}.pdf`));\r\napp.get('/export',   () => attachment('./data.csv', 'report.csv'));\r\napp.get('/preview',  () => inline('./document.pdf'));\r\napp.get('/image',    () => blob(generateBuffer(), 'image/png'));\r\n```\r\n\r\n---\r\n\r\n## 📤 File Upload\r\n\r\n```typescript\r\nimport { uploadFile } from '@thanhhoajs/thanhhoa';\r\n\r\napp.post('/upload', async (ctx) => {\r\n  const formData = await ctx.formData();\r\n  const file = formData.get('file');\r\n\r\n  if (!(file instanceof File)) return json({ error: 'No file' }, 400);\r\n\r\n  const result = await uploadFile(file, {\r\n    directory: 'uploads',\r\n    allowedTypes: ['image/png', 'image/jpeg'],\r\n    maxSize: 5 * 1024 * 1024 // 5 MB\r\n  });\r\n\r\n  return json(result);\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🌊 Streams & SSE\r\n\r\n```typescript\r\nimport { streamResponse, createDirectStream } from '@thanhhoajs/thanhhoa';\r\n\r\n// Server-Sent Events\r\napp.get('/events', () =>\r\n  streamResponse(async function* () {\r\n    yield 'data: connected\\n\\n';\r\n    for (let i = 0; i < 10; i++) {\r\n      await Bun.sleep(1000);\r\n      yield `data: tick ${i}\\n\\n`;\r\n    }\r\n  }(), { headers: { 'Content-Type': 'text/event-stream' } })\r\n);\r\n\r\n// Zero-copy direct stream\r\napp.get('/stream', () => {\r\n  const body = createDirectStream(async (ctrl) => {\r\n    ctrl.write('hello ');\r\n    ctrl.write('world');\r\n  });\r\n  return new Response(body);\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🗄️ Session Management\r\n\r\n```typescript\r\nimport { sessionManager, MemorySessionStore, RedisSessionStore } from '@thanhhoajs/thanhhoa';\r\nimport { RedisClient } from 'bun';\r\n\r\n// Development: in-memory\r\nconst session = sessionManager(new MemorySessionStore());\r\n\r\n// Production: Redis\r\nconst session = sessionManager(new RedisSessionStore(new RedisClient()), {\r\n  ttl: 86400 // 24 hours\r\n});\r\n\r\napp.post('/login', async (ctx) => {\r\n  const id = await session.create({ userId: 1, role: 'admin' });\r\n  ctx.cookies.set('session', id, { httpOnly: true, secure: true });\r\n  return json({ success: true });\r\n});\r\n\r\napp.get('/me', async (ctx) => {\r\n  const data = await session.get(ctx.cookies.get('session')!);\r\n  if (!data) return json({ error: 'Not logged in' }, 401);\r\n  return json(data);\r\n});\r\n\r\napp.post('/logout', async (ctx) => {\r\n  await session.destroy(ctx.cookies.get('session')!);\r\n  ctx.cookies.delete('session');\r\n  return json({ success: true });\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🧪 Testing (No HTTP server needed)\r\n\r\n```typescript\r\nimport { testClient } from '@thanhhoajs/thanhhoa';\r\n\r\nconst app = new ThanhHoa();\r\napp.get('/hello', () => json({ message: 'Hello!' }));\r\n\r\nconst client = testClient(app);\r\n\r\nconst res = await client.get('/hello');\r\nconsole.log(await res.json()); // { message: 'Hello!' }\r\n\r\nconst post = await client.post('/users', {\r\n  body: { name: 'John' },\r\n  headers: { Authorization: 'Bearer token' }\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🔌 App State\r\n\r\n```typescript\r\ninterface AppState {\r\n  db: Database;\r\n  config: Config;\r\n}\r\n\r\nconst app = new ThanhHoa<AppState>();\r\napp.state.db = dbConnection;\r\n\r\napp.get('/users', (ctx) => {\r\n  const users = ctx.state.db.query('SELECT * FROM users');\r\n  return json({ users });\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🚀 Starting the Server\r\n\r\n```typescript\r\n// Basic\r\napp.listen({ port: 3000 });\r\n\r\n// With hostname\r\napp.listen({ port: 3000, hostname: '0.0.0.0' });\r\n\r\n// HTTPS (TLS)\r\napp.listen({\r\n  port: 443,\r\n  tls: {\r\n    key: Bun.file('./server.key'),\r\n    cert: Bun.file('./server.cert')\r\n  }\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🗄️ LRU Cache Utility\r\n\r\nBuilt-in O(1) LRU cache — no npm dependency required.\r\n\r\n```typescript\r\nimport { LRUCache } from '@thanhhoajs/thanhhoa';\r\n\r\nconst cache = new LRUCache<string, User>({\r\n  max: 1000,\r\n  ttl: 60_000,        // ms, optional\r\n  updateAgeOnGet: true\r\n});\r\n\r\ncache.set('user:1', userData);\r\nconst user = cache.get('user:1'); // undefined if expired or evicted\r\ncache.has('user:1');\r\ncache.delete('user:1');\r\ncache.clear();\r\n```\r\n\r\n---\r\n\r\n## 🔴 Error Handling\r\n\r\n```typescript\r\nimport { HttpException } from '@thanhhoajs/thanhhoa';\r\n\r\n// Throw from anywhere — returns correct status automatically\r\napp.get('/item/:id', (ctx) => {\r\n  throw new HttpException('Not found', 404);\r\n});\r\n\r\n// Custom global error handler\r\napp.setErrorHandler({\r\n  handle(error, ctx) {\r\n    if (error instanceof HttpException) return error.toResponse();\r\n    return json({ error: 'Internal Server Error' }, 500);\r\n  }\r\n});\r\n```\r\n\r\n---\r\n\r\n## 📊 Benchmark Results\r\n\r\n**Environment:** Windows 11, Bun 1.3.8\r\n**Config:** 5,000 iterations × 2 requests per iteration\r\n\r\n| Metric | Result |\r\n|---|---|\r\n| Average Latency | **0.12ms** |\r\n| Throughput | **~80,000+ req/s** |\r\n\r\n| Framework | Estimated RPS |\r\n|---|---|\r\n| Express.js | ~13,000 |\r\n| Fastify | ~30,000 |\r\n| Hono | ~60,000 |\r\n| ElysiaJS | ~70,000 |\r\n| **ThanhHoaJS** | **~80,000+** |\r\n\r\n> Set `NODE_ENV=production` for maximum performance.\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\n[MIT](https://github.com/thanhhoajs/thanhhoa?tab=MIT-1-ov-file) © Nguyen Nhu Khanh\r\n","readmeFilename":"README.md"}