{"_id":"@sftech/nestjs-core","_rev":"33-56d1a7d4e790def2fbc1f9d2f0d9bc11","name":"@sftech/nestjs-core","dist-tags":{"latest":"3.0.0"},"versions":{"0.0.1":{"name":"@sftech/nestjs-core","version":"0.0.1","_id":"@sftech/nestjs-core@0.0.1","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"nx":{"targets":{"build":{"options":{"main":"nestjs-core/src/index.ts","assets":["nestjs-core/*.md"],"tsConfig":"nestjs-core/tsconfig.lib.json","outputPath":"dist/nestjs-core","packageJson":"nestjs-core/package.json"},"outputs":["{options.outputPath}"],"executor":"@nx/js:tsc"}}},"dist":{"shasum":"aa0e2596097e32b93ae9a3e177eee87c106ade52","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.1.tgz","fileCount":2,"integrity":"sha512-DydGWXXhsvXLFX4I395AS2JiWgA7zqQKEXJnNNyZj3OFbSjZdgGSNcc4r14KiTyYP8yqpLSJ+hb4OGbSTPixUg==","signatures":[{"sig":"MEYCIQDpCKawVtyGkhPwiiyxIZBw5d9txiwEDrLtzPiciHzR2gIhALJvUIB5sZNvPZt/+0+TvJphnzW1zcWBxELgE7zSl9Hj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1307},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"62e26b2a5d59505595ea10fefeb465b91d50c7ac","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"This library was generated with [Nx](https://nx.dev).","directories":{},"_nodeVersion":"22.0.0","dependencies":{"tslib":"^2.3.0","express":"^5.1.0","class-validator":"^0.14.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.1_1743750607172_0.8616474280371678","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-alpha.0":{"name":"@sftech/nestjs-core","version":"0.0.1-alpha.0","_id":"@sftech/nestjs-core@0.0.1-alpha.0","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"nx":{"targets":{"build":{"options":{"main":"nestjs-core/src/index.ts","assets":["nestjs-core/*.md"],"tsConfig":"nestjs-core/tsconfig.lib.json","outputPath":"src/nestjs-core","packageJson":"nestjs-core/package.json"},"outputs":["{options.outputPath}"],"executor":"@nx/js:tsc"}}},"dist":{"shasum":"a70d2bb5578fe76c3492009cf091cc72f068f22d","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.1-alpha.0.tgz","fileCount":68,"integrity":"sha512-s+d2XkUrwIfZUe6ZLVIaBtLa4SBNc0hJ1xUACN1FQ/Wj2m/208TIs6I21uqxlU2FuZQvojkK2vVNH4UvqPvZEA==","signatures":[{"sig":"MEYCIQDxMxewlzQwDuHQSCr0sHrRWRqytuymWQHZsL6toSaSrAIhAOzxWcJT1m0+zlGr/QOTlK2gEDlTZ/uDfKGv/ry60jnL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26747},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","module":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"62e26b2a5d59505595ea10fefeb465b91d50c7ac","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"This library was generated with [Nx](https://nx.dev).","directories":{},"_nodeVersion":"22.0.0","dependencies":{"tslib":"^2.3.0","express":"^5.1.0","class-validator":"^0.14.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.1-alpha.0_1743758182685_0.19430225878879503","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@sftech/nestjs-core","version":"0.0.2","_id":"@sftech/nestjs-core@0.0.2","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"9d6e07ab476b33ce5fad193e71334064807a9e92","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.2.tgz","fileCount":7,"integrity":"sha512-5jcGkGWAtINxK7I/TdYUptsn+/NJt8kqDlzU1pXGRNOB+IZdujJ60iBqcCsdDFMFsvv3CeScLkJ7PA/KUR728Q==","signatures":[{"sig":"MEUCIQCsod8Q4Mm86yfYZ9gikdYZRPJi48m98pEoMoKX4Na24wIgCutLGrLY8De1wPYEehNVRPgGhGsYZ//6FEPyC2hKlzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1537},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"3534744fa16f37cc859fb15562be9aacc41826c8","_npmUser":{"name":"rs88","email":"rs.88.tech@gmail.com"},"_npmVersion":"10.8.2","directories":{},"_nodeVersion":"20.17.0","dependencies":{"tslib":"^2.3.0","@nestjs/common":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.2_1743792782721_0.8661941907956703","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@sftech/nestjs-core","version":"0.0.3","_id":"@sftech/nestjs-core@0.0.3","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"7693d8208523fa6a5063aab7fe23227235847292","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.3.tgz","fileCount":46,"integrity":"sha512-Zjpnc8i07KAL/fxj9SjPfDdXvLYgr72NpOwHe1c3Gc0KesQIbPnsWwb8Cq6Z1pwSllB+Rv5SMAH2iPqQrwzfiQ==","signatures":[{"sig":"MEQCIAc1tBlOotP6yPTUIqsg38ICuY3ceWH3gobSvBCZagjkAiAWNPefxyzbQHbV+qBTDXqZuvObkNUuB4XFWvhgKy4WuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17930},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"4312f2e9667e361a25eed92bc99928d351430f6f","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","directories":{},"_nodeVersion":"22.0.0","dependencies":{"tslib":"^2.3.0","@nestjs/common":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.3_1744185612065_0.36897430750771365","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@sftech/nestjs-core","version":"0.0.4","_id":"@sftech/nestjs-core@0.0.4","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"db08ae248f6f74be26f74dc0b8b5abbe9d5da4a4","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.4.tgz","fileCount":55,"integrity":"sha512-rGyRqsyioubviNGPb8J+3KCV0Tr2wLpsD5u+9CgTwYwXJyj0ZvPj8aW36JDMqMDflB0N/fu7UTf1yUNKsFmFVA==","signatures":[{"sig":"MEYCIQC785RAQfh8xj4NgsMFT1YQHWZlAbfCL599TFtmbZfL1wIhAJpNmabn6naYzrd0vlhjn9UVbJqCIYSKIDWT+ER4D5ft","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29096},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5d9fc3ced038d739d3ad7db6a340b00d8fc39531","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.4_1744295730799_0.5157045644970277","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@sftech/nestjs-core","version":"0.0.5","_id":"@sftech/nestjs-core@0.0.5","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"4761a5eb92fb38e7da56fd9e729a1fcc455d0aed","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.5.tgz","fileCount":55,"integrity":"sha512-WwEtA/nrjgbAg6Fp0Kb/kTfZ8400gq1rLKDAZ34Xc4QKrOwOnFM9mYddfkW7tFny3VMWvmUDZ49o9E01ohrFoA==","signatures":[{"sig":"MEUCIQDE9Yi6nqPxwcCKf0iciKPlw9cZgglZ4boYkRkuiuPfAAIgP7RIxgbjH4SA9w+J8rKTKthwqRe3PG/YDp12I0+C3Z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29339},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5d9fc3ced038d739d3ad7db6a340b00d8fc39531","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.5_1744295964339_0.3290519435567605","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@sftech/nestjs-core","version":"0.0.6","_id":"@sftech/nestjs-core@0.0.6","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"dd1a89630966c1854e54856c912b64709f09e5b2","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.6.tgz","fileCount":55,"integrity":"sha512-rKtxW5UjX8NZf/l8IypaAzZu7JIwqENXAvfywoMoUHDgRqeQNkcRO+rMMl7bHZ9BA2ACRdmEPugzjbbcJeGxcA==","signatures":[{"sig":"MEUCIQDvNi5ScbbuWNMVDN1SxY44zZkVAg5Vqaa+RSAWkWIKqgIgXk9oeLbwmTbW2bvPvs7SPv/zvnOnSt9HWwBuJcCLM1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29546},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5d9fc3ced038d739d3ad7db6a340b00d8fc39531","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.6_1744357219272_0.9840027790085923","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@sftech/nestjs-core","version":"0.0.7","_id":"@sftech/nestjs-core@0.0.7","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"5160118abc6aef205617df228987c2047ebe5a69","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.7.tgz","fileCount":56,"integrity":"sha512-uXG63nVJCiZlazbluJ3CeFUfQBLrqV27LdrAOGLGrEe/3mXCgHNtqpqZjSIhlEDV3+nbNam4hqAYMTQU3hsv/g==","signatures":[{"sig":"MEUCICx1q3bhgPR7RvJTrT+ru2ciW3NgphhuiEV8XLKP2jjiAiEAl3Del0ZDhya4jwMnaSP6HlarcMPwtmx7YU0Gu1TRDwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30976},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5d9fc3ced038d739d3ad7db6a340b00d8fc39531","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.7_1744373529889_0.69239295520784","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@sftech/nestjs-core","version":"0.0.8","_id":"@sftech/nestjs-core@0.0.8","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"e19f343a7bb7ca1e24917dd0e08d400fba2b6a19","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.8.tgz","fileCount":56,"integrity":"sha512-C8XeiVeu/Ed9eZqf9RAzxPQgH13KHgVIXH5K9G9MRUyIW0bOEdI4bjj8ZfOY9cD0Zi6PXfOGFbl05TZkjU3vkg==","signatures":[{"sig":"MEQCICjTsq62VUGGZLCBqCSvi0fOGBgG4zbY6lZngogx1E3OAiA4ehHxI+nlPaGWoCcZ/4URrVmBEWE+oT3BxnHGLUtjVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31103},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5d9fc3ced038d739d3ad7db6a340b00d8fc39531","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.8_1744374650042_0.1974476231439195","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@sftech/nestjs-core","version":"0.0.9","_id":"@sftech/nestjs-core@0.0.9","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"4a8070a76c6e90591007f16659dc275d196eb25f","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.9.tgz","fileCount":56,"integrity":"sha512-iUb59N466b03TIZRWIyujwNXzmPT6gWz3hUNmtYSRBRcRCRsi91puGSquCDDPoumoKuIDji0j13JHm/BXgzy7Q==","signatures":[{"sig":"MEQCIB2rNk9i2YEr7uywySrAPNcItzvj7SiyEJa7duO2BrwQAiBp3HJWEbMMW3c9RjE1Kv4sOsv8PsCRlUnVK7f0vWDcMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31103},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5d9fc3ced038d739d3ad7db6a340b00d8fc39531","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.9_1744378202447_0.9686695919779007","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@sftech/nestjs-core","version":"0.0.11","_id":"@sftech/nestjs-core@0.0.11","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"87b612ec334160b6ac3f0af50d44aa1a84d7cc87","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.11.tgz","fileCount":56,"integrity":"sha512-Yx/6u/wLM2ri+6cHeN3v6Fi23SDrRQhx6SchGU5gDmMkhTWm7AkeR07zqrjDBFMfYW5XcuvPRr1YAKQkBFAE7w==","signatures":[{"sig":"MEQCIEI/yhfQBJb9TKG03amXKnUJuw5b3kORS7lgjHjUdCS1AiAyEEna6Mhx1TnptCq9mkKinkeCjTPzC03SH1L+/56o6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31104},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5d9fc3ced038d739d3ad7db6a340b00d8fc39531","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.11_1744616135119_0.5513430492224729","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@sftech/nestjs-core","version":"0.0.12","_id":"@sftech/nestjs-core@0.0.12","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"dba60088038aefe63d5f8e9ae9899d4e24caa2aa","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.12.tgz","fileCount":56,"integrity":"sha512-rQouBawQdD+5/fofM/+bNdTmvHiEC1S1t0geSro6lkaygznu85YRvgIIpXe99md8OoADjq28YiRNG7onOCzVrQ==","signatures":[{"sig":"MEYCIQCj3bx4U5xj7YU/uHMx9HcqPlpXOczJF3Y/3Oird351awIhALHhARL07HmHN/e2Yj3eTTZl3JFT+KX29YVXI6e7vKKZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32452},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"f6d9d11fbcc79ce7a9589ab7fc6094c5b639c836","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.12_1744880188978_0.7261815948889152","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@sftech/nestjs-core","version":"0.0.13","_id":"@sftech/nestjs-core@0.0.13","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"a6181c0f1ab90a59b484cb18c3f12c390bdc4d90","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.13.tgz","fileCount":56,"integrity":"sha512-LaOeuotoDLrQpLxPb5FeCdjjRjLTZyAgLnJd0+cqIY+HNV/0VeLmfl4A/BeYrThbQ30Ov5+I4G9bYAftVk2qYA==","signatures":[{"sig":"MEQCICHzyLfTTCE4sYvSpPckdfb+aQrXk9amgVOYbMA8qxlgAiAqzd3RYWzgj/me2bs7EWCNm9GpWEmJX4cbeXtA2J7dsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32647},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"f6d9d11fbcc79ce7a9589ab7fc6094c5b639c836","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.13_1744881675972_0.38270548433858087","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@sftech/nestjs-core","version":"0.0.14","_id":"@sftech/nestjs-core@0.0.14","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"0872ac8e9d7f659d80600811bc6f3139be9f5464","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.14.tgz","fileCount":56,"integrity":"sha512-ZTtuiRezU9Vi7gBn9uk45oCGBGHYFzB0yLJChobTTFqpNZ2wTzpY29a9bjnOmO5uM1ugRM9iIrMH2+rclSoxdA==","signatures":[{"sig":"MEYCIQDzn5NClHesD62xaTfaaNtxSUU1JjKW4NwfZ4C/Nh5+0AIhAK2tMyIwfDncg/5XCM6fJMlnwyGzuM/g8qq4R/A9Yph2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32679},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"c0588b7de44c301d81d9fa38f4422a5469d406fd","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.14_1745400181318_0.005034340761728151","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@sftech/nestjs-core","version":"0.0.15","_id":"@sftech/nestjs-core@0.0.15","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"f790fc40242f532eaa73a2a5873fd8267fca0ddd","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.15.tgz","fileCount":56,"integrity":"sha512-mrK3XJD6lVjYjpHlHR4ZUnLjpJ0HgvW8M1RCgaY0q0pxIUMqYXrV9B5P4PIR9QIatoLOc1zD35OTmciRP7tbPA==","signatures":[{"sig":"MEYCIQCJkZSo8r1BwxuJu2zqilzV+rPH19EHP80Mc+NPyGkNnAIhAOznbg9lptAV3lwt/4S6cRO5GbTkydqxoo4vPbgmmj0n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32768},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"c0588b7de44c301d81d9fa38f4422a5469d406fd","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.15_1745401045916_0.2294271842326907","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@sftech/nestjs-core","version":"0.0.16","_id":"@sftech/nestjs-core@0.0.16","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"02cfe1f243125ed0c9a48ad438540a9f23f3eb5a","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.16.tgz","fileCount":56,"integrity":"sha512-XcOMp20L82uza9ZnZoN3iCmnvVyycWPI9l+yyBCtShz1RmSMo9i2oeGMO8/r1NgUpmm/az+/5Qd1xOPqBSsgJg==","signatures":[{"sig":"MEUCIEeotAxVlslsD+E0SfufAJbJOJHsjYUq01K0RBY3WKZeAiEA9ymUsYsEPL4zmrgdoiw3UF8OxnzZUJ1Y/VjQUSLbcjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33187},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"c0588b7de44c301d81d9fa38f4422a5469d406fd","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.16_1745401305045_0.5727235465506662","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@sftech/nestjs-core","version":"0.0.17","_id":"@sftech/nestjs-core@0.0.17","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"0b07073c76dff5df27390e507433beb29db978d6","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.17.tgz","fileCount":56,"integrity":"sha512-f0koboa1DHY0DR/XaZeCgkM1YGpqfZOCCWXV4iKWzN0ySog6Ge2b4n59Ca34jVxXt49Abg/5Tpfehw3+fPlbeA==","signatures":[{"sig":"MEYCIQCB4RGIVm6ITfLvOYL8OcJz0/Unu4Qp+Zg+4RlqkjbesQIhAN1rd84KWtGiTpy9C0++VerW7GYJj82smn9wCPTZebpB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33630},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"c0588b7de44c301d81d9fa38f4422a5469d406fd","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.17_1745925880233_0.26168408913142716","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@sftech/nestjs-core","version":"0.0.18","_id":"@sftech/nestjs-core@0.0.18","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"68c14ba800ca5f6dc62397754717be94f361c692","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.18.tgz","fileCount":56,"integrity":"sha512-AFq3UdEktpl6H6M/jTJDtGwzBhdOdQ0XUTpQY4j2jo7E0ETrBaGEnyNdzfPylbPaHEMwl+p43apr5Ud/z7lPmA==","signatures":[{"sig":"MEUCIQDWP3k51rnvMozpbstUmnbcovxaQtH3n5PONyuw35vWtQIgGVrVj+rPJKqd6uGFTUQJsUbdNmgVgUzenIzz/ug/3Ys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33754},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"f13fab4d95c84d89396e53e259f1aa22b0f0313f","_npmUser":{"name":"rs88","email":"rs.88.tech@gmail.com"},"_npmVersion":"10.8.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.18_1746539293392_0.1714097869361555","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@sftech/nestjs-core","version":"0.0.19","_id":"@sftech/nestjs-core@0.0.19","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"7129c1e3c06a22a8537b80603abc3a9be0e4728d","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.19.tgz","fileCount":56,"integrity":"sha512-405PWXotkwVn2sacdWE2bckhTq8zA+cTif/R099YnERJWvUjcXqT3kfSg/OXkdME1hs/xrW69TkgZXFuhekQpg==","signatures":[{"sig":"MEYCIQDftUjDy2Edx6i1mp3s/bwVE0unJOOd/K2QgDJd/Aw9LwIhAJBqEotXyeNSyNi6XNofyguIC8RFM+W42nIJvQOYBpF/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34019},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"c76abb8deed07a91480186188ab725fe79307e24","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"10.5.1","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"22.0.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.19_1749627571111_0.13197208387573123","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@sftech/nestjs-core","version":"0.0.20","_id":"@sftech/nestjs-core@0.0.20","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"89dfc11dc82ed5aff294fc9c5bf5b493a8fe9b30","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.20.tgz","fileCount":56,"integrity":"sha512-9rRygI6/NZr/ss9XUS5799NDvVhSkujvCGW45wd8JjW94XYmtlDp4aMuzmDR/vwClMmxLZ7GpNyk+941rOhV4Q==","signatures":[{"sig":"MEQCIGwrROJsvZzynZWIpYvPCZsSUmWxr2nN7C5aJImvPXtmAiBwuPzS4Pbq5ORHU47VZ4FgFjhrMa9p2gg9K7RVCgJRcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34428},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"198e101bd0f6b92694b3cf2f34f17d455bda22ed","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"axios":"^1.6.0","tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.20_1755785769730_0.4656294840593149","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@sftech/nestjs-core","version":"0.0.21","_id":"@sftech/nestjs-core@0.0.21","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"44bbcf6dee4ce45ccb95bbdfefd3051f35af3ad9","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.21.tgz","fileCount":62,"integrity":"sha512-sVYlLaO7OIRHwg24dYmPJxlF2FmTjWZnq4Z8G6XlUhic0fAvoEFmjzsNvXPIfoFHA+jscuOym5Mi0iKK6xrEDQ==","signatures":[{"sig":"MEUCIGj93fcuAv4YkCVZvQky/LlTABad4Hp1gOtSQMHEmVKLAiEAyb6bU6PAkDcTZG9E2lomHuwr9NdnwmcvJdDoKXSvNEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38802},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"95f5583043900fb2d9d3045a00347f765b859ec6","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.21_1756304628055_0.5195331089073685","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@sftech/nestjs-core","version":"0.0.22","_id":"@sftech/nestjs-core@0.0.22","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"97dc39907836c1a7028e8f7766c2bda52ce81c69","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.22.tgz","fileCount":62,"integrity":"sha512-0GcQxTbODLnbqt8F4MPC4zO31wiLaPOpE9DXGqlFHLb5ubxlbdK1iUaQ44vCdSJtZ9eaYUPdNUUmlwGNQcohMw==","signatures":[{"sig":"MEYCIQC5HIA12+puRKyxsKyplDKNTBJ2hSw/lNa8FcBPnIdE3AIhAMGCF9hLf2dF6nG9zdZV3WyIB9EqNPRt/JLJbhmL+uIt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39489},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"680dfd14c9910d2a4492ee1803616e3c6235159d","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.22_1757678698168_0.5058453433315411","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@sftech/nestjs-core","version":"0.0.23","_id":"@sftech/nestjs-core@0.0.23","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"931c6ed3851c19be46a19c35310691afb081da94","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.23.tgz","fileCount":62,"integrity":"sha512-GSyCf5FqI1awCzPNX4kHRQ8d8+t7FjXmFROAKEwQNRSiZZBdM+R+Mmr1EeRJi+NJQJ9/oELX9rTIgVM7JDqTTw==","signatures":[{"sig":"MEYCIQDRnEDceNqWoTZcJ9YzzYPj3yzVWUehsIowbvDY5kidlgIhALSi4t0EmTeB9supdpSAl9AyTzcUF48O1M5OOX9RHQid","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40448},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"680dfd14c9910d2a4492ee1803616e3c6235159d","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.23_1757679389125_0.0802482397651818","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@sftech/nestjs-core","version":"0.0.24","_id":"@sftech/nestjs-core@0.0.24","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"ea903993de854c4bbcf0cecb885ea5b74ecdf186","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.24.tgz","fileCount":62,"integrity":"sha512-+c3zJxdrkyyxvIJmJ2jCxiE6I32feoJX9ean6c6zOeWED5LK5pth6g/lrXRyqFxwRoqYoh8jHhO1Dwp/O3iWzg==","signatures":[{"sig":"MEUCIQC6RSBjlrvyBrRxDp/jXbr/DKiVyIUmhpvHK6bNoUUWHQIgb5HN+nWUPWHwcoFmImOJbaLKeZWNZOScLJbpQK3wxWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40468},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"680dfd14c9910d2a4492ee1803616e3c6235159d","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.24_1757680283213_0.3807984828516242","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@sftech/nestjs-core","version":"0.0.25","_id":"@sftech/nestjs-core@0.0.25","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"cb52916448853cab14aaadb9085d07a18adb8693","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.25.tgz","fileCount":62,"integrity":"sha512-pNqRsGUuCEUWbqaocmyEqAa5Y/WppPL3aldjdziF6TsoSM70I/wmfONnDpcAP8j2Pxa+nv+9oZxQV7KMDSZ47w==","signatures":[{"sig":"MEUCIChHBMX9HpxIcuSn2oK8u7hE3HeEp7awqbeR/7U+XUPZAiEAilQ3wg9+JAwkoM5nDAI1l0eDr1Ldj6iKG02Jd7LHcYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40919},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"3edff395743b3c125e8fbf69d5569188ab3e1d17","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.25_1766063254266_0.6595470475399268","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@sftech/nestjs-core","version":"0.0.26","_id":"@sftech/nestjs-core@0.0.26","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"197f6a46dd5d4adecb06c903a88915d9274b165c","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-0.0.26.tgz","fileCount":62,"integrity":"sha512-DLX5cuYNV7Z3P2KnsJ2h8QMDwmtWdLYlxuKPiaDlyu1JGf4kiE7ZtgMM0wgCxJd8LqcSKcNB+bBVXULhAK3cCg==","signatures":[{"sig":"MEYCIQCcrZidVpVVGoSfYcNy33EefeFqM3IB6k5Dwql9llkf9QIhAMJskG2gB9GlV99BrIlka04nw83mS1ewTSJjtVZwWUho","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40989},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"4bdb7e7368178f7f06c6f5029993df4d22cd9895","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","@nestjs/core":"^10.0.2","nest-winston":"^1.10.2","cookie-parser":"^1.4.7","@nestjs/common":"^10.0.2","@nestjs/swagger":"^8.1.1","@nestjs/platform-express":"^10.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_0.0.26_1769683520404_0.44339338141518825","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@sftech/nestjs-core","version":"1.0.0","_id":"@sftech/nestjs-core@1.0.0","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"47c113ba9f58783b0e584754280d665e2d74826a","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-1.0.0.tgz","fileCount":62,"integrity":"sha512-sh6KHG5KqbtHR1jQ5qIVzHLSApKpHI94yUfEo7EU75YXCLwnVEbMcHT9FrQOFp0FCuA9FdDfMqW944YTkYXuIA==","signatures":[{"sig":"MEQCIGgRJP8Mj7ZIXbt3moPl+vI8klx04ow/oWX/E0o7sG5NAiBgYqYskIDoQSfSoAwJ2i198AtS4I/QwTsdsaiEdsuT+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41200},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"128a9467142d84372b8501caa005d88fa8f83457","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","nest-winston":"^1.10.2","cookie-parser":"^1.4.7"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@nestjs/swagger":"^8.0.0 || ^11.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_1.0.0_1770069612550_0.6715595911571903","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@sftech/nestjs-core","version":"1.0.1","_id":"@sftech/nestjs-core@1.0.1","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"a1de226cdbbda87f8205f2ce6b137cbaa6bde8e3","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-1.0.1.tgz","fileCount":62,"integrity":"sha512-uLUibOdhVyR1lD073+JXl8Lo7Un3ksV5yF4y3ynqtSUN3qzSPrEg5vqp1Q9uBAv3n9XPXHdHe+edUgtCKMSj4Q==","signatures":[{"sig":"MEUCIQDN+BlKzj1lncdgDHl5dWgLo80RVLpqBS725V4pmQm+sgIgPK/kmOs7PDnIOL67wuPl1ITqok/dfD2xlnrimPdOzS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41471},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"79bc528a59aceb16e71ea7827a72089cdbaa46b8","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"4.21.2","winston":"^3.17.0","nest-winston":"^1.10.2","cookie-parser":"^1.4.7"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@nestjs/swagger":"^8.0.0 || ^11.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_1.0.1_1770371657767_0.024565516582743863","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@sftech/nestjs-core","version":"1.0.2","_id":"@sftech/nestjs-core@1.0.2","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"07fa9f60d8159d949d7c1f9a9a3f0f50afa06a90","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-1.0.2.tgz","fileCount":62,"integrity":"sha512-fkApHY5oGYuVQ2OqRbKw/On0vZF1p+1IRdQ5odAFL3CEt3wCYVPkj4i5KlaGSOCTfFBRRDFV4Ew197FyQ35Q8g==","signatures":[{"sig":"MEUCIQDxZzQmQ/joP5NAho81vGia9hg6+q9XCqe//2vBnf3FFwIgfBBrz7DMkPlE6DGxGS0uvjel2dBksf4BzTLnfLfrbOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41543},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"6adfe56fcf8ca3d8e8330818a0d820179839b722","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"overrides":{"lodash":"4.17.23","minimatch":"10.2.2"},"_npmVersion":"11.4.2","description":"A foundational NestJS utility library that provides bootstrapping logic, base application and domain interfaces, and modular composition for scalable backend architecture.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","express":"5.2.1","winston":"^3.17.0","nest-winston":"^1.10.2","cookie-parser":"^1.4.7"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@nestjs/swagger":"^8.0.0 || ^11.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_1.0.2_1771926356712_0.4259226198130781","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@sftech/nestjs-core","version":"1.0.3","_id":"@sftech/nestjs-core@1.0.3","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"fb54da925282b5906ec42531dd87a1941dd3a5f3","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-1.0.3.tgz","fileCount":62,"integrity":"sha512-/bqdN90EJVHUgk7Y1k3T4unrOpEnsv2PB62T/pvuttoATjaS5D3S3Q2ybhGR9XmwGrg3AvGcffcbayo5BGuF6A==","signatures":[{"sig":"MEUCIQCzfByKRpvTSjAhwo125GsYudpm02SHefVzjO5bwAl1KQIgauk9ht1O13vDOTar7CWD22g0HYcFm3zdkWnSXiMDKDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54238},"main":"./src/index.js","type":"commonjs","_from":"file:sftech-nestjs-core-1.0.3.tgz","types":"./src/index.d.ts","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_resolved":"/tmp/e28afc2f99294401e705b281c0205987/sftech-nestjs-core-1.0.3.tgz","overrides":{"lodash":"4.17.23","minimatch":"10.2.2"},"_integrity":"sha512-/bqdN90EJVHUgk7Y1k3T4unrOpEnsv2PB62T/pvuttoATjaS5D3S3Q2ybhGR9XmwGrg3AvGcffcbayo5BGuF6A==","_npmVersion":"10.9.4","description":"Foundation library providing base abstractions, utilities, and common functionality for all NestJS applications in the sftech ecosystem.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0","express":"5.2.1","winston":"^3.17.0","nest-winston":"^1.10.2","cookie-parser":"^1.4.7"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@nestjs/swagger":"^8.0.0 || ^11.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_1.0.3_1773080693610_0.8458521721007903","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@sftech/nestjs-core","version":"1.1.0","_id":"@sftech/nestjs-core@1.1.0","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"6c20c54116bc803007323b8d2edfa0d24def9cca","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-1.1.0.tgz","fileCount":63,"integrity":"sha512-QcXwVTLIy+KFQh3v86DuKSzsEfHFVRAIY/glacOt9Bq/iAwuUX62wogFVMsTEWbg1sjPkaJWcVkyrNlBIPK3uA==","signatures":[{"sig":"MEUCIAOlvuOt9R3hr4BF8HqU9kIBFLAhi3KcOtJlSQGKLLC6AiEA1Bo6Ja0AsIm0ouPZj8g69AdofVK74mS8FHhnJeRYMfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61820},"main":"./src/index.js","type":"commonjs","_from":"file:sftech-nestjs-core-1.1.0.tgz","types":"./src/index.d.ts","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_resolved":"/tmp/5d94d183f13fbc2a7c4d2c1e821ccc24/sftech-nestjs-core-1.1.0.tgz","overrides":{"lodash":"4.17.23","minimatch":"10.2.2"},"_integrity":"sha512-QcXwVTLIy+KFQh3v86DuKSzsEfHFVRAIY/glacOt9Bq/iAwuUX62wogFVMsTEWbg1sjPkaJWcVkyrNlBIPK3uA==","_npmVersion":"10.9.4","description":"Foundation library providing base abstractions, utilities, and common functionality for all NestJS applications in the sftech ecosystem.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0","express":"5.2.1","winston":"^3.17.0","nest-winston":"^1.10.2","cookie-parser":"^1.4.7"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@nestjs/swagger":"^8.0.0 || ^11.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_1.1.0_1773674867019_0.2670905287240968","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@sftech/nestjs-core","version":"2.0.0","_id":"@sftech/nestjs-core@2.0.0","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"dist":{"shasum":"5b154aeaa5467a7aa439ed2317aa5680f4b94796","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-2.0.0.tgz","fileCount":63,"integrity":"sha512-3DDGAQyhaVy9GutFPgLJLn0/I+DRO17tSWVNfpmRaXBYdhyzOKzIvDN8AwOUbHXzsoLLfY7yMkupAKP9N6QWVQ==","signatures":[{"sig":"MEUCIQCtnIX/qhGfBlXP+rLkbpQw+Eo9OX6DhM97Yk2pl9yl2gIgHJ2EKNb9KTmCJ3b33LgKCewM4vjtgQeT3bHJwVp7qpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68915},"main":"./src/index.js","type":"commonjs","_from":"file:sftech-nestjs-core-2.0.0.tgz","types":"./src/index.d.ts","_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\4427e26d1a0d6541ad6afd672efd14c2\\sftech-nestjs-core-2.0.0.tgz","overrides":{"lodash":"4.17.23","minimatch":"10.2.2"},"_integrity":"sha512-3DDGAQyhaVy9GutFPgLJLn0/I+DRO17tSWVNfpmRaXBYdhyzOKzIvDN8AwOUbHXzsoLLfY7yMkupAKP9N6QWVQ==","_npmVersion":"11.4.2","description":"Foundation library providing base abstractions, utilities, and common functionality for all NestJS applications in the sftech ecosystem.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0","helmet":"^8.1.0","express":"^5.2.1","winston":"^3.17.0","nest-winston":"^1.10.2","cookie-parser":"^1.4.7"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@nestjs/swagger":"^8.0.0 || ^11.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-core_2.0.0_1777278113351_0.9692170732292749","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@sftech/nestjs-core","version":"3.0.0","type":"commonjs","main":"./src/index.js","types":"./src/index.d.ts","dependencies":{"cookie-parser":"^1.4.7","express":"^5.2.1","helmet":"^8.1.0","nest-winston":"^1.10.2","tslib":"^2.3.0","winston":"^3.17.0"},"peerDependencies":{"@nestjs/common":"^10.0.0 || ^11.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0","@nestjs/swagger":"^8.0.0 || ^11.0.0"},"overrides":{"lodash":"4.17.23","minimatch":"10.2.2"},"_id":"@sftech/nestjs-core@3.0.0","gitHead":"92cecdf21a2b2d3aae94ed1948f45eced5ab994c","description":"Foundation library providing base abstractions, utilities, and common functionality for all NestJS applications in the sftech ecosystem.","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-QQZybfrayAebpxYINrscH69akr5BM5s0seYj6xqZnjnUzWiVkTj4Wip5SD/ygeyvZyc4G8Y6F7wTJBYeTOLZuA==","shasum":"48a6e859bc6f8a20a4e83b87d4b9cd3f0395210d","tarball":"https://registry.npmjs.org/@sftech/nestjs-core/-/nestjs-core-3.0.0.tgz","fileCount":66,"unpackedSize":109218,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD7wufG5XevlwboHOlz1gakA7GymA2cjuqvmhsMKa90FQIhAPHrel32jf4mWiN9mqRg2b9tywvIha9mqgK0bSLmDVA+"}]},"_npmUser":{"name":"afaercher","email":"info@faercher-it.de"},"directories":{},"maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-core_3.0.0_1788384936757_0.6553247047551813"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-04T07:10:07.108Z","modified":"2026-09-02T21:35:37.111Z","0.0.1":"2025-04-04T07:10:07.327Z","0.0.1-alpha.0":"2025-04-04T09:16:22.851Z","0.0.2":"2025-04-04T18:53:02.928Z","0.0.3":"2025-04-09T08:00:12.292Z","0.0.4":"2025-04-10T14:35:30.984Z","0.0.5":"2025-04-10T14:39:24.503Z","0.0.6":"2025-04-11T07:40:19.455Z","0.0.7":"2025-04-11T12:12:10.097Z","0.0.8":"2025-04-11T12:30:50.255Z","0.0.9":"2025-04-11T13:30:02.622Z","0.0.11":"2025-04-14T07:35:35.313Z","0.0.12":"2025-04-17T08:56:29.207Z","0.0.13":"2025-04-17T09:21:16.187Z","0.0.14":"2025-04-23T09:23:01.512Z","0.0.15":"2025-04-23T09:37:26.119Z","0.0.16":"2025-04-23T09:41:45.211Z","0.0.17":"2025-04-29T11:24:40.385Z","0.0.18":"2025-05-06T13:48:13.565Z","0.0.19":"2025-06-11T07:39:31.304Z","0.0.20":"2025-08-21T14:16:09.961Z","0.0.21":"2025-08-27T14:23:48.231Z","0.0.22":"2025-09-12T12:04:58.342Z","0.0.23":"2025-09-12T12:16:29.285Z","0.0.24":"2025-09-12T12:31:23.392Z","0.0.25":"2025-12-18T13:07:34.404Z","0.0.26":"2026-01-29T10:45:20.547Z","1.0.0":"2026-02-02T22:00:12.740Z","1.0.1":"2026-02-06T09:54:17.908Z","1.0.2":"2026-02-24T09:45:56.894Z","1.0.3":"2026-03-09T18:24:53.861Z","1.1.0":"2026-03-16T15:27:47.162Z","2.0.0":"2026-04-27T08:21:53.479Z","3.0.0":"2026-09-02T21:35:36.916Z"},"description":"Foundation library providing base abstractions, utilities, and common functionality for all NestJS applications in the sftech ecosystem.","maintainers":[{"name":"rs88","email":"rs.88.tech@gmail.com"},{"name":"afaercher","email":"info@faercher-it.de"}],"readme":"# @sftech/nestjs-core\n\nFoundation library providing base abstractions, utilities, and common functionality for all NestJS applications in the sftech ecosystem.\n\n## Installation\n\n```bash\nnpm install @sftech/nestjs-core\n```\n\n## Features\n\n- Base use case interface for Clean Architecture\n- Factory pattern interface\n- Global exception handling with custom exceptions\n- Application bootstrap utilities\n- Configurable CORS origins support\n- Trust-proxy support for deployments behind reverse proxies (nginx, traefik, ALB)\n- Optional helmet middleware for secure HTTP response headers\n- Configuration management with validation\n- Status/health check module\n- Request context storage for async operations\n\n## Configuration\n\n### Basic Setup\n\n```typescript\nimport { NestjsCoreModule } from '@sftech/nestjs-core';\n\n@Module({\n  imports: [NestjsCoreModule],\n})\nexport class AppModule {}\n```\n\n### With Configuration\n\n```typescript\nimport { NestjsCoreModule, Configuration } from '@sftech/nestjs-core';\nimport { join } from 'path';\n\n// Load configuration before module initialization\nConfiguration.load(join(__dirname, 'assets', 'app.config.json'));\n\n@Module({\n  imports: [NestjsCoreModule.register({ statusRoute: true })],\n  providers: [Logger],\n})\nexport class AppModule {}\n```\n\n### Bootstrap Application\n\n```typescript\n// main.ts\nimport { AppBootstrapper, Configuration } from '@sftech/nestjs-core';\nimport { AppModule } from './app/app.module';\nimport { join } from 'path';\n\n// Load configuration first\nConfiguration.load(join(__dirname, 'assets', 'app.config.json'));\n\n// Bootstrap with full options\nAppBootstrapper.run(AppModule, {\n  appName: 'MyApp',\n  logging: {\n    filePath: './logs/app.log',\n    enableDebugLogs: false,\n  },\n  swagger: {\n    title: 'My API',\n    description: 'API documentation',\n    version: '1.0.0',\n  },\n});\n```\n\n**Required `app.config.json`:**\n```json\n{\n  \"APP_PORT\": 3000,\n  \"APP_HOST\": \"0.0.0.0\",\n  \"APP_API_PREFIX\": \"/api\"\n}\n```\n\n### Trust Proxy & Helmet\n\nBoth options are opt-in. Existing consumers who do not set them observe zero behavioral change.\n\n**Example 1 — Standard production deployment behind a single reverse proxy**\n\n```typescript\nimport { AppBootstrapper } from '@sftech/nestjs-core';\nimport { AppModule } from './app.module';\n\nawait AppBootstrapper.run(AppModule, {\n    appName: 'my-api',\n    trustProxy: true,    // trust the immediately preceding proxy hop\n    helmet: true,        // helmet defaults: CSP, HSTS, X-Frame-Options, etc.\n});\n```\n\n**Example 2 — Disable a single helmet policy while keeping the rest**\n\n```typescript\nimport { AppBootstrapper } from '@sftech/nestjs-core';\nimport { AppModule } from './app.module';\n\nawait AppBootstrapper.run(AppModule, {\n    appName: 'my-api',\n    trustProxy: 1,                                    // exactly one trusted hop in front\n    helmet: {\n        contentSecurityPolicy: false,                 // override one policy\n        // every other helmet default still applies (HSTS, X-Frame-Options, …)\n    },\n});\n```\n\n**`trustProxy` value reference**\n\n| Value | Meaning |\n|-------|---------|\n| `true` | Trust the immediate preceding proxy. Fine for single-tier nginx. |\n| `1` (or any `N`) | Trust exactly `N` hops. Use when you have a known proxy chain. |\n| `'loopback'` | Trust loopback addresses (127/8, ::1) only. Useful for local proxies. |\n| `['10.0.0.0/8', '192.168.1.1']` | Explicit allowlist of CIDRs / IPs. Highest control. |\n| `false` | Default. Ignore `X-Forwarded-*` entirely. |\n\n> **Warning**: enabling `trustProxy` on an app that is *not* actually behind a proxy lets clients forge their own IP via the `X-Forwarded-For` header. Only enable when you genuinely sit behind a trusted proxy.\n\n## API Reference\n\n### Interfaces\n\n| Interface | Purpose |\n|-----------|---------|\n| `IBaseUsecase<TInput, TOutput>` | Base interface for all use cases |\n| `IFactory<TReturn>` | Factory pattern interface |\n| `IBootstrapConfig` | Application bootstrap configuration |\n| `IBootstrapCorsConfig` | CORS configuration for `AppBootstrapper` (added in v1.1.0) |\n| `IBootstrapHelmetConfig` | Helmet middleware options pass-through for `AppBootstrapper` (added in v2.0.0) |\n| `IConfigurationValues` | Configuration key-value storage |\n\n### Exceptions\n\n| Exception | Purpose |\n|-----------|---------|\n| `BaseApplicationException` | Base class for all custom exceptions |\n| `ConfigurationNotFoundException` | Thrown when configuration file not found |\n| `ConfigurationKeyNotFoundException` | Thrown when configuration key missing |\n| `ConfigurationNotValidJsonException` | Thrown when configuration is invalid JSON |\n\n### Utilities\n\n| Utility | Purpose |\n|---------|---------|\n| `AppBootstrapper.run()` | Bootstrap NestJS application with standard config |\n| `GlobalExceptionFilter` | Global exception handler for HTTP responses |\n| `RequestContextStorage` | Store request context for async operations |\n| `Configuration` | Static configuration management |\n\n---\n\n## Base Classes & Interfaces\n\n### IBaseUsecase<TInput, TOutput>\n\nBase interface for implementing use cases following Clean Architecture. **Every use case in your application should implement this interface.**\n\n**Interface definition:**\n```typescript\nexport interface IBaseUsecase<TInput, TOutput> {\n    execute(input: TInput): TOutput;\n}\n```\n\n**You must implement:**\n- `execute(input: TInput): TOutput` - The use case logic\n\n**Usage example:**\n```typescript\nimport { IBaseUsecase } from '@sftech/nestjs-core';\nimport { Injectable } from '@nestjs/common';\n\n// Define input/output types\ninterface GetUserInput {\n    id: number;\n}\n\ninterface GetUserOutput {\n    id: number;\n    email: string;\n    name: string;\n}\n\n// Implement the use case\n@Injectable()\nexport class GetUserUsecase implements IBaseUsecase<GetUserInput, Promise<GetUserOutput>> {\n    constructor(private readonly userRepository: IUserRepository) {}\n\n    async execute(input: GetUserInput): Promise<GetUserOutput> {\n        const user = await this.userRepository.findById(input.id);\n        if (!user) {\n            throw new UserNotFoundException(input.id);\n        }\n        return {\n            id: user.id,\n            email: user.email,\n            name: user.name,\n        };\n    }\n}\n\n// Register in module\n@Module({\n    providers: [GetUserUsecase],\n    exports: [GetUserUsecase],\n})\nexport class UserModule {}\n\n// Use in controller\n@Controller('users')\nexport class UserController {\n    constructor(private readonly getUserUsecase: GetUserUsecase) {}\n\n    @Get(':id')\n    async getUser(@Param('id') id: number) {\n        return this.getUserUsecase.execute({ id });\n    }\n}\n```\n\n---\n\n### IFactory<TReturn>\n\nFactory pattern interface for creating objects.\n\n**Interface definition:**\n```typescript\nexport interface IFactory<TReturn> {\n    create(): TReturn;\n}\n```\n\n**You must implement:**\n- `create(): TReturn` - Create and return a new instance\n\n**Usage example:**\n```typescript\nimport { IFactory } from '@sftech/nestjs-core';\nimport { Injectable } from '@nestjs/common';\n\n@Injectable()\nexport class UserFactory implements IFactory<User> {\n    create(): User {\n        const user = new User();\n        user.createdAt = new Date();\n        user.isActive = true;\n        return user;\n    }\n}\n\n// Usage\n@Injectable()\nexport class CreateUserUsecase {\n    constructor(private readonly userFactory: UserFactory) {}\n\n    execute(dto: CreateUserDto): User {\n        const user = this.userFactory.create();\n        user.email = dto.email;\n        user.name = dto.name;\n        return user;\n    }\n}\n```\n\n---\n\n### BaseApplicationException\n\nBase class for all custom application exceptions. **Extend this class to create domain-specific exceptions.**\n\n**Provides:**\n- `message: string` - Error message\n- Inherits from `Error`\n\n**Usage example:**\n```typescript\nimport { BaseApplicationException } from '@sftech/nestjs-core';\n\n// Create a custom exception\nexport class UserNotFoundException extends BaseApplicationException {\n    constructor(userId: number) {\n        super(`User with ID ${userId} not found`);\n        this.name = 'UserNotFoundException';\n    }\n}\n\nexport class InvalidEmailException extends BaseApplicationException {\n    constructor(email: string) {\n        super(`Email '${email}' is not valid`);\n        this.name = 'InvalidEmailException';\n    }\n}\n\n// Usage in a service\n@Injectable()\nexport class UserService {\n    async findById(id: number): Promise<User> {\n        const user = await this.repository.findById(id);\n        if (!user) {\n            throw new UserNotFoundException(id);\n        }\n        return user;\n    }\n}\n```\n\n---\n\n### RequestContextStorage\n\nStorage for request-scoped context, useful for passing user information through the application layers without explicit parameter passing.\n\n**Key methods:**\n- `set(key: string, value: any)` - Store a value\n- `get<T>(key: string): T` - Retrieve a value\n\n**Usage example:**\n```typescript\nimport { RequestContextStorage } from '@sftech/nestjs-core';\nimport { Injectable } from '@nestjs/common';\n\n// Middleware to set context\n@Injectable()\nexport class AuthMiddleware implements NestMiddleware {\n    constructor(private readonly rcs: RequestContextStorage) {}\n\n    use(req: Request, res: Response, next: NextFunction) {\n        const user = this.validateToken(req.headers.authorization);\n        this.rcs.set('user', user);\n        this.rcs.set('requestId', req.headers['x-request-id']);\n        next();\n    }\n}\n\n// Use in any service\n@Injectable()\nexport class AuditService {\n    constructor(private readonly rcs: RequestContextStorage) {}\n\n    logAction(action: string) {\n        const user = this.rcs.get<User>('user');\n        const requestId = this.rcs.get<string>('requestId');\n        console.log(`[${requestId}] User ${user?.id} performed: ${action}`);\n    }\n}\n```\n\n---\n\n### Configuration\n\nStatic configuration management for loading and accessing application configuration. Supports both JSON file configuration and environment variable overrides.\n\n**Key methods:**\n- `Configuration.load(path: string)` - Load configuration from JSON file\n- `Configuration.getValue(key: string)` - Get configuration value (env vars take precedence)\n- `Configuration.getConfig()` - Get entire configuration object\n\n**Environment variable override:** If an environment variable with the same name as a config key exists, the env var value takes precedence.\n\n**Usage example:**\n```typescript\nimport { Configuration } from '@sftech/nestjs-core';\nimport { join } from 'path';\n\n// In main.ts or app.module.ts - load once at startup\nConfiguration.load(join(__dirname, 'assets', 'app.config.json'));\n\n// app.config.json\n{\n  \"APP_PORT\": 3000,\n  \"APP_HOST\": \"localhost\",\n  \"APP_API_PREFIX\": \"/api\",\n  \"DATABASE_HOST\": \"localhost\",\n  \"DATABASE_PORT\": 5432,\n  \"FEATURE_FLAG_NEW_UI\": true\n}\n\n// Access anywhere in the application\n@Injectable()\nexport class DatabaseService {\n    private readonly host: string;\n    private readonly port: number;\n\n    constructor() {\n        // getValue throws ConfigurationKeyNotFoundException if key not found\n        this.host = Configuration.getValue('DATABASE_HOST') as string;\n        this.port = Configuration.getValue('DATABASE_PORT') as number;\n    }\n}\n\n// Environment variables override config file values\n// If DATABASE_HOST env var is set, it will be used instead of config file value\n```\n\n---\n\n### NestjsCoreModule\n\nThe main module that provides core functionality. Use `register()` to configure.\n\n**Configuration options:**\n- `statusRoute: boolean` - Enable `/status` health check endpoint\n\n**Usage example:**\n```typescript\nimport { NestjsCoreModule, Configuration } from '@sftech/nestjs-core';\nimport { Module } from '@nestjs/common';\nimport { join } from 'path';\n\n// Load configuration BEFORE module initialization\nConfiguration.load(join(__dirname, 'assets', 'app.config.json'));\n\n@Module({\n  imports: [\n    NestjsCoreModule.register({\n      statusRoute: true,  // Enables GET /status endpoint\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n**What it provides:**\n- `RequestContextStorage` - Automatically available for injection\n- `RequestContextMiddleware` - Applied to all routes automatically\n- `StatusModule` - Health check endpoint (if enabled)\n\n---\n\n### AppBootstrapper\n\nBootstrap utility for starting NestJS applications with standardized configuration including logging, Swagger, validation, and CORS.\n\n**Method:**\n- `AppBootstrapper.run(module, config)` - Bootstrap and start the application\n\n**What it configures automatically:**\n- Winston logging with console and file transports\n- Global validation pipe with whitelist and transform\n- Cookie parser middleware\n- CORS (see CORS configuration below)\n- Global exception filter\n- Swagger documentation (optional)\n\n**Configuration interfaces:**\n\n```typescript\ninterface IBootstrapConfig {\n    appName?: string;              // Application name for logging\n    globalPrefix?: string;         // API prefix (overridden by APP_API_PREFIX config)\n    logging?: IBootstrapLoggingConfig;\n    swagger?: IBootstrapSwaggerConfig;\n    useBodyParser?: boolean;       // Enable body parser (default: true, limit: 10mb)\n    cors?: IBootstrapCorsConfig;   // CORS configuration (added in v1.1.0)\n    trustProxy?: boolean | number | string | string[]; // Express trust-proxy setting (added in v2.0.0)\n    helmet?: boolean | IBootstrapHelmetConfig;         // Helmet secure-headers middleware (added in v2.0.0)\n}\n\ninterface IBootstrapLoggingConfig {\n    filePath?: string;             // Path to log file (e.g., './logs/app.log')\n    enableDebugLogs?: boolean;     // Enable debug level logging\n}\n\ninterface IBootstrapSwaggerConfig {\n    title?: string;                // Swagger doc title\n    description?: string;          // Swagger doc description\n    version?: string;              // API version\n    path?: string;                 // Swagger UI path (default: 'api/swagger')\n}\n\ninterface IBootstrapCorsConfig {\n    originsKey?: string;           // Config key for pipe-separated origins (default: 'CORS_ORIGINS')\n}\n```\n\n**Required configuration keys (in app.config.json):**\n- `APP_PORT` - Port to listen on\n- `APP_HOST` - Host to bind to\n- `APP_API_PREFIX` - Global API prefix\n\n**CORS behavior:**\n\n| Scenario | Result |\n|----------|--------|\n| No `cors` property in `IBootstrapConfig` | `enableCors()` called without parameters (wildcard `*`) |\n| `cors: {}` but `CORS_ORIGINS` key is absent or empty | `enableCors()` called without parameters (wildcard fallback) |\n| `cors: {}` and `CORS_ORIGINS` has a value | Specific origins enforced, `credentials: true` set |\n| `cors: { originsKey: 'MY_KEY' }` and `MY_KEY` has a value | Origins read from `MY_KEY` instead of `CORS_ORIGINS` |\n\nWhen specific origins are configured the bootstrapper sets:\n- `credentials: true` - Supports `withCredentials: true` from browsers\n- `methods: 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS'`\n- `allowedHeaders: 'Origin,X-Requested-With,Content-Type,Accept,Authorization'`\n- Requests without an `Origin` header (server-to-server calls) are always allowed\n\n**Complete usage example:**\n\n```typescript\n// main.ts\nimport { AppBootstrapper, Configuration } from '@sftech/nestjs-core';\nimport { AppModule } from './app/app.module';\nimport { join } from 'path';\n\n// 1. Load configuration first\nConfiguration.load(join(__dirname, 'assets', 'app.config.json'));\n\n// 2. Bootstrap application\nAppBootstrapper.run(AppModule, {\n    appName: 'MyApp',\n    logging: {\n        filePath: './logs/app.log',\n        enableDebugLogs: process.env.NODE_ENV === 'development',\n    },\n    swagger: {\n        title: 'My API',\n        description: 'REST API documentation',\n        version: '1.0.0',\n        path: 'api/docs',  // Swagger UI at /api/docs\n    },\n});\n\n// app.config.json\n{\n    \"APP_PORT\": 3000,\n    \"APP_HOST\": \"0.0.0.0\",\n    \"APP_API_PREFIX\": \"/api\"\n}\n```\n\n#### CORS Examples\n\n**Default behavior (wildcard, backward compatible) - no `cors` property:**\n\n```typescript\n// main.ts\nAppBootstrapper.run(AppModule, {\n    appName: 'MyApp',\n    // No cors property: Access-Control-Allow-Origin: * (same as before v1.1.0)\n});\n```\n\n**Configuring specific allowed origins via `app.config.json`:**\n\n```typescript\n// main.ts\nAppBootstrapper.run(AppModule, {\n    appName: 'MyApp',\n    cors: {},  // Activates CORS config; reads 'CORS_ORIGINS' from app.config.json\n});\n\n// app.config.json\n{\n    \"APP_PORT\": 3000,\n    \"APP_HOST\": \"0.0.0.0\",\n    \"APP_API_PREFIX\": \"/api\",\n    \"CORS_ORIGINS\": \"https://app.example.com|http://localhost:4200\"\n}\n\n// Result: only https://app.example.com and http://localhost:4200 are allowed,\n// with Access-Control-Allow-Credentials: true\n```\n\n**Using a custom configuration key:**\n\n```typescript\n// main.ts\nAppBootstrapper.run(AppModule, {\n    appName: 'MyApp',\n    cors: {\n        originsKey: 'ALLOWED_ORIGINS',  // Read from ALLOWED_ORIGINS instead of CORS_ORIGINS\n    },\n});\n\n// app.config.json\n{\n    \"APP_PORT\": 3000,\n    \"APP_HOST\": \"0.0.0.0\",\n    \"APP_API_PREFIX\": \"/api\",\n    \"ALLOWED_ORIGINS\": \"https://app.example.com|capacitor://localhost\"\n}\n```\n\n**Origin format notes:**\n- Multiple origins are separated by pipe (`|`): `\"https://a.com|https://b.com\"`\n- Whitespace around pipes is trimmed: `\"https://a.com | https://b.com\"` works correctly\n- A single origin without a pipe is valid: `\"https://app.example.com\"`\n- Capacitor/Ionic origins are supported as-is: `\"capacitor://localhost\"`\n- If the key is absent, empty, or not found in config, behavior falls back to wildcard `*`\n\n---\n\n### Logging\n\nWinston logging utilities for creating configured transports.\n\n**Static methods:**\n- `Logging.getWinstonConsoleTransport(appName)` - Console transport (info level)\n- `Logging.getWinstonConsoleDebugTransport(appName)` - Console transport (debug level)\n- `Logging.getWinstonFileTransport(appName, logPath)` - File transport\n\n**Usage example (custom logging setup):**\n```typescript\nimport { Logging } from '@sftech/nestjs-core';\nimport { WinstonModule } from 'nest-winston';\n\n// Custom NestJS logger configuration\nconst app = await NestFactory.create(AppModule, {\n    logger: WinstonModule.createLogger({\n        transports: [\n            Logging.getWinstonConsoleTransport('MyApp'),\n            Logging.getWinstonFileTransport('MyApp', './logs/app.log'),\n        ],\n    }),\n});\n```\n\n**Note:** When using `AppBootstrapper`, logging is configured automatically. Use these methods only for custom logging setups.\n\n---\n\n### GlobalExceptionFilter\n\nGlobal exception filter that catches all exceptions and returns standardized HTTP responses.\n\n**Automatically registered when using `NestjsCoreModule`.**\n\n**Manual registration (if needed):**\n```typescript\nimport { GlobalExceptionFilter } from '@sftech/nestjs-core';\n\nasync function bootstrap() {\n    const app = await NestFactory.create(AppModule);\n    app.useGlobalFilters(new GlobalExceptionFilter());\n    await app.listen(3000);\n}\n```\n\n---\n\n## Dependencies\n\n**No peer dependencies** - This is the foundation library.\n\n## Development\n\n```bash\n# Build\nnpx nx build nestjs-core\n\n# Format\nnpx biome format --write libs/nestjs-core/\n```\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}