{"_id":"@desaubv/quik","_rev":"18-3e5642d04fbe338f98ed2fd0d09249ea","name":"@desaubv/quik","dist-tags":{"latest":"0.1.3"},"versions":{"0.0.1":{"name":"@desaubv/quik","version":"0.0.1","keywords":["quik","logger","logging","typescript","nodejs"],"author":{"name":"desaubv"},"license":"ISC","_id":"@desaubv/quik@0.0.1","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"dist":{"shasum":"9e8922d5f8bb52bb9829508bd7ffa2b0f052ad58","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.1.tgz","fileCount":7,"integrity":"sha512-BaZPbXzdkbPD6RcEtPxSxHjpetrnxXjyimNK0y1pwBtUcDtss4aks8qcnzNpD/8/RJg1BmQJYPGX4N+Lr9x2Iw==","signatures":[{"sig":"MEYCIQDcJJ3dggUmJ8UjuBLl0IxRV5AIzc9VwfzjmpiHyPOCBAIhAJ7eu5LXphyVL60Jzkpngu3do7oZHakLiFt/bE4JCX+H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32277},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f8a99044ce68e731d4132b15d9761472736bf678","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"_npmVersion":"11.14.0","description":"Quik","directories":{},"_nodeVersion":"22.18.0","dependencies":{"colors":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.6","tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.1_1786045930822_0.3455569653136117","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@desaubv/quik","version":"0.0.2","keywords":["quik","logger","logging","typescript","nodejs"],"author":{"name":"desaubv"},"license":"ISC","_id":"@desaubv/quik@0.0.2","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"dist":{"shasum":"1e59453beabb99582a36652a7289ca7222c51d7d","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.2.tgz","fileCount":7,"integrity":"sha512-YZFzhwt5onOYxzesLTlPmG4pY8UQfxD0lXnTubNxGUCV1POrBoyngBFT0lQOWejLt+SleR4wEY8qNUADuBaPEg==","signatures":[{"sig":"MEUCICKVlLtvxs9R8vn0HOPYwXs/KaZob5CGgpVmRH9uVXamAiEAwGdvC7UG2R/wPjrzRyEpsxUQNprTxW6YU+tZtBkRwOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36806},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e8625c2f8fc34eb9e17b91261b88e334f66d229f","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"_npmVersion":"11.13.0","description":"Quik","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.2_1786050328858_0.025553920012578057","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@desaubv/quik","version":"0.0.21","keywords":["quik","logger","logging","typescript","nodejs"],"author":{"name":"desaubv"},"license":"ISC","_id":"@desaubv/quik@0.0.21","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"dist":{"shasum":"3bd251084f82f7e113212c8744bcec246ecd854d","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.21.tgz","fileCount":7,"integrity":"sha512-Mabr+cyzRw5HQl7FVMQLi2m19Gw47T8YmPENWsjhYjFwYSsrbah+k+rphxMBG7VMUKacstQ8hgRnREeLKA5AFQ==","signatures":[{"sig":"MEUCIDXUaYTQEDLQacp2IGV0DX9gUFGacD9dxVMK3Qp5ryFdAiEA4fcCOlU2Z5phVYKZnMmbC5GqV0LnAbEkKdZAwXpiTtY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36857},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"36d4fa153aa1b0a63ab1eefb7ae57685d75cfe54","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"_npmVersion":"11.13.0","description":"Quik","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.21_1786051016663_0.598128526416704","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@desaubv/quik","version":"0.0.3","keywords":["quik","logger","logging","typescript","nodejs"],"author":{"name":"desaubv"},"license":"ISC","_id":"@desaubv/quik@0.0.3","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"dist":{"shasum":"cb8695b0bf3d9b55a8d8105abb7fb581098d8ebc","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.3.tgz","fileCount":7,"integrity":"sha512-c6CwWVJoWcqghx9x7QjlRRgCBQ1xURKkHjXQu3R8gTFU5WMJPK+yACJ+nJXAatqyTQMkzyJUSwxrvwDw/fpvEw==","signatures":[{"sig":"MEUCIQD5cDqvcRv4R2sFMaqGZQXi0IwJkALItJRuw7myLlZ4ngIgb77OSqNxTNCV85pH9DrT5R6e995kJF5sk/aXGObIxgE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45817},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7891063c54cc65440d3301220e33a202065f872f","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"_npmVersion":"11.13.0","description":"Quik","directories":{},"_nodeVersion":"24.16.0","dependencies":{"express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.3_1786071015460_0.6206857909771819","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@desaubv/quik","version":"0.0.31","keywords":["quik","logger","logging","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.0.31","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"d7265842c852da3313678d10f1bbda97eea02da6","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.31.tgz","fileCount":7,"integrity":"sha512-h4xMHPQBbI8+mSaV1EKwKRy9B9aiHPRx69Bvdzagt7TqULCz3uRKqBg+IOp1LQCRm96nvwTEpDNv87GH6pwraQ==","signatures":[{"sig":"MEUCIEubC2y3HsbFkC55pac9nBaJcDQ3Ga2JvBmWP7kACL2EAiEAsHDOQz5NjhSgDJhkeBCpJPuHJVKiI+XRJMUdda/399Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46308},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4cbbfe2af7f3da4dffce7b40f9539c2cbb33b76d","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.31_1786071266442_0.6762390235047973","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@desaubv/quik","version":"0.0.4","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.0.4","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"8bf6ad46469a5c784324da6a29ec982be6afa139","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.4.tgz","fileCount":7,"integrity":"sha512-CgpdmvR4FmxL2qUTmp8PMaurcQtwupI14pff1eZL0P4HKFxLf5tJG9BjjD9QsYNiq77lTGIA3qqM4cnVVx7m/w==","signatures":[{"sig":"MEYCIQCCbPbWOpDmSueKOpdRbq93n/6r+xkVyK2XjCwEuIUg7QIhAPWVcA0TU+0YBP8hInSzOQ8BjG3CmJT31y7hOchrcGqg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74412},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"11cf980546e2872e2ece3c63a244b01397d6f25e","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.4_1786165321532_0.900009550150408","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@desaubv/quik","version":"0.0.5","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.0.5","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"28d111544247b0df61d947091741ae5d875daf68","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.5.tgz","fileCount":7,"integrity":"sha512-JrBhidhys7s7uay+RBviFcG9rAjUVQ7uCOLZG3DvgfkMGVXxWaGf0rMyxKcnbGGjjbBrziPtpfS5XGM0g9jWMA==","signatures":[{"sig":"MEQCIHuVjxF5tm6cEESX2jIc57XHANaE2ldfs//pAZlH/BiiAiBGFCZTWceCAg9amkDSolK/n7hsSM1CUt62OJXeasTrEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95989},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cron":"./dist/cron/index.js"},"gitHead":"5709c847428757444fcb54150b7a3b701aff6ae5","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.14.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"express":"^5.2.1","node-cron":"^4.6.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.5_1786250536767_0.2961364876330166","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@desaubv/quik","version":"0.0.7","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.0.7","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"0ce9ed3eefc358087932ff1c3e36b21f3f044e95","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.7.tgz","fileCount":22,"integrity":"sha512-1PxhviFAsjSvbiEEYEAcSYCJv6ieQSHBwYxiZqXJeQgkNO7OL/8LJ9n3ixniNiC3FGvGScwasAgVEnCr44j8CA==","signatures":[{"sig":"MEUCIQCgRu6TwILRG5vi2v6aeD9cZo429FCPBpYdBh7kDQXbQwIgbEl1A7n2dz4Z07AQyZXF31wo/hpHQRPrR+7lgXKkmYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186702},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cron":{"types":"./dist/cron/index.d.ts","import":"./dist/cron/index.js","require":"./dist/cron/index.cjs"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js","require":"./dist/http/index.cjs"}},"gitHead":"8ef1e07dead0fb6ab1b0f8e9c2f2c2af363defba","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"express":"^5.2.1","node-cron":"^4.6.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.7_1786431004049_0.44698551770690464","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@desaubv/quik","version":"0.0.8","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.0.8","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"6cba3d8423759da4a39eafca5a773c8badadaa83","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.8.tgz","fileCount":22,"integrity":"sha512-zKSpfQFc8P2M+nVzn3yflQG0JDUMEW0fTRY3E5fUscaeRFd3CaTXmGmcFRTS6yRE9mFolTC1y1UGmE21N4xVHg==","signatures":[{"sig":"MEQCICbnQ7KfsXn9czYf11nedCj4eOKuF3n1G8umncGFxXykAiA6sDaSSiSw//idpN4vifz6zgcg+obm5oglvZtYWJqzbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234751},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ws":{"types":"./dist/ws/index.d.ts","import":"./dist/ws/index.js","require":"./dist/ws/index.cjs"},"./cron":{"types":"./dist/cron/index.d.ts","import":"./dist/cron/index.js","require":"./dist/cron/index.cjs"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js","require":"./dist/http/index.cjs"}},"gitHead":"bab6778595ca95a2fe9d0216d6a8c6931e02ff3b","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"express":"^5.2.1","node-cron":"^4.6.0","socket.io":"^4.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.8_1786519063927_0.20780319916567458","host":"s3://npm-registry-packages-npm-production"}},"0.0.81":{"name":"@desaubv/quik","version":"0.0.81","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.0.81","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"38ed9f8dbd88a062c134834124d8e1da731294d5","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.0.81.tgz","fileCount":22,"integrity":"sha512-VSBFEmIUsO86UiSI5lfwHg2WRfigFh5SNITzE+ddA8C0db/JkneqIznQquBwws+Vs1/6ZM5XhKDb87EvJrDJhw==","signatures":[{"sig":"MEUCIQDG4m5E3VyFYsu5PwtQ6LPLHvo6AjcFdpOae9TPi+b3PwIgMroc6EMA////vKOefGk51AeEKT0rIkEDSueJvKibLLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253868},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ws":{"types":"./dist/ws/index.d.ts","import":"./dist/ws/index.js","require":"./dist/ws/index.cjs"},"./cron":{"types":"./dist/cron/index.d.ts","import":"./dist/cron/index.js","require":"./dist/cron/index.cjs"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js","require":"./dist/http/index.cjs"}},"gitHead":"5c8ad7ec0279e06a20cb920e8d2a7526a0fda21f","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"express":"^5.2.1","node-cron":"^4.6.0","socket.io":"^4.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.0.81_1786589435838_0.3574994922252508","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@desaubv/quik","version":"0.1.0","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.1.0","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"b5ebeaf94ec71db1bd463d902bdb66ec82d6df21","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.1.0.tgz","fileCount":36,"integrity":"sha512-diGCUxoynQ3qWfT/ufx4M+N7Lubk/9k4nOQN4/KqEII8blYl/iBJi+uNUCsplL6GSxzFfNr0FuI0Y5IB5m511A==","signatures":[{"sig":"MEYCIQDLwkgi5yLAzgL07CXhV/mXD0x7HnfLkrmQMO6EiQt7pAIhAKT/B0QFS1fmw2KAekPmC+rXxSRMYA4JkyJI/3Re5Qiz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302863},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ws":{"types":"./dist/ws/index.d.ts","import":"./dist/ws/index.js","require":"./dist/ws/index.cjs"},"./cron":{"types":"./dist/cron/index.d.ts","import":"./dist/cron/index.js","require":"./dist/cron/index.cjs"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js","require":"./dist/http/index.cjs"},"./socket.io":{"types":"./dist/socket.io/index.d.ts","import":"./dist/socket.io/index.js","require":"./dist/socket.io/index.cjs"}},"gitHead":"b0c0b0771cab68c89fd9a4e79468d8cb3f7e3da5","scripts":{"dev":"tsup --watch","build":"tsup","publish":"npm publish --access public --tag latest"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.3","express":"^5.2.1","node-cron":"^4.6.0","socket.io":"^4.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.1.0_1786647615667_0.8432085381445222","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@desaubv/quik","version":"0.1.1","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.1.1","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/DiegoBarajas/quik","bugs":{"url":"https://github.com/DiegoBarajas/quik/issues"},"dist":{"shasum":"914e6fe7635c7cc594a8b72e9cdb047251083798","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.1.1.tgz","fileCount":36,"integrity":"sha512-873y4nwnw16od5Uk8INJMNqkFomlm0+c52TL5+SaOkAVX/qkatuLHhAyQ+czAuBD2UuPKwljOZwvvMpUP2XUuA==","signatures":[{"sig":"MEQCICkrdYHB/VkeVIt/ZzX6EcSLcxpGLrXaD8i96BFi03bRAiB/Q61bhRqWQKAlvrRmh9ZRANjGxR7RAG3GC5JOHVbEjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300929},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ws":{"types":"./dist/ws/index.d.ts","import":"./dist/ws/index.js","require":"./dist/ws/index.cjs"},"./cron":{"types":"./dist/cron/index.d.ts","import":"./dist/cron/index.js","require":"./dist/cron/index.cjs"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js","require":"./dist/http/index.cjs"},"./socket.io":{"types":"./dist/socket.io/index.d.ts","import":"./dist/socket.io/index.js","require":"./dist/socket.io/index.cjs"}},"gitHead":"e0ec57692505089cccbd31942b2490d049003d10","scripts":{"dev":"tsup --watch","build":"tsup","publish":"npm publish --access public --tag latest"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/DiegoBarajas/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.3","express":"^5.2.1","node-cron":"^4.6.0","socket.io":"^4.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.1.1_1786648094030_0.930109826258201","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@desaubv/quik","version":"0.1.2","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"license":"MIT","_id":"@desaubv/quik@0.1.2","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"homepage":"https://github.com/desaubv/quik","bugs":{"url":"https://github.com/desaubv/quik/issues"},"dist":{"shasum":"371a6dc3426f799c5ccc3cd4f3232a07524e4ed3","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.1.2.tgz","fileCount":36,"integrity":"sha512-AW3iHOIht0IwZ790C9nvy2JmWKEsGfO8aYGZcwT3j8BIXlz18BAlaUxFRY30VmxsB3FLISbeHbvlLZOB0mJaPQ==","signatures":[{"sig":"MEUCIQDc6cP45PB8qKkLPGoGEKxAD5iuVAXZou8oiONvtf2KsQIgX8p75EW4P6r1tNuMn4PMFSoD79BH0WNuiKicIIPSvhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300914},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./ws":{"types":"./dist/ws/index.d.ts","import":"./dist/ws/index.js","require":"./dist/ws/index.cjs"},"./cron":{"types":"./dist/cron/index.d.ts","import":"./dist/cron/index.js","require":"./dist/cron/index.cjs"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js","require":"./dist/http/index.cjs"},"./socket.io":{"types":"./dist/socket.io/index.d.ts","import":"./dist/socket.io/index.js","require":"./dist/socket.io/index.cjs"}},"gitHead":"0ee5d5bdf41e0a6341961fb336c63e781f75a025","scripts":{"dev":"tsup --watch","build":"tsup","publish":"npm publish --access public --tag latest"},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"repository":{"url":"git+https://github.com/desaubv/quik.git","type":"git"},"_npmVersion":"11.13.0","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.3","express":"^5.2.1","node-cron":"^4.6.0","socket.io":"^4.8.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"~5.9.3","@types/node":"^26.1.2","@types/express":"^5.0.6","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/quik_0.1.2_1786652493438_0.1754845415202826","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@desaubv/quik","version":"0.1.3","description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cron":{"types":"./dist/cron/index.d.ts","import":"./dist/cron/index.js","require":"./dist/cron/index.cjs"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js","require":"./dist/http/index.cjs"},"./ws":{"types":"./dist/ws/index.d.ts","import":"./dist/ws/index.js","require":"./dist/ws/index.cjs"},"./socket.io":{"types":"./dist/socket.io/index.d.ts","import":"./dist/socket.io/index.js","require":"./dist/socket.io/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","publish":"npm publish --access public --tag latest"},"keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"author":{"name":"desaubv"},"homepage":"https://github.com/desaubv/quik","repository":{"type":"git","url":"git+https://github.com/desaubv/quik.git"},"bugs":{"url":"https://github.com/desaubv/quik/issues"},"license":"MIT","devDependencies":{"@types/express":"^5.0.6","@types/node":"^26.1.2","@types/node-cron":"^3.0.11","tsup":"^8.5.1","typescript":"~5.9.3"},"dependencies":{"express":"^5.2.1","node-cron":"^4.6.0","socket.io":"^4.8.3","ws":"^8.21.3"},"gitHead":"496e791597a5107554a1b80197acc8d7b8593ecd","_id":"@desaubv/quik@0.1.3","_nodeVersion":"24.16.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-W2wXDlGIx7Oin+imQLH6co7bgIDyqsoutSyR+qlo2+f1wn0cZaZ1BEUDs3Z6UGljcHIYgN6/U8Hh3qKut0eMSw==","shasum":"c69bbfffeef5298613cb465102ac95358a8469be","tarball":"https://registry.npmjs.org/@desaubv/quik/-/quik-0.1.3.tgz","fileCount":36,"unpackedSize":312797,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE8+Aj2F2j7PwKboQpeGBxvPmIfNde1Ga+xXsCVzP3EHAiEA5gDZlk1mfNFd7hthdxHEugjZ+8ztDGqODtrqO/wQOxM="}]},"_npmUser":{"name":"desaubv","email":"desaubv@gmail.com"},"directories":{},"maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/quik_0.1.3_1788926240764_0.6005563239116776"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-06T19:52:10.679Z","modified":"2026-09-09T03:57:21.033Z","0.0.1":"2026-08-06T19:52:10.958Z","0.0.2":"2026-08-06T21:05:29.015Z","0.0.21":"2026-08-06T21:16:56.812Z","0.0.3":"2026-08-07T02:50:15.612Z","0.0.31":"2026-08-07T02:54:26.585Z","0.0.4":"2026-08-08T05:02:01.665Z","0.0.5":"2026-08-09T04:42:16.911Z","0.0.6":"2026-08-11T06:38:17.666Z","0.0.61":"2026-08-11T06:40:41.509Z","0.0.7":"2026-08-11T06:50:04.200Z","0.0.8":"2026-08-12T07:17:44.065Z","0.0.81":"2026-08-13T02:50:36.032Z","0.1.0":"2026-08-13T19:00:15.911Z","0.1.1":"2026-08-13T19:08:14.192Z","0.1.2":"2026-08-13T20:21:33.589Z","0.1.3":"2026-09-09T03:57:20.895Z"},"bugs":{"url":"https://github.com/desaubv/quik/issues"},"author":{"name":"desaubv"},"license":"MIT","homepage":"https://github.com/desaubv/quik","keywords":["quik","typescript","nodejs","express","router","middleware","typescript","backend"],"repository":{"type":"git","url":"git+https://github.com/desaubv/quik.git"},"description":"Quik is an Express-based library designed to simplify the creation of modern backends. It allows you to build APIs quickly, reducing repetitive code through clean syntax and intuitive tools.","maintainers":[{"name":"desaubv","email":"desaubv@gmail.com"}],"readme":"# Quik\r\n\r\nQuik is an Express-based TypeScript library designed to simplify the creation of modern Node.js backends.\r\n\r\nIt provides a clean API for building HTTP servers, routers, middleware, scheduled tasks, and cron-based jobs while reducing repetitive code.\r\n\r\n## Features\r\n\r\n* Express-based HTTP server\r\n* Fluent routing API\r\n* Middleware support\r\n* JSON, URL-encoded, raw, and text body parsing\r\n* HTTP server configuration\r\n* Cron task management powered by `node-cron`\r\n* Cron schedule builder\r\n* Time zone support\r\n* Built-in logger\r\n* TypeScript support\r\n* ESM and CommonJS package entry points\r\n\r\n## Requirements\r\n\r\n* Node.js 22 or later\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @desaubv/quik\r\n```\r\n\r\n## Quick Start\r\n\r\n```ts\r\nimport { Server, Router } from \"@desaubv/quik\";\r\n\r\nconst router = Router();\r\n\r\nrouter\r\n    .path(\"/hello\")\r\n    .get((req, res) => {\r\n        res.json({\r\n            message: \"Hello, world!\",\r\n        });\r\n    });\r\n\r\nconst server = Server();\r\n\r\nserver\r\n    .addRoute(\"/\", router)\r\n    .start();\r\n```\r\n\r\nBy default, the server listens on:\r\n\r\n```text\r\nhttp://localhost:8080\r\n```\r\n\r\n## Cron\r\n\r\nCron functionality is available through the `/cron` subpath:\r\n\r\n```ts\r\nimport { Cron, Schedule } from \"@desaubv/quik/cron\";\r\n\r\nconst cron = Cron();\r\n\r\ncron.add({\r\n    name: \"backup\",\r\n    schedule: Schedule.every(6).hours(),\r\n    task: async () => {\r\n        console.log(\"Running backup...\");\r\n    },\r\n});\r\n```\r\n\r\nThe cron manager can then be attached to the server:\r\n\r\n```ts\r\nconst server = Server();\r\n\r\nserver\r\n    .addCron(cron)\r\n    .start();\r\n```\r\n\r\n## HTTP Status Codes\r\n\r\nHTTP status codes are available through the `/http` subpath:\r\n\r\n```ts\r\nimport { Status } from \"@desaubv/quik/http\";\r\n\r\nrouter\r\n    .path(\"/users\")\r\n    .get((req, res) => {\r\n        res\r\n            .status(Status.OK)\r\n            .json([]);\r\n    });\r\n```\r\n\r\n## Package Exports\r\n\r\nQuik provides three public entry points:\r\n\r\n### Main\r\n\r\n```ts\r\nimport {\r\n    Server,\r\n    Router,\r\n    QuikRouter,\r\n    logger,\r\n} from \"@desaubv/quik\";\r\n```\r\n\r\n### Cron\r\n\r\n```ts\r\nimport {\r\n    Cron,\r\n    QuikCron,\r\n    Schedule,\r\n} from \"@desaubv/quik/cron\";\r\n```\r\n\r\n### HTTP\r\n\r\n```ts\r\nimport { Status } from \"@desaubv/quik/http\";\r\n```\r\n\r\n## Server Configuration\r\n\r\n```ts\r\nconst server = Server();\r\n\r\nserver.setConfig({\r\n    http: {\r\n        port: 3000,\r\n        host: \"localhost\",\r\n    },\r\n});\r\n```\r\n\r\n### HTTP Options\r\n\r\n```ts\r\nserver.setConfig({\r\n    http: {\r\n        port: 8080,\r\n        host: \"localhost\",\r\n        keepAlive: 5000,\r\n        timeout: 10000,\r\n        maxConnections: 100,\r\n        shutdownTimeout: 5000,\r\n    },\r\n});\r\n```\r\n\r\n### Express Options\r\n\r\n```ts\r\nserver.setConfig({\r\n    express: {\r\n        trustProxy: true,\r\n    },\r\n});\r\n```\r\n\r\n## Body Parser\r\n\r\nQuik supports the Express body parsers:\r\n\r\n```ts\r\nserver.setConfig({\r\n    bodyParser: {\r\n        type: \"json\",\r\n    },\r\n});\r\n```\r\n\r\nAvailable types:\r\n\r\n```text\r\njson\r\nurlencoded\r\nraw\r\ntext\r\n```\r\n\r\nEach type accepts the corresponding Express options.\r\n\r\nFor example:\r\n\r\n```ts\r\nserver.setConfig({\r\n    bodyParser: {\r\n        type: \"json\",\r\n        options: {\r\n            limit: \"1mb\",\r\n        },\r\n    },\r\n});\r\n```\r\n\r\n## Middleware\r\n\r\nGlobal middleware can be registered with `addMiddleware()`:\r\n\r\n```ts\r\nserver.addMiddleware(\r\n    middleware1,\r\n    middleware2,\r\n);\r\n```\r\n\r\nRoute-specific middleware can be registered through the router:\r\n\r\n```ts\r\nrouter\r\n    .path(\"/users\")\r\n    .middleware(authMiddleware)\r\n    .get((req, res) => {\r\n        res.json([]);\r\n    });\r\n```\r\n\r\n## Router\r\n\r\nCreate a router with:\r\n\r\n```ts\r\nconst router = Router();\r\n```\r\n\r\nRegister routes using the fluent API:\r\n\r\n```ts\r\nrouter\r\n    .path(\"/users\")\r\n    .get(handler);\r\n\r\nrouter\r\n    .path(\"/users\")\r\n    .post(handler);\r\n\r\nrouter\r\n    .path(\"/users/:id\")\r\n    .put(handler);\r\n\r\nrouter\r\n    .path(\"/users/:id\")\r\n    .patch(handler);\r\n\r\nrouter\r\n    .path(\"/users/:id\")\r\n    .delete(handler);\r\n```\r\n\r\nSupported HTTP methods:\r\n\r\n```text\r\nGET\r\nPOST\r\nPUT\r\nPATCH\r\nDELETE\r\n```\r\n\r\nMount the router on the server:\r\n\r\n```ts\r\nserver.addRoute(\"/api\", router);\r\n```\r\n\r\nA route registered as:\r\n\r\n```text\r\n/users\r\n```\r\n\r\nwill therefore be available at:\r\n\r\n```text\r\n/api/users\r\n```\r\n\r\n## Cron Schedule Builder\r\n\r\nInstead of writing cron expressions manually, use `Schedule`:\r\n\r\n```ts\r\nimport { Schedule } from \"@desaubv/quik/cron\";\r\n```\r\n\r\nExamples:\r\n\r\n```ts\r\nSchedule.every(10).seconds();\r\n\r\nSchedule.every(5).minutes();\r\n\r\nSchedule.every(2).hours();\r\n\r\nSchedule.every(3).days();\r\n\r\nSchedule.every(2).months();\r\n\r\nSchedule.at(\"08:30\");\r\n\r\nSchedule.weekday(\"monday\", \"09:00\");\r\n\r\nSchedule.weekdaysAt(\"09:00\");\r\n\r\nSchedule.weekendsAt(\"10:00\");\r\n```\r\n\r\n### Examples\r\n\r\n```ts\r\nSchedule.every(5).minutes();\r\n// */5 * * * *\r\n\r\nSchedule.every(6).hours();\r\n// 0 */6 * * *\r\n\r\nSchedule.at(\"08:30\");\r\n// 30 8 * * *\r\n\r\nSchedule.weekday(\"monday\", \"09:00\");\r\n// 0 9 * * 1\r\n\r\nSchedule.weekdaysAt(\"09:00\");\r\n// 0 9 * * 1-5\r\n\r\nSchedule.weekendsAt(\"10:00\");\r\n// 0 10 * * 0,6\r\n```\r\n\r\n## Cron Configuration\r\n\r\nCron instances can be configured with `setConfig()`:\r\n\r\n```ts\r\ncron.setConfig({\r\n    language: \"en\",\r\n    timeZone: \"America/Los_Angeles\",\r\n\r\n    onError: (error) => {\r\n        console.error(error);\r\n    },\r\n});\r\n```\r\n\r\nA task can also define its own time zone:\r\n\r\n```ts\r\ncron.add({\r\n    name: \"daily-report\",\r\n    schedule: Schedule.at(\"12:00\"),\r\n    timezone: \"America/Los_Angeles\",\r\n\r\n    task: async () => {\r\n        console.log(\"Generating report...\");\r\n    },\r\n});\r\n```\r\n\r\nA task-specific time zone takes precedence over the default cron time zone.\r\n\r\n## Complete Example\r\n\r\n```ts\r\nimport {\r\n    Server,\r\n    Router,\r\n} from \"@desaubv/quik\";\r\n\r\nimport {\r\n    Cron,\r\n    Schedule,\r\n} from \"@desaubv/quik/cron\";\r\n\r\nconst router = Router();\r\n\r\nrouter\r\n    .path(\"/health\")\r\n    .get((req, res) => {\r\n        res\r\n            .status(200)\r\n            .json({\r\n                status: \"ok\",\r\n            });\r\n    });\r\n\r\nrouter\r\n    .path(\"/users\")\r\n    .get((req, res) => {\r\n        res.json([]);\r\n    });\r\n\r\nconst cron = Cron();\r\n\r\ncron.add({\r\n    name: \"cleanup\",\r\n    schedule: Schedule.every(30).minutes(),\r\n\r\n    task: async () => {\r\n        console.log(\"Running cleanup...\");\r\n    },\r\n});\r\n\r\ncron.add({\r\n    name: \"daily-report\",\r\n    schedule: Schedule.at(\"08:00\"),\r\n    timezone: \"America/Los_Angeles\",\r\n\r\n    task: async () => {\r\n        console.log(\"Generating daily report...\");\r\n    },\r\n});\r\n\r\nconst server = Server();\r\n\r\nserver\r\n    .setConfig({\r\n        http: {\r\n            port: 8080,\r\n        },\r\n    })\r\n    .addMiddleware((req, res, next) => {\r\n        console.log(`${req.method} ${req.path}`);\r\n        next();\r\n    })\r\n    .addRoute(\"/api\", router)\r\n    .addCron(cron)\r\n    .start();\r\n```\r\n\r\nThe resulting API includes:\r\n\r\n```text\r\nGET /api/health\r\nGET /api/users\r\n```\r\n\r\nwhile the configured cron tasks run alongside the HTTP server.\r\n\r\n## Logger\r\n\r\nQuik includes a configurable logger with support for multiple log levels, colors, timestamps, file output, formatting, and localization.\r\n\r\n```ts\r\nimport { logger } from \"@desaubv/quik\";\r\n```\r\n\r\n### Log Levels\r\n\r\nQuik provides five predefined log levels:\r\n\r\n```ts\r\nlogger.log(\"Application message\");\r\n\r\nlogger.info(\"Server started\");\r\n\r\nlogger.warning(\"Configuration is missing\");\r\n\r\nlogger.error(\"Something went wrong\");\r\n\r\nlogger.debug(\"Debug information\");\r\n```\r\n\r\nThe logger accepts multiple values:\r\n\r\n```ts\r\nlogger.info(\r\n    \"User created:\",\r\n    {\r\n        id: 123,\r\n        name: \"John\",\r\n    },\r\n);\r\n```\r\n\r\nErrors are handled automatically:\r\n\r\n```ts\r\ntry {\r\n    throw new Error(\"Something went wrong\");\r\n} catch (error) {\r\n    logger.error(\"Request failed:\", error);\r\n}\r\n```\r\n\r\n### Default Output\r\n\r\nThe default format is:\r\n\r\n```text\r\nDD-MM-YYYY hh:mm:ss [LEVEL] message\r\n```\r\n\r\nFor example:\r\n\r\n```text\r\n11-08-2026 00:34:30 [INFO] Server started\r\n```\r\n\r\n### Configuration\r\n\r\nLogger configuration can be changed using `setConfig()`:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    color: {\r\n        infoColor: \"green\",\r\n        errorColor: \"red\",\r\n        warningColor: \"yellow\",\r\n        logColor: \"blue\",\r\n        debugColor: null,\r\n    },\r\n\r\n    format: {\r\n        timestampFormat: \"DD-MM-YYYY hh:mm:ss\",\r\n        titleCase: \"uppercase\",\r\n    },\r\n});\r\n```\r\n\r\nConfiguration updates are merged with the existing configuration.\r\n\r\n### Getting Configuration\r\n\r\nUse `config()` to retrieve the current logger configuration:\r\n\r\n```ts\r\nconst config = logger.config();\r\n\r\nconsole.log(config);\r\n```\r\n\r\nThe returned configuration is read-only.\r\n\r\n### File Output\r\n\r\nEach log level can optionally be written to its own file.\r\n\r\n```ts\r\nlogger.setConfig({\r\n    save: {\r\n        logFilePath: \"logs/app.log\",\r\n        infoFilePath: \"logs/info.log\",\r\n        warningFilePath: \"logs/warning.log\",\r\n        errorFilePath: \"logs/error.log\",\r\n    },\r\n});\r\n```\r\n\r\nQuik automatically creates the required directories.\r\n\r\nFor example:\r\n\r\n```text\r\nlogs/\r\n├── app.log\r\n├── info.log\r\n├── warning.log\r\n└── error.log\r\n```\r\n\r\nSet a path to `null` to disable file output for a level:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    save: {\r\n        infoFilePath: null,\r\n    },\r\n});\r\n```\r\n\r\n### Colors\r\n\r\nThe following colors are supported:\r\n\r\n```text\r\nblack\r\nred\r\ngreen\r\nyellow\r\nblue\r\nmagenta\r\ncyan\r\nwhite\r\n```\r\n\r\nConfigure colors per log level:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    color: {\r\n        logColor: \"blue\",\r\n        infoColor: \"green\",\r\n        warningColor: \"yellow\",\r\n        errorColor: \"red\",\r\n        debugColor: \"cyan\",\r\n    },\r\n});\r\n```\r\n\r\nSet a color to `null` to disable coloring:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    color: {\r\n        debugColor: null,\r\n    },\r\n});\r\n```\r\n\r\n### Message Formatting\r\n\r\nThe logger supports custom prefixes and suffixes:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    format: {\r\n        prefix: \"[Quik] \",\r\n        suffix: \" \",\r\n    },\r\n});\r\n```\r\n\r\nThis can produce output such as:\r\n\r\n```text\r\n[Quik] 11-08-2026 00:34:30 [INFO] Server started\r\n```\r\n\r\n### Title Case\r\n\r\nThe log level can be formatted using:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    format: {\r\n        titleCase: \"uppercase\",\r\n    },\r\n});\r\n```\r\n\r\nAvailable values:\r\n\r\n| Value          | Output          |\r\n| -------------- | --------------- |\r\n| `\"uppercase\"`  | `[INFO]`        |\r\n| `\"lowercase\"`  | `[info]`        |\r\n| `\"capitalize\"` | `[Info]`        |\r\n| `\"none\"`       | `[INFO]`        |\r\n| `null`         | No level header |\r\n\r\n### Timestamp\r\n\r\nThe timestamp can be customized:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    format: {\r\n        timestampFormat: \"YYYY-MM-DD hh:mm:ss\",\r\n    },\r\n});\r\n```\r\n\r\nDisable timestamps by setting:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    format: {\r\n        timestampFormat: null,\r\n    },\r\n});\r\n```\r\n\r\n### Time Zone\r\n\r\nA specific IANA time zone can be configured:\r\n\r\n```ts\r\nlogger.setConfig({\r\n    format: {\r\n        timeZone: \"America/Los_Angeles\",\r\n    },\r\n});\r\n```\r\n\r\nQuik validates configured time zones and falls back to the system time zone if an invalid value is provided.\r\n\r\n### Custom Log Levels\r\n\r\nUse `custom()` when the predefined levels are not enough:\r\n\r\n```ts\r\nlogger.custom(\r\n    \"SUCCESS\",\r\n    \"green\",\r\n    \"logs/success.log\",\r\n    \"Operation completed successfully\",\r\n);\r\n```\r\n\r\nThe method accepts:\r\n\r\n```ts\r\nlogger.custom(\r\n    level,\r\n    color,\r\n    file,\r\n    ...content,\r\n);\r\n```\r\n\r\n### Clearing the Console\r\n\r\nThe console can be cleared using:\r\n\r\n```ts\r\nlogger.clear();\r\n```\r\n\r\n## Logger Configuration Reference\r\n\r\n| Property                 | Type                      | Description                   |\r\n| ------------------------ | ------------------------- | ----------------------------- |\r\n| `save.logFilePath`       | `string \\| null \\| false` | File for `log()` messages     |\r\n| `save.infoFilePath`      | `string \\| null \\| false` | File for `info()` messages    |\r\n| `save.errorFilePath`     | `string \\| null \\| false` | File for `error()` messages   |\r\n| `save.warningFilePath`   | `string \\| null \\| false` | File for `warning()` messages |\r\n| `color.logColor`         | `ColorName \\| null`       | Color for `log()`             |\r\n| `color.infoColor`        | `ColorName \\| null`       | Color for `info()`            |\r\n| `color.errorColor`       | `ColorName \\| null`       | Color for `error()`           |\r\n| `color.warningColor`     | `ColorName \\| null`       | Color for `warning()`         |\r\n| `color.debugColor`       | `ColorName \\| null`       | Color for `debug()`           |\r\n| `format.timestampFormat` | `string \\| null \\| false` | Timestamp format              |\r\n| `format.titleCase`       | `Cases`                   | Log-level formatting          |\r\n| `format.prefix`          | `string`                  | Text before the log           |\r\n| `format.suffix`          | `string`                  | Text after the log            |\r\n| `format.timeZone`        | `string`                  | IANA time zone                |\r\n\r\n## Logger Defaults\r\n\r\nThe default configuration is:\r\n\r\n```ts\r\n{\r\n    language: \"en\",\r\n\r\n    save: {\r\n        logFilePath: null,\r\n        infoFilePath: null,\r\n        errorFilePath: \"logs/error.log\",\r\n        warningFilePath: \"logs/warning.log\",\r\n    },\r\n\r\n    color: {\r\n        logColor: \"blue\",\r\n        infoColor: \"green\",\r\n        errorColor: \"red\",\r\n        warningColor: \"yellow\",\r\n        debugColor: null,\r\n    },\r\n\r\n    format: {\r\n        timestampFormat: \"DD-MM-YYYY hh:mm:ss\",\r\n        titleCase: \"uppercase\",\r\n    },\r\n}\r\n```\r\n\r\n## Development\r\n\r\nClone the repository and install dependencies:\r\n\r\n```bash\r\ngit clone https://github.com/DiegoBarajas/quik.git\r\ncd quik\r\nnpm install\r\n```\r\n\r\nBuild the package:\r\n\r\n```bash\r\nnpm run build\r\n```\r\n\r\nStart the TypeScript build in watch mode:\r\n\r\n```bash\r\nnpm run dev\r\n```\r\n\r\n## License\r\n\r\nQuik is released under the MIT License.\r\n","readmeFilename":"README.md"}