{"_id":"@biocomputingup/nest-storage-manager","_rev":"11-82a1e07a7d35014b57033b9f3ffb9e26","name":"@biocomputingup/nest-storage-manager","dist-tags":{"latest":"1.1.3"},"versions":{"0.1.5":{"name":"@biocomputingup/nest-storage-manager","version":"0.1.5","keywords":["nestjs","s3"],"author":{"name":"adelbke"},"license":"MIT","_id":"@biocomputingup/nest-storage-manager@0.1.5","maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"dist":{"shasum":"f8050463c1b642ea4f57debf632ef2eefb38287e","tarball":"https://registry.npmjs.org/@biocomputingup/nest-storage-manager/-/nest-storage-manager-0.1.5.tgz","fileCount":34,"integrity":"sha512-p7jOkkwCbdOBKLYSudmuLrwmsaeX5BYzIyZ0jju4GdIwP8rv1IM3P18bErMbPahZSy7HOylS97nh4Nlab/IaQQ==","signatures":[{"sig":"MEYCIQCIVect7luU0YlSWNSQHNtgRbW8j/xG0hP+zCLQEQbNeQIhAOghmeUMWP9RyeEmh5zF5WO9rcSUDlcggcP+6xtPhRDI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55360},"jest":{"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16"},"gitHead":"ab96a3d5079bd2a4f10a6d32a3b530e2d393201d","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"rimraf -rf dist && tsc -p tsconfig.build.json","start":"nest start","format":"prettier --write \"src/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"mehdi-sk","actor":{"name":"mehdi-sk","type":"user","email":"zoubirimehdi64@gmail.com"},"email":"zoubirimehdi64@gmail.com"},"repository":{"url":"git+https://github.com/BioComputingUP/nest-storage-manager.git","type":"git"},"_npmVersion":"8.5.0","description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","directories":{"lib":"lib","test":"test"},"_nodeVersion":"16.14.2","dependencies":{"mime":"1.6.0","@aws-sdk/s3-request-presigner":"3.717.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.5.0","rxjs":"^7.8.1","eslint":"^8.0.1","rimraf":"^6.0.1","ts-jest":"29.1.0","ts-node":"^10.0.0","prettier":"^2.3.2","supertest":"^6.1.3","ts-loader":"^9.2.3","typescript":"^5.0.0","@nestjs/cli":"^9.0.0","@types/jest":"29.5.1","@types/node":"18.16.12","@nestjs/core":"^9.0.11","@nestjs/common":"^9.4.3","@types/express":"^4.17.13","tsconfig-paths":"4.2.0","@nestjs/testing":"^9.0.0","@types/supertest":"^2.0.11","reflect-metadata":"^0.2.2","@nestjs/schematics":"^9.0.0","source-map-support":"^0.5.20","aws-sdk-client-mock":"^4.1.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-storage-manager_0.1.5_1752154216747_0.9224406651920609","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@biocomputingup/nest-storage-manager","version":"1.0.0","keywords":["nestjs","s3"],"author":{"name":"adelbke"},"license":"MIT","_id":"@biocomputingup/nest-storage-manager@1.0.0","maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"dist":{"shasum":"75e65d0e19aa709300cd9f3848013646531f3332","tarball":"https://registry.npmjs.org/@biocomputingup/nest-storage-manager/-/nest-storage-manager-1.0.0.tgz","fileCount":78,"integrity":"sha512-tDFEbwFoLPCQHL/yfu8StFrsnT7Z09g9nGvb3sAeZVdflJW0eUz9nIkTohXY/DPpzhpeL8Dq/LoUxMlXqhFk4w==","signatures":[{"sig":"MEYCIQDVeg31tnOCKB3k8ZQGWCPEA6Pd1a3yHfH4B8q9VP/nyAIhAPtXtKybj5v5vkiEaquDpG5sgTN0iVrVM+WsF8YnT3HH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111932},"jest":{"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16"},"gitHead":"b4cc4b716183c7d7f53c7086c775045aa9ac85cf","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"rimraf -rf dist && tsc -p tsconfig.build.json","start":"nest start","format":"prettier --write \"src/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"mehdi-sk","actor":{"name":"mehdi-sk","type":"user","email":"zoubirimehdi64@gmail.com"},"email":"zoubirimehdi64@gmail.com"},"repository":{"url":"git+https://github.com/BioComputingUP/nest-storage-manager.git","type":"git"},"_npmVersion":"8.5.0","description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","directories":{"lib":"lib","test":"test"},"_nodeVersion":"16.14.2","dependencies":{"mime":"1.6.0","@aws-sdk/s3-request-presigner":"3.717.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.5.0","rxjs":"^7.8.1","eslint":"^8.0.1","rimraf":"^6.0.1","ts-jest":"29.1.0","ts-node":"^10.0.0","prettier":"^2.3.2","supertest":"^6.1.3","ts-loader":"^9.2.3","typescript":"^5.0.0","@nestjs/cli":"^9.0.0","@types/jest":"29.5.1","@types/node":"18.16.12","@nestjs/core":"^9.0.11","@nestjs/common":"^9.4.3","@types/express":"^4.17.13","tsconfig-paths":"4.2.0","@nestjs/testing":"^9.0.0","@types/supertest":"^2.0.11","reflect-metadata":"^0.2.2","@nestjs/schematics":"^9.0.0","source-map-support":"^0.5.20","aws-sdk-client-mock":"^4.1.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-storage-manager_1.0.0_1752157991595_0.0896677657744418","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@biocomputingup/nest-storage-manager","version":"1.0.2","keywords":["nestjs","s3"],"author":{"name":"adelbke"},"license":"MIT","_id":"@biocomputingup/nest-storage-manager@1.0.2","maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"dist":{"shasum":"4f98e1e5dbcff2c82849c6979aa741d430168287","tarball":"https://registry.npmjs.org/@biocomputingup/nest-storage-manager/-/nest-storage-manager-1.0.2.tgz","fileCount":78,"integrity":"sha512-NIHCZnOPmsQAHSsJkK6+kKDD8Rr1UXF6mzio3yKDivUph3fTFGdre5EratQDqEfXwNbBLdmd3AlpOuYx1e1+pQ==","signatures":[{"sig":"MEYCIQD569Iu7Lbjwkwm784LcDkvXdq8iR3FZDohe/QiInnS9wIhAM62SiCdOwn3Ahrpa7Ail4/5Ztqew4l0yP6REaoGwFc6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112084},"jest":{"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16"},"gitHead":"1b36a1e2e4be5d1470cfbf62969375c4a02b193d","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"rimraf -rf dist && tsc -p tsconfig.build.json","start":"nest start","format":"prettier --write \"src/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},"repository":{"url":"git+https://github.com/BioComputingUP/nest-storage-manager.git","type":"git"},"_npmVersion":"10.8.2","description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","directories":{"lib":"lib","test":"test"},"_nodeVersion":"20.19.3","dependencies":{"mime":"1.6.0","@aws-sdk/s3-request-presigner":"3.717.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.5.0","rxjs":"^7.8.1","eslint":"^8.0.1","rimraf":"^6.0.1","ts-jest":"29.1.0","ts-node":"^10.0.0","prettier":"^2.3.2","supertest":"^6.1.3","ts-loader":"^9.2.3","typescript":"^5.0.0","@nestjs/cli":"^9.0.0","@types/jest":"29.5.1","@types/node":"18.16.12","@nestjs/core":"^9.0.11","@nestjs/common":"^9.4.3","@types/express":"^4.17.13","tsconfig-paths":"4.2.0","@nestjs/testing":"^9.0.0","@types/supertest":"^2.0.11","reflect-metadata":"^0.2.2","@aws-sdk/client-s3":"3.717.0","@nestjs/schematics":"^9.0.0","source-map-support":"^0.5.20","aws-sdk-client-mock":"^4.1.0","@aws-sdk/lib-storage":"3.717.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-storage-manager_1.0.2_1753105954043_0.7386500035027737","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@biocomputingup/nest-storage-manager","version":"1.1.0","keywords":["nestjs","s3"],"author":{"name":"adelbke"},"license":"MIT","_id":"@biocomputingup/nest-storage-manager@1.1.0","maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"dist":{"shasum":"a2c82a6c1348601eab92ba7c98e7e70c4f8b7571","tarball":"https://registry.npmjs.org/@biocomputingup/nest-storage-manager/-/nest-storage-manager-1.1.0.tgz","fileCount":82,"integrity":"sha512-E1knee919DYXyXriBnw+kmO/OryoH9j1guBSFfKNp9TFhdC6KsKRk/bHpLSFP6gBAhSWdZ/u6ebdEn8vLKo/tA==","signatures":[{"sig":"MEUCID++ATLRf4TDmJS51KpMXvtAUtWvQb4xs+aQ/hiEZ7dqAiEA8+bibE3U0gOiEmhPZMoenRYIgzt45Xbe365vA+6Rvo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119024},"jest":{"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16"},"gitHead":"ef618680f45bc24e3be47d860e3f7c0f8c874673","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},"repository":{"url":"git+https://github.com/BioComputingUP/nest-storage-manager.git","type":"git"},"_npmVersion":"11.13.0","description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","directories":{"lib":"lib","test":"test"},"_nodeVersion":"20.20.1","dependencies":{"mime":"1.6.0","@aws-sdk/s3-request-presigner":"3.717.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.5.0","rxjs":"^7.8.1","eslint":"^8.0.1","rimraf":"^6.0.1","ts-jest":"29.1.0","ts-node":"^10.0.0","prettier":"^2.3.2","supertest":"^6.1.3","ts-loader":"^9.2.3","typescript":"^5.0.0","@nestjs/cli":"^9.0.0 || ^10.0.0","@types/jest":"29.5.1","@types/node":"18.16.12","@nestjs/core":"^9.0.11 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0","@types/express":"^4.17.13","tsconfig-paths":"4.2.0","@nestjs/testing":"^9.0.0 || ^10.0.0","@types/supertest":"^2.0.11","reflect-metadata":"^0.2.2","@aws-sdk/client-s3":"3.717.0","@nestjs/schematics":"^9.0.0 || ^10.0.0","source-map-support":"^0.5.20","aws-sdk-client-mock":"^4.1.0","@aws-sdk/lib-storage":"3.717.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@nestjs/platform-express":"^9.0.0 || ^10.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-storage-manager_1.1.0_1779182943267_0.7667977831467663","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@biocomputingup/nest-storage-manager","version":"1.1.1","keywords":["nestjs","s3"],"author":{"name":"adelbke"},"license":"MIT","_id":"@biocomputingup/nest-storage-manager@1.1.1","maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"dist":{"shasum":"6025fbe0c11243188c3b98acba2d34bdb1cde339","tarball":"https://registry.npmjs.org/@biocomputingup/nest-storage-manager/-/nest-storage-manager-1.1.1.tgz","fileCount":84,"integrity":"sha512-4fJDDYbvo/PLEi1wkDP6g/IQFgSLbGwg9xe5qTPUslLLtoDKNPm0ha03z51mKoXkEXx1mt1YsKkpSr+KwWeWlQ==","signatures":[{"sig":"MEUCIFvi9Fwf2yoiZt7N26s1stwAdEbOf1jnvzOiLLBpfbZBAiEAgWVn+0LnauKLZnWFHOVyOUOSpx19dyNvh0mkpJmQAPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119531},"jest":{"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16"},"gitHead":"92e378bdea9d869f40d564a31b8d2627a6abb266","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},"repository":{"url":"git+https://github.com/BioComputingUP/nest-storage-manager.git","type":"git"},"_npmVersion":"11.13.0","description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","directories":{"lib":"lib","test":"test"},"_nodeVersion":"20.20.1","dependencies":{"mime":"1.6.0","@aws-sdk/s3-request-presigner":"3.717.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.5.0","rxjs":"^7.8.1","eslint":"^8.0.1","rimraf":"^6.0.1","ts-jest":"29.1.0","ts-node":"^10.0.0","prettier":"^2.3.2","supertest":"^6.1.3","ts-loader":"^9.2.3","typescript":"^5.0.0","@nestjs/cli":"^9.0.0 || ^10.0.0","@types/jest":"29.5.1","@types/node":"18.16.12","@nestjs/core":"^9.0.11 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0","@types/express":"^4.17.13","tsconfig-paths":"4.2.0","@nestjs/testing":"^9.0.0 || ^10.0.0","@types/supertest":"^2.0.11","reflect-metadata":"^0.2.2","@aws-sdk/client-s3":"3.717.0","@nestjs/schematics":"^9.0.0 || ^10.0.0","source-map-support":"^0.5.20","aws-sdk-client-mock":"^4.1.0","@aws-sdk/lib-storage":"3.717.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@nestjs/platform-express":"^9.0.0 || ^10.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-storage-manager_1.1.1_1781704721454_0.31501115301586213","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@biocomputingup/nest-storage-manager","version":"1.1.2","keywords":["nestjs","s3"],"author":{"name":"adelbke"},"license":"MIT","_id":"@biocomputingup/nest-storage-manager@1.1.2","maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"dist":{"shasum":"62342dbf9429fd4b516b05e7944bb49d19d73018","tarball":"https://registry.npmjs.org/@biocomputingup/nest-storage-manager/-/nest-storage-manager-1.1.2.tgz","fileCount":28,"integrity":"sha512-RFbXxziNzLZMeJ0j/dMcONwnxTniv7Vfz8nRqaVEVEKppyMTsSB+iNFt6yoj3yON0/HRBMYxL68z4EIwqCe/LA==","signatures":[{"sig":"MEYCIQC2LBQSfZM3ff5C4ceB+ou5ztokrqNnKv9YO+vL+EsfZAIhAKf8IaE5MQUuAIUhfSMZYWDcii+8DV5bqop4JDIA323Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107082},"jest":{"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16"},"gitHead":"9f3d0c65c3a681d27e23349b56fd15636e62224c","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"rimraf dist && rollup -c","start":"nest start","format":"prettier --write \"src/**/*.ts\"","pack:lib":"npm pack","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},"repository":{"url":"git+https://github.com/BioComputingUP/nest-storage-manager.git","type":"git"},"_npmVersion":"10.8.2","description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","directories":{"lib":"lib","test":"test"},"_nodeVersion":"20.20.2","dependencies":{"mime":"1.6.0","@aws-sdk/s3-request-presigner":"3.717.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.5.0","rxjs":"^7.8.1","tslib":"^2.8.1","eslint":"^8.0.1","rimraf":"^6.0.1","rollup":"^4.62.2","ts-jest":"29.1.0","ts-node":"^10.0.0","prettier":"^2.3.2","supertest":"^6.1.3","ts-loader":"^9.2.3","typescript":"^5.0.0","@nestjs/cli":"^9.0.0 || ^10.0.0","@types/jest":"29.5.1","@types/node":"18.16.12","@nestjs/core":"^9.0.11 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0","@types/express":"^4.17.13","tsconfig-paths":"4.2.0","@nestjs/testing":"^9.0.0 || ^10.0.0","@types/supertest":"^2.0.11","reflect-metadata":"^0.2.2","@aws-sdk/client-s3":"3.717.0","@nestjs/schematics":"^9.0.0 || ^10.0.0","source-map-support":"^0.5.20","aws-sdk-client-mock":"^4.1.0","@aws-sdk/lib-storage":"3.717.0","@rollup/plugin-terser":"^1.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^29.0.3","@nestjs/platform-express":"^9.0.0 || ^10.0.0","@rollup/plugin-typescript":"^12.3.0","@typescript-eslint/parser":"^5.0.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-storage-manager_1.1.2_1783339818750_0.8330349111291055","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@biocomputingup/nest-storage-manager","version":"1.1.3","description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","author":{"name":"adelbke"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","typings":"dist/index.d.ts","scripts":{"build":"rimraf dist && rollup -c","pack:lib":"npm pack","format":"prettier --write \"src/**/*.ts\"","start":"nest start","start:dev":"nest start --watch","start:debug":"nest start --debug --watch","start:prod":"node dist/main","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","test:watch":"jest --watch","test:cov":"jest --coverage","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:e2e":"jest --config ./test/jest-e2e.json"},"peerDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0","@aws-sdk/s3-request-presigner":"3.717.0"},"dependencies":{"mime":"1.6.0"},"devDependencies":{"@aws-sdk/client-s3":"3.717.0","@aws-sdk/lib-storage":"3.717.0","@nestjs/cli":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0","@nestjs/core":"^9.0.11 || ^10.0.0","@nestjs/platform-express":"^9.0.0 || ^10.0.0","@nestjs/schematics":"^9.0.0 || ^10.0.0","@nestjs/testing":"^9.0.0 || ^10.0.0","@rollup/plugin-commonjs":"^29.0.3","@rollup/plugin-node-resolve":"^16.0.3","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-typescript":"^12.3.0","@types/express":"^4.17.13","@types/jest":"29.5.1","@types/node":"18.16.12","@types/supertest":"^2.0.11","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","aws-sdk-client-mock":"^4.1.0","eslint":"^8.0.1","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","jest":"29.5.0","prettier":"^2.3.2","reflect-metadata":"^0.2.2","rimraf":"^6.0.1","rollup":"^4.62.2","rxjs":"^7.8.1","source-map-support":"^0.5.20","supertest":"^6.1.3","ts-jest":"29.1.0","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"4.2.0","tslib":"^2.8.1","typescript":"^5.0.0"},"engines":{"node":">=16"},"repository":{"type":"git","url":"git+https://github.com/BioComputingUP/nest-storage-manager.git"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","directories":{"lib":"lib","test":"test"},"keywords":["nestjs","s3"],"_id":"@biocomputingup/nest-storage-manager@1.1.3","gitHead":"a42d65ca2f9f863c310b10c03b63db06b07610e0","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-bkUyhvbg6c54eg4gLZNbdmSv+PuCFizQYpEQT0baERfZ0EIHkuJcAGC8Wbn6F7KT//cZdQK+B9PgHkO2UVYrpQ==","shasum":"da8ac3642976d2f1e81f9ceba35e46478d55d26e","tarball":"https://registry.npmjs.org/@biocomputingup/nest-storage-manager/-/nest-storage-manager-1.1.3.tgz","fileCount":28,"unpackedSize":107331,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCZRkX7FVdssCBlLigjn89XpxokHMzw5WbiI14U+Zrj0QIgOpjnSoPPzYkV/9cqzOqTY8OC05ZlTPAy36Fy6yN4vtY="}]},"_npmUser":{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},"maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nest-storage-manager_1.1.3_1783341859198_0.6092877752163575"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-10T13:30:16.672Z","modified":"2026-07-06T12:44:19.462Z","0.1.5":"2025-07-10T13:30:16.926Z","0.1.6":"2025-07-10T13:50:49.580Z","1.0.0":"2025-07-10T14:33:11.773Z","1.0.1":"2025-07-21T13:31:27.755Z","1.0.2":"2025-07-21T13:52:34.243Z","1.1.0":"2026-05-19T09:29:03.406Z","1.1.1":"2026-06-17T13:58:41.581Z","1.1.2":"2026-07-06T12:10:18.895Z","1.1.3":"2026-07-06T12:44:19.333Z"},"bugs":{"url":"https://github.com/BioComputingUP/nest-storage-manager/issues"},"author":{"name":"adelbke"},"license":"MIT","homepage":"https://github.com/BioComputingUP/nest-storage-manager#readme","keywords":["nestjs","s3"],"repository":{"type":"git","url":"git+https://github.com/BioComputingUP/nest-storage-manager.git"},"description":"A NestJS module for managing storage operations with AWS S3/local filesystem, providing functionalities and simplicity","maintainers":[{"name":"quickinline","email":"adelbouhraoua23@gmail.com"},{"name":"ivanmicetic","email":"ivan.micetic@gmail.com"},{"name":"mehdi-sk","email":"zoubirimehdi64@gmail.com"}],"readme":"# Nest Storage Manager\n\nThe Nest Storage Manager manages multiple storage engines and exposes the StorageService as the primary interface for file operations.\n\n# Table of Contents\n- [Nest Storage Manager](#nest-storage-manager)\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [1. Import StorageManagerModule](#1-import-storagemanagermodule)\n  - [2. Inject and use StorageService or each engine individually](#2-inject-and-use-storageservice-or-each-engine-individually)\n  - [Included Storage Engines](#included-storage-engines)\n    - [LocalStorageEngine](#localstorageengine)\n    - [S3StorageEngine](#s3storageengine)\n  - [Custom Storage Engine](#custom-storage-engine)\n    - [The \"OnEngineInit\" Hook](#the-onengineinit-hook)\n  - [Example Imports](#example-imports)\n  - [Canonical URLs](#canonical-urls)\n  - [StorageService API](#storageservice-api)\n  - [Setup Guide](#setup-guide)\n  - [Usage Examples](#usage-examples)\n    - [put](#put)\n    - [getStream](#getstream)\n    - [delete](#delete)\n\n\n# Installation\nTo use Nest Storage in your Nest.js application, install the package via npm:\n\n```sh\nnpm install @biocomputingup/nest-storage-manager\n```\n\n# Usage\n\n## 1. Import StorageManagerModule\n\n```typescript\nimport { StorageManagerModule, Engine } from '@biocomputingup/nest-storage-manager'\nimport { LocalStorageEngine, S3StorageEngine } from '@biocomputingup/nest-storage-manager/engines';\nconst [PublicStorage, PrivateStorage] = ['public', 'private'];\n\n@Module({\n  imports :[\n    // Other imports\n    StorageManagerModule.forRoot({\n      default: PublicStorage,\n      engines: [\n        {\n          name: PrivateStorage,\n          engine: YourImplementationOfStorageEngine // Example for custom engines\n        },\n        {\n          name: PublicStorage, // You can use the factory pattern here as well\n          imports: [ConfigModule],\n          inject: [ConfigService],\n          useFactory: (config: ConfigService): StorageEngine => new LocalFsEngine({\n            folderPath: 'path/to/storage/folder',\n            baseUrl: 'http://localhost:3000',\n          })\n        },\n      ],\n    });\n  ]\n})\nclass AppModule {}\n\n```\n\n## 2. Inject and use StorageService or each engine individually\n\nFrom anywhere in your application, inject and use the StorageService to perform operations:\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { StorageService } from '@biocomputingup/nest-storage-manager';\n\n@Injectable()\nexport class YourService {\n  constructor(private readonly storageService: StorageService) {}\n\n  // Use storageService methods for file and folder operations\n  // Example: this.storageService.put('path/to/file.txt', bufferData);\n}\n\n```\n\nOr inject each storage engine individually\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { StorageService } from '@biocomputingup/nest-storage-manager';\n\n@Injectable()\nexport class YourService {\n  constructor(@InjectEngine(PrivateStorage) private readonly engine: Engine<YourEngineClass>) {}\n\n  // Use the engine\n  // Example: this.storageService.put('path/to/file.txt', bufferData);\n}\n```\n## Included Storage Engines\n\n### LocalStorageEngine \n\nAsync Factory Provider implementation\n\n```ts\n{\n\tname: 'private',\n\tinject: [ConfigService],\n\tuseFactory: (config: ConfigService) => ({\n      engine: new LocalFsEngine({\n        folderPath: config.get('/path/to/folder'),\n        baseUrl: 'http://localhost:3000', // The URL prefix, if you plan to serve these files the storage engine will prefix them with this path when returning public url for a file e.g engine.getPublicUrl('filename')\n      }),\n  }),\n},\n```\n\nRegular Value Provider implementation\n\n```ts\n{\n  name: 'privateStorage',\n  engine: new LocalFsEngine({\n    // Config here\n  })\n}\n\n```\n### S3StorageEngine\n\n```typescript\n\n// in the app module the config is the following\n\n{\n\tname: 'myS3Storage',\n\tengine: new S3Engine({\n    bucket: 'bucket-name',\n    proxy: { // Optional in case the S3 instance is behind a proxy\n      proxyEndpoint: 'http://my-url' // The public facing URL endpoint associated with S3 (used to build public URLs)\n      bucketEndpoint: 'http://S3-url' // The endpoint of the files returned by S3\n    }\n  }, new S3Client() /* An instance of S3Client from @aws-sdk/client-s3 */ ),\n}\n\n```\n\n## Custom Storage Engine\n\nIf your use case doesn't fit the already provided storage engines. You can implement your own and use it as any other engine\n\n```typescript\n\n// All you need to do is to pass a class that implements this interface\n\n/**\n * Interface representing a storage engine.\n *\n * @template EngineConfig - The type of the configuration object for the storage engine.\n */\nexport interface StorageEngine {\n  /**\n   * Retrieves the data at the specified path.\n   *\n   * @param path - The path to the data.\n   * @returns A promise that resolves with the data as a Buffer.\n   */\n  get(path: string): Promise<Buffer>;\n\n  /**\n   * Retrieves a stream for the data at the specified path.\n   *\n   * @param path - The path to the data.\n   * @returns A stream of the data, or a promise that resolves with the stream.\n   */\n  getStream(path: string): Stream | Promise<Stream>;\n\n  /**\n   * Retrieves a public URL for the data at the specified path.\n   *\n   * @param path - The path to the data.\n   * @returns A promise that resolves with the public URL as a string.\n   */\n  getPublicUrl(path: string, ...otherArgs: any[]): Promise<string>;\n\n  /**\n   * Stores the given data at the specified path.\n   *\n   * @param path - The path where the data should be stored.\n   * @param data - The data to store, as a Buffer or a ReadableStream.\n   * @returns A promise that resolves when the data has been stored.\n   */\n  put(path: string, data: Buffer | NodeJS.ReadableStream): Promise<void>;\n\n  /**\n   * Deletes the data at the specified path.\n   *\n   * @param path - The path to the data to delete.\n   * @returns A promise that resolves when the data has been deleted.\n   */\n  delete(path: string): Promise<void>;\n\n  /**\n   * Lists the paths of all data items with the specified prefix.\n   *\n   * @param prefix - The prefix to filter the paths.\n   * @returns An async generator that yields the paths as strings.\n   */\n  listPaths(prefix: string): AsyncGenerator<string, void, unknown>;\n}\n```\n\n```typescript\nconstructor(private storageService: StorageService) {}\n\nasync uploadFile() {\n\tconst path = await this.storageService.put('public', 'some/path', myData);\n}\n```\nUse `getStream`, `delete`, and other methods in the same way, passing either an engine name and path or a canonical URL.\n\n### The \"OnEngineInit\" Hook\n\nEach Engine class can implement the `OnEngineInit` interface importable from the base `@biocomputingup/nest-storage-manager` package. This would allow the implementation of initialization hooks that are ran after the storageEngine is instantiated\n\n```typescript\nclass MyStorageEngine implements StorageEngine, OnEngineInit {\n  async onEngineInit() {\n    // Initialization Code...\n  }\n  // ...etc\n}\n```\n\n## Example Imports\n```typescript\nimport { LocalStorageModule, StorageService } from '@biocomputingup/nest-storage-manager';\n```\n\n## Canonical URLs\nCanonical URLs map for storage locations and paths, making it easier to share or locate resources independently of the chosen engine. They typically follow the pattern: `storage://{engineName}/path/to/file`.\n\nCanonicalURLs are returned when performing a `put` `delete` and can be used in the `get` operation of the storageManager to be used as file references in your DB\n\n## StorageService API\n\n- **put(engine, path, data):** Uploads data.\n- **getStream(engine, path):** Retrieves a stream for reading.\n- **delete(engine, path):** Removes a file.\n- **list(engine, path?):** Lists files within a path if provided.\n- **exists(engine, path):** Checks if a file exists.\n\nAdjust the engine name and path or use a canonical URL for all operations.\n## Setup Guide\n1. Install and import the module in your main application module.\n2. Configure your storage engines as needed.\n3. Inject the StorageService wherever file operations are required.\n\n## Usage Examples\n### put\n```typescript\nasync saveData(blob: Blob) {\n\tawait this.storageService.put('public', 'docs/report.pdf', blob);\n}\n```\n\n### getStream\n```typescript\nasync readFile() {\n\tconst stream = await this.storageService.getStream('private', 'user/data.json');\n\t// Process the stream as needed\n}\n```\n\n### delete\n```typescript\nasync removeFile() {\n\tawait this.storageService.delete('public', 'old/logs.txt');\n}\n```\n\n\n\n","readmeFilename":"README.md"}