{"_id":"@csi-foxbyte/fastify-toab","_rev":"29-477c5fde12b582a4f1058f4ab030263d","name":"@csi-foxbyte/fastify-toab","dist-tags":{"latest":"0.2.0-rc.4"},"versions":{"0.0.1":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.1","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.1","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"88093ab2bcd1294c001a5f72cfdba7ee810dfebc","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.1.tgz","fileCount":10,"integrity":"sha512-hJCswqtGJIAOqoFTQzd7Qoo91ZiuSg5gLcL92YB1D+i9JQx2qbDYs2fys2Sk/KMlyVzXLFgDIr1ii9Zvsrpb2w==","signatures":[{"sig":"MEQCIHE1orqaLyF2/JJQI33NdjbAakVP+7ptWZTcH5NOauwzAiBZrAfwsoBTAehse6mx/yVA4R7hrA9cx3TuWmYTK7w3uA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529174},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.1.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\9a264ecd85267310c744d171b52f224e\\csi-foxbyte-fastify-toab-0.0.1.tgz","_integrity":"sha512-hJCswqtGJIAOqoFTQzd7Qoo91ZiuSg5gLcL92YB1D+i9JQx2qbDYs2fys2Sk/KMlyVzXLFgDIr1ii9Zvsrpb2w==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"bullmq":"^5.56.4","fastify":"^5.4.0","commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.1_1752564255501_0.06005864292283758","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.2","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.2","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"c65eddb13cc1b9daf23c86e92789f3ea00fe89d5","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.2.tgz","fileCount":10,"integrity":"sha512-at3SBZo4e/SIm3Nz3kr40j6ObKwb/RYmbKLDrwVj3LZb7lKQLFDBJmRJqBKO4QL+L/aPHpM/6y2qz63/tczYEw==","signatures":[{"sig":"MEQCIEcqZRzzM7KyKxHbXhT2mIH5iiB282QJxYff+K9ek+QxAiABM2EFvsS5hiq5u+RspWIaI9b3b6j0Di7rQ3BMDiH5tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529258},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.2.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\4d7909b406d9e43456b68bacc60f3d62\\csi-foxbyte-fastify-toab-0.0.2.tgz","_integrity":"sha512-at3SBZo4e/SIm3Nz3kr40j6ObKwb/RYmbKLDrwVj3LZb7lKQLFDBJmRJqBKO4QL+L/aPHpM/6y2qz63/tczYEw==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"bullmq":"^5.56.4","fastify":"^5.4.0","commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.2_1752652763123_0.7142936159948599","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.3","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.3","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"d8cd7fd852e8a5bf85a9aed4373dfcf73118d7f9","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.3.tgz","fileCount":10,"integrity":"sha512-VVYaAemmKZpurbmEpeayDOn/ijoVEShhFtMAlJF4dfWhzyWdRnh5D1A7QejfvrnZQloE8iFfXLHJZzVqFVLQQw==","signatures":[{"sig":"MEUCIH11nyTQBCwlfTcI5m+BnGWuksH9NYGJCOjSvzdBQ6kcAiEA7PmQEJjUpiPesjj99sSrAo1JrhyV3dPo0gX/AXE3l1w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529293},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.3.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\eaa4db6b861ecc89d036a8cfd4051ee9\\csi-foxbyte-fastify-toab-0.0.3.tgz","_integrity":"sha512-VVYaAemmKZpurbmEpeayDOn/ijoVEShhFtMAlJF4dfWhzyWdRnh5D1A7QejfvrnZQloE8iFfXLHJZzVqFVLQQw==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"bullmq":"^5.56.4","commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.3_1752654361974_0.03905087112598138","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.4","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.4","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"b8b6fb0fa224260bcfbaedca54d382adef8cc44c","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.4.tgz","fileCount":10,"integrity":"sha512-1M3/cAUuBb7Rb0NJP4Rbuud49bWkG4W70gCVXybQNQYW0xWCq5HTi79Zprc/FQA4Sq+yMU9nbJ6m8KBXkZUClQ==","signatures":[{"sig":"MEUCIQCL+h9olaHfsp1nbNfctUMeAyUnKnOikeeDNnbi9FRxZgIgM1qAUtl4Dj+yw564WRy9pG2OWDrz1K6IKHldXDeLnjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":541618},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.4.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\ff0a47ca7abd6ca24412ac7db56927df\\csi-foxbyte-fastify-toab-0.0.4.tgz","_integrity":"sha512-1M3/cAUuBb7Rb0NJP4Rbuud49bWkG4W70gCVXybQNQYW0xWCq5HTi79Zprc/FQA4Sq+yMU9nbJ6m8KBXkZUClQ==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.4_1752750322311_0.6502529502527183","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.5","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.5","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"e334699aa66e334c1cf9baee7a68cec293682e14","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.5.tgz","fileCount":10,"integrity":"sha512-IJ/Dx8HT20eHNzZn6e391Lx/U0v5zeL7HuTzAuLxJi+iW65CPGiKsseAgt6cZDDiYxawNjHPpFkmDeB0f8kmRQ==","signatures":[{"sig":"MEUCIQCC/TZOwtb2SEZklT596Fg9iplqSHww+q9n+EY6GhWExQIgfDOWYDylxmcMJZT83TpNYPAZf768zSRUIPh0UIYpLcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544953},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.5.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\ff2457788853689b5ef3b41c0c6da146\\csi-foxbyte-fastify-toab-0.0.5.tgz","_integrity":"sha512-IJ/Dx8HT20eHNzZn6e391Lx/U0v5zeL7HuTzAuLxJi+iW65CPGiKsseAgt6cZDDiYxawNjHPpFkmDeB0f8kmRQ==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.5_1753281307719_0.5345940444793731","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.6","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.6","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"55a108be1521c39d5474f5502fb7db5b827c5bbb","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.6.tgz","fileCount":10,"integrity":"sha512-G54CEyaTP+ED0amKHtkQ/dmm02t/fmL67+1fN3kP/Zuyk4PDQosdNEUlPpUsLEG4daz6i7eu2Ol3j4llhiIz7w==","signatures":[{"sig":"MEUCIQDV42Y3sDIku+1Gijekg1+O43g3cFK5QV6Mpo4xTWwwLQIgevJXo+HC9zDbfKR6djZuBzhS2ngaSlbN5XzSw6EdV/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544877},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.6.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\e40518681948263f6e0631e80a198608\\csi-foxbyte-fastify-toab-0.0.6.tgz","_integrity":"sha512-G54CEyaTP+ED0amKHtkQ/dmm02t/fmL67+1fN3kP/Zuyk4PDQosdNEUlPpUsLEG4daz6i7eu2Ol3j4llhiIz7w==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.6_1754470939110_0.5316230536088529","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.7","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.7","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"141237eceae2eef2114dd57bb5d211aa327e5a4e","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.7.tgz","fileCount":10,"integrity":"sha512-+jUVDVSPlE/oa/fiuYNNAt9t89p+ls02C3UjQZ/ZicxSXoVJ8tybu2DrKMw+zNeux7r4Uq0Zc4gnBFyVSBKKfw==","signatures":[{"sig":"MEUCIQDaecNpncTq2S8thGa5NDFEbLHvSgs/4+VaGB+nkhmMegIgVsjmCLYL5WyiHRB0HBM8G7ExvjFpNlVQClLFLyQFulY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544908},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.7.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\f870238f23e7f5ec28bf4faf6f17f5df\\csi-foxbyte-fastify-toab-0.0.7.tgz","_integrity":"sha512-+jUVDVSPlE/oa/fiuYNNAt9t89p+ls02C3UjQZ/ZicxSXoVJ8tybu2DrKMw+zNeux7r4Uq0Zc4gnBFyVSBKKfw==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.7_1754552225213_0.32940111394261073","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.8","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.8","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"caecc769ac6c8895615ace1731103a88ad5e8dc6","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.8.tgz","fileCount":10,"integrity":"sha512-lxxkMfqOcTDU9PgRVc6SZGe0NLtWouAv+lYc7TvaWtffEO3FWFmBhI4g9ctVF8UiliXRqjCIKElKwEHkQQSy1g==","signatures":[{"sig":"MEYCIQDL/D+mdQsoQ3TIQCLGKWZtk1WbqTrN/qXlVVU+2EboFwIhAMRX7DIBDgPSJNQPsPQc+YUbCxv6MSV6wCQ15wraX29A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544962},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.8.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\b9969b09da2859939e0e04ef57c58d63\\csi-foxbyte-fastify-toab-0.0.8.tgz","_integrity":"sha512-lxxkMfqOcTDU9PgRVc6SZGe0NLtWouAv+lYc7TvaWtffEO3FWFmBhI4g9ctVF8UiliXRqjCIKElKwEHkQQSy1g==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.8_1754557304990_0.22888506593922853","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@csi-foxbyte/fastify-toab","version":"0.0.9","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.0.9","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"f673be1c7b6de51948e1ff91928e0aa0d345d541","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.0.9.tgz","fileCount":10,"integrity":"sha512-cyuPFfS3nTTTMcyvdVWpoCffeYuQqtqplL+m8NjQsjx1IWGslQIJtvlspHT9USZLfb0ctJfTvmKObJTy9tiNkA==","signatures":[{"sig":"MEQCIG/IPpJoD+Eqbae9O/0Ya6y9MUma2XoE4Vz4br25C4KpAiAMg+Ncecqtou4Ib8JcuaLT4HElAwKtqrw6yxGzI1cJvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":545595},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.0.9.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\062620bdcea8004e93c70cb13e280488\\csi-foxbyte-fastify-toab-0.0.9.tgz","_integrity":"sha512-cyuPFfS3nTTTMcyvdVWpoCffeYuQqtqplL+m8NjQsjx1IWGslQIJtvlspHT9USZLfb0ctJfTvmKObJTy9tiNkA==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.0.9_1754892402615_0.7322924206893608","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.0","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.0","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"c1400daeb19bdbbfe7e1550b7a8ef71e16dc240c","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.0.tgz","fileCount":11,"integrity":"sha512-eTHc4wET4Yxott12x+rVU/miAJXZkOoZxSSINipWxoTgyCbQo7asOqbQb+BDsX7uuR5UJ/aT0Gn75I/BJYcncg==","signatures":[{"sig":"MEUCIQCfG2q3WDDyHijxh5Yi53xeXGhQQgfxZq6P03ResAB7mgIgMxMtj49uhHimpgmFCDIJnIfQDlZFTfF7mApJH9bJ6ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550134},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\a6e758ffe2263e9375dd9faa6b6d31a1\\csi-foxbyte-fastify-toab-0.1.0.tgz","_integrity":"sha512-eTHc4wET4Yxott12x+rVU/miAJXZkOoZxSSINipWxoTgyCbQo7asOqbQb+BDsX7uuR5UJ/aT0Gn75I/BJYcncg==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.0_1755175587041_0.32342285236592083","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.1","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.1","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"e9c807e371d97802d6639947a87df1f9ecf60816","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.1.tgz","fileCount":11,"integrity":"sha512-q3VgEU+Tt/A2ASdWB6hDB/Ochs0b8OcsRcncmVO7TEXsQadEHRAEq4NquAKnTPFLwwNuRxh0LoFy7JkFqBWDZA==","signatures":[{"sig":"MEQCICBnVPFVNgYpc3df2WDw4GIIqPF1Ien96Y6mHIbwLCSaAiA7fDpg4XR1k4fDnwMVmPmdutHRkdRO5QEWCjosxmkISg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":928651},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.1.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\e3a572e2651bd88e0648eaea34e2bc76\\csi-foxbyte-fastify-toab-0.1.1.tgz","_integrity":"sha512-q3VgEU+Tt/A2ASdWB6hDB/Ochs0b8OcsRcncmVO7TEXsQadEHRAEq4NquAKnTPFLwwNuRxh0LoFy7JkFqBWDZA==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.1_1755260840225_0.17134789911781456","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.2","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.2","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"},{"name":"minnumurali","email":"minnu.murali@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"d87c80815e766ec5e6fee1e3ad6420dd81dfcae8","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.2.tgz","fileCount":11,"integrity":"sha512-BfYy1m8Lqk7AH6Z0lIS+fOSX1laIEoLt6XzadNqrxDpxGaPu2i13b7z9J1BlGtjEBqou6mJKw829Vn4ik/t44w==","signatures":[{"sig":"MEYCIQCvkgahLll8piJUcukQLrx5lKuYolaq3rxtvaDRH9lHswIhAM/T8Ycy4eQUUM7Et8noGo3NCW3MEWXmHPXcAxKaOJ4r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":930511},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\91515b9ac5b4be257be96c315d7036d2\\csi-foxbyte-fastify-toab-0.1.2.tgz","_integrity":"sha512-BfYy1m8Lqk7AH6Z0lIS+fOSX1laIEoLt6XzadNqrxDpxGaPu2i13b7z9J1BlGtjEBqou6mJKw829Vn4ik/t44w==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.2_1761577817897_0.7780071878347492","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.3","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.3","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"},{"name":"minnumurali","email":"minnu.murali@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"b23cd4554105e53bc72e559a9fdb79bab70d9fd1","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.3.tgz","fileCount":11,"integrity":"sha512-HeIPFhyKl6Cuw2KsdYGMJmrr7pLfzC24UsYLkuHwClOOyoXzt2rHCISGOtReP8rwwEtfXBBObLsBIWAwvMPXMQ==","signatures":[{"sig":"MEYCIQCIGQ28CjgA3y7+wv+dotYfEp2IcTeuX74wbkEADGUbkgIhAIZMQHb7DrITrnPLCmVFcBEUKRUD9motCvtH4YJ3I4rh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":930501},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\b81d4b3e79f6a3cb019813fd9721adb0\\csi-foxbyte-fastify-toab-0.1.3.tgz","_integrity":"sha512-HeIPFhyKl6Cuw2KsdYGMJmrr7pLfzC24UsYLkuHwClOOyoXzt2rHCISGOtReP8rwwEtfXBBObLsBIWAwvMPXMQ==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.3_1761896445526_0.907044251911816","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.4","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.4","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"},{"name":"minnumurali","email":"minnu.murali@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"80781e3d1ca59a59cd59c9022cf897f2403655d4","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.4.tgz","fileCount":11,"integrity":"sha512-4FnvWbVFkR4AZMx9ffxcLh/lKxRZCd+1i34/OM+pT+M5QP37NrhiAEUSJxmSvSoOC01MBUGngv7PcdN+1ekkCA==","signatures":[{"sig":"MEUCIQC/fZcvGUoAqK0JqlZ1JXflZ/0l/3F4uRXxLruntVnEhAIgOJv/ccKXRJI8f5TObXlJS+3Jcw0KW34XgRSoLWZZipY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":930862},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\b46ee934f3c6ba28fb147581496fb68f\\csi-foxbyte-fastify-toab-0.1.4.tgz","_integrity":"sha512-4FnvWbVFkR4AZMx9ffxcLh/lKxRZCd+1i34/OM+pT+M5QP37NrhiAEUSJxmSvSoOC01MBUGngv7PcdN+1ekkCA==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.4_1763384608531_0.860895021081072","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.5","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.5","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"},{"name":"minnumurali","email":"minnu.murali@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"e2e57b166e1fca62227c2a61244c38db47781222","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.5.tgz","fileCount":11,"integrity":"sha512-rc202YFURcrC/Wszy6NlzH6mBdp/j1U+k7rp/EWYcvBKvOD9hSh0Mv4R0Fv2DMr2PrziaQrAIPyjuAW9MY1RbQ==","signatures":[{"sig":"MEQCIFamMTE1iJG15yPueW/UD657cGQDoZ4qWnWVXV4nmTeIAiB6RzExBG3+cwcvyCp1poNyMF+48urGCuLOoVAN08gnNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":931498},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.5.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/main.ts","test":"npx swc tests -d . && node --test","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\a432ffbd3cc1dad2fd14bf7f17a48827\\csi-foxbyte-fastify-toab-0.1.5.tgz","_integrity":"sha512-rc202YFURcrC/Wszy6NlzH6mBdp/j1U+k7rp/EWYcvBKvOD9hSh0Mv4R0Fv2DMr2PrziaQrAIPyjuAW9MY1RbQ==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.7.0","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.5_1763385087725_0.9767497758088473","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.6","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.6","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"},{"name":"minnumurali","email":"minnu.murali@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"2d7be9e95ae9aa95f3d40d7e2f150334f8e796f0","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.6.tgz","fileCount":11,"integrity":"sha512-vPq25QLhI4zjGbQnC7R10qYfYhhaLntDC5DNmkNZ71zhuQHp8RcEVFBR5src/ch1mEBoLP3HELxBh3tvZdOs2w==","signatures":[{"sig":"MEUCID5zDmp0dAFVk0Bxm1WGXrP/qgk1GzFErfA5g7ft3YnFAiEAldWfHIfDK9T8wTqWf9c2a4d6/hvgGWTm1/wze/p7jXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":932248},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.6.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/main.ts","test":"globstar -- node --import tsx --test \"tests/**/*.test.ts\"","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\7c0c5da427106406393448b59016f5a9\\csi-foxbyte-fastify-toab-0.1.6.tgz","_integrity":"sha512-vPq25QLhI4zjGbQnC7R10qYfYhhaLntDC5DNmkNZ71zhuQHp8RcEVFBR5src/ch1mEBoLP3HELxBh3tvZdOs2w==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.9.4","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","ts-node":"^10.9.2","globstar":"^1.0.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.6_1765805014895_0.4752703476084439","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.7","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.7","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"31efac9d4a6939c9a90137ca00a81bc03afc187e","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.7.tgz","fileCount":11,"integrity":"sha512-uBCAnGlfRDaVJtLpYhePu96INDERmBuHgq0L2E6JoSaTKWrxhckKK4KWcWyZ1JG/w4+hpApJ4NTk2BtbY0zZ0g==","signatures":[{"sig":"MEUCIQDkNT29bg2a5MVEQ5V2Fqtkzww2wr9NQ+M4/GoU86JRTwIgYhZu/9vwT333IY7iKz3NDKmBZNe89vIpxUAZ6z3oL4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":932246},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.7.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/main.ts","test":"globstar -- node --import tsx --test \"tests/**/*.test.ts\"","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\ca6e1be4e7d744b93928c44e60f4cabb\\csi-foxbyte-fastify-toab-0.1.7.tgz","_integrity":"sha512-uBCAnGlfRDaVJtLpYhePu96INDERmBuHgq0L2E6JoSaTKWrxhckKK4KWcWyZ1JG/w4+hpApJ4NTk2BtbY0zZ0g==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.9.4","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","ts-node":"^10.9.2","globstar":"^1.0.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.7_1770907033202_0.53190623354525","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@csi-foxbyte/fastify-toab","version":"0.1.8","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.1.8","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/generate.js"},"dist":{"shasum":"19da42d53c0666faa21be810bc98639d478cf2cc","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.1.8.tgz","fileCount":11,"integrity":"sha512-8tDCJ+yvkUM9nn8Pf1p5sgOM6051pgxO0ubUgKfWcndWEAK7pcAeOqJt+Mka9he0ze2ecs5HT9gZBmO/1LE8Zw==","signatures":[{"sig":"MEYCIQDX5Tmq8wwVlqHE8BE7YC6hl3DMctgl5yl+I1XdUqrCsgIhALKup0kpU8XzvDvCNXxrdrSCU9ob0D3zi70hCgefUanF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":936668},"main":"dist/index.js","type":"module","_from":"file:csi-foxbyte-fastify-toab-0.1.8.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsx src/main.ts","test":"globstar -- node --import tsx --test \"tests/**/*.test.ts\"","build":"tsup"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\a32137a95c5972b9e872c98aa9571d2f\\csi-foxbyte-fastify-toab-0.1.8.tgz","_integrity":"sha512-8tDCJ+yvkUM9nn8Pf1p5sgOM6051pgxO0ubUgKfWcndWEAK7pcAeOqJt+Mka9he0ze2ecs5HT9gZBmO/1LE8Zw==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.9.4","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","fastify":"^5.4.0","ts-node":"^10.9.2","globstar":"^1.0.0","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"peerDependencies":{"bullmq":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.1.8_1771573500356_0.18139804732894205","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.0":{"name":"@csi-foxbyte/fastify-toab","version":"0.2.0-rc.0","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.2.0-rc.0","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/cli.mjs"},"dist":{"shasum":"7080ddbf07314a312fbf1a3a813351ef66bb7744","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.2.0-rc.0.tgz","fileCount":11,"integrity":"sha512-3vyaA1xUcsUviYyEnL1Aohl9hjsx4Jgo09ecMuGCkQQfdJAlKjkLGlQlwskAzeh87yc5Ji7dGhRQQkk4AjbT0g==","signatures":[{"sig":"MEUCICEhMGFEsPRlZEqf5eoMnurP1zOz6ISomjQLePMAFfutAiEAmVp+ACHHmVB/H2XUXL7g8kfYxYQWnZKSGWbDlnfXerI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235422},"type":"module","_from":"file:csi-foxbyte-fastify-toab-0.2.0-rc.0.tgz","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./cli":"./dist/cli.mjs","./package.json":"./package.json"},"scripts":{"test":"globstar -- node --import tsx --test \"tests/**/*.test.ts\"","build":"tsdown"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\bc1e60f1c327440dc166b85557722c5b\\csi-foxbyte-fastify-toab-0.2.0-rc.0.tgz","_integrity":"sha512-3vyaA1xUcsUviYyEnL1Aohl9hjsx4Jgo09ecMuGCkQQfdJAlKjkLGlQlwskAzeh87yc5Ji7dGhRQQkk4AjbT0g==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.9.4","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"jiti":"^2.6.1","bullmq":"^5.0.0","dotenv":"^17.3.1","fastify":"^5.4.0","rolldown":"1.0.0-rc.9","fast-glob":"^3.3.3","picocolors":"^1.1.1","pino-pretty":"^13.1.3","@clack/prompts":"^1.1.0","@sinclair/typebox":"^0.34.37"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsdown":"^0.21.3","publint":"^0.3.18","ts-node":"^10.9.2","globstar":"^1.0.0","commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"inlinedDependencies":{"globrex":"0.1.2","commander":"14.0.0","tiny-glob":"0.2.9","globalyzer":"0.1.0","handlebars":"4.7.8","source-map":"0.6.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.2.0-rc.0_1773757205034_0.7099935325983082","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.1":{"name":"@csi-foxbyte/fastify-toab","version":"0.2.0-rc.1","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.2.0-rc.1","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/cli.mjs"},"dist":{"shasum":"01b434ff7a71c881843c1a7c6b22b4d94419cb6b","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.2.0-rc.1.tgz","fileCount":13,"integrity":"sha512-Gi6B4C41aBM6TYqto8PRgKECt6c9FvrwkH3i/W66+5W1HygpRj3XtITDTyOeALX+F6A6R3NB22PdTwfYHIhbng==","signatures":[{"sig":"MEQCIHgCXUB+IMSR0GOW1o0IqK1HPnr4RKcjBNd4bSJUubxOAiA2MDDvnzFy6wDAktxEf20gjLsMfh8FhkRmVFBiQxCe2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253902},"type":"module","_from":"file:csi-foxbyte-fastify-toab-0.2.0-rc.1.tgz","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./cli":"./dist/cli.mjs","./package.json":"./package.json"},"scripts":{"test":"globstar -- node --import tsx --test \"tests/**/*.test.ts\"","build":"tsdown"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\15e964c3c3890e3839e49a3314257de3\\csi-foxbyte-fastify-toab-0.2.0-rc.1.tgz","_integrity":"sha512-Gi6B4C41aBM6TYqto8PRgKECt6c9FvrwkH3i/W66+5W1HygpRj3XtITDTyOeALX+F6A6R3NB22PdTwfYHIhbng==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.9.4","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"jiti":"^2.6.1","pino":"^10.3.1","bullmq":"^5.0.0","dotenv":"^17.3.1","fastify":"^5.4.0","rolldown":"1.0.0-rc.9","fast-glob":"^3.3.3","picocolors":"^1.1.1","pino-pretty":"^13.1.3","@clack/prompts":"^1.1.0","@sinclair/typebox":"^0.34.37"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsdown":"^0.21.3","publint":"^0.3.18","ts-node":"^10.9.2","globstar":"^1.0.0","commander":"^14.0.0","tiny-glob":"^0.2.9","handlebars":"^4.7.8","typescript":"^5.8.3","@types/node":"^24.0.13","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/swagger-ui":"^5.2.3"},"inlinedDependencies":{"globrex":"0.1.2","commander":"14.0.0","tiny-glob":"0.2.9","globalyzer":"0.1.0","handlebars":"4.7.8","source-map":"0.6.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.2.0-rc.1_1773842894372_0.32385735596464116","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.3":{"name":"@csi-foxbyte/fastify-toab","version":"0.2.0-rc.3","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.2.0-rc.3","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/cli.mjs"},"dist":{"shasum":"c8ed54cdd85e3b8a5db2556632aa69c608c76cd5","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.2.0-rc.3.tgz","fileCount":11,"integrity":"sha512-Y8/+LO3E1m6xx6NY6PaVhFlRN5Touqm8x1rxrGGSiBZ9tHCzk1xsYJk0qdI/aAKnUcVwhtgoqb6lT8DICAup3g==","signatures":[{"sig":"MEUCIDFdX/cE5KoKagnvasWnhRNBBG2vdWgy/F+OoB8OXqoZAiEAvuzPulQv6oDVL9t19rOWYBgwn37Jiy1UMMbvObFdpDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381338},"type":"module","_from":"file:csi-foxbyte-fastify-toab-0.2.0-rc.3.tgz","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./cli":"./dist/cli.mjs","./package.json":"./package.json"},"scripts":{"test":"globstar -- node --import tsx --test \"tests/**/*.test.ts\"","build":"tsdown"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\a416127dae595645e9272329723e603f\\csi-foxbyte-fastify-toab-0.2.0-rc.3.tgz","_integrity":"sha512-Y8/+LO3E1m6xx6NY6PaVhFlRN5Touqm8x1rxrGGSiBZ9tHCzk1xsYJk0qdI/aAKnUcVwhtgoqb6lT8DICAup3g==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.9.4","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"jiti":"^2.6.1","pino":"^10.3.1","bullmq":"^5.0.0","fastify":"^5.4.0","rolldown":"1.0.0-rc.9","typescript":"^5.8.3","pino-pretty":"^13.1.3","@fastify/cors":"^11.2.0","@bull-board/api":"^6.20.6","@fastify/helmet":"^13.0.2","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/multipart":"^9.4.0","@bull-board/fastify":"^6.20.6","@fastify/rate-limit":"^10.3.0","@fastify/swagger-ui":"^5.2.3","@fastify/under-pressure":"^9.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","dotenv":"^17.3.1","tsdown":"^0.21.3","publint":"^0.3.18","globstar":"^1.0.0","commander":"^14.0.0","fast-glob":"^3.3.3","handlebars":"^4.7.8","picocolors":"^1.1.1","@types/node":"^24.0.13","@clack/prompts":"^1.1.0"},"inlinedDependencies":{"fastq":"1.19.1","braces":"3.0.3","dotenv":"17.3.1","merge2":"1.4.1","is-glob":"4.0.3","reusify":"1.1.0","commander":"14.0.0","fast-glob":"3.3.3","is-number":"7.0.0","picomatch":"2.3.1","fill-range":"7.1.1","handlebars":"4.7.8","is-extglob":"2.1.1","micromatch":"4.0.8","picocolors":"1.1.1","sisteransi":"1.0.5","source-map":"0.6.1","@clack/core":"1.1.0","glob-parent":"5.1.2","run-parallel":"1.2.0","@clack/prompts":"1.1.0","to-regex-range":"5.0.1","queue-microtask":"1.2.3","@nodelib/fs.stat":"2.0.5","@nodelib/fs.walk":"1.2.8","@nodelib/fs.scandir":"2.1.5"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.2.0-rc.3_1773997270211_0.851748055685539","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.4":{"name":"@csi-foxbyte/fastify-toab","version":"0.2.0-rc.4","keywords":["fastify","toab","openapi","middleware","controllers","services"],"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","_id":"@csi-foxbyte/fastify-toab@0.2.0-rc.4","maintainers":[{"name":"foxbyte-nklinke","email":"niklas.klinke@csi-online.de"},{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},{"name":"sherrmann","email":"stefan.herrmann@csi-online.de"}],"homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"bin":{"fastify-toab":"dist/cli.mjs"},"dist":{"shasum":"6a32b3e9147eb7543a45bcd05a5a778e511a034d","tarball":"https://registry.npmjs.org/@csi-foxbyte/fastify-toab/-/fastify-toab-0.2.0-rc.4.tgz","fileCount":11,"integrity":"sha512-P81MCn/Tg5ubCsimgqhex3WsxycixshqRp9E7v4pd7xZEviarWsez0X0iZaswgtCcu2Wa+Qo/p6Y3Ldvdl1XyA==","signatures":[{"sig":"MEYCIQC0supWQJlQ7/lU9U/gCPylrVZthdHsbMoedH6bj6L1LAIhAIvqyY3Q9AHiTrfmUPoVVP5zMMA/YfGgz/p3IkzxyxIJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381691},"type":"module","_from":"file:csi-foxbyte-fastify-toab-0.2.0-rc.4.tgz","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./cli":"./dist/cli.mjs","./package.json":"./package.json"},"scripts":{"test":"globstar -- node --import tsx --test \"tests/**/*.test.ts\"","build":"tsdown"},"_npmUser":{"name":"tobias.ganzhorn.foxbyte","email":"tobias.ganzhorn@csi-online.de"},"_resolved":"C:\\Users\\tga\\AppData\\Local\\Temp\\17c1029c9312508e5c5f02878a10f551\\csi-foxbyte-fastify-toab-0.2.0-rc.4.tgz","_integrity":"sha512-P81MCn/Tg5ubCsimgqhex3WsxycixshqRp9E7v4pd7xZEviarWsez0X0iZaswgtCcu2Wa+Qo/p6Y3Ldvdl1XyA==","repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"_npmVersion":"10.9.4","description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"jiti":"^2.6.1","pino":"^10.3.1","bullmq":"^5.0.0","fastify":"^5.4.0","rolldown":"1.0.0-rc.9","typescript":"^5.8.3","pino-pretty":"^13.1.3","@fastify/cors":"^11.2.0","@bull-board/api":"^6.20.6","@fastify/helmet":"^13.0.2","@fastify/swagger":"^9.5.1","@sinclair/typebox":"^0.34.37","@fastify/multipart":"^9.4.0","@bull-board/fastify":"^6.20.6","@fastify/rate-limit":"^10.3.0","@fastify/swagger-ui":"^5.2.3","@fastify/under-pressure":"^9.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","dotenv":"^17.3.1","tsdown":"^0.21.3","publint":"^0.3.18","globstar":"^1.0.0","commander":"^14.0.0","fast-glob":"^3.3.3","handlebars":"^4.7.8","picocolors":"^1.1.1","@types/node":"^24.0.13","@clack/prompts":"^1.1.0"},"inlinedDependencies":{"fastq":"1.19.1","braces":"3.0.3","dotenv":"17.3.1","merge2":"1.4.1","is-glob":"4.0.3","reusify":"1.1.0","commander":"14.0.0","fast-glob":"3.3.3","is-number":"7.0.0","picomatch":"2.3.1","fill-range":"7.1.1","handlebars":"4.7.8","is-extglob":"2.1.1","micromatch":"4.0.8","picocolors":"1.1.1","sisteransi":"1.0.5","source-map":"0.6.1","@clack/core":"1.1.0","glob-parent":"5.1.2","run-parallel":"1.2.0","@clack/prompts":"1.1.0","to-regex-range":"5.0.1","queue-microtask":"1.2.3","@nodelib/fs.stat":"2.0.5","@nodelib/fs.walk":"1.2.8","@nodelib/fs.scandir":"2.1.5"},"_npmOperationalInternal":{"tmp":"tmp/fastify-toab_0.2.0-rc.4_1774002134442_0.008323607980137648","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-15T07:24:15.411Z","modified":"2026-07-31T07:53:53.829Z","0.0.1":"2025-07-15T07:24:15.717Z","0.0.2":"2025-07-16T07:59:23.290Z","0.0.3":"2025-07-16T08:26:02.148Z","0.0.4":"2025-07-17T11:05:22.597Z","0.0.5":"2025-07-23T14:35:07.910Z","0.0.6":"2025-08-06T09:02:19.287Z","0.0.7":"2025-08-07T07:37:05.391Z","0.0.8":"2025-08-07T09:01:45.187Z","0.0.9":"2025-08-11T06:06:42.857Z","0.1.0":"2025-08-14T12:46:27.231Z","0.1.1":"2025-08-15T12:27:20.446Z","0.1.2":"2025-10-27T15:10:18.146Z","0.1.3":"2025-10-31T07:40:45.763Z","0.1.4":"2025-11-17T13:03:28.719Z","0.1.5":"2025-11-17T13:11:27.952Z","0.1.6":"2025-12-15T13:23:35.043Z","0.1.7":"2026-02-12T14:37:13.597Z","0.1.8":"2026-02-20T07:45:00.552Z","0.2.0-rc.0":"2026-03-17T14:20:05.165Z","0.2.0-rc.1":"2026-03-18T14:08:14.562Z","0.2.0-rc.2":"2026-03-19T16:04:27.758Z","0.2.0-rc.3":"2026-03-20T09:01:10.371Z","0.2.0-rc.4":"2026-03-20T10:22:14.586Z"},"bugs":{"url":"https://github.com/csi-FOXBYTE/fastify-toab/issues"},"author":{"name":"Tobias Ganzhorn @Foxbyte"},"license":"LGPL-3.0-or-later","homepage":"https://github.com/csi-FOXBYTE/fastify-toab#readme","keywords":["fastify","toab","openapi","middleware","controllers","services"],"repository":{"url":"git+https://github.com/csi-FOXBYTE/fastify-toab.git","type":"git"},"description":"Fastify Toab is a lightweight architectural layer for Fastify that introduces a clean, structured way to organize applications using controllers and services — inspired by frameworks like trpc.","maintainers":[{"email":"nico.vogel@csi-online.de","name":"foxbyte-nvogel"},{"email":"stefan.herrmann@csi-online.de","name":"sherrmann"}],"readme":"# Fastify TOAB (Typed OpenAPI + BullMQ)\n\n**Fastify TOAB** is a plugin for [Fastify](https://www.fastify.io/) that provides strongly-typed OpenAPI route generation and seamless BullMQ worker integration. It comes with CLI code generation to scaffold controllers, services, middleware, and workers.\n\n## Table of Contents\n\n1. [Installation](#installation)\n2. [Features](#features)\n3. [Code Generation](#code-generation)\n4. [Setup](#setup)\n5. [Controller](#controller)\n6. [Service](#service)\n7. [Middleware](#middleware)\n8. [Error Handling](#error-handling)\n9. [Worker](#worker)\n10. [Registries](#registries)\n11. [Testing](#testing)\n12. [Contributing](#contributing)\n13. [License](#license)\n\n---\n\n## Installation\n\nInstall the package via npm or pnpm:\n\n```bash\nnpm install @csi-foxbyte/fastify-toab\n# or using pnpm\npnpm add @csi-foxbyte/fastify-toab\n```\n\n## Features\n\n- **Typed Controllers & Routes** with built-in OpenAPI support\n- **Service Container** for dependency injection\n- **Middleware** creation with shared context\n- **BullMQ Worker** registration and queue integration\n- **Built-in Fastify integrations** for `@fastify/cors`, `@fastify/helmet`, `@fastify/swagger`, `@fastify/swagger-ui`, `@fastify/rate-limit`, `@fastify/multipart`, and `@fastify/under-pressure`\n- **Environment schema validation** against `process.env` before server startup\n- **CLI** for scaffolding boilerplate code\n\n## Code Generation\n\nCreate a new project scaffold:\n\n```bash\npnpm fastify-toab create\n```\n\nAdd a service, controller, middleware, worker, or sandboxed worker to an existing project:\n\n```bash\npnpm fastify-toab add service User\npnpm fastify-toab add controller User\npnpm fastify-toab add middleware Auth\npnpm fastify-toab add worker User DeleteUser\npnpm fastify-toab add sandboxedWorker User ExportUser\n```\n\n> **Note**: Workers are generated under `<service>/workers`.\n\n## Setup\n\nConfigure TOAB with a `fastify-toab.config.ts` file:\n\n```ts\nimport { Type } from \"@sinclair/typebox\";\nimport { defineConfig } from \"@csi-foxbyte/fastify-toab\";\n\nexport default defineConfig({\n  rootDir: \"src\",\n  env: Type.Object({\n    PORT: Type.String({ default: \"5000\" }),\n    HOST: Type.Optional(Type.String()),\n  }),\n  globalMiddlewares: [],\n  fastify: {\n    cors: {\n      enabled: true,\n    },\n    helmet: {\n      enabled: true,\n    },\n    swagger: {\n      enabled: true,\n      openapi: {\n        info: {\n          title: \"My API\",\n          version: \"1.0.0\",\n        },\n      },\n    },\n    swaggerUi: {\n      enabled: true,\n      routePrefix: \"/docs\",\n    },\n    rateLimit: {\n      enabled: false,\n    },\n    multipart: {\n      enabled: true,\n    },\n    underPressure: {\n      enabled: true,\n    },\n  },\n  plugins: [],\n  server: {\n    fastify: {\n      listen: {\n        host: \"0.0.0.0\",\n        port: Number(process.env.PORT ?? 5000),\n      },\n    },\n  },\n  onPreStart: async (fastify, registries) => {\n    // register hooks, dashboards, health checks, etc.\n  },\n  onReady: async (fastify, registries) => {\n    fastify.log.info(\"Server ready\");\n  },\n});\n```\n\nRun the generated project:\n\n```bash\npnpm fastify-toab rebuild\npnpm fastify-toab build\npnpm fastify-toab dev\n```\n\nImportant config fields:\n\n- **env**: TypeBox schema used to validate `process.env` before the server starts.\n- **plugins**: Additional Fastify plugins to register before TOAB.\n- **globalMiddlewares**: Middleware chain that runs before controller and route middlewares.\n- **fastify.cors**: Built-in registration for `@fastify/cors`.\n- **fastify.helmet**: Built-in registration for `@fastify/helmet`.\n- **fastify.swagger**: Built-in registration for `@fastify/swagger`.\n- **fastify.swaggerUi**: Built-in registration for `@fastify/swagger-ui`.\n- **fastify.rateLimit**: Built-in registration for `@fastify/rate-limit`.\n- **fastify.multipart**: Built-in registration for `@fastify/multipart`.\n- **fastify.underPressure**: Built-in registration for `@fastify/under-pressure`.\n- **includeGenericErrorResponses**: Adds the built-in generic error schemas to generated OpenAPI responses.\n- **onRouteError**: Central hook for custom route error handling.\n- **logLevel**: Logger level forwarded to the generated runner.\n- **logSerializers**: Custom logger serializers for Fastify/Pino.\n- **prefix**: Route prefix for the registered TOAB plugin.\n- **rolldown**: Advanced bundler overrides for generated builds.\n- **server.fastify.listen**: Options forwarded to `fastify.listen(...)`.\n- **server.disableWorkers**: Starts the app without initializing BullMQ workers.\n- **server.spawn**: Spawn options used by the generated runner.\n- **onPreStart**: Runs after `instrumentation.ts` and before TOAB registers configured Fastify plugins.\n- **onReady**: Runs after `fastify.ready()`.\n- **rootDir**: Source root that contains your generated `@internals` files and `instrumentation.ts`.\n\nBuilt-in Fastify plugins are registered automatically from the `fastify` section of the config. The current pre-integrated plugins are:\n\n- `@fastify/cors`\n- `@fastify/helmet`\n- `@fastify/swagger`\n- `@fastify/swagger-ui`\n- `@fastify/rate-limit`\n- `@fastify/multipart`\n- `@fastify/under-pressure`\n\nIf you register one of these plugins manually again through `plugins`, startup fails intentionally to avoid duplicate registrations.\n\nEnvironment variables are validated before boot using the TypeBox schema from `config.env`. On validation errors, TOAB prints the failing keys and exits before Fastify starts.\n\nIf you want to register the runtime plugin manually instead of using the generated runner, import the named export:\n\n```ts\nimport { fastifyToab } from \"@csi-foxbyte/fastify-toab\";\n```\n\nTo make the global middleware context and environment variables available in types automatically, add an ambient `.d.ts` file that imports your config. For example:\n\n```ts\nimport type { Static, TSchema } from \"@sinclair/typebox\";\nimport config from \"./fastify-toab.config.js\";\n\ntype GlobalMiddlewares = typeof config extends {\n  globalMiddlewares?: infer Middlewares;\n}\n  ? NonNullable<Middlewares>\n  : [];\n\ntype EnvSchema = typeof config extends {\n  env: infer Envs extends TSchema;\n}\n  ? Envs\n  : never;\n\ntype EnvVariables = Static<EnvSchema>;\n\ndeclare global {\n  interface FastifyToabGlobals {\n    globalMiddlewares: GlobalMiddlewares;\n  }\n\n  namespace NodeJS {\n    interface ProcessEnv extends EnvVariables {}\n  }\n}\n\nexport {};\n```\n\nWith this file in place, the context produced by `globalMiddlewares` is inferred from `fastify-toab.config.ts` and becomes the default `ctx` type for `createController()`. The same file can also extend `process.env` from your `env` schema.\n\n## Controller\n\nControllers define HTTP routes in a typed manner. Example:\n\n```ts\nimport { createController } from \"@csi-foxbyte/fastify-toab\";\nimport { authMiddleware } from \"../auth/auth.middleware.js\";\n\nexport const userController = createController()\n  .use(authMiddleware)\n  .rootPath(\"/user\");\n\nuserController\n  .addRoute(\"GET\", \"/test\")\n  .use(async ({ ctx }, next) => {\n    const nextCtx = { ...ctx, requestId: crypto.randomUUID() };\n\n    await next({ ctx: nextCtx });\n\n    return nextCtx;\n  })\n  .handler(async ({ ctx, request, reply }) => {\n    return { message: \"Hallo Welt!\", requestId: ctx.requestId };\n  });\n```\n\nEach controller must be exported and registered via the generated registries.\nSupported route methods are `GET`, `HEAD`, `POST`, `DELETE`, `PUT`, `PATCH`, `ALL`, and `SSE`.\nMiddlewares can be attached at controller level via `controller.use(...)` or per route via `addRoute(...).use(...)`.\nAll middleware levels extend the same handler context and are merged in this order:\n\n- global middlewares from `fastify-toab.config.ts`\n- controller middlewares from `controller.use(...)`\n- route middlewares from `addRoute(...).use(...)`\n\nIf multiple middlewares write the same key, the later middleware overrides that key in the resulting `ctx`.\n\nRoute handlers receive:\n\n- `request` and `reply`\n- `path`: The matched request path without the querystring\n- `ctx`: The merged context from global, controller, and route middlewares\n- `services`\n- `signal`: Aborts when the client disconnects\n- typed `body`, `params`, `querystring`, and `headers` when schemas are declared\n\nPath params are strict. If a route path contains named params such as `/:id` or `/:id/:postId`, you must declare `.params(Type.Object(...))` before `.handler(...)`.\n\n```ts\nimport { createController } from \"@csi-foxbyte/fastify-toab\";\nimport { Type } from \"@sinclair/typebox\";\n\nconst fileController = createController().rootPath(\"/files\");\n\nfileController\n  .addRoute(\"GET\", \"/:id\")\n  .params(Type.Object({ id: Type.String() }))\n  .handler(async ({ params, path }) => {\n    params.id;\n    path;\n\n    return { id: params.id };\n  });\n\nfileController\n  .addRoute(\"GET\", \"/*\")\n  .handler(async ({ path }) => {\n    return { path };\n  });\n```\n\nSSE routes use the `SSE` method and return an `AsyncIterable`:\n\n```ts\nimport { createController } from \"@csi-foxbyte/fastify-toab\";\nimport { Type } from \"@sinclair/typebox\";\n\nconst eventsController = createController().rootPath(\"/events\");\n\neventsController\n  .addRoute(\"SSE\", \"/stream\")\n  .output(Type.Object({ message: Type.String() }))\n  .handler(async function* ({ signal }) {\n    while (!signal.aborted) {\n      yield { message: \"ping\" };\n      await new Promise((resolve) => setTimeout(resolve, 1000));\n    }\n  });\n```\n\n## Service\n\nServices encapsulate business logic and can depend on other services.\n\n```ts\nimport {\n  createService,\n  InferService,\n  ServiceContainer,\n} from \"@csi-foxbyte/fastify-toab\";\n\nexport const userService = createService(\"user\", async () => {\n  // implement your service methods here\n  return {\n    getSession: async () => {\n      /* ... */\n    },\n    // etc.\n  };\n});\n\nexport type UserService = InferService<typeof userService>;\n\nexport function getUserService(deps: ServiceContainer): Promise<UserService> {\n  return deps.get(userService.name);\n}\n```\n\n- **createService**: Define a new service namespace.\n- **InferService**: Type helper to infer the service interface.\n- **ServiceContainer**: Async DI container for accessing services.\n\nInside request-scoped services you can access the current Fastify request and reply via `getRequestContext()`:\n\n```ts\nimport { createService, getRequestContext } from \"@csi-foxbyte/fastify-toab\";\n\nexport const auditService = createService(\n  \"audit\",\n  async () => {\n    const { request } = getRequestContext();\n\n    return {\n      getRequestId() {\n        return request.id;\n      },\n    };\n  },\n  { scope: \"REQUEST\" },\n);\n```\n\n## Middleware\n\nMiddleware allows injecting shared context into routes.\n\n```ts\nimport { createMiddleware, GenericRouteError } from \"@csi-foxbyte/fastify-toab\";\nimport { getAuthService } from \"./auth.service.js\";\n\nexport const authMiddleware = createMiddleware(\n  async ({ ctx, services }, next) => {\n    const auth = await getAuthService(services);\n    const session = await auth.getSession();\n\n    if (!session) {\n      throw new GenericRouteError(\n        \"UNAUTHORIZED\",\n        \"User must be authenticated\",\n        { session },\n      );\n    }\n\n    // extend context with session\n    await next({ ctx: { ...ctx, session } });\n  },\n);\n```\n\n- **createMiddleware**: Wraps route handlers to provide shared logic and context.\n- **GenericRouteError**: Optional standardized error shape when you choose to use it.\n- Middlewares can be reused globally in `fastify-toab.config.ts`, on controllers via `.use(...)`, or per route via `.addRoute(...).use(...)`.\n\nExample with all three middleware levels:\n\n```ts\nimport { Type } from \"@sinclair/typebox\";\nimport { createController, createMiddleware, defineConfig } from \"@csi-foxbyte/fastify-toab\";\n\nconst authMiddleware = createMiddleware(async ({ ctx }, next) => {\n  const nextCtx = { ...ctx, session: { userId: \"123\" } };\n  await next({ ctx: nextCtx });\n  return nextCtx;\n});\n\nconst controllerMiddleware = createMiddleware(async ({ ctx }, next) => {\n  const nextCtx = { ...ctx, canReadUsers: true };\n  await next({ ctx: nextCtx });\n  return nextCtx;\n});\n\nconst routeMiddleware = createMiddleware(async ({ ctx }, next) => {\n  const nextCtx = { ...ctx, requestId: crypto.randomUUID() };\n  await next({ ctx: nextCtx });\n  return nextCtx;\n});\n\nexport default defineConfig({\n  env: Type.Object({}),\n  globalMiddlewares: [authMiddleware],\n});\n\nconst userController = createController()\n  .use(controllerMiddleware)\n  .rootPath(\"/user\");\n\nuserController\n  .addRoute(\"GET\", \"/me\")\n  .use(routeMiddleware)\n  .handler(async ({ ctx }) => {\n    ctx.session.userId;\n    ctx.canReadUsers;\n    ctx.requestId;\n\n    return ctx;\n  });\n```\n\n## Worker\n\nWorkers process background jobs using BullMQ.\n\n```ts\nimport {\n  createWorker,\n  QueueContainer,\n  WorkerContainer,\n} from \"@csi-foxbyte/fastify-toab\";\nimport { Job } from \"bullmq\";\n\nexport const deleteUserWorker = createWorker()\n  .queue(\"deleteUser-queue\")\n  .job<Job<{ userId: string }, void>>()\n  .connection({\n    /* BullMQ connection options */\n  })\n  .processor(async (job, { services, workers, queues }) => {\n    // process job.data.userId\n    return;\n  });\n\nexport function getDeleteUserWorker(deps: WorkerContainer) {\n  return deps.get(deleteUserWorker.queueName);\n}\n\nexport function getDeleteUserWorkerQueue(deps: QueueContainer) {\n  return deps.get(deleteUserWorker.queueName);\n}\n```\n\n- **createWorker**: Starts a worker builder.\n- **queue**: Sets the queue name.\n- **job**: Defines job data and return types.\n- **connection**: Configures Redis/BullMQ connection.\n- **processor**: Job handler function.\n\n## Error Handling\n\nTOAB can either rethrow route errors to Fastify or handle them centrally with `onRouteError`.\n\n```ts\nimport {\n  defineConfig,\n  genericRouteErrorHandler,\n  type FastifyToabRouteErrorHandler,\n} from \"@csi-foxbyte/fastify-toab\";\nimport { Type } from \"@sinclair/typebox\";\n\nconst onRouteError: FastifyToabRouteErrorHandler = async (ctx) => {\n  if (ctx.reply.sent) return;\n\n  return genericRouteErrorHandler(ctx);\n};\n\nexport default defineConfig({\n  env: Type.Object({}),\n  includeGenericErrorResponses: true,\n  onRouteError,\n});\n```\n\nAvailable exports for custom error handling:\n\n- `GenericRouteError`\n- `isGenericError`\n- `genericRouteErrorHandler`\n- `FastifyToabRouteErrorContext`\n- `FastifyToabRouteErrorHandler`\n\n## Registries\n\nRegistries are auto-generated indexes of your controllers, services, and workers. They are written into `src/@internals/`.\n\n```bash\npnpm fastify-toab rebuild\n```\n\nKey generated files:\n\n- `src/@internals/registries.ts`: Creates and caches the service, worker, and controller registries.\n- `src/@internals/index.ts`: Exposes inferred helper types and `get...` accessors for generated services and workers.\n- `src/@internals/run.ts`: Bootstraps `startServer(...)` with your config and instrumentation module.\n\nYour project should also provide an `src/instrumentation.ts` default export:\n\n```ts\nimport type { InstrumentationInput } from \"@csi-foxbyte/fastify-toab\";\n\nexport default async function instrumentation({\n  fastify,\n  registries,\n}: InstrumentationInput) {\n  // optional startup wiring\n}\n```\n\n## Testing\n\nFor examples and integration tests, refer to the `tests/` directory:\n\n```bash\npnpm test\n```\n\nEnsure your generated code passes the existing test suite and add new tests for custom logic.\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes with clear messages\n4. Open a pull request and describe the feature / bugfix\n\nPlease follow the repository’s [code style guidelines](./CONTRIBUTING.md).\n\n## License\n\nLGPL3.0 © CSI Foxbyte\n","readmeFilename":"README.md"}