{"_id":"@kratosbase/kratos","_rev":"33-adbee318368f9eeb17bd6bae2e81c0f0","name":"@kratosbase/kratos","dist-tags":{"latest":"0.13.1"},"versions":{"0.6.0":{"name":"@kratosbase/kratos","version":"0.6.0","keywords":["express","framework","api","mongodb","rest"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.6.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"06491362edcf938540964018a668f60a218c4f46","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.6.0.tgz","fileCount":9,"integrity":"sha512-fUYdWz0qVrgraxPgSoz2O4oecNhW9PPYrJVNIlh30H0Yy6+8tTFJaFX7JioIKUlyzo5cxQzCF5jEgsPJS1pv6w==","signatures":[{"sig":"MEUCIQDoShRXjJAdOQaPVUHu3S/uoIxSqdKPdbOi9CU4kNCPewIgdK+yBJ4fJCnRe3WxFsqisPiUQYumNaejaNuZdXidy10=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17858},"main":"index.js","type":"module","gitHead":"49b880b3fd8e12564bb599c9d1b0f58cbad313f8","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.6.0_1702356831522_0.4813378113407585","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@kratosbase/kratos","version":"0.6.1","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.6.1","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"5150f3193e8a8af457d6e5fbe150e6acdc3b085d","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.6.1.tgz","fileCount":10,"integrity":"sha512-0Fg9tCMdD4+qZ5zIqFO8w3vo3SgCc5d9TRXaZXJxJYo9x69VVucK3HfmgsAWe/BRlEBbWF8kJBun9ozAI3GKBA==","signatures":[{"sig":"MEQCIFIAfxmK/2iO1y2qP0rIFLdOZlu0sTDTeQEUKkXJBT+eAiBnnXiCD+j0cC+QRv9iH61HvqdS1zqwjxzqLYoJEgNSCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23807},"main":"index.js","type":"module","gitHead":"4c1856c1dd978b3a1084bf97bd85b149ed43b67d","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.6.1_1702788408831_0.5175137142446868","host":"s3://npm-registry-packages"}},"0.6.2":{"name":"@kratosbase/kratos","version":"0.6.2","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.6.2","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"65d1893c05d3109cfc32593582b732ad1ba884df","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.6.2.tgz","fileCount":10,"integrity":"sha512-bEb+tSfzMEdEs5d5sqOwTwUhTwLf8wjcURUIX0vginRbSV6gtaQeuhc/YzVue+luHXTV/GUd9WoS5TiNV14ing==","signatures":[{"sig":"MEYCIQCmKKI+A+q0c474RMisnKsS8Als0LD2+QZ5caKTFCaHugIhANcu9wnC20cnK9iDqP6RXbc9TQiw09ozJQjf4suFJ8wf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23788},"main":"index.js","type":"module","gitHead":"258a5c8f466248959c68d649ed788eb3e4598da4","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.6.2_1704345417568_0.6803892765041559","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@kratosbase/kratos","version":"0.7.0","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.7.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"3bbb62af2b64a5944f69cc254bdbaf875e1cff2e","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.7.0.tgz","fileCount":12,"integrity":"sha512-Kvr5Ia+mjmhOW/JecHQaL/39cIUk4VL/xHEMMO5dHu3p/OlHM+fsxy+jUhGuqpS8SLWVhYuMzG0RtCE0hdGWbg==","signatures":[{"sig":"MEQCIH16yQFN7ifalmaHlVuaiSfu06vyYU3KIF8oeqO+zQ7dAiAX18hQilbD3c+v7O36piXq3ZfiWrsu+6LahSN3m9wakQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27599},"main":"index.js","type":"module","gitHead":"c82e389af686ec54d9c1996e926bed157cf6fdac","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.7.0_1704782031179_0.2383299208762495","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@kratosbase/kratos","version":"0.8.0","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.8.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"2312ed598a4814034956d50ce1e3199317ab07e7","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.8.0.tgz","fileCount":14,"integrity":"sha512-pWr1KKnp9+OB7A7mC24FU0y6Z1G4tUCa18iDb7L+kH34Rx1c471uBSGGO2NIbAKOi6yN7cU5MJxxNtt/9vxkQA==","signatures":[{"sig":"MEUCIQC9pZv30LXwTPkBnI3D1wCD3f7R72CPKR5x/9pEafthiAIgDiXAuxv7nQGKNtuOTOm0VP/AQ1g3DKJAqr5ukQVh/bw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30505},"main":"index.js","type":"module","gitHead":"27067b2caf2412d36f399fb16f9bd8068c5b8bd4","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.8.0_1704790326549_0.6268253422974617","host":"s3://npm-registry-packages"}},"0.8.1":{"name":"@kratosbase/kratos","version":"0.8.1","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.8.1","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"81324623b00d1b90e3e26099af520740d77bf3ba","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.8.1.tgz","fileCount":14,"integrity":"sha512-fHAvL1p9CKKlUQnSYZD4jziPYcEYqc6ZEm+OdyPjVzv4kFqFsdmts8Ngse74nJE0g3NoyykwvqX8SXk86Uva0Q==","signatures":[{"sig":"MEYCIQCq29PEXLlBfXh6gNTvb7Lr7gDmqGPqlwmNCAXysTQOGAIhAKtZ319cui2IC1i+VDqq1gmqlBnFhgS0I6ytO+as2jXE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30811},"main":"index.js","type":"module","gitHead":"983069481274f0607071d8cb755199fe109f35f3","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.8.1_1704832496802_0.8046671823631393","host":"s3://npm-registry-packages"}},"0.8.2":{"name":"@kratosbase/kratos","version":"0.8.2","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.8.2","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"74dc2a7c99ad2165cda1634cb80ca4fddab173e4","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.8.2.tgz","fileCount":14,"integrity":"sha512-CEb7h9pM5m8iX6iYWvGU90rAnLC4shUvqDrZlvOxgS24xwCy6wa83hulNh+1a7ossmXfH/jiz8YlAWU+Y6zemA==","signatures":[{"sig":"MEUCIFqVCFmnsk8S9EBG1LFwkPQzuxXnioyvZ71ZQQfr1eYBAiEAkf8vq0IbDDlB2Iozbl0d3lFOw8UqQhJwd+aanPkKCc4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30799},"main":"index.js","type":"module","gitHead":"1aa36c75842da78895416a48470eba25532cf6c7","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.8.2_1704833380006_0.45310682767548105","host":"s3://npm-registry-packages"}},"0.8.3":{"name":"@kratosbase/kratos","version":"0.8.3","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.8.3","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"f00c8567981c4bf529f0c35c0501768cf317f50f","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.8.3.tgz","fileCount":14,"integrity":"sha512-DMUAb2euw7dVGErHNUn7vXHts7A0bWV66QyINZUeD1QAPbw1l239SVPZaRj2I5GvYFPH8CespNe9pW/Cp/9zLA==","signatures":[{"sig":"MEYCIQDwGbjwdhnVgHSsyyNajvZpuW1zctm9mZvPnHDHoYLGiQIhAO6l87y1gvBGQDt7csGoQdjxRGDXrhTmgSZYN5GCgvCd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30799},"main":"index.js","type":"module","gitHead":"6935b7654e30eea87945b18fbda3aa78ed231a29","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.8.3_1704834442578_0.38101422348620617","host":"s3://npm-registry-packages"}},"0.8.4":{"name":"@kratosbase/kratos","version":"0.8.4","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.8.4","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"9896e0c155d13d5e1fdb68be12d11c3c2293505f","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.8.4.tgz","fileCount":15,"integrity":"sha512-2C1wSi9cgMle/Nt0f+6MWN50USYqr3NgRqfkauHKiGHY+sQx0T3NZSoHJhX5C9jqDtZitBo+SL2/rKBbCuNZWQ==","signatures":[{"sig":"MEUCIQCsLidPGzTV71lu3YYl69ygvGOIHhDA4ViGBHOmcsSckgIgO8tEAnw7SVcjcty4k4GfRUxwvHywSKUJ0Ph3biWQVRk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33765},"main":"index.js","type":"module","gitHead":"c40b3682bfe48b754835fde0e89b869ff6fef59f","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.8.4_1705349587729_0.6996930012428983","host":"s3://npm-registry-packages"}},"0.8.5":{"name":"@kratosbase/kratos","version":"0.8.5","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.8.5","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"e9f23a8ccf87807ea8778ee7fa1371cdaf2a0f31","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.8.5.tgz","fileCount":15,"integrity":"sha512-ukTUi9/7nPaa/mjvRs4N25X2mYz+7I3mhJ+5veKKBTju3ngqrKrEvllRWg0xHihkkCxtTJjNoFxCybK5jKZPvA==","signatures":[{"sig":"MEYCIQDMmPFkhO8Jl8vUQ8b5UWDOanBHkRBy/lEuiB9mugVM6wIhANW7sKzw//JP0ZEU9ZKa6VcwxZRGjtz0jgNGPiLaiFRf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33801},"main":"index.js","type":"module","gitHead":"5e6761c5a4669cab78d6f733ffd0dd34300f2cfb","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.8.5_1705361510195_0.4736945603367759","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"@kratosbase/kratos","version":"0.9.0","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.9.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"c1f8d8823c7f16c60116ea21e4d6b12e1f585df6","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.9.0.tgz","fileCount":15,"integrity":"sha512-I62ciANwnQe9Ixe2bMXGrZt4awE1OtE8h2B+3OugL+diTEKa9oR3Q7EA3ziMM8RZArJc6/cxAotJOyObdiFw0g==","signatures":[{"sig":"MEYCIQDN4OoZ3AQ1rVBvUsYZQujG9X/d6i5iVGH7HgYFSrbDawIhANoDp1IwUFTHqFRUOflEYMZRG9TZEnfApq+FkWfZr0lU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33994},"main":"index.js","type":"module","gitHead":"75df0db21bd23e47f40dc9a949386c3d787d1f85","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.11.0","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.18.2","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.9.0_1726819640243_0.40784015689773834","host":"s3://npm-registry-packages"}},"0.9.1":{"name":"@kratosbase/kratos","version":"0.9.1","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.9.1","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"f2eb761193804ef2ce7cc3dd2e71d20599ca52fe","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.9.1.tgz","fileCount":15,"integrity":"sha512-WH25SKQ20UDzFwS49TtQYgXoAUj8z+kPWhd+VUTyXAQDrTJhtFHZId132D6rngt8FjXVNnxzTckE3edYcMQc2w==","signatures":[{"sig":"MEQCIFcwyRn1EOoOEyP5xPauazB3F2Ym/F95OI4iRvfyEefVAiB6rcCFc872IITzdfQRvs+LLVLNMS4fO+QDZIpuKSrx+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34730},"main":"index.js","type":"module","gitHead":"218d5d1a44ac9afa184674271d191b68f56e1eb5","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.9.1_1726821404794_0.3104602429537757","host":"s3://npm-registry-packages"}},"0.9.2":{"name":"@kratosbase/kratos","version":"0.9.2","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.9.2","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"df1c9884385586cbde94656ed771498f71a866e1","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.9.2.tgz","fileCount":15,"integrity":"sha512-eJ92aWNR++64Gr7fkhoDsqjxSKbsKq3AXo+WQGfAQAD+zwzdcmToz2mHbJrgAZ3r5fbezyAtRlMzTRpAbc5wfg==","signatures":[{"sig":"MEQCIAlBX+IygtOkWEjpaQ5lkcSIEB3IZ79rGl5HoXCXsIYqAiBxgHah53/i+HB/OIgRUY/jio2ACHqG5DamSdyT9FFUfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34720},"main":"index.js","type":"module","gitHead":"f86c03aca49c4c9698752db146389794fb893fbd","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.9.2_1727122280167_0.5520911341167456","host":"s3://npm-registry-packages"}},"0.9.3":{"name":"@kratosbase/kratos","version":"0.9.3","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.9.3","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"8a561430ada08464c00afe7887db43aa93b73c92","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.9.3.tgz","fileCount":15,"integrity":"sha512-khdSAJp6WVEtBHo5KuCFo8a477Uhw5aFY1+AhLUzbedemAOOGLppX9YLyjoiiF6Td9upXgyebUkXE+lcVtFBlQ==","signatures":[{"sig":"MEQCIAmW5KpQAz8hawqibVq//PokbbYpc+Ddtm0TPyY43g4DAiBHmmqOyiJ0M5oZJlEAqom5308VAgOxmmD4Fg91VhCDkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35151},"main":"index.js","type":"module","gitHead":"1d298ded2e905cc0cffe6b197187e2005b2c2fc1","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.9.3_1727272382765_0.7733668845041894","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@kratosbase/kratos","version":"0.10.0","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.10.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"3b507dc58b141a1cfea54aa490bafdaa5d121d85","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.10.0.tgz","fileCount":15,"integrity":"sha512-84GEzooiB64txnxzy6901kuZ2/u22iH9nnIHrxsViwCbBzZKRd9eOC4jL6s7FphvmR2ywSqAyGrAQAyHtdid8A==","signatures":[{"sig":"MEUCIF+AaRj1gV2P5ujQy3VTzVdjAndB8vh7yIA0pqZch5jfAiEA8sT/IygyhdHVTF7mIjquHh0Pot5Aq9Nq95eVaIsmIUY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35979},"main":"index.js","type":"module","gitHead":"f7a23c9bb2a3bf002069e12731fd720c3b424b9d","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.10.0_1727846961858_0.20228377317969937","host":"s3://npm-registry-packages"}},"0.10.1":{"name":"@kratosbase/kratos","version":"0.10.1","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.10.1","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"df0ebc54da27f935235c5084f9836f345b9258b3","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.10.1.tgz","fileCount":15,"integrity":"sha512-9GM2attRNmvEG6b9LpXksa7ZP2lZo1QuOkQ+hoJbtkqHDukLlZb+5snr+0019WYrQpl6ptUHWNqXAHVzNwTWtQ==","signatures":[{"sig":"MEYCIQCTQTu8E6R0z1nfDmj4LSJsYlTprf3n+6rp11I88iAAYAIhALJu/wAqekpZpxm/q2jv5jHEmyZuq5+5X6pAcLnU17Vx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36081},"main":"index.js","type":"module","gitHead":"f9d8020c116d7cdf878e900d314c8215deed28d0","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.1.0","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.10.1_1731652764089_0.3059044474154695","host":"s3://npm-registry-packages"}},"0.10.2":{"name":"@kratosbase/kratos","version":"0.10.2","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.10.2","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"82279a95968cc248d231aa3e34888f00513e35da","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.10.2.tgz","fileCount":15,"integrity":"sha512-VY37vIorXkEkSGaFmxqtgoxXyNz26f2KlWx6WWZdZWX+DzEJkMank9ETL95X9z5vBafEPFY7ZudKTOCNFCjtRA==","signatures":[{"sig":"MEYCIQDkYcFnvQcEtzlLNF16O3DgphCFJ3+IgZrt8qV78sAPFwIhAMhWdK8Es4PdEgq/eWzIUx6aLvuQi3LoHqOCIfviiHq9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36209},"main":"index.js","type":"module","gitHead":"7f66d2fbf6c386e48af55461cbcf42f80f0332ec","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.10.2_1744641877592_0.10667095355937839","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@kratosbase/kratos","version":"0.10.3","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.10.3","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"e6fc1dc1541e246596bb512d28334ba024c2e83f","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.10.3.tgz","fileCount":15,"integrity":"sha512-i9R26vsOWx6D2wCL7shMGbZ3Cku9zTNb4jgHWaPg+ehR/m+fNUWHkw53H6VszjVLwc5R4R7/efb4376wW+OrsA==","signatures":[{"sig":"MEYCIQC+hJbG/P2Www2sCw0fY+cV4ffs6TEZiJ5BwKrX1g90aAIhALGUudK3a1Os3YdXYFhPBvchOUHgCVQoaL8tHJub2p7k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36350},"main":"index.js","type":"module","gitHead":"5d8df7d31734a9eeb54fea019ca6f37a24d71124","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.10.3_1746967963706_0.6387371694446169","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"@kratosbase/kratos","version":"0.10.4","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.10.4","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"fd01954adb6a4d26d95564416d44f41e2ea237a3","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.10.4.tgz","fileCount":15,"integrity":"sha512-bD5lAR7UE1ulRY5cdFGjWHc/WxfxA8SbmsAXg/Lp591OIMSAD6uDEcrcdjRRbO4Ts5rwryiOmPFaRqkzzgsltg==","signatures":[{"sig":"MEUCIECGBK7tVdxAxQJ00rMK6k+DRmHjQ3ERSl9thPQs1s+1AiEAkOiP7W1TCY628sMOg+rZ3l0HBY3eZXZcXoybnW+KlBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36733},"main":"index.js","type":"module","gitHead":"4f2648875d22cfa6d2eb42f313a5b468eb6fd7c7","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.10.4_1746997979298_0.15820174052513525","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"@kratosbase/kratos","version":"0.10.5","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.10.5","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"10a524f833002c16ef82b872fad3924128061a1b","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.10.5.tgz","fileCount":15,"integrity":"sha512-qQgutk6/bl6gt7WKCMAQDV7KSvpUnS3erPEBVOoFOFS9f6quUL4/fZiZwGH3oqOVszttXUCvu2eFdzmspODBVw==","signatures":[{"sig":"MEQCIC7KofntrTNP4WPtD/2tZUJbmaWLJLJT8aFrcFse58pKAiASGW6zriWeK/kq+fJ9Klx7AeeNEGZenfbz0z1qjndILw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37206},"main":"index.js","type":"module","gitHead":"e857a1999aa6d41cf78d8a3a4b28b52b20248344","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.10.5_1747214070904_0.6332778139248383","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"@kratosbase/kratos","version":"0.10.6","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.10.6","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"5f83f8a59523357253f3da2a4572ff2f43804b23","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.10.6.tgz","fileCount":15,"integrity":"sha512-bhDOJ+szVCBw8zpHfD8n0cq8UKEb5TEOaC+nMLGKDbBaiqHEM+2HoV9x6Nw3nzyWK9YWkepBB+tG/HhD9NU5bA==","signatures":[{"sig":"MEUCICxo8kOm/HECfZhcDjbRiIm4hGkhruoerKs/hhY3YTRFAiEAqb6E2jsUYZSRiO1PEgeWKrKI107In/CKWqWqtfyq0ks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37116},"main":"index.js","type":"module","gitHead":"a9ea1a8c54b40e788e5b90428ecadac5c148567e","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.10.6_1747824492835_0.31636432181458374","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@kratosbase/kratos","version":"0.11.0","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.11.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"306f685d0a734c89ae5adb6cbeed4651984f4ca5","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.11.0.tgz","fileCount":15,"integrity":"sha512-URRzi3A3C5dW7pUrxys3k/hW9DIZbWuiMNM1SMFOWsf4sNhTFiqZavXIwOahLrlBHkRZq6+FJI2lzIyNaz912A==","signatures":[{"sig":"MEUCIQDmzGObvWMRK76pCQvARyFCtH2IrwB0rVKUygr5wcf+twIgUk7yxj3mlqsycvZpiK2xwoxRlCSSoNQZhWkRN1XpLvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37579},"main":"index.js","type":"module","gitHead":"7a19268874fdb0002032af92a1a4ebc1d6e295e4","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"4.21.0","mongoose":"8.0.1","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.11.0_1748426995482_0.4243430811878153","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@kratosbase/kratos","version":"0.11.1","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.11.1","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"e86c3ed73dcd6033a2a65b0e99baad9aebc2728f","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.11.1.tgz","fileCount":15,"integrity":"sha512-XppZrgYVs4vTcb/ryIzGhAmXqqvzhvkVyx5C9Od0zR9iIAh0Mw1jJ2JTNMXZqjIgW7hipRV+PSmuGpDPVdNRSQ==","signatures":[{"sig":"MEQCIDAPTYXv+Pd4+NqRqPB6AGBAU11TQx61MKrQptLqAoWZAiAdlXCesY1KVQidkcd/cTQvFWg+EnWkAKEFGy16wc/syg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37582},"main":"index.js","type":"module","gitHead":"a52399f80fedaa11367122d9396c3e0b3e084061","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"^4.21.2","mongoose":"^8.16.5","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.11.1_1753864847430_0.6304312732997464","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@kratosbase/kratos","version":"0.11.2","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.11.2","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"0a342319dc32db43c22684f3191356aa38b0af4d","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.11.2.tgz","fileCount":15,"integrity":"sha512-9fhCJlw85w8fnnfWJ4+CGVnGXz5QdWse62/Hxt+/yfCSvCIWMI7+VAJ/JC2cFigPvqrahv9t+VBk1MZQN/4JEw==","signatures":[{"sig":"MEUCIQCp001WiAOWsHlRE36pepIaJv+yjg4ZvJ+yUojD+v5kcQIgVS1e1R5QecnklBpUA4Uvf85VGB5fnWnuBM5EMsnT070=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37362},"main":"index.js","type":"module","gitHead":"0801b890b1ba357cb4178b94b0291bf116c068fd","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"^4.21.2","mongoose":"^8.16.5","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.11.2_1754939811330_0.2365828765937774","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"@kratosbase/kratos","version":"0.11.3","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.11.3","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"95b5300554f40e6031e6ea7a224f3e05475f4508","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.11.3.tgz","fileCount":15,"integrity":"sha512-ud5e6pvEf2GX6NMwsttH48mYiT/dE3gPrCLe+DxAVnNOKScD/blFXa97is4t48lTOn6DM7o4JX9bzdIJ7BbxAA==","signatures":[{"sig":"MEUCIFSqyOxpk8Tmhai29qrvniKd1easUMBkHpjKY4VV1XdRAiEA9UckMiXM5r06bKLqa6MpDaicZ6vJ758MkM/oECXMAnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37584},"main":"index.js","type":"module","gitHead":"bfb8401b5c5f504eb35c50e8c8000a84e621eade","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"^4.21.2","mongoose":"^8.16.5","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.11.3_1757394919278_0.8437828400749361","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@kratosbase/kratos","version":"0.12.0","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.12.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"e85ce4cbedbba1f7bc355e4f6e93523c7b75f0b8","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.12.0.tgz","fileCount":15,"integrity":"sha512-gOX1kZjhL5CyXBVMR8SoKfIDk508+TbEG+bYNvgaxHrJ/tw4BpJAcxrtTLTHhMxvQclBfTuo5l6Sc1jPVl0rAg==","signatures":[{"sig":"MEUCIE99X5kN8Ydc/QD7P6eEmJCb3cSRncUCcfKmMFTXzqWPAiEA6USvd4AYC8SIbE5Fv/zgCO58Rz7qSt21lVseX4D7e8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37755},"main":"index.js","type":"module","gitHead":"728df18811364c9e135e3f26f8ab55bb5322aa91","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"^4.21.2","mongoose":"^8.16.5","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.12.0_1757577124207_0.44471050477701835","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@kratosbase/kratos","version":"0.12.1","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.12.1","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"d33bc95e330805c2e3f1de5e6ae0e028120ca865","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.12.1.tgz","fileCount":15,"integrity":"sha512-NyKyK1wLzi0tC3bAmtpcsnTDAqaw6N05HvyjC5URgWS+pKPNKK1PHZjj3K/wtpoawBIkG+yVhx3n28vEaU83kw==","signatures":[{"sig":"MEUCIQDykEOtXxwx/wPmCOEIqbGBzlhP6ymxxHEiCk+y7D4UtAIgMAaztoHliOoeH2OziAA1iTjq70ZRjzLVDsKd53CMuV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37828},"main":"index.js","type":"module","gitHead":"3b574cacce90610305657c8e7a553129be95b75f","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"^4.21.2","mongoose":"^8.16.5","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.12.1_1770982966402_0.7197382510730768","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@kratosbase/kratos","version":"0.13.0","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"_id":"@kratosbase/kratos@0.13.0","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"homepage":"https://github.com/kratosbase/kratos#readme","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"dist":{"shasum":"f4794433cc4573a4fd9f5e7b0248dc379584147d","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.13.0.tgz","fileCount":15,"integrity":"sha512-ltzDInFDLL8Io6fKLYkJ3lYjloq5obsM663ZJJu4ujrqdAYU/8qiBFu8YJS6AXQ9dKXoNdlpuPfLUaEDGKg8kg==","signatures":[{"sig":"MEQCIBgF5qbvsnoSazOa1UIiqMrfTzHK22qSsm9yKXw/oipOAiBH+uja/rUqO6oHHEvgDLR3EBkmc6huASFHcxrMnPkhtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37879},"main":"index.js","type":"module","gitHead":"a71a18f2c96cf109f909c41936f85f4236153351","_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"repository":{"url":"git+https://github.com/kratosbase/kratos.git","type":"git"},"_npmVersion":"10.9.2","description":"Build super-fast & scalable RESTful APIs in minutes.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"joi":"17.13.3","cors":"2.8.5","config":"3.3.9","helmet":"7.1.0","express":"^4.21.2","mongoose":"^8.16.5","jsonwebtoken":"^9.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kratos_0.13.0_1778359396808_0.019810859826553395","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@kratosbase/kratos","version":"0.13.1","description":"Build super-fast & scalable RESTful APIs in minutes.","type":"module","main":"index.js","keywords":["express","framework","api","rest","nodejs"],"author":{"name":"Olalekan Omoniyi"},"repository":{"type":"git","url":"git+https://github.com/kratosbase/kratos.git"},"dependencies":{"config":"3.3.9","cors":"2.8.5","express":"^4.21.2","helmet":"7.1.0","joi":"17.13.3","jsonwebtoken":"^9.0.2","mongoose":"^8.16.5"},"_id":"@kratosbase/kratos@0.13.1","gitHead":"4a08f864ba42938d4f220d32aecbeab5613f53b5","bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"homepage":"https://github.com/kratosbase/kratos#readme","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-2RbbOyMvaZ1zkxuiPCxiza+ZuACK9QGkFMn1pGOSSNGJtXhsV6rpRKX1buuujtWUAgsHw/dEeppUfFDnudgDZA==","shasum":"d2e8fd85cd5f2ed703cddc6b691626bde7bb0bff","tarball":"https://registry.npmjs.org/@kratosbase/kratos/-/kratos-0.13.1.tgz","fileCount":15,"unpackedSize":38207,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDDHc8i6O8VGuS6T7V9MB0I57/AzvfAxmwLININAnsUfAiEApMYo6PKs61KzRcBt4B4wakpy4xuRgrxmWCUp4bXav+Y="}]},"_npmUser":{"name":"lkcoder","email":"lk4real@proton.me"},"directories":{},"maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kratos_0.13.1_1778812406516_0.5522177314090093"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-12T04:53:51.419Z","modified":"2026-05-15T02:33:26.781Z","1.0.0":"2023-12-12T04:35:12.588Z","0.5.0":"2023-12-12T04:36:55.659Z","0.6.0":"2023-12-12T04:53:51.700Z","0.6.1":"2023-12-17T04:46:49.023Z","0.6.2":"2024-01-04T05:16:57.809Z","0.7.0":"2024-01-09T06:33:51.347Z","0.8.0":"2024-01-09T08:52:06.723Z","0.8.1":"2024-01-09T20:34:56.967Z","0.8.2":"2024-01-09T20:49:40.192Z","0.8.3":"2024-01-09T21:07:22.788Z","0.8.4":"2024-01-15T20:13:07.898Z","0.8.5":"2024-01-15T23:31:50.383Z","0.9.0":"2024-09-20T08:07:20.432Z","0.9.1":"2024-09-20T08:36:45.018Z","0.9.2":"2024-09-23T20:11:20.350Z","0.9.3":"2024-09-25T13:53:03.011Z","0.10.0":"2024-10-02T05:29:22.043Z","0.10.1":"2024-11-15T06:39:24.259Z","0.10.2":"2025-04-14T14:44:37.787Z","0.10.3":"2025-05-11T12:52:44.036Z","0.10.4":"2025-05-11T21:12:59.477Z","0.10.5":"2025-05-14T09:14:31.143Z","0.10.6":"2025-05-21T10:48:13.008Z","0.11.0":"2025-05-28T10:09:55.676Z","0.11.1":"2025-07-30T08:40:47.655Z","0.11.2":"2025-08-11T19:16:51.554Z","0.11.3":"2025-09-09T05:15:19.494Z","0.12.0":"2025-09-11T07:52:04.394Z","0.12.1":"2026-02-13T11:42:46.563Z","0.13.0":"2026-05-09T20:43:16.946Z","0.13.1":"2026-05-15T02:33:26.687Z"},"bugs":{"url":"https://github.com/kratosbase/kratos/issues"},"author":{"name":"Olalekan Omoniyi"},"homepage":"https://github.com/kratosbase/kratos#readme","keywords":["express","framework","api","rest","nodejs"],"repository":{"type":"git","url":"git+https://github.com/kratosbase/kratos.git"},"description":"Build super-fast & scalable RESTful APIs in minutes.","maintainers":[{"name":"lkcoder","email":"lk4real@proton.me"}],"readme":"\r\n# Kratos\r\n\r\nBuild super-fast & scalable RESTful APIs in minutes. For [Node.js](https://nodejs.org).\r\n\r\n[![npm version](https://badge.fury.io/js/@kratosbase%2Fkratos.svg)](https://badge.fury.io/js/@kratosbase%2Fkratos) \r\n\r\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\r\n\r\n\r\n## Getting started\r\n\r\nTo install run:\r\n\r\n```bash\r\nnpm i @kratosbase/kratos@latest\r\n```\r\n\r\nTo spin up an application, first you need to create a resource file.\r\n\r\nAssuming you want to create an API containing a user resource. Your file should look like this:\r\n```js\r\n// resources/User.js\r\nimport { Joi } from '@kratosbase/kratos'\r\n\r\nconst commonRules = {\r\n    username: Joi.string().trim().max(15).required(),\r\n    picture: Joi.string().trim().required(),\r\n    password: Joi.string().trim().required(),\r\n    last_active: Joi.date()\r\n}\r\n\r\nconst user = {\r\n    schema: {\r\n        username: { type: String, unique: true, required: true },\r\n        picture: { type: String },\r\n        password: { type: String, required: true },\r\n        last_active: { type: Date, default: Date.now }\r\n    },\r\n\r\n    validationRules: {\r\n        post: commonRules,\r\n        patch: commonRules\r\n    }\r\n}\r\n\r\nexport default user\r\n```\r\n\r\nNow in your `index.js` file:\r\n```js\r\nimport Kratos from '@kratosbase/kratos'\r\nimport user from './resources/user.js'\r\n\r\nconst db_server = 'YOUR-DB-SERVER'\r\n\r\nconst app = new Kratos({\r\n    port: 9000,\r\n    db_server: db_server\r\n})\r\n\r\nconst defaultRouter = app.router({\r\n    users: user \r\n    user // this could also work but routes to /user instead of /users\r\n}).getRoutes()\r\n\r\napp.launch(defaultRouter)\r\n```\r\nNow run `node index.js` and fire up your browser/postman and make a request (POST/GET/PATCH/DELETE) request to `localhost:9000/api/v1/users` and you should get a response.\r\n\r\nDepending on the request type, validation rules will be applied to match the rules in the resource file.\r\n\r\n## Features\r\nThis project is being actively developed using [Stack Overflow's API design best practices](https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/)\r\n- Focus on high performance and scalability\r\n- Auto-routing\r\n- Custom routing\r\n- Data validation with [Joi](https://github.com/hapijs/joi)\r\n- Auto-query database (for auto-routing)\r\n- API versioning\r\n- HTTP response handler\r\n- CORS\r\n- Authentication\r\n\r\n## Roadmap\r\n\r\n- Multiple database support (Planned)\r\n- Authentication (✅)\r\n- Custom middlewares (Planned)\r\n- Filtering (Planned)\r\n- Sorting (Planned)\r\n- Pagination (Planned)\r\n\r\n\r\n## Documentation\r\n\r\n### Base class initialization\r\n#### example:\r\n```js\r\nconst app = new Kratos({\r\n    port: 9000,\r\n    db_server: db_server,\r\n    cors_origins: ['http://localhost:3000'] // URLs allowed to make requests to this API\r\n})\r\n```\r\n\r\n#### This class accepts a `config` object with the following properties:\r\n| Property | Type |Description           | Default\r\n| :-------- | :------- | :------------------------- | ---- |\r\n| `port` | `int` | Port to serve application on | Random\r\n| `api_version` | `int` | Major app release version | 1\r\n| `cors_origins` | `mixed` | Origins allowed to access api | ['localhost']\r\n| `db_server` | `string` | MongoDB connection string | ***required***\r\n| `disable_auth` | `boolean` | Whether to disable in-built auth or not | false\r\n| `show_secret` | `boolean` | Determines whether to enable `/show-secret` `GET` endpoint | false\r\n| `jwt_secret` | `string` |  Set custom JWT secret | random string\r\n| `maintenance` | `boolean` | Set maintenance mode | false\r\n| `unprotected_routes` | `array` | Set list of routes to bypass auth | []\r\n| `upload_limit` | `string` | Set upload limit | '2mb'\r\n\r\n### Router class initialization\r\n#### example:\r\n```js\r\nconst defaultRouter = app.router({\r\n    users: user, \r\n}).getRoutes()\r\n```\r\n\r\n#### This class accepts a `resources` object with the following properties:\r\n| Properties | Type |Description           | Default\r\n| :-------- | :------- | :------------------------- | ---- |\r\n| `[dynamic value]` | `object` | resource object | ***required***\r\n\r\n**note: Whatever name you give your resource object property is the same name that will be used as the resource endpoint. So according to `defaultRouter` in the example above. The `user` resource object will be consumable via `[host]:[port]/api/v[version-number]/users`.\r\n\r\n\r\n### Custom routing\r\nIn a scenario when you want to interact with the database in a special way, like deleting multiple documents when a user requests to delete their account... you can make use of custom routing.\r\n\r\nCustom resources are served at\r\n```http\r\n/api/v{version-number}/custom/:resource\r\n```\r\n#### Custom router example\r\n\r\n```js\r\nconst customRouter = app.expressRouter()\r\n\r\ncustomRouter.get('/delete-account', async (req, res) => {\r\n    // Initialize a mongoose model\r\n    const user = app.model('User').model\r\n\r\n    const post = app.model('Post').model\r\n\r\n    // delete user and user's posts\r\n    ***\r\n\r\n    // Return JSON response\r\n    return app.respond(200, res)\r\n})\r\n```\r\nDo note, that `app.model()` is a mongoose wrapper for `mongoose.model`. This is so you have more control over how the queries are formed.\r\n\r\n### Authentication\r\nTo enable authentication you have to set `disable_auth: false` or remove it completely from your config object to use the default, which is also false.\r\n\r\n`disable_auth: false` also enables the `/get-token` GET endpoint. This allows you to be able to generate tokens for use in your application.\r\n\r\nThe `id` query parameter is required when making a request to `/get-token`. Your request should look like this: `/get-token?id=[userID]`. This design is intentional, so that you can identify token owner in your application.\r\n\r\nIf you want to view the default jwt secret key generated by Kratos, then set `show_secret: true` in your config. This will enable the `/show-secret` GET endpoint, where you will find the jwt secret for your perusal.\r\n\r\nIf you would like to use your own custom jwt secret, then you must set `jwt_secret: [SUPER_SECRET_KEY]` in your config and Kratos will automatically adapt to the changes.\r\n\r\n* To generate non-default role tokens, visit `/get-token?role={role}`... where `{role}` is the name of the role the token is being generated for.\r\n* For security reasons... after copying your token, it is recommended that you remove `show_token: true` from your config object to hide the token endpoint.\r\n\r\n* To by-pass authentication for certain routes, add `unprotected_routes` to config like this:\r\n```js\r\nconst app = new Kratos({\r\n  port: ...,\r\n  db_server: '...',\r\n  unprotected_routes: ['/custom/send-code', '/appointments']\r\n})\r\n```\r\n\r\n#### Authentication config example\r\n\r\n```js\r\nconst app = new Kratos({\r\n    ...\r\n    disable_auth: false // not compulsory to set this\r\n    show_token: true\r\n})\r\n```\r\n\r\n#### Restricting access to certain roles\r\nYou can restrict access to your endpoints and allow only certain roles to access them by updating your resource object `validationRules` to look like this:\r\n```js\r\nconst User = {\r\n    ...\r\n    validationRules: {\r\n        get: {\r\n            single_roles: ['user', 'admin'], // Restrict GET access to /users/:id\r\n            roles: ['admin'] // restrict GET access to /users\r\n        }\r\n    }\r\n}\r\n```\r\n#### Default endpoints\r\n| Property | Request Types |Description\r\n| :-------- | :------- | :------------------------- |\r\n| `/{resource}` | `GET/POST/PATCH/DELETE` | Resource base endpoint\r\n| `/{resource}/{id}` | `GET/POST/PATCH/DELETE` | Resource single-item endpoint\r\n| `/{resource}/count` | `GET` | Returns data containing total count of documents in resource's collection (accepts query params like /products/count?size=xxl)\r\n\r\n## Philosophy\r\nAs an indie hacker, I didn't want to repeatedly write queries and routing + wanted something I could spin up quickly for any project (scalable and minimalistic) while I focus mostly on the frontend. The other frameworks I found were either too robust or had bad design patterns... that's how I ended up building this.\r\n\r\nKratos is built on top of the framework everyone loves... specifically for building APIs that meet the highest design standard. No compromise.\r\n\r\n\r\n## Contributing [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)\r\n\r\n\r\nConstructive contributions are always welcome!\r\n\r\nSee the [Contributing Guide](https://github.com/kratosbase/kratos/blob/master/CONTRIBUTING.md) for ways to get started.\r\n\r\n### Security issues\r\nIf you discover a security vulnerability in Kratos, please see [Security Policies and Procedures](https://github.com/kratosbase/kratos/blob/master/Security.md).\r\n\r\n## Support\r\n\r\nFor support, feel free to create an issue or reach out on [Twitter](https://x.com/lk4real_)\r\n\r\n\r\n## Acknowledgements\r\n - [Stack Overflow](https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/)\r\n - [README.so](https://readme.so/)\r\n## Authors\r\nThis project is currently being maintained by\r\n- [@lkgit1 (author)](https://www.github.com/lkgit1)\r\n\r\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/lk4real)\r\n\r\n","readmeFilename":"README.md"}